Télécharger rayen.eso

Retour à la liste

Numérotation des lignes :

rayen
  1. C RAYEN SOURCE CB215821 25/05/21 21:15:02 12273
  2. SUBROUTINE RAYEN(modl,mchel1,mchel2,mchel3,errj,mchel4)
  3.  
  4. C **********************************************************
  5. C **** OPERATEUR RAYE ****
  6. C **** ****
  7. C **** SYNTAXE : CH2 = RAYE MODL1 CHAM1 CHAM2 ****
  8. C **** ou ****
  9. C **** CH2 = RAYE MODL1 CHAM1 CHAM2 CHAM3 ****
  10. C **** (PREC) ****
  11. C **** 'TABS' VAL ****
  12. C **** MODL1 : type MMODEL ****
  13. C **** MCHEL1 : type MCHELM ****
  14. C **** MCHEL2 : type MCHELM ****
  15. C **** MCHEL3 : type MCHELM ****
  16. C **** PREC : flottant ****
  17. C **** VAL : flottant (T milieu absorbant)****
  18. C **** ****
  19. C Rayonnement en milieu transparent dans une cavité ****
  20. C 2 possibilités: ****
  21. C 1- calcul de la matrice de rayonnement ****
  22. C Phi = R. T**4 ****
  23. C 2- calcul de la temperature Trad ****
  24. C Phi = emis.sigma.(T**4-Trad**4) ****
  25. C **********************************************************
  26.  
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29.  
  30. C **********************************************************
  31. C **** Entree des includes ****
  32. C **********************************************************
  33.  
  34.  
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. -INC SMCHAML
  38. -INC SMMODEL
  39.  
  40. C **********************************************************
  41. C **** Declaration des variables du probleme ****
  42. C **********************************************************
  43.  
  44. POINTEUR MODL.MMODEL
  45. POINTEUR CHAME.MCHELM, CHAMF.MCHELM, CHAMT.MCHELM
  46. CHARACTER*8 TYPE
  47. CHARACTER*4 MOTCLE
  48.  
  49. C POINTEUR IMCHFA.MCHAML
  50. C **********************************************************
  51. C **** Lecture des entrees ****
  52. C **********************************************************
  53.  
  54. KABS=0
  55. KMATR=1
  56. IF (IIMPI.GE.4) WRITE(6,*) 'DEBUT DE RAYT.ESO'
  57. if(mchel3.ne.0) then
  58. C segact mchel2
  59. kabs=0
  60. kmatr=0
  61. do io=1,mchel2.imache(/1)
  62. mchaml=mchel2.ichaml(io)
  63. C segact mchaml
  64. do ia=1,nomche(/2)
  65. if( nomche(ia).eq.'TABS' ) then
  66. kabs=1
  67. melval=ielval(ia)
  68. C segact melval
  69. Tabs= velche(1,1)
  70. go to 1
  71. endif
  72. enddo
  73. 1 continue
  74. enddo
  75. endif
  76. * write(6,*) ' kmatr kabs ' , kmatr , kabs
  77. * write(6,*) ' errj , tabs ' , errj , tabs
  78. IF(KMATR.EQ.1) THEN
  79.  
  80. C Calcul de la matrice de rayonnement
  81.  
  82.  
  83. C **********************************************************
  84. C **** Verification sur l'egalite des supports des ****
  85. C **** differents champs. ****
  86. C **********************************************************
  87. CALL RAYN1(MODL, MCHEL1)
  88. IF (IERR .NE. 0) RETURN
  89. CALL RAYN1(MODL, MCHEL2)
  90. IF (IERR .NE. 0) RETURN
  91.  
  92. C **********************************************************
  93. C **** Reconnaissance des deux CHAMELEM ****
  94. C **** MCHEL1 contient les facteurs de forme ****
  95. C **** MCHEL2 contient les emissivites ****
  96. C **********************************************************
  97.  
  98. C SEGACT MCHEL1, MCHEL2
  99.  
  100. IF ((MCHEL1.TITCHE).NE.'MATRICE DE RAYONNEMENT') THEN
  101. CHAME = MCHEL1
  102. CHAMF = MCHEL2
  103. ELSE
  104. CHAME = MCHEL2
  105. CHAMF = MCHEL1
  106. ENDIF
  107.  
  108. CALL RAYE0(MODL, INFOEL)
  109. IF (IERR .NE. 0) RETURN
  110.  
  111. C **********************************************************
  112. C **** Conversion des MCHELM en matrices ****
  113. C **********************************************************
  114. CALL RAYE1(MCHEL1, INFOEL, IFACFO)
  115. CALL RAYE2(MCHEL2, MODL, INFOEL, IEMIS)
  116. IF (IERR .NE. 0) RETURN
  117.  
  118. C **********************************************************
  119. C **** Calcul de la matrice de rayonnement associe ****
  120. C **********************************************************
  121.  
  122. CALL RAYE3(IFACFO, IEMIS, IRES)
  123.  
  124. IF (IIMPI.GE.3) THEN
  125. CALL PRFACF(IRES)
  126. ENDIF
  127.  
  128. C **********************************************************
  129. C **** Conversion du resultat en un MCHELM ****
  130. C **********************************************************
  131.  
  132. LTITR = 0
  133. CALL FFMCHA(MODL, INFOEL, IRES, MCHEL3, LTITR)
  134.  
  135. C **********************************************************
  136. C **** Ecriture des resultats ****
  137. C **********************************************************
  138. mchel4=mchel3
  139.  
  140. ELSE
  141.  
  142. C Calcul de la temperature Trad
  143.  
  144. C **********************************************************
  145. C **** Verification sur l'egalite des supports des ****
  146. C **** differents champs. ****
  147. C **********************************************************
  148.  
  149. CALL RAYN1(MODL, MCHEL1)
  150. IF (IERR .NE. 0) RETURN
  151. CALL RAYN1(MODL, MCHEL2)
  152. IF (IERR .NE. 0) RETURN
  153. CALL RAYN1(MODL, MCHEL3)
  154. IF (IERR .NE. 0) RETURN
  155.  
  156. C **********************************************************
  157. C **** Reconnaissance des deux CHAMELEM ****
  158. C **** MCHEL1 contient les facteurs de forme ****
  159. C **** MCHEL2 contient les emissivites par element)****
  160. C **** MCHEL3 contient les temperatures par element***
  161. C **********************************************************
  162.  
  163.  
  164. C SEGACT MCHEL1, MCHEL2, MCHEL3
  165. IF ((MCHEL1.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  166. CHAMF = MCHEL1
  167. IF((MCHEL2.TITCHE).EQ.'CARACTERISTIQUES') THEN
  168. CHAME = MCHEL2
  169. CHAMT = MCHEL3
  170. ELSE
  171. CHAME = MCHEL3
  172. CHAMT = MCHEL2
  173. ENDIF
  174. ELSEIF((MCHEL1.TITCHE).EQ.'CARACTERISTIQUES') THEN
  175. CHAME = MCHEL1
  176. IF((MCHEL2.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  177. CHAMF = MCHEL2
  178. CHAMT = MCHEL3
  179. ELSE
  180. CHAMF = MCHEL3
  181. CHAMT = MCHEL2
  182. ENDIF
  183. ELSE
  184. CHAMT = MCHEL1
  185. IF((MCHEL2.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  186. CHAMF = MCHEL2
  187. CHAME = MCHEL3
  188. ELSE
  189. CHAMF = MCHEL3
  190. CHAME = MCHEL2
  191. ENDIF
  192.  
  193. ENDIF
  194.  
  195. CALL RAYE0(MODL, INFOEL)
  196.  
  197. C **********************************************************
  198. C **** Conversion des MCHELM en matrices ****
  199. C **********************************************************
  200.  
  201. CALL RAYE1(CHAMF, INFOEL, IFACFO)
  202.  
  203. CALL RAYE2(CHAME , MODL, INFOEL, IEMIS)
  204.  
  205. CALL RAYE2(CHAMT , MODL, INFOEL, ITEMP)
  206.  
  207. C **********************************************************
  208. C **** Calcul du tableau TRAD ****
  209. C **********************************************************
  210.  
  211. CALL RAYT1(IFACFO, IEMIS, ITEMP, ERRJ , IRES, KABS, TABS)
  212.  
  213.  
  214. C **********************************************************
  215. C **** Conversion du resultat en un MCHELM ****
  216. C **********************************************************
  217.  
  218. C WRITE(6,*) ' infoel',INFOEL
  219. C on ne traite pas les coques
  220. INFOEL = 0
  221. CALL RAYT2(MODL, INFOEL, CHAMT , IRES, MCHEL4)
  222.  
  223. C **********************************************************
  224. C **** Ecriture des resultats ****
  225. C **********************************************************
  226.  
  227. ENDIF
  228.  
  229. IF (IIMPI.GE.4) WRITE(6,*) 'FIN RAYT OK'
  230.  
  231. END
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales