1 : C CPLIQ SOURCE CHAT 05/01/12 22:26:32 5004 2 : SUBROUTINE CPLIQ 3 : C 4 : C-------------------------------------------------------------------- 5 : C Capacité calorifique de l'eau liquide en fonction de la pression 6 : C et de 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 = CPLIQ 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 : Capacité calorifique de l'eau liquide (en J/kg/K) 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 CPLIQ1(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 = CPLIQ0(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 CPLIQ3(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