Télécharger wac0.eso

Retour à la liste

Numérotation des lignes :

wac0
  1. C WAC0 SOURCE SERRE 19/08/05 21:15:15 10284
  2. SUBROUTINE WAC0(MTAB1)
  3. C
  4. C--------------------------------------------------------------------
  5. C Modélisation d'un condenseur à tubes
  6. C--------------------------------------------------------------------
  7. C
  8. C---------------------------
  9. C Phrase d'appel (GIBIANE) :
  10. C---------------------------
  11. C
  12. C DCD PCDS PCDW HTOT HINT HEXT DTLOG TWS TTIN TTEX TCOND
  13. C = 'VARI' 'TOCOND' TAB1 WMSTIN XTGAS1 XPT1 XCORE1 ;
  14. C
  15. C-------------------------
  16. C Opérandes et résultats :
  17. C-------------------------
  18. C
  19. C--- Variables d'entrée
  20. C
  21. C TAB1 : TABLE 'CONDENSR' contenant l'ensemble des données d'un condenseur
  22. C WMSTIN : Masse de vapeur disponible / pas de temps (kg/s)
  23. C XTGAS1 : Température du bulk (K)
  24. C XPT1 : Pression du bulk (Pa)
  25. C XCORE1 : Coefficient de pénalisation dû à la présence d'incondensables
  26. C
  27. C--- Variables de sortie
  28. C
  29. C DCD : Débit de condensation (kg/s)
  30. C PCDS : Puissance extraite de la vapeur (W)
  31. C PCDW : Puissance transmise au condensat (W)
  32. C HTOT : Coefficient d'échange global entre le gaz et le circuit de
  33. C refroidissement (W/m2/K)
  34. C DTLOG : Différence de température logarithmique entre l'enrtrée et
  35. C la sortie du condenseur (K)
  36. C
  37. C--- Variables internes pour post-traitement
  38. C
  39. C HINT : Coefficient d'échange entre le tube et le circuit de
  40. C refroidissement (W/m2/K)
  41. C HEXT : Coefficient d'échange entre le tube et le gaz (W/m2/K)
  42. C TWS : Température de sortie du circuit de refroidissement (K)
  43. C TTIN : Température du tube en peau interne (K)
  44. C TTEX : Température du tube en peau externe (K)
  45. C TCOND : Température du condensat (K)
  46. C--------------------------------------------------------------------
  47. C
  48. IMPLICIT INTEGER(I-N)
  49. IMPLICIT REAL*8 (A-H,O-Z)
  50. REAL*8 LBDALIQ0,MULIQ0,MUW,MUCOND,KTTUB,KTW,KTCOND
  51. C IERR et XPI
  52.  
  53. -INC PPARAM
  54. -INC CCOPTIO
  55. -INC CCREEL
  56. C
  57. C-------------------------------
  58. C- Lecture des données du modèle
  59. C-------------------------------
  60. C
  61. C WMSTIN : Masse de vapeur disponible / pas de temps (kg/s)
  62. C TGIN : Température du bulk (K)
  63. C PG : Pression du bulk (Pa)
  64. C DCD : Débit de condensation (kg/s)
  65. C PCDS : Puissance retirée au gaz (W)
  66. C PCDW : Puissance transmise au puisard (W)
  67. C
  68. call lirree(WMSTIN,1,IRETOU)
  69. if (IERR.NE.0) RETURN
  70. call lirree(TGIN,1,IRETOU)
  71. if (IERR.NE.0) RETURN
  72. call lirree(PG,1,IRETOU)
  73. if (IERR.NE.0) RETURN
  74. call lirree(CORED,1,IRETOU)
  75. if (IERR.NE.0) RETURN
  76. C
  77. C ZNTUB : Nombre de tubes (-)
  78. C ZLTUB : Longueur d'un tube (m)
  79. C DINTUB : Diamètre interne des tubes (m)
  80. C DEXTUB : Diamètre externe des tubes (m)
  81. C KTTUB : Conductivité thermique des tubes (W/m/k)
  82. C TWIN : Température à l'entrée du circuite de refroidissement (K)
  83. C WWIN : Débit massique du circuit de refroidissement (kg/s)
  84. C PWIN : Pression du circuit de refroidissement (Pa)
  85. C
  86. call acme(MTAB1,'NTUBE',ntub)
  87. if (IERR.NE.0) RETURN
  88. call acmf(MTAB1,'LTUBE',zltub)
  89. if (IERR.NE.0) RETURN
  90. call acmf(MTAB1,'DIAMINT',dintub)
  91. if (IERR.NE.0) RETURN
  92. call acmf(MTAB1,'DIAMEXT',dextub)
  93. if (IERR.NE.0) RETURN
  94. call acmf(MTAB1,'LBDW',kttub)
  95. if (IERR.NE.0) RETURN
  96. call acmf(MTAB1,'TWIN',twin)
  97. if (IERR.NE.0) RETURN
  98. call acmf(MTAB1,'QWIN',wwin)
  99. if (IERR.NE.0) RETURN
  100. call acmf(MTAB1,'PWIN',pwin)
  101. if (IERR.NE.0) RETURN
  102. call acmf(MTAB1,'HPENALTY',hpenalty)
  103. if (IERR.NE.0) RETURN
  104. call acmf(MTAB1,'HTOT',htot)
  105. if (IERR.NE.0) RETURN
  106. C
  107. C Dans le cas où la température gaz est plus froide que la
  108. C température du circuit de refroidissement on ne fait rien
  109. C et on laisse HTOT à sa valeur initiale...
  110. C
  111. IF (TGIN .LE. TWIN) THEN
  112. DCD = 0.D0
  113. PCDS = 0.D0
  114. PCDW = 0.D0
  115. HINT = 0.D0
  116. HEXT = 0.D0
  117. DTLOG = 0.D0
  118. TWS = TWIN
  119. TTIN = TWIN
  120. TTEX = TWIN
  121. TCOND = TTEX + 0.25D0*(TGIN-TTEX)
  122. ELSE
  123. C
  124. C ... sinon calcul de HTOT, TWS et PEVAC et des quantités dérivées
  125. C HTOT : Coefficient d'échange global gaz/circuit de refroidissement
  126. C TWS : Température de l'eau à la sortie du condenseur
  127. C PEVAC : Puissance thermique évacuée par le condenseur
  128. C
  129. ZNTUB = float(NTUB)
  130. STUBINT = XPI * DINTUB * ZNTUB * ZLTUB
  131. STUBEXT = XPI * DEXTUB * ZNTUB * ZLTUB
  132. REXTUB = DEXTUB / 2.D0
  133. C
  134. PSAT = PSATT0(TGIN)
  135. VST = 1.D0 / ROVAP0(PSAT,TGIN)
  136. HW1 = HLS0(PG,TGIN)
  137. HST = HVS0(PSAT,TGIN)
  138. C
  139. TEBU = TSATP0(PWIN)
  140. HW2 = HLS0(PWIN,TWIN)
  141. CPW = CPLIQ0(PWIN,HW2)
  142. C
  143. C Point fixe 1 sur HTOT (englobant un point fixe sur TWS et PEVAC)
  144. C (HTOT initialisé à la valeur du précédant passage)
  145. IFIX1 = 0
  146. 5 CONTINUE
  147. HTOTOLD = HTOT
  148. C
  149. C Point fixe 2, sur TWS (et PEVAC) pour HTOT connu
  150. C (initialisation TWS=TWIN et PEVAC correspondant à TWS=TGIN)
  151. C
  152. TWS = TWIN
  153. PEVAC = ((TGIN - TWIN)/20.D0) * (WWIN * CPW)
  154. PEVAMAX = (TGIN - TWIN) * (WWIN * CPW)
  155. IFIX2 = 1
  156. 10 CONTINUE
  157. TWSOLD = TWS
  158. TWS = TWIN + PEVAC / (WWIN * CPW)
  159. TWS = MIN(TWS,TEBU,TGIN)
  160. IF (ABS(TWS-TWSOLD) .LE. 0.1D0) GOTO 20
  161. DTLOG = TGIN - (TWS+TWIN)/2.D0
  162. PEVAC = HTOT * STUBINT * DTLOG
  163. pevac = min(pevac,pevamax)
  164. DCD = PEVAC / (HST - HW1)
  165. DCD = MIN(DCD,WMSTIN)
  166. C
  167. PCDS = DCD * HST
  168. PCDW = DCD * HW1
  169. PEVAC = PCDS - PCDW
  170. C
  171. IFIX2 = IFIX2 + 1
  172. if (ifix2 .gt. 1000) then
  173. call erreur(460)
  174. RETURN
  175. endif
  176. GOTO 10
  177. 20 CONTINUE
  178. c write(6,*)'-----------------------------------------'
  179. c WRITE(6,*) 'Nbre de pas IFIX2 ', IFIX2
  180. c write(6,*)'HTOT PEVAC TWS ',htot,pevac,tws
  181. c write(6,*)'-----------------------------------------'
  182. C
  183. C Calcul de HTOT correspondant à PEVAC et TWS
  184. C
  185. C 1/ Intérieur des tubes (corrélation de Dittus Boelter)
  186. TWMOY = (TWIN + TWS) / 2.D0
  187. MUW = MULIQ0(TWMOY)
  188. KTW = LBDALIQ0(PWIN,TWMOY)
  189. HLW = HLS0(PWIN,TWMOY)
  190. CPW = CPLIQ0(PWIN,HLW)
  191. ROUW = WWIN / (XPI * DINTUB**2.D0 * NTUB / 4.D0)
  192. REYW = ROUW * DINTUB / MUW
  193. PRW = MUW * CPW / KTW
  194. HINT = KTW * 0.023D0 * REYW**0.8D0 * PRW**0.4D0 / DINTUB
  195. C
  196. C 2/ Températures de peau à partir des flux
  197. TTIN = TWMOY + PEVAC / (HINT * STUBINT)
  198. TTEX = TTIN + PEVAC * LOG(DEXTUB/DINTUB) * REXTUB
  199. 1 / (KTTUB * STUBEXT)
  200. C
  201. C 3/ Condensat (Nusselt theory for laminar flow regime and Kutateladze
  202. C et Butterworth correlations for wavy and turbulent flow regime)
  203. TCOND = TTEX + 0.25D0*(TGIN-TTEX)
  204. MUCOND = MULIQ0(TCOND)
  205. KTCOND = LBDALIQ0(PG,TCOND)
  206. HLCOND = HLS0(PG,TCOND)
  207. CPCOND = CPLIQ0(PG,HLCOND)
  208. RHOCOND = ROLIQ0(PG,HLCOND)
  209. ROUCOND = DCD / (XPI * DEXTUB**2.D0 * NTUB / 4.D0)
  210. REYCOND = ROUCOND * DEXTUB / MUCOND
  211. PRCOND = MUCOND * CPCOND / KTCOND
  212. RHOVAP = 1.D0 / VST
  213. C
  214. C1 = KTCOND * (RHOCOND*(RHOCOND-RHOVAP)*9.81D0 / MUCOND**2.D0)
  215. 1 **(1.D0/3.D0)
  216. IF (REYCOND .LT. 30.D0) then
  217. HEXT = 1.47D0 * REYCOND**(-1.D0/3.D0) * C1
  218. ELSE IF (REYCOND .LT. 1600.D0) THEN
  219. HEXT = REYCOND / (1.08D0 * REYCOND**1.22D0 - 5.2D0) * C1
  220. ELSE
  221. HEXT = REYCOND / (8750.D0 + 58.D0*PRCOND**(-0.5D0) *
  222. 1 (REYCOND**0.75D0 - 253.D0)) * C1
  223. ENDIF
  224. C
  225. C 4/ Coefficient d'échange global pénalisé de 20% avec prise en compte
  226. C de la présence des incondensables par pénalisation via CORED pour Hext
  227. HTOT = hpenalty / (1.D0/HINT + DINTUB/(DEXTUB*HEXT*CORED)
  228. 1 + ((DINTUB/(2.D0*KTTUB))*LOG(DEXTUB/DINTUB)) )
  229. C
  230. IFIX1 = IFIX1 + 1
  231. C write(6,*) '-------------------------------------------'
  232. C write(6,*) 'htot htotold ',ifix1,htot,htotold
  233. if (ifix1 .gt. 1000) then
  234. write(6,*) 'htot htotold ',ifix1,htot,htotold
  235. goto 99
  236. * call erreur(460)
  237. * RETURN
  238. endif
  239. IF (ABS(HTOT-HTOTOLD) .GE. 0.1D0) GOTO 5
  240. C WRITE(6,*) 'Nbre de pas IFIX1 ', IFIX1
  241. C write(6,*)'HTOT PEVAC TWS ',htot,pevac,tws
  242. C write(6,*)'-----------------------------------------'
  243. ENDIF
  244. C
  245. C------------------------------------------------
  246. C- Ecriture du résultat et des variables internes
  247. C------------------------------------------------
  248. C
  249. 99 continue
  250. call ecrree(tcond)
  251. call ecrree(ttex)
  252. call ecrree(ttin)
  253. call ecrree(tws)
  254. call ecrree(dtlog)
  255. call ecrree(hext)
  256. call ecrree(hint)
  257. call ecrree(htot)
  258. call ecrree(pcdw)
  259. call ecrree(pcds)
  260. call ecrree(dcd)
  261. C
  262. return
  263. end
  264.  
  265.  
  266.  

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