Télécharger dzvdt.eso

Retour à la liste

Numérotation des lignes :

  1. C DZVDT SOURCE CHAT 05/01/12 23:20:02 5004
  2. SUBROUTINE DZVDT
  3. C
  4. C---------------------------------------------------------------------
  5. C Correction gaz reel de la loi d'état en vapeur (issue de RALOC):
  6. C derivee partielle de Z par rapport a la temperature
  7. C---------------------------------------------------------------------
  8. C Les données d'entrée sont des CHPOINT, des FLOTTANT ou des LISTREEL
  9. C Le résultat est du meme type que les input.
  10. C---------------------------------------------------------------------
  11. C
  12. C---------------------------
  13. C Phrase d'appel (GIBIANE) :
  14. C---------------------------
  15. C
  16. C OBJ3 = VARI 'DZVDT' OBJ1 OBJ2 ;
  17. C
  18. C------------------------
  19. C Opérandes et résultat :
  20. C------------------------
  21. C
  22. C OBJ1 : Densité de vapeur (en kg/m3)
  23. C OBJ2 : Température (en K)
  24. C OBJ3 : Correction gaz reel de la vapeur (p = ro R Z T)
  25. C D/DT(ZVAP)(P,T) (en /K)
  26. C--------------------------------------------------------------------
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29. CHARACTER*8 TYPE
  30. CHARACTER*4 NOMTOT(1)
  31. C
  32. -INC SMCHPOI
  33. -INC SMLREEL
  34. C
  35. IFLAG = 0
  36. C
  37. C- Lecture et controles des données d'entrée,
  38. C- Création de la structure chapeau pour la donnée de sortie
  39. C
  40. C- Gestion des ERREURS
  41. C 21 -> Données incompatibles
  42. C 19 -> Option indisponible
  43. C
  44. C CHPOINT
  45. C
  46. TYPE = 'CHPOINT '
  47. CALL LIROBJ(TYPE,MCHPO1,0,IRETOU)
  48. IF (IRETOU.EQ.0) GOTO 10
  49. CALL LIROBJ(TYPE,MCHPO2,1,IRETOU)
  50. IF (IRETOU.EQ.0) RETURN
  51. C
  52. SEGACT MCHPO1,MCHPO2
  53. NSOUP1 = MCHPO1.IPCHP(/1)
  54. NSOUP2 = MCHPO2.IPCHP(/1)
  55. MSOUP1 = MCHPO1.IPCHP(1)
  56. MSOUP2 = MCHPO2.IPCHP(1)
  57. SEGACT MSOUP1,MSOUP2
  58. NC1 = MSOUP1.NOHARM(/1)
  59. NC2 = MSOUP2.NOHARM(/1)
  60. IGEO1 = MSOUP1.IGEOC
  61. IGEO2 = MSOUP2.IGEOC
  62. INDIC = 1
  63. NBCOMP = -1
  64. CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT)
  65. SEGACT MCHPO2,MSOUP2
  66. MPOVA1 = MSOUP1.IPOVAL
  67. MPOVA2 = MSOUP2.IPOVAL
  68. SEGACT MPOVA1,MPOVA2
  69. N1 = MPOVA1.VPOCHA(/1)
  70. N2 = MPOVA2.VPOCHA(/1)
  71. C
  72. IF (NSOUP1.NE.NSOUP2) IFLAG=1
  73. IF (NSOUP1.NE.1) IFLAG=2
  74. IF (NC1.NE.NC2) IFLAG=3
  75. IF (NC1.NE.1) IFLAG=4
  76. IF (INDIC.LT.0) IFLAG=5
  77. IF (IFLAG.NE.0) THEN
  78. CALL ERREUR(21)
  79. RETURN
  80. ENDIF
  81. C
  82. SEGINI, MCHPO3=MCHPO1
  83. SEGINI, MSOUP3=MSOUP1
  84. SEGINI, MPOVA3=MPOVA1
  85. MCHPO3.IPCHP(1) = MSOUP3
  86. MSOUP3.IPOVAL = MPOVA3
  87. SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  88. CALL DZVDT1(MPOVA1,MPOVA2,MPOVA3)
  89. SEGDES MPOVA1,MPOVA2,MPOVA3
  90. CALL ECROBJ(TYPE,MCHPO3)
  91. RETURN
  92. C
  93. C FLOTTANT
  94. C
  95. 10 CONTINUE
  96. CALL LIRREE(X1,0,IRETOU)
  97. IF (IRETOU.EQ.0) GOTO 20
  98. CALL LIRREE(X2,1,IRETOU)
  99. IF (IRETOU.EQ.0) RETURN
  100. X3 = DZVDT0(X1,X2)
  101. CALL ECRREE(X3)
  102. RETURN
  103. C
  104. C LISTREEL
  105. C
  106. 20 CONTINUE
  107. TYPE = 'LISTREEL'
  108. CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
  109. IF (IRETOU.EQ.0) GOTO 30
  110. CALL LIROBJ(TYPE,MLREE2,1,IRETOU)
  111. IF (IRETOU.EQ.0) RETURN
  112. MLREE3 = 0
  113. IFLAG = 0
  114. SEGACT MLREE1,MLREE2
  115. JG1 = MLREE1.PROG(/1)
  116. JG2 = MLREE2.PROG(/1)
  117. IF (JG1.NE.JG2) IFLAG=1
  118. IF (IFLAG.NE.0) THEN
  119. CALL ERREUR(21)
  120. RETURN
  121. ENDIF
  122. SEGINI, MLREE3=MLREE1
  123. CALL DZVDT3(MLREE1,MLREE2,MLREE3)
  124. SEGDES MLREE1,MLREE2,MLREE3
  125. CALL ECROBJ(TYPE,MLREE3)
  126. RETURN
  127. C
  128. C Autres
  129. C
  130. 30 CONTINUE
  131. CALL ERREUR(19)
  132. RETURN
  133. END
  134.  
  135.  
  136.  
  137.  

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