Télécharger bcalq2.eso

Retour à la liste

Numérotation des lignes :

bcalq2
  1. C BCALQ2 SOURCE CB215821 16/04/21 21:15:15 8920
  2. SUBROUTINE BCALQ2(PE,PVE,TE,PSO,XL,DX0,RUG,Q,XW,NPP,XN,TN,EN,BN,
  3. $ KIMP,NT,NX,XX,XP,XT,XY,XU,XHF,XQ,XQW,
  4. $ QAE,XRE,XDH,PSQ,RECU,XKUL,XKUT1,XKUT2,XKUT3,XKUT4)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7.  
  8. C operateur FUITE
  9. C cf. sub. BECALC2
  10. C calcul de la solution pour un debit Q d'injection impose
  11. C QAE, XQ : debit air, debit eau,
  12. C XQW: flux d'eau a la paroi
  13. C RECU,XKUL,XKUT1,XKUT2,XKUT3,XKUT4 : coef lois de frot utilisateur
  14. C
  15. DIMENSION XX(NT),XP(NT),XT(NT),XY(NT),XU(NT),XN(NPP),TN(NPP)
  16. DIMENSION EN(NPP),BN(NPP)
  17. DIMENSION XHF(NT),XQ(NT),XQW(NT),XRE(NT),XDH(NT)
  18.  
  19. IF(KIMP.GE.1) THEN
  20. WRITE(6,*)
  21. WRITE(6,*) 'entree bcalq2'
  22. ENDIF
  23. C variation enthalpie et puissance echangée avec la paroi
  24. DHTOT = 0.D0
  25. PPTOT = 0.D0
  26.  
  27. DTMX=10
  28. PSLIM=PSO
  29. NITMAX = 100
  30.  
  31. PHI = PVE/PE
  32.  
  33. C IMPLEMENTATION DES PROPRIETES PHYSIQUES
  34. CALL BPHYS(T0,P0,RA,RV,CA,XCV,XCL,XLAT0,XROL,XKL,XKT,REL)
  35.  
  36. C Calcul des debits en entree Qa et Qv
  37.  
  38. C Calcul de la masse volumique de vapeur entree
  39.  
  40. RHOVE=ROVAP0(PVE,TE)
  41.  
  42. C Calcul du facteur Z Compressibilite en entree
  43.  
  44. ZE=ZVAP0(RHOVE,TE)
  45.  
  46.  
  47. C Calcul des debits air et eau, le debit total Q etant connu
  48.  
  49. IF(PHI.LT.1D-3) THEN
  50. RQ = 1.E8
  51. ELSE
  52. RQ = (1-PHI)*(RV*ZE)/PHI/RA
  53. ENDIF
  54. C
  55. QA = Q*RQ/(1+RQ)
  56. QV = Q/(1+RQ)
  57.  
  58. C !!
  59. C QAE invariant
  60.  
  61. QAE=QA*EN(1)*BN(1)
  62.  
  63. C 'constante de gaz' equivalente a l'entree
  64.  
  65. R = PHI/RV/ZE+(1-PHI)/RA
  66. R=1/R
  67.  
  68. ROE = PE/R/TE
  69. UE=Q/ROE
  70.  
  71. IF(KIMP.NE.0) THEN
  72. write(6,*)
  73. write(6,*) ' bcalq2: conditions en entree'
  74. write(6,2000) TE,RHOVE,ZE,R,QA,QV
  75. 2000 FORMAT(1X,' TE ROV ZE R QA QV', 6E12.5)
  76. ENDIF
  77.  
  78. C>>> positionnement a l'entree de la fissure
  79.  
  80. PSQ=1
  81. IX=1
  82.  
  83. P2=PE
  84. PV2=PVE
  85. T2=TE
  86. U2=UE
  87.  
  88. QEE2=QV*EN(1)*BN(1)
  89. PHI2=PHI
  90.  
  91. IF(KIMP.NE.0) THEN
  92. write(6,*) '>BCALQ2 Q PHI R ZE ',Q,PHI,R,ZE
  93. ENDIF
  94.  
  95. X=0.D0
  96.  
  97. TIT=1
  98. ITP=1
  99.  
  100. C>>> le gaz a l'entree est-il surchauffe ou sature
  101.  
  102. PS2=PSATT0(T2)
  103. R2=ROVAP0(PS2,T2)
  104. ZV =ZVAP0(R2,T2)
  105. IF (PVE.GT.PS2) THEN
  106. TIT=0
  107. Y2=(PS2/(P2-PS2))*(1-PHI)/(PHI*ZV)
  108. ELSE
  109. Y2=1
  110. ENDIF
  111.  
  112. QTOT=QEE2+QAE
  113.  
  114. CALL BSTOK(IX,X,P2,T2-T0,Y2,U2,0.D0,QEE2,0.D0,0.D0,0.D0,
  115. & XX,XP,XT,XY,XU,XHF,XQ,XQW,XRE,XDH,NT)
  116.  
  117. C>>> boucle "tant que" sur la longueur de la fissure
  118.  
  119.  
  120. 10 CONTINUE
  121. IF ((X.LT.0.999).AND.(PSQ.NE.-1.)) THEN
  122. IF(KIMP.GE.1) THEN
  123. write(6,*)
  124. write(6,*) 'bcalq2 X',X
  125. ENDIF
  126.  
  127. C>>> positionnement au point local 1
  128.  
  129. P1=P2
  130. PS1=PSATT0(T2)
  131. Y1=Y2
  132.  
  133. QEE1=QEE2
  134. PHI1=PHI2
  135.  
  136. DX=DX0
  137.  
  138. C>>> test sur le titre
  139.  
  140. IF (TIT.EQ.1) THEN
  141.  
  142. Y2=1
  143. NIT = 0
  144. 20 CONTINUE
  145. NIT = NIT + 1
  146. IF (NIT.GT.99) THEN
  147. write(6,*) 'bcalq2: NIT20=100 X',X
  148. ENDIF
  149.  
  150. CALL BSUR2 (X,DX,XL,RUG,XW,XN,TN,EN,BN,KIMP,PSLIM,REL,RINDEX,
  151. & P1,T1,QAE,QEE1,PHI1,P2,T2,U2,QEE2,PHI2,QW2,RE,H,PSQ,
  152. & NPP,ITP,PF,PP,DPF,DPP,RECU,XKUL,XKUT1,XKUT2,XKUT3,XKUT4)
  153.  
  154. IF (PSQ.EQ.-1.) THEN
  155. RETURN
  156. ENDIF
  157.  
  158. IF ((RINDEX.LT.0.999).AND.
  159. & (NIT.LE.NITMAX)) THEN
  160. X=X-DX
  161. DX=DX*0.5
  162. GO TO 20
  163. ENDIF
  164.  
  165.  
  166. C>>> y-a-t'il condensation ?
  167.  
  168. PS2=PSATT0(T2)
  169. C WRITE(6,*) 'PS2',PS2
  170. PSI=PS2/P2
  171. C write(6,*) ' PSI ',PSI
  172. AL=PHI2/PSI
  173.  
  174. IF(KIMP.GE.2) THEN
  175. WRITE(6,998) X,AL,P2/P0,T2-T0,QEE1/EN(1),QEE2/EN(1),U2
  176. 998 FORMAT(1X,'sur -XALP2T2 ',F9.6,F9.4,E12.5,4F9.2)
  177. WRITE(6,*)
  178. ENDIF
  179.  
  180. IF ((AL.GT.(1.02)).OR.(ABS(T2-T1).GT.DTMX).AND.
  181. & (NIT.LE.NITMAX)) THEN
  182. X=X-DX
  183. DX=DX/2
  184. GOTO 20
  185. ENDIF
  186.  
  187. IF (AL.GT.1.) THEN
  188. TIT=0
  189. C
  190. PS2=PSATT0(T2)
  191. RHO2=ROVAP0(PS2,T2)
  192. ZVAP2=ZVAP0(RHO2,T2)
  193. Y2 = (RA/RV)*(QAE/QEE2)*(PSI/(1-PSI))
  194. Y2 = Y2/ZVAP2
  195.  
  196. IF(KIMP.NE.0) THEN
  197. write(6,*) 'bcalq2: QAE QEE2 ',QAE,QEE2
  198. write(6,*) 'bcalq2: transition vers condensation X= ',X
  199. write(6,2100) PS2,AL,RHO2,ZVAP2,Y2
  200. 2100 FORMAT(1X,'bcalq2: PS2 AL RO2 Z2 Y2 ', 6E12.5)
  201. ENDIF
  202.  
  203. C
  204. ENDIF
  205.  
  206.  
  207. ELSE
  208.  
  209. NIT = 0
  210. 30 CONTINUE
  211. NIT = NIT + 1
  212. IF (NIT.GT.99) THEN
  213. write(6,*) 'bcalq2: NIT30=100 X',X
  214. ENDIF
  215.  
  216. CALL BCOND2 (X,DX,XL,RUG,XW,XN,TN,EN,BN,KIMP,PSLIM,REL,
  217. & P1,PS1,T1,Y1,QAE,QEE1,PHI1,
  218. & P2,T2,Y2,U2,QEE2,PHI2,QW2,RE,H,PSQ,RINDEX,
  219. & NPP,ITP,PF,PP,DPF,DPP,RECU,XKUL,XKUT1,XKUT2,XKUT3,XKUT4)
  220. C
  221. C WRITE(6,*)'****** RINDEX,X= ',RINDEX,X
  222.  
  223. IF(KIMP.GE.2) THEN
  224. WRITE(6,999) X,Y2,P2/P0,T2-T0,QEE1/EN(1)/BN(1),
  225. & QEE2/EN(1)/BN(1),U2
  226. 999 FORMAT(1X,'bcalq2: XY2P2T2 ',F9.6,F9.4,E12.5,4F9.2)
  227. ENDIF
  228.  
  229. IF (PSQ.EQ.-1.) THEN
  230. RETURN
  231. ENDIF
  232.  
  233. IF ((RINDEX.LT.0.999).AND.
  234. & (NIT.LE.NITMAX)) THEN
  235. X=X-DX
  236. DX=DX*0.5
  237. GO TO 30
  238. ENDIF
  239.  
  240. C>>> y-a-t'il evaporation totale ?
  241.  
  242. IF ((Y2.GT.(1.01)).OR.(ABS(T2-T1).GT.DTMX).AND.
  243. & (NIT.LE.NITMAX)) THEN
  244. X=X-DX
  245. DX=DX/2
  246. GOTO 30
  247. ENDIF
  248.  
  249. * vapeur surchauffee
  250. IF (Y2.GT.0.999) THEN
  251. TIT=1
  252. * attention si E variable : OK
  253. IF((QEE2/QAE).LT.1.D-7) THEN
  254. C write(6,*) ' QEE2/QAE ',QEE2/QAE
  255. PHI2=0.D0
  256. ELSE
  257.  
  258.  
  259. ZTRAN = 1.D0
  260. NZ=0
  261. 31 CONTINUE
  262. NZ = NZ + 1
  263.  
  264. AA = (QEE2/QAE)* (RV*ZTRAN/RA)
  265. PHI2 = AA/(1.+AA)
  266. PV2 = PHI2 * P2
  267.  
  268. RHO2 = ROVAP0(PV2,T2)
  269. Z2 = ZVAP0(RHO2,T2)
  270.  
  271. DELTAZ = ABS(Z2 - ZTRAN)
  272.  
  273. IF(KIMP.GE.2) THEN
  274. WRITE(6,*) ' NZ ZVAP ', NZ,DELTAZ
  275. ENDIF
  276. ZTRAN=Z2
  277.  
  278. IF ((DELTAZ.GT.1D-5).AND.(NZ.LE.20)) GOTO 31
  279.  
  280.  
  281. IF(KIMP.NE.0) THEN
  282. write(6,*) 'bcalq2: transition vers evaporation '
  283. write(6,2200) PHI2,RHO2,Z2
  284. 2200 FORMAT(1X,'bcalq2 PHI2 RHO2 Z2 ', 3E12.5)
  285. ENDIF
  286.  
  287. ENDIF
  288. ENDIF
  289.  
  290. ENDIF
  291.  
  292. QTOT=QEE2+QAE
  293.  
  294. CALL BSTOK(IX,X,P2,T2-T0,Y2,U2,H,QEE2,QW2,RE,DPF,
  295. & XX,XP,XT,XY,XU,XHF,XQ,XQW,XRE,XDH,NT)
  296.  
  297. DHTOT = DHTOT + PF
  298. PPTOT = PPTOT + PP
  299.  
  300. GOTO 10
  301. ENDIF
  302.  
  303. NX=IX-1
  304. PSQ=P2
  305.  
  306. XX(NX)=1.D0
  307. C write(6,*) ' bcalq NX ',NX
  308. C CALL UTPRIM(XX,NX)
  309. C**
  310. IF(KIMP.GT.0) THEN
  311. WRITE(*,*) 'bcalq: X,PSQ= ',X,PSQ
  312. ENDIF
  313. IF(KIMP.GT.1) THEN
  314. write(6,1000) Q,PHI,DHTOT,PPTOT
  315. 1000 FORMAT(1X,'bcalq2 Q phi DH H*T',4E12.5)
  316. ENDIF
  317. C**
  318.  
  319. RETURN
  320. END
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  

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