Télécharger rayen.eso

Retour à la liste

Numérotation des lignes :

rayen
  1. C RAYEN SOURCE CB215821 24/04/12 21:17:03 11897
  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. segact mchel2
  59. kabs=0
  60. kmatr=0
  61. do io=1,mchel2.imache(/1)
  62. mchaml=mchel2.ichaml(io)
  63. segact mchaml
  64. do ia=1,nomche(/2)
  65. if( nomche(ia).eq.'TABS' ) then
  66. kabs=1
  67. melval=ielval(ia)
  68. 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. CALL RAYN1(MODL, MCHEL2)
  89.  
  90. C **********************************************************
  91. C **** Reconnaissance des deux CHAMELEM ****
  92. C **** MCHEL1 contient les facteurs de forme ****
  93. C **** MCHEL2 contient les emissivites ****
  94. C **********************************************************
  95.  
  96. SEGACT MCHEL1, MCHEL2
  97.  
  98. IF ((MCHEL1.TITCHE).NE.'MATRICE DE RAYONNEMENT') THEN
  99. CHAME = MCHEL1
  100. CHAMF = MCHEL2
  101. ELSE
  102. CHAME = MCHEL2
  103. CHAMF = MCHEL1
  104. ENDIF
  105.  
  106. CALL RAYE0(MODL, INFOEL)
  107.  
  108. C **********************************************************
  109. C **** Conversion des MCHELM en matrices ****
  110. C **********************************************************
  111. CALL RAYE1(MCHEL1, INFOEL, IFACFO)
  112. CALL RAYE2(MCHEL2, MODL, INFOEL, IEMIS)
  113.  
  114. C **********************************************************
  115. C **** Calcul de la matrice de rayonnement associe ****
  116. C **********************************************************
  117.  
  118. CALL RAYE3(IFACFO, IEMIS, IRES)
  119.  
  120. IF (IIMPI.GE.3) THEN
  121. CALL PRFACF(IRES)
  122. ENDIF
  123.  
  124. C **********************************************************
  125. C **** Conversion du resultat en un MCHELM ****
  126. C **********************************************************
  127.  
  128. LTITR = 0
  129. CALL FFMCHA(MODL, INFOEL, IRES, MCHEL3, LTITR)
  130.  
  131. C **********************************************************
  132. C **** Ecriture des resultats ****
  133. C **********************************************************
  134. mchel4=mchel3
  135.  
  136. ELSE
  137.  
  138. C Calcul de la temperature Trad
  139.  
  140. C **********************************************************
  141. C **** Verification sur l'egalite des supports des ****
  142. C **** differents champs. ****
  143. C **********************************************************
  144.  
  145. CALL RAYN1(MODL, MCHEL1)
  146. CALL RAYN1(MODL, MCHEL2)
  147. CALL RAYN1(MODL, MCHEL3)
  148.  
  149. C **********************************************************
  150. C **** Reconnaissance des deux CHAMELEM ****
  151. C **** MCHEL1 contient les facteurs de forme ****
  152. C **** MCHEL2 contient les emissivites par element)****
  153. C **** MCHEL3 contient les temperatures par element***
  154. C **********************************************************
  155.  
  156.  
  157. SEGACT MCHEL1, MCHEL2, MCHEL3
  158. IF ((MCHEL1.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  159. CHAMF = MCHEL1
  160. IF((MCHEL2.TITCHE).EQ.'CARACTERISTIQUES') THEN
  161. CHAME = MCHEL2
  162. CHAMT = MCHEL3
  163. ELSE
  164. CHAME = MCHEL3
  165. CHAMT = MCHEL2
  166. ENDIF
  167. ELSEIF((MCHEL1.TITCHE).EQ.'CARACTERISTIQUES') THEN
  168. CHAME = MCHEL1
  169. IF((MCHEL2.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  170. CHAMF = MCHEL2
  171. CHAMT = MCHEL3
  172. ELSE
  173. CHAMF = MCHEL3
  174. CHAMT = MCHEL2
  175. ENDIF
  176. ELSE
  177. CHAMT = MCHEL1
  178. IF((MCHEL2.TITCHE).EQ.'MATRICE DE RAYONNEMENT') THEN
  179. CHAMF = MCHEL2
  180. CHAME = MCHEL3
  181. ELSE
  182. CHAMF = MCHEL3
  183. CHAME = MCHEL2
  184. ENDIF
  185.  
  186. ENDIF
  187.  
  188. CALL RAYE0(MODL, INFOEL)
  189.  
  190. C **********************************************************
  191. C **** Conversion des MCHELM en matrices ****
  192. C **********************************************************
  193.  
  194. CALL RAYE1(CHAMF, INFOEL, IFACFO)
  195.  
  196. CALL RAYE2(CHAME , MODL, INFOEL, IEMIS)
  197.  
  198. CALL RAYE2(CHAMT , MODL, INFOEL, ITEMP)
  199.  
  200. C **********************************************************
  201. C **** Calcul du tableau TRAD ****
  202. C **********************************************************
  203.  
  204. CALL RAYT1(IFACFO, IEMIS, ITEMP, ERRJ , IRES, KABS, TABS)
  205.  
  206.  
  207. C **********************************************************
  208. C **** Conversion du resultat en un MCHELM ****
  209. C **********************************************************
  210.  
  211. C WRITE(6,*) ' infoel',INFOEL
  212. C on ne traite pas les coques
  213. INFOEL = 0
  214. CALL RAYT2(MODL, INFOEL, CHAMT , IRES, MCHEL4)
  215.  
  216. C **********************************************************
  217. C **** Ecriture des resultats ****
  218. C **********************************************************
  219.  
  220. ENDIF
  221.  
  222. IF (IIMPI.GE.4) WRITE(6,*) 'FIN RAYT OK'
  223.  
  224. END
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  

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