Download roliq.eso

Back to the list

   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 '
  52 :       CALL LIROBJ(TYPE,MCHPO1,0,IRETOU)
  53 :       IF (IRETOU.EQ.0) GOTO 10
  53 :       CALL LIROBJ(TYPE,MCHPO2,1,IRETOU)
  54 :       IF (IRETOU.EQ.0) RETURN
  55 : C
  56 :       SEGACT MCHPO1,MCHPO2
  57 :       NSOUP1 = MCHPO1.IPCHP(/1)
  58 :       NSOUP2 = MCHPO2.IPCHP(/1)
  59 :       MSOUP1 = MCHPO1.IPCHP(1)
  60 :       MSOUP2 = MCHPO2.IPCHP(1)
  61 :       SEGACT MSOUP1,MSOUP2
  62 :       NC1    = MSOUP1.NOHARM(/1)
  63 :       NC2    = MSOUP2.NOHARM(/1)
  64 :       IGEO1  = MSOUP1.IGEOC
  65 :       IGEO2  = MSOUP2.IGEOC
  66 :       INDIC  =  1
  67 :       NBCOMP = -1
  67 :       CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT)
  68 :       SEGACT MCHPO2,MSOUP2
  69 :       MPOVA1 = MSOUP1.IPOVAL
  70 :       MPOVA2 = MSOUP2.IPOVAL
  71 :       SEGACT MPOVA1,MPOVA2
  72 :       N1     = MPOVA1.VPOCHA(/1)
  73 :       N2     = MPOVA2.VPOCHA(/1)
  74 : C
  75 :       IF (NSOUP1.NE.NSOUP2) IFLAG=1
  76 :       IF (NSOUP1.NE.1) IFLAG=2
  77 :       IF (NC1.NE.NC2) IFLAG=3
  78 :       IF (NC1.NE.1) IFLAG=4
  79 :       IF (INDIC.LT.0) IFLAG=5
  80 : C     IF (IGEO1.NE.IGEO2) IFLAG=5
  81 : C     IF (N1.NE.N2) IFLAG=6
  82 :       IF (IFLAG.NE.0) THEN
  82 :          CALL ERREUR(21)
  83 :          RETURN
  84 :       ENDIF
  85 : C
  86 :       SEGINI, MCHPO3=MCHPO1
  87 :       SEGINI, MSOUP3=MSOUP1
  88 :       SEGINI, MPOVA3=MPOVA1
  89 :       MCHPO3.IPCHP(1) = MSOUP3
  90 :       MSOUP3.IPOVAL = MPOVA3
  91 :       SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  91 :       CALL ROLIQ1(MPOVA1,MPOVA2,MPOVA3)
  92 :       SEGDES MPOVA1,MPOVA2,MPOVA3
  92 :       CALL ECROBJ(TYPE,MCHPO3)
  93 :       RETURN
  94 : C
  95 : C FLOTTANT
  96 : C
  97 :  10   CONTINUE
  97 :       CALL LIRREE(X1,0,IRETOU)
  98 :       IF (IRETOU.EQ.0) GOTO 20
  98 :       CALL LIRREE(X2,1,IRETOU)
  99 :       IF (IRETOU.EQ.0) RETURN
 100 :       X3 = ROLIQ0(X1,X2)
 100 :       CALL ECRREE(X3)
 101 :       RETURN
 102 : C
 103 : C LISTREEL
 104 : C
 105 :  20   CONTINUE
 106 :       TYPE  = 'LISTREEL'
 106 :       CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
 107 :       IF (IRETOU.EQ.0) GOTO 30
 107 :       CALL LIROBJ(TYPE,MLREE2,1,IRETOU)
 108 :       IF (IRETOU.EQ.0) RETURN
 109 :       MLREE3 = 0
 110 :       IFLAG  = 0
 111 :       SEGACT MLREE1,MLREE2
 112 :       JG1 = MLREE1.PROG(/1)
 113 :       JG2 = MLREE2.PROG(/1)
 114 :       IF (JG1.NE.JG2) IFLAG=1
 115 :       IF (IFLAG.NE.0) THEN
 115 :          CALL ERREUR(21)
 116 :          RETURN
 117 :       ENDIF
 118 :       SEGINI, MLREE3=MLREE1
 118 :       CALL ROLIQ3(MLREE1,MLREE2,MLREE3)
 119 :       SEGDES MLREE1,MLREE2,MLREE3
 119 :       CALL ECROBJ(TYPE,MLREE3)
 120 :       RETURN
 121 : C
 122 : C Autres
 123 : C
 124 :  30   CONTINUE
 124 :       CALL ERREUR(19)
 125 :       RETURN
 126 :       END
 127 :  
 128 :  

© Cast3M 2003 - All rights reserved.
Disclaimer