Télécharger rayt1.eso

Retour à la liste

Numérotation des lignes :

rayt1
  1. C RAYT1 SOURCE CHAT 11/03/16 21:30:26 6902
  2. C RAYE3 SOURCE CHAT 05/01/13 02:45:13 5004
  3. SUBROUTINE RAYT1(MATR, EMIS, TEMP, ERRJ , TRAD, KABS, TABS)
  4.  
  5. C ************************************************************
  6. C **** SUBROUTINE DE CALCUL DE LA TEMPERATURE TRAD ****
  7. C **** INTERVENANT EN RAYONNEMENT THERMIQUE ****
  8. C **** ****
  9. C **** En entree : MATR matrice des facteurs de forme ****
  10. C **** EMIS valeur de l'emissivite en chaque ****
  11. C **** element de surface ****
  12. C **** TEMP temperature moyenne par element ****
  13. C **** ERRJ erreur relative sur le calcul ****
  14. C **** milieu absorbant (02/2011) ****
  15. C **** KABS si =1 il existe un milieu absorbant**
  16. C **** TABS temperaure du milieu absorbant ****
  17. C **** ****
  18. C **** En sortie : TRAD temperature moyenne par element ****
  19. C **** résultant des transferts radiatifs***
  20. C **** ****
  21. C **** ****
  22. C ************************************************************
  23.  
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8 (A-H,O-Z)
  26.  
  27. -INC CCREEL
  28. -INC PPARAM
  29. -INC CCOPTIO
  30.  
  31. C **********************************************************
  32. C **** Declaration de la structure des facteurs ****
  33. C **** de forme ****
  34. C **********************************************************
  35.  
  36. SEGMENT IFACFO
  37. INTEGER LFACT(NBEL1)
  38. ENDSEGMENT
  39. SEGMENT LFAC
  40. REAL *8 FACT(NBEL2)
  41. ENDSEGMENT
  42.  
  43. C **********************************************************
  44. C **** Declaration des variables du probleme ****
  45. C **********************************************************
  46.  
  47. POINTEUR MATR.IFACFO
  48. POINTEUR LMATR.LFAC
  49. POINTEUR EMIS.LFAC, TEMP.LFAC, TRAD.LFAC
  50. POINTEUR EMIT.LFAC, JRAD.LFAC, JRAD1.LFAC, DIFF.LFAC
  51. C!!
  52. POINTEUR EGAZ.LFAC, AF.LFAC
  53.  
  54. C constante de Stefan
  55. SIG = 5.67D-8
  56. C nombre d'iterations max pour le calcul de la radiosité
  57. NK = 50
  58.  
  59.  
  60. C **********************************************************
  61. C **** Activation de la matrice des facteurs de forme ****
  62. C **** par l'intermediaire de son pointeur. Sa ****
  63. C **** dimension est Nbel. Le dernier pointeur pointe ****
  64. C **** sur les elements de surface ****
  65. C **********************************************************
  66.  
  67. IF (IIMPI.GE.4) THEN
  68. WRITE(6,*) 'DEBUT DE RAYT1.ESO'
  69. ENDIF
  70.  
  71. SEGACT MATR
  72. NEL = MATR.LFACT(/1) - 1
  73.  
  74. NBEL2 = NEL
  75. SEGACT, EMIS, TEMP
  76. SEGINI EMIT, JRAD, JRAD1, TRAD, DIFF
  77. C!!
  78. SEGINI EGAZ, AF
  79.  
  80. CALL UTINIV(DIFF.FACT,NEL)
  81.  
  82. C write(6,*) ' NEL SIG ', NEL, SIG
  83.  
  84. C **********************************************************
  85. C **** calcul des flux emis par les parois ****
  86. C **********************************************************
  87.  
  88. DO I = 1, NEL
  89. EMIT.FACT(I) = EMIS.FACT(I) * SIG * (TEMP.FACT(I)**4)
  90. JRAD1.FACT(I) = EMIT.FACT(I)
  91. ENDDO
  92.  
  93. IF(IIMPI.EQ.(-1)) THEN
  94. write(6,*) ' flux emis'
  95. CALL UTPRIM(EMIT.FACT,NEL)
  96. ENDIF
  97.  
  98. IF (KABS.EQ.1) THEN
  99. C
  100. C **********************************************************
  101. C **** calcul du flux emis par le milieu absorbant ****
  102. C **********************************************************
  103.  
  104. C ------------------------------------------------------
  105. C calcul des sommes sur j des Fij : tableau AF ****
  106. C ------------------------------------------------------
  107. DO I = 1, NEL
  108.  
  109. LMATR = MATR.LFACT(I)
  110. SEGACT LMATR
  111.  
  112. AF.FACT(I) = 0.D0
  113.  
  114. DO J = 1, NEL
  115. AF.FACT(I) = AF.FACT(I) + LMATR.FACT(J)
  116. ENDDO
  117.  
  118. SEGDES LMATR
  119.  
  120. ENDDO
  121.  
  122. C CALL UTPRIM(AF.FACT,NEL)
  123. C ------------------------------------------------------
  124.  
  125. SIGTG4 = SIG * (TABS**4)
  126. C write(6,*) ' SIGTG4: ', SIGTG4
  127.  
  128. DO I = 1, NEL
  129. EGAZ.FACT(I) = (1.D0 - AF.FACT(I))
  130. EGAZ.FACT(I) = EGAZ.FACT(I)*SIGTG4
  131. ENDDO
  132.  
  133.  
  134. IF(IIMPI.EQ.(-1)) THEN
  135. write(6,*) ' flux emis par le gaz'
  136. CALL UTPRIM(EGAZ.FACT,NEL)
  137. ENDIF
  138.  
  139. ENDIF
  140.  
  141. C **********************************************************
  142. C **** calcul iteratif de la radiosité ****
  143. C **** methode de Gauss-Seidel ****
  144. C **********************************************************
  145.  
  146.  
  147. DO 1 K=1,NK
  148.  
  149. C ------------------------------------------------------
  150. DO I = 1, NEL
  151.  
  152. LMATR = MATR.LFACT(I)
  153. SEGACT LMATR
  154.  
  155.  
  156. IF (KABS.EQ.1) THEN
  157.  
  158. JRAD.FACT(I) = EMIT.FACT(I)
  159. $ + (1.D0-EMIS.FACT(I))*EGAZ.FACT(I)
  160.  
  161. ELSE
  162. JRAD.FACT(I) = EMIT.FACT(I)
  163.  
  164. ENDIF
  165.  
  166.  
  167. RO = 1.D0 - EMIS.FACT(I)
  168.  
  169. C cas des surfaces noires: on saute les boucles
  170.  
  171. IF (RO.GT.1D-3) THEN
  172.  
  173.  
  174. C methode de Jacobi pour mémoire
  175.  
  176. C DO J = 1, NEL
  177. C
  178. C JRAD.FACT(I) = JRAD.FACT(I)
  179. C $ + RO * LMATR.FACT(J) * JRAD1.FACT(J)
  180. C ENDDO
  181.  
  182. C... elements tels que J<I
  183. C -------------------------------------------------
  184. IF (I.GT.1) THEN
  185. DO J = 1, (I-1)
  186.  
  187. JRAD.FACT(I) = JRAD.FACT(I)
  188. $ + RO * LMATR.FACT(J) * JRAD.FACT(J)
  189.  
  190. ENDDO
  191. ENDIF
  192. C -------------------------------------------------
  193.  
  194. C... elements tels que J>=I
  195.  
  196. C -------------------------------------------------
  197. DO J = I, NEL
  198.  
  199. JRAD.FACT(I) = JRAD.FACT(I)
  200. $ + RO * LMATR.FACT(J) * JRAD1.FACT(J)
  201. ENDDO
  202. C -------------------------------------------------
  203. C ENDIF
  204.  
  205. ENDIF
  206.  
  207. C JRAD.FACT(I) = EMIT.FACT(I) + JRAD.FACT(I)
  208.  
  209. C COEF = 1.D0 - ( RO * LMATR.FACT(I))
  210. C JRAD.FACT(I) = JRAD.FACT(I) / COEF
  211.  
  212. SEGDES LMATR
  213.  
  214. ENDDO
  215. C ------------------------------------------------------
  216.  
  217. C Test de convergence sur la radiosite
  218.  
  219. DO I = 1, NEL
  220. IF (JRAD1.FACT(I).GE.1D-2) THEN
  221. DIFF.FACT(I) = 1.D0 - (JRAD.FACT(I)/JRAD1.FACT(I))
  222. ENDIF
  223. ENDDO
  224.  
  225. CALL UTMXV(DIFF.FACT,NEL,VAL)
  226. IF (IIMPI.EQ.(-1)) write(6,*) ' K VAL ',K,VAL
  227.  
  228. IF (VAL.LE.ERRJ) THEN
  229. GOTO 2
  230. ENDIF
  231.  
  232. DO I = 1, NEL
  233. JRAD1.FACT(I) = JRAD.FACT(I)
  234. ENDDO
  235.  
  236. IF(IIMPI.EQ.(-1)) THEN
  237. write(6,*) ' JRAD '
  238. CALL UTPRIM(JRAD.FACT,NEL)
  239. write(6,*) ' JRAD1 '
  240. CALL UTPRIM(JRAD1.FACT,NEL)
  241. ENDIF
  242.  
  243. IF(IIMPI.EQ.(-1)) THEN
  244. write(6,*) ' radiosite '
  245. CALL UTPRIM(JRAD.FACT,NEL)
  246. ENDIF
  247.  
  248. 1 CONTINUE
  249. 2 CONTINUE
  250.  
  251. IF (IIMPI.EQ.1) THEN
  252. write (6,*) ' K VAL ',K,VAL
  253. ENDIF
  254.  
  255.  
  256. C **********************************************************
  257. C **** calcul des eclairements ****
  258. C **********************************************************
  259.  
  260. DO I = 1, NEL
  261.  
  262. LMATR = MATR.LFACT(I)
  263. SEGACT LMATR
  264.  
  265. C! CALL UTPRIM(LMATR.FACT,NEL)
  266.  
  267. JRAD.FACT(I) = 0.D0
  268.  
  269. DO J =1, NEL
  270.  
  271. C! write(6,*) ' i j ', I,J
  272. C! write(6,*) 'Fij Jj ', LMATR.FACT(J), JRAD1.FACT(J)
  273.  
  274. JRAD.FACT(I) = JRAD.FACT(I) + LMATR.FACT(J) * JRAD1.FACT(J)
  275. ENDDO
  276.  
  277.  
  278.  
  279. IF (KABS.EQ.1) THEN
  280.  
  281. C on ajoute le terme du au milieu absorbant
  282. C
  283. JRAD.FACT(I) = JRAD.FACT(I) + EGAZ.FACT(I)
  284.  
  285. C! write(6,*) ' Ei ',JRAD.FACT(I)
  286.  
  287. ENDIF
  288.  
  289. SEGDES LMATR
  290. ENDDO
  291.  
  292. IF(IIMPI.EQ.(-1)) THEN
  293. write(6,*) ' eclairement'
  294. CALL UTPRIM(JRAD.FACT,NEL)
  295. ENDIF
  296.  
  297. C **********************************************************
  298. C **** calcul de la temperature TRAD résultat ****
  299. C **********************************************************
  300. C
  301. C étape inchangée si milieu absorbant
  302.  
  303. DO I = 1, NEL
  304. TRAD.FACT(I) = ((1./SIG) * JRAD.FACT(I))**(0.25)
  305. ENDDO
  306.  
  307. IF(IIMPI.EQ.(-1)) THEN
  308. write(6,*) ' Trad'
  309. CALL UTPRIM(TRAD.FACT,NEL)
  310. ENDIF
  311.  
  312. SEGDES EMIS, TEMP, TRAD
  313. SEGDES MATR
  314.  
  315. SEGSUP EMIT, JRAD, JRAD1, DIFF
  316. C!!
  317. SEGSUP EGAZ, AF
  318.  
  319. RETURN
  320. END
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  

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