Télécharger zvap.eso

Retour à la liste

Numérotation des lignes :

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

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