1 : C DZVDT SOURCE CHAT 05/01/12 23:20:02 5004 2 : SUBROUTINE DZVDT 3 : C 4 : C--------------------------------------------------------------------- 5 : C Correction gaz reel de la loi d'état en vapeur (issue de RALOC): 6 : C derivee partielle de Z par rapport a la temperature 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 = VARI 'DZVDT' OBJ1 OBJ2 ; 17 : C 18 : C------------------------ 19 : C Opérandes et résultat : 20 : C------------------------ 21 : C 22 : C OBJ1 : Densité de vapeur (en kg/m3) 23 : C OBJ2 : Température (en K) 24 : C OBJ3 : Correction gaz reel de la vapeur (p = ro R Z T) 25 : C D/DT(ZVAP)(P,T) (en /K) 26 : C-------------------------------------------------------------------- 27 : IMPLICIT INTEGER(I-N) 28 : IMPLICIT REAL*8 (A-H,O-Z) 29 : CHARACTER*8 TYPE 30 : CHARACTER*4 NOMTOT(1) 31 : C 32 : -INC SMCHPOI 33 : -INC SMLREEL 34 : C 35 : IFLAG = 0 36 : C 37 : C- Lecture et controles des données d'entrée, 38 : C- Création de la structure chapeau pour la donnée de sortie 39 : C 40 : C- Gestion des ERREURS 41 : C 21 -> Données incompatibles 42 : C 19 -> Option indisponible 43 : C 44 : C CHPOINT 45 : C 46 : TYPE = 'CHPOINT ' 46 : CALL LIROBJ(TYPE,MCHPO1,0,IRETOU) 47 : IF (IRETOU.EQ.0) GOTO 10 47 : CALL LIROBJ(TYPE,MCHPO2,1,IRETOU) 48 : IF (IRETOU.EQ.0) RETURN 49 : C 50 : SEGACT MCHPO1,MCHPO2 51 : NSOUP1 = MCHPO1.IPCHP(/1) 52 : NSOUP2 = MCHPO2.IPCHP(/1) 53 : MSOUP1 = MCHPO1.IPCHP(1) 54 : MSOUP2 = MCHPO2.IPCHP(1) 55 : SEGACT MSOUP1,MSOUP2 56 : NC1 = MSOUP1.NOHARM(/1) 57 : NC2 = MSOUP2.NOHARM(/1) 58 : IGEO1 = MSOUP1.IGEOC 59 : IGEO2 = MSOUP2.IGEOC 60 : INDIC = 1 61 : NBCOMP = -1 61 : CALL QUEPOI(MCHPO2,IGEO1,INDIC,NBCOMP,NOMTOT) 62 : SEGACT MCHPO2,MSOUP2 63 : MPOVA1 = MSOUP1.IPOVAL 64 : MPOVA2 = MSOUP2.IPOVAL 65 : SEGACT MPOVA1,MPOVA2 66 : N1 = MPOVA1.VPOCHA(/1) 67 : N2 = MPOVA2.VPOCHA(/1) 68 : C 69 : IF (NSOUP1.NE.NSOUP2) IFLAG=1 70 : IF (NSOUP1.NE.1) IFLAG=2 71 : IF (NC1.NE.NC2) IFLAG=3 72 : IF (NC1.NE.1) IFLAG=4 73 : IF (INDIC.LT.0) IFLAG=5 74 : IF (IFLAG.NE.0) THEN 74 : CALL ERREUR(21) 75 : RETURN 76 : ENDIF 77 : C 78 : SEGINI, MCHPO3=MCHPO1 79 : SEGINI, MSOUP3=MSOUP1 80 : SEGINI, MPOVA3=MPOVA1 81 : MCHPO3.IPCHP(1) = MSOUP3 82 : MSOUP3.IPOVAL = MPOVA3 83 : SEGDES MCHPO1,MCHPO2,MCHPO3,MSOUP1,MSOUP2,MSOUP3 83 : CALL DZVDT1(MPOVA1,MPOVA2,MPOVA3) 84 : SEGDES MPOVA1,MPOVA2,MPOVA3 84 : CALL ECROBJ(TYPE,MCHPO3) 85 : RETURN 86 : C 87 : C FLOTTANT 88 : C 89 : 10 CONTINUE 89 : CALL LIRREE(X1,0,IRETOU) 90 : IF (IRETOU.EQ.0) GOTO 20 90 : CALL LIRREE(X2,1,IRETOU) 91 : IF (IRETOU.EQ.0) RETURN 92 : X3 = DZVDT0(X1,X2) 92 : CALL ECRREE(X3) 93 : RETURN 94 : C 95 : C LISTREEL 96 : C 97 : 20 CONTINUE 98 : TYPE = 'LISTREEL' 98 : CALL LIROBJ(TYPE,MLREE1,0,IRETOU) 99 : IF (IRETOU.EQ.0) GOTO 30 99 : CALL LIROBJ(TYPE,MLREE2,1,IRETOU) 100 : IF (IRETOU.EQ.0) RETURN 101 : MLREE3 = 0 102 : IFLAG = 0 103 : SEGACT MLREE1,MLREE2 104 : JG1 = MLREE1.PROG(/1) 105 : JG2 = MLREE2.PROG(/1) 106 : IF (JG1.NE.JG2) IFLAG=1 107 : IF (IFLAG.NE.0) THEN 107 : CALL ERREUR(21) 108 : RETURN 109 : ENDIF 110 : SEGINI, MLREE3=MLREE1 110 : CALL DZVDT3(MLREE1,MLREE2,MLREE3) 111 : SEGDES MLREE1,MLREE2,MLREE3 111 : CALL ECROBJ(TYPE,MLREE3) 112 : RETURN 113 : C 114 : C Autres 115 : C 116 : 30 CONTINUE 116 : CALL ERREUR(19) 117 : RETURN 118 : END 119 : 120 : 121 :
© Cast3M 2003 - All rights reserved.
Disclaimer