Télécharger pvap.eso

Retour à la liste

Numérotation des lignes :

  1. C PVAP SOURCE CHAT 05/01/13 02:39:49 5004
  2. SUBROUTINE PVAP
  3. C
  4. *---------------------------------------------------------------------
  5. * Pression partielle de vapeur fonction de RO et de T (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 = PVAP 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 : Pression partielle de 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. C IF (IGEO1.NE.IGEO2) IFLAG=5
  77. C IF (N1.NE.N2) IFLAG=6
  78. IF (IFLAG.NE.0) THEN
  79. CALL ERREUR(21)
  80. RETURN
  81. ENDIF
  82. C
  83. SEGINI, MCHPO3=MCHPO1
  84. SEGINI, MSOUP3=MSOUP1
  85. SEGINI, MPOVA3=MPOVA1
  86. MCHPO3.IPCHP(1) = MSOUP3
  87. MSOUP3.IPOVAL = MPOVA3
  88. SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  89. CALL PVAP1(MPOVA1,MPOVA2,MPOVA3)
  90. SEGDES MPOVA1,MPOVA2,MPOVA3
  91. CALL ECROBJ(TYPE,MCHPO3)
  92. RETURN
  93. C
  94. C FLOTTANT
  95. C
  96. 10 CONTINUE
  97. CALL LIRREE(X1,0,IRETOU)
  98. IF (IRETOU.EQ.0) GOTO 20
  99. CALL LIRREE(X2,1,IRETOU)
  100. IF (IRETOU.EQ.0) RETURN
  101. X3 = PVAP0(X1,X2)
  102. CALL ECRREE(X3)
  103. RETURN
  104. C
  105. C LISTREEL
  106. C
  107. 20 CONTINUE
  108. TYPE = 'LISTREEL'
  109. CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
  110. IF (IRETOU.EQ.0) GOTO 30
  111. CALL LIROBJ(TYPE,MLREE2,1,IRETOU)
  112. IF (IRETOU.EQ.0) RETURN
  113. MLREE3 = 0
  114. IFLAG = 0
  115. SEGACT MLREE1,MLREE2
  116. JG1 = MLREE1.PROG(/1)
  117. JG2 = MLREE2.PROG(/1)
  118. IF (JG1.NE.JG2) IFLAG=1
  119. IF (IFLAG.NE.0) THEN
  120. CALL ERREUR(21)
  121. RETURN
  122. ENDIF
  123. SEGINI, MLREE3=MLREE1
  124. CALL PVAP3(MLREE1,MLREE2,MLREE3)
  125. SEGDES MLREE1,MLREE2,MLREE3
  126. CALL ECROBJ(TYPE,MLREE3)
  127. RETURN
  128. C
  129. C Autres
  130. C
  131. 30 CONTINUE
  132. CALL ERREUR(19)
  133. RETURN
  134. END
  135.  
  136.  
  137.  

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