Télécharger drvdt.eso

Retour à la liste

Numérotation des lignes :

  1. C DRVDT SOURCE CHAT 05/01/12 22:56:09 5004
  2. SUBROUTINE DRVDT
  3. C
  4. C--------------------------------------------------------------------
  5. C Densité de la vapeur d'eau en fonction de P et de T:
  6. C dérivée partielle par rapport à la température
  7. C
  8. C Dans le cas ou seule la pression est fournie, on considère que la
  9. C pression P transmise est Psat et on calcule Tsat afin d'évaluer
  10. C la dérivée partielle de la densité.
  11. C--------------------------------------------------------------------
  12. C Les données d'entrée sont des CHPOINT, des FLOTTANT ou des LISTREEL
  13. C Le résultat est du meme type que les input.
  14. C--------------------------------------------------------------------
  15. C
  16. C---------------------------
  17. C Phrase d'appel (GIBIANE) :
  18. C---------------------------
  19. C
  20. C OBJ3 = VARI 'DRVDT' OBJ1 (OBJ2) ;
  21. C
  22. C------------------------
  23. C Opérandes et résultat :
  24. C------------------------
  25. C
  26. C OBJ1 : Pression partielle de vapeur (en Pa)
  27. C OBJ2 : Température (en K)
  28. C OBJ3 : Dérivée partielle de la densité de la vapeur d'eau
  29. C par rapport à la température (en kg/m3/K)
  30. C----------------------
  31. C Variables principales
  32. C----------------------
  33. C
  34. C ISAT : Flag valant 0 si 2 arguments, 1 sinon (T=Tsat(P))
  35. C
  36. C-----------------------------------------------------------------------
  37. IMPLICIT INTEGER(I-N)
  38. IMPLICIT REAL*8 (A-H,O-Z)
  39. CHARACTER*8 TYPE
  40. CHARACTER*4 NOMTOT(1)
  41. C
  42. -INC SMCHPOI
  43. -INC SMLREEL
  44. C
  45. IFLAG = 0
  46. ISAT = 0
  47. C
  48. C- Lecture et controles des données d'entrée,
  49. C- Création de la structure chapeau pour la donnée de sortie
  50. C
  51. C- Gestion des ERREURS
  52. C 21 -> Données incompatibles
  53. C 19 -> Option indisponible
  54. C
  55. C CHPOINT
  56. C
  57. TYPE = 'CHPOINT '
  58. CALL LIROBJ(TYPE,MCHPO1,0,IRETOU)
  59. IF (IRETOU.EQ.0) GOTO 10
  60. CALL LIROBJ(TYPE,MCHPO2,0,IRETOU)
  61. IF (IRETOU.EQ.0) ISAT=1
  62. C
  63. IF (ISAT.EQ.0) THEN
  64. SEGACT MCHPO1,MCHPO2
  65. NSOUP1 = MCHPO1.IPCHP(/1)
  66. NSOUP2 = MCHPO2.IPCHP(/1)
  67. MSOUP1 = MCHPO1.IPCHP(1)
  68. MSOUP2 = MCHPO2.IPCHP(1)
  69. SEGACT MSOUP1,MSOUP2
  70. NC1 = MSOUP1.NOHARM(/1)
  71. NC2 = MSOUP2.NOHARM(/1)
  72. IGEO1 = MSOUP1.IGEOC
  73. INDIC = 1
  74. NBCOMP = -1
  75. CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT)
  76. SEGACT MCHPO2,MSOUP2
  77. MPOVA1 = MSOUP1.IPOVAL
  78. MPOVA2 = MSOUP2.IPOVAL
  79. SEGACT MPOVA1,MPOVA2
  80. IF (NSOUP1.NE.NSOUP2) IFLAG=1
  81. IF (NC1.NE.NC2) IFLAG=3
  82. IF (NC1.NE.1) IFLAG=4
  83. IF (INDIC.LT.0) IFLAG=5
  84. IF (IFLAG.NE.0) THEN
  85. CALL ERREUR(21)
  86. RETURN
  87. ENDIF
  88. SEGINI, MCHPO3=MCHPO1
  89. SEGINI, MSOUP3=MSOUP1
  90. SEGINI, MPOVA3=MPOVA1
  91. MCHPO3.IPCHP(1) = MSOUP3
  92. MSOUP3.IPOVAL = MPOVA3
  93. SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  94. CALL DRVDT1(MPOVA1,MPOVA2,MPOVA3,ISAT)
  95. SEGDES MPOVA1,MPOVA2,MPOVA3
  96. ELSE
  97. SEGACT MCHPO1
  98. NSOUP1 = MCHPO1.IPCHP(/1)
  99. MSOUP1 = MCHPO1.IPCHP(1)
  100. SEGACT MSOUP1
  101. NC1 = MSOUP1.NOHARM(/1)
  102. MPOVA1 = MSOUP1.IPOVAL
  103. SEGACT MPOVA1
  104. IF (NSOUP1.NE.1) IFLAG=2
  105. IF (NC1.NE.1) IFLAG=4
  106. IF (IFLAG.NE.0) THEN
  107. CALL ERREUR(21)
  108. RETURN
  109. ENDIF
  110. SEGINI, MCHPO3=MCHPO1
  111. SEGINI, MSOUP3=MSOUP1
  112. SEGINI, MPOVA3=MPOVA1
  113. MCHPO3.IPCHP(1) = MSOUP3
  114. MSOUP3.IPOVAL = MPOVA3
  115. SEGDES MCHPO1,MCHPO3,MSOUP1,MSOUP3
  116. MPOVA2 = -1
  117. CALL DRVDT1(MPOVA1,MPOVA2,MPOVA3,ISAT)
  118. SEGDES MPOVA1,MPOVA3
  119. ENDIF
  120. CALL ECROBJ(TYPE,MCHPO3)
  121. RETURN
  122. C
  123. C FLOTTANT
  124. C
  125. 10 CONTINUE
  126. CALL LIRREE(X1,0,IRETOU)
  127. IF (IRETOU.EQ.0) GOTO 20
  128. CALL LIRREE(X2,0,IRETOU)
  129. IF (IRETOU.EQ.0) X2=TSATP0(X1)
  130. X3 = DRVDT0(X1,X2)
  131. CALL ECRREE(X3)
  132. RETURN
  133. C
  134. C LISTREEL
  135. C
  136. 20 CONTINUE
  137. TYPE = 'LISTREEL'
  138. CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
  139. IF (IRETOU.EQ.0) GOTO 30
  140. CALL LIROBJ(TYPE,MLREE2,0,IRETOU)
  141. IF (IRETOU.EQ.0) ISAT=1
  142. IF (ISAT.EQ.0) THEN
  143. SEGACT MLREE1,MLREE2
  144. JG1 = MLREE1.PROG(/1)
  145. JG2 = MLREE2.PROG(/1)
  146. IF (JG1.NE.JG2) IFLAG=1
  147. IF (IFLAG.NE.0) THEN
  148. CALL ERREUR(21)
  149. RETURN
  150. ENDIF
  151. SEGINI, MLREE3=MLREE1
  152. CALL DRVDT3(MLREE1,MLREE2,MLREE3,ISAT)
  153. SEGDES MLREE1,MLREE2,MLREE3
  154. ELSE
  155. SEGACT MLREE1
  156. SEGINI, MLREE3=MLREE1
  157. MLREE2 = -1
  158. CALL DRVDT3(MLREE1,MLREE2,MLREE3,ISAT)
  159. SEGDES MLREE1,MLREE3
  160. ENDIF
  161. CALL ECROBJ(TYPE,MLREE3)
  162. RETURN
  163. C
  164. C Autres
  165. C
  166. 30 CONTINUE
  167. CALL ERREUR(19)
  168. RETURN
  169. END
  170.  
  171.  
  172.  
  173.  

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