Télécharger roliq.eso

Retour à la liste

Numérotation des lignes :

  1. C ROLIQ SOURCE CHAT 05/01/13 03:04:15 5004
  2. SUBROUTINE ROLIQ
  3. C
  4. C--------------------------------------------------------------------
  5. C Densité de l'eau liquide en fonction de la pression et de
  6. C l'enthalpie liquide spécifique.
  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 = ROLIQ OBJ1 OBJ2 ;
  17. C
  18. C------------------------
  19. C Opérandes et résultat :
  20. C------------------------
  21. C
  22. C OBJ1 : Pression de l'enceinte (en Pa)
  23. C OBJ2 : Enthalpie liquide spécifique (en J/kg)
  24. C OBJ3 : Densité de l'eau liquide (en kg/m3)
  25. C
  26. C----------------------
  27. C Variables principales
  28. C----------------------
  29. C
  30. C ISYNT : Flag indiquant le type de syntaxe utilisé
  31. C
  32. C-----------------------------------------------------------------------
  33. IMPLICIT INTEGER(I-N)
  34. IMPLICIT REAL*8 (A-H,O-Z)
  35. CHARACTER*8 TYPE
  36. CHARACTER*4 NOMTOT(1)
  37. C
  38. -INC SMCHPOI
  39. -INC SMLREEL
  40. C
  41. IFLAG = 0
  42. C
  43. C- Lecture et controles des données d'entrée,
  44. C- Création de la structure chapeau pour la donnée de sortie
  45. C
  46. C- Gestion des ERREURS
  47. C 21 -> Données incompatibles
  48. C 19 -> Option indisponible
  49. C
  50. C CHPOINT
  51. C
  52. TYPE = 'CHPOINT '
  53. CALL LIROBJ(TYPE,MCHPO1,0,IRETOU)
  54. IF (IRETOU.EQ.0) GOTO 10
  55. CALL LIROBJ(TYPE,MCHPO2,1,IRETOU)
  56. IF (IRETOU.EQ.0) RETURN
  57. C
  58. SEGACT MCHPO1,MCHPO2
  59. NSOUP1 = MCHPO1.IPCHP(/1)
  60. NSOUP2 = MCHPO2.IPCHP(/1)
  61. MSOUP1 = MCHPO1.IPCHP(1)
  62. MSOUP2 = MCHPO2.IPCHP(1)
  63. SEGACT MSOUP1,MSOUP2
  64. NC1 = MSOUP1.NOHARM(/1)
  65. NC2 = MSOUP2.NOHARM(/1)
  66. IGEO1 = MSOUP1.IGEOC
  67. IGEO2 = MSOUP2.IGEOC
  68. INDIC = 1
  69. NBCOMP = -1
  70. CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT)
  71. SEGACT MCHPO2,MSOUP2
  72. MPOVA1 = MSOUP1.IPOVAL
  73. MPOVA2 = MSOUP2.IPOVAL
  74. SEGACT MPOVA1,MPOVA2
  75. N1 = MPOVA1.VPOCHA(/1)
  76. N2 = MPOVA2.VPOCHA(/1)
  77. C
  78. IF (NSOUP1.NE.NSOUP2) IFLAG=1
  79. IF (NSOUP1.NE.1) IFLAG=2
  80. IF (NC1.NE.NC2) IFLAG=3
  81. IF (NC1.NE.1) IFLAG=4
  82. IF (INDIC.LT.0) IFLAG=5
  83. C IF (IGEO1.NE.IGEO2) IFLAG=5
  84. C IF (N1.NE.N2) IFLAG=6
  85. IF (IFLAG.NE.0) THEN
  86. CALL ERREUR(21)
  87. RETURN
  88. ENDIF
  89. C
  90. SEGINI, MCHPO3=MCHPO1
  91. SEGINI, MSOUP3=MSOUP1
  92. SEGINI, MPOVA3=MPOVA1
  93. MCHPO3.IPCHP(1) = MSOUP3
  94. MSOUP3.IPOVAL = MPOVA3
  95. SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  96. CALL ROLIQ1(MPOVA1,MPOVA2,MPOVA3)
  97. SEGDES MPOVA1,MPOVA2,MPOVA3
  98. CALL ECROBJ(TYPE,MCHPO3)
  99. RETURN
  100. C
  101. C FLOTTANT
  102. C
  103. 10 CONTINUE
  104. CALL LIRREE(X1,0,IRETOU)
  105. IF (IRETOU.EQ.0) GOTO 20
  106. CALL LIRREE(X2,1,IRETOU)
  107. IF (IRETOU.EQ.0) RETURN
  108. X3 = ROLIQ0(X1,X2)
  109. CALL ECRREE(X3)
  110. RETURN
  111. C
  112. C LISTREEL
  113. C
  114. 20 CONTINUE
  115. TYPE = 'LISTREEL'
  116. CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
  117. IF (IRETOU.EQ.0) GOTO 30
  118. CALL LIROBJ(TYPE,MLREE2,1,IRETOU)
  119. IF (IRETOU.EQ.0) RETURN
  120. MLREE3 = 0
  121. IFLAG = 0
  122. SEGACT MLREE1,MLREE2
  123. JG1 = MLREE1.PROG(/1)
  124. JG2 = MLREE2.PROG(/1)
  125. IF (JG1.NE.JG2) IFLAG=1
  126. IF (IFLAG.NE.0) THEN
  127. CALL ERREUR(21)
  128. RETURN
  129. ENDIF
  130. SEGINI, MLREE3=MLREE1
  131. CALL ROLIQ3(MLREE1,MLREE2,MLREE3)
  132. SEGDES MLREE1,MLREE2,MLREE3
  133. CALL ECROBJ(TYPE,MLREE3)
  134. RETURN
  135. C
  136. C Autres
  137. C
  138. 30 CONTINUE
  139. CALL ERREUR(19)
  140. RETURN
  141. END
  142.  
  143.  
  144.  

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