Download dhvdt.eso

Back to the list

   1 : C DHVDT     SOURCE    CHAT      05/01/12    22:49:27     5004           
   2 :       SUBROUTINE DHVDT
   3 : C
   4 : C--------------------------------------------------------------------
   5 : C Enthalpie vapeur spécifique en fonction de P et de T:
   6 : C dérivée partielle par rapport à la température
   7 : C
   8 : C Dans le cas ou seule la pression est fournie, on considère que la
   9 : C pression P transmise est Psat et on calcule Tsat afin d'évaluer
  10 : C la fonction derivée
  11 : C--------------------------------------------------------------------
  12 : C Les données d'entrée sont des CHPOINT, des FLOTTANT ou des LISTREEL
  13 : C Le résultat est du meme type que les input.
  14 : C--------------------------------------------------------------------
  15 : C
  16 : C---------------------------
  17 : C Phrase d'appel (GIBIANE) :
  18 : C---------------------------
  19 : C
  20 : C OBJ3 = VARI 'DHVDT' OBJ1 (OBJ2) ;
  21 : C
  22 : C------------------------
  23 : C Opérandes et résultat :
  24 : C------------------------
  25 : C
  26 : C  OBJ1 : Pression partielle de vapeur (en Pa)
  27 : C  OBJ2 : Température (en K)
  28 : C  OBJ3 : Dérivée partielle de l'enthalpie spécifique de la vapeur
  29 : C         par rapport à la température (en J/kg/K)
  30 : C
  31 : C----------------------
  32 : C Variables principales
  33 : C----------------------
  34 : C
  35 : C ISAT  : Flag valant 0 si 2 arguments, 1 sinon (T=Tsat(P))
  36 : C 
  37 : C-----------------------------------------------------------------------
  38 :       IMPLICIT INTEGER(I-N)
  39 :       IMPLICIT REAL*8 (A-H,O-Z)                 
  40 :       CHARACTER*8 TYPE
  41 :       CHARACTER*4 NOMTOT(1)
  42 : C
  43 : -INC SMCHPOI
  44 : -INC SMLREEL
  45 : C
  46 :       IFLAG = 0
  47 :       ISAT  = 0
  48 : C
  49 : C- Lecture et controles des données d'entrée,
  50 : C- Création de la structure chapeau pour la donnée de sortie
  51 : C
  52 : C- Gestion des ERREURS
  53 : C  21 -> Données incompatibles
  54 : C  19 -> Option indisponible
  55 : C
  56 : C CHPOINT
  57 : C
  58 :       TYPE  = 'CHPOINT '
  58 :       CALL LIROBJ(TYPE,MCHPO1,0,IRETOU)
  59 :       IF (IRETOU.EQ.0) GOTO 10
  59 :       CALL LIROBJ(TYPE,MCHPO2,0,IRETOU)
  60 :       IF (IRETOU.EQ.0) ISAT=1
  61 : C
  62 :       IF (ISAT.EQ.0) THEN
  63 :          SEGACT MCHPO1,MCHPO2
  64 :          NSOUP1 = MCHPO1.IPCHP(/1)
  65 :          NSOUP2 = MCHPO2.IPCHP(/1)
  66 :          MSOUP1 = MCHPO1.IPCHP(1)
  67 :          MSOUP2 = MCHPO2.IPCHP(1)
  68 :          SEGACT MSOUP1,MSOUP2
  69 :          NC1    = MSOUP1.NOHARM(/1)
  70 :          NC2    = MSOUP2.NOHARM(/1)
  71 :          IGEO1  = MSOUP1.IGEOC
  72 :          INDIC  =  1
  73 :          NBCOMP = -1
  73 :          CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT)
  74 :          SEGACT MCHPO2,MSOUP2
  75 :          MPOVA1 = MSOUP1.IPOVAL
  76 :          MPOVA2 = MSOUP2.IPOVAL
  77 :          SEGACT MPOVA1,MPOVA2
  78 :          IF (NSOUP1.NE.NSOUP2) IFLAG=1
  79 :          IF (NC1.NE.NC2) IFLAG=3
  80 :          IF (NC1.NE.1)   IFLAG=4
  81 :          IF (INDIC.LT.0) IFLAG=5
  82 :          IF (IFLAG.NE.0) THEN
  82 :             CALL ERREUR(21)
  83 :             RETURN
  84 :          ENDIF
  85 :          SEGINI, MCHPO3=MCHPO1
  86 :          SEGINI, MSOUP3=MSOUP1
  87 :          SEGINI, MPOVA3=MPOVA1
  88 :          MCHPO3.IPCHP(1) = MSOUP3
  89 :          MSOUP3.IPOVAL = MPOVA3
  90 :          SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3
  90 :          CALL DHVDT1(MPOVA1,MPOVA2,MPOVA3,ISAT)
  91 :          SEGDES MPOVA1,MPOVA2,MPOVA3
  92 :       ELSE
  93 :          SEGACT MCHPO1
  94 :          NSOUP1 = MCHPO1.IPCHP(/1)
  95 :          MSOUP1 = MCHPO1.IPCHP(1)
  96 :          SEGACT MSOUP1
  97 :          NC1    = MSOUP1.NOHARM(/1)
  98 :          MPOVA1 = MSOUP1.IPOVAL
  99 :          SEGACT MPOVA1
 100 :          IF (NSOUP1.NE.1) IFLAG=2
 101 :          IF (NC1.NE.1) IFLAG=4
 102 :          IF (IFLAG.NE.0) THEN
 102 :             CALL ERREUR(21)
 103 :             RETURN
 104 :          ENDIF
 105 :          SEGINI, MCHPO3=MCHPO1
 106 :          SEGINI, MSOUP3=MSOUP1
 107 :          SEGINI, MPOVA3=MPOVA1
 108 :          MCHPO3.IPCHP(1) = MSOUP3
 109 :          MSOUP3.IPOVAL = MPOVA3
 110 :          SEGDES MCHPO1,MCHPO3,MSOUP1,MSOUP3
 111 :          MPOVA2 = -1
 111 :          CALL DHVDT1(MPOVA1,MPOVA2,MPOVA3,ISAT)
 112 :          SEGDES MPOVA1,MPOVA3
 113 :       ENDIF
 113 :       CALL ECROBJ(TYPE,MCHPO3)
 114 :       RETURN
 115 : C
 116 : C FLOTTANT
 117 : C
 118 :  10   CONTINUE
 118 :       CALL LIRREE(X1,0,IRETOU)
 119 :       IF (IRETOU.EQ.0) GOTO 20
 119 :       CALL LIRREE(X2,0,IRETOU)
 120 :       IF (IRETOU.EQ.0) X2=TSATP0(X1)
 121 :       X3 = DHVDT0(X1,X2)
 121 :       CALL ECRREE(X3)
 122 :       RETURN
 123 : C
 124 : C LISTREEL
 125 : C
 126 :  20   CONTINUE
 127 :       TYPE  = 'LISTREEL'
 127 :       CALL LIROBJ(TYPE,MLREE1,0,IRETOU)
 128 :       IF (IRETOU.EQ.0) GOTO 30
 128 :       CALL LIROBJ(TYPE,MLREE2,0,IRETOU)
 129 :       IF (IRETOU.EQ.0) ISAT=1
 130 :       IF (ISAT.EQ.0) THEN
 131 :          SEGACT MLREE1,MLREE2
 132 :          JG1 = MLREE1.PROG(/1)
 133 :          JG2 = MLREE2.PROG(/1)
 134 :          IF (JG1.NE.JG2) IFLAG=1
 135 :          IF (IFLAG.NE.0) THEN
 135 :             CALL ERREUR(21)
 136 :             RETURN
 137 :          ENDIF
 138 :          SEGINI, MLREE3=MLREE1
 138 :          CALL DHVDT3(MLREE1,MLREE2,MLREE3,ISAT)
 139 :          SEGDES MLREE1,MLREE2,MLREE3
 140 :       ELSE
 141 :          SEGACT MLREE1
 142 :          SEGINI, MLREE3=MLREE1
 143 :          MLREE2 = -1
 143 :          CALL DHVDT3(MLREE1,MLREE2,MLREE3,ISAT)
 144 :          SEGDES MLREE1,MLREE3
 145 :       ENDIF
 145 :       CALL ECROBJ(TYPE,MLREE3)
 146 :       RETURN
 147 : C
 148 : C Autres
 149 : C
 150 :  30   CONTINUE
 150 :       CALL ERREUR(19)
 151 :       RETURN
 152 :       END
 153 :  
 154 :  
 155 :  

© Cast3M 2003 - All rights reserved.
Disclaimer