Télécharger dhldp.eso

Retour à la liste

Numérotation des lignes :

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

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