1 : C TODIFF SOURCE PV 05/04/25 21:15:46 5077 2 : SUBROUTINE TODIFF 3 : C 4 : C-------------------------------------------------------------------- 5 : C Evaluation du coefficient de diffusion de la vapeur dans un mélange 6 : C de gaz pour une pression et une température donnée 7 : C-------------------------------------------------------------------- 8 : C 9 : C--------------------------- 10 : C Phrase d'appel (GIBIANE) : 11 : C--------------------------- 12 : C 13 : C CHP1 = TODIFF TAB1 ; 14 : C 15 : C------------------------ 16 : C Opérandes et résultat : 17 : C------------------------ 18 : C 19 : C TAB1 : TABLE SET contenant l'ensemble des data 0D 20 : C CHP1 : CHPO de support CELL contenant le coefficient de diffusion 21 : C de la vapeur dans le mélange de gaz (en m2/s) 22 : C 23 : C-------------------------------------------------------------------- 24 : C 25 : IMPLICIT INTEGER(I-N) 26 : IMPLICIT REAL*8 (A-H,O-Z) 27 : CHARACTER*4 NOMTOT(1) 28 : CHARACTER*8 TYPE,TYPS,MTYPI,MTYPR,MOT1,MOT2,BETA(7) 29 : CHARACTER*72 CHARR 30 : LOGICAL LOGI,LOGR 31 : C 32 : -INC CCOPTIO 33 : -INC SMCHPOI 34 : -INC SMELEME 35 : -INC SMTABLE 36 : SEGMENT IWORK 37 : REAL*8 V(NBCONS,3),W(NBCELL,2) 38 : CHARACTER*8 BETA(NBCONS) 39 : ENDSEGMENT 40 : C 41 : C- Lecture et controles des données d'entrée, 42 : C 43 : C MTAB1 : Table SET 44 : C MTAB2 : Table INCO 45 : C MTAB3 : Table COMPONENT 46 : C MTAB4 : Table GEOINF 47 : C 47 : CALL LIRTAB('SET',MTAB1,1,IRETOU) 48 : IF (IERR.NE.0) RETURN 49 : MTYPI = 'MOT ' 50 : MTYPR = 'TABLE ' 50 : CALL ACCTAB(MTAB1,MTYPI,IVALI,XVALI,'INCO',LOGI,IRETI, 51 : & MTYPR,IVALR,XVALR,CHARR,LOGR,MTAB2) 52 : IF (IERR.NE.0) RETURN 52 : CALL ACCTAB(MTAB1,MTYPI,IVALI,XVALI,'COMPONENT',LOGI,IRETI, 53 : & MTYPR,IVALR,XVALR,CHARR,LOGR,MTAB3) 54 : IF (IERR.NE.0) RETURN 54 : CALL ACCTAB(MTAB1,MTYPI,IVALI,XVALI,'GEOINF',LOGI,IRETI, 55 : & MTYPR,IVALR,XVALR,CHARR,LOGR,MTAB4) 56 : IF (IERR.NE.0) RETURN 57 : C 58 : C IPT1 : Maillage POI1 des CELLs 59 : C 60 : TYPE = 'MAILLAGE' 60 : CALL ACMO(MTAB4,'CELL',TYPE,IPT1) 61 : IF (IERR.NE.0) RETURN 62 : C 63 : C MCHPO1 : Pression 64 : C MCHPO2 : Température 65 : C 66 : TYPE = 'CHPOINT ' 67 : TYPS = ' ' 67 : CALL ACMO(MTAB2,'PT',TYPE,MCHPO1) 67 : CALL LRCHT(MCHPO1,MPOVA1,TYPS,IGEO1) 68 : IF (IERR.NE.0) RETURN 69 : IF (IGEO1.NE.IPT1) THEN 70 : INDIC = 1 71 : NBCOMP = -1 71 : CALL QUEPOI(MCHPO1,IPT1,INDIC,NBCOMP,NOMTOT) 72 : IF (IERR.NE.0) RETURN 72 : CALL LRCHT(MCHPO1,MPOVA1,TYPS,IGEO1) 73 : ENDIF 74 : C 75 : TYPE = 'CHPOINT ' 75 : CALL ACMO(MTAB2,'TGAS',TYPE,MCHPO2) 76 : IF (IERR.NE.0) RETURN 76 : CALL LRCHT(MCHPO2,MPOVA2,TYPS,IGEO1) 77 : IF (IGEO1.NE.IPT1) THEN 78 : INDIC = 1 79 : NBCOMP = -1 79 : CALL QUEPOI(MCHPO2,IPT1,INDIC,NBCOMP,NOMTOT) 80 : IF (IERR.NE.0) RETURN 80 : CALL LRCHT(MCHPO2,MPOVA2,TYPS,IGEO1) 81 : ENDIF 82 : C 83 : C Création du segment IWORK 84 : C Ordre des constituants : H2O, H2, He, N2, O2, CO2, CO 85 : C 86 : SEGACT IPT1 87 : NBCELL = IPT1.NUM(/2) 88 : SEGDES IPT1 89 : NBCONS = 7 90 : SEGINI IWORK 91 : C 92 : C- Liste des constituants autorisés 93 : BETA(1) = 'H2O ' 94 : BETA(2) = 'H2 ' 95 : BETA(3) = 'HE ' 96 : BETA(4) = 'N2 ' 97 : BETA(5) = 'O2 ' 98 : BETA(6) = 'CO2 ' 99 : BETA(7) = 'CO ' 100 : C 101 : C- Masse molaire (en kg/mol) 102 : V(1,1) = 0.018D0 103 : V(2,1) = 0.002D0 104 : V(3,1) = 0.004D0 105 : V(4,1) = 0.028D0 106 : V(5,1) = 0.032D0 107 : V(6,1) = 0.044D0 108 : V(7,1) = 0.028D0 109 : C 110 : C- Coefficient intervenant dans l'expression de la loi de diffusion 111 : C- de la vapeur dans le constituant de rang i lorsqu'il est seul 112 : V(1,2) = 0.277D-3 113 : V(2,2) = 0.780D-4 114 : V(3,2) = 0.730D-4 115 : V(4,2) = 0.227D-4 116 : V(5,2) = 0.240D-4 117 : V(6,2) = 0.155D-4 118 : V(7,2) = 0.220D-4 119 : C 120 : C- Puissance intervenant dans l'expression de la loi de diffusion 121 : C- de la vapeur dans le constituant de rang i lorsqu'il est seul 122 : V(1,3) = 0.00D0 123 : V(2,3) = 1.75D0 124 : V(3,3) = 1.75D0 125 : V(4,3) = 1.75D0 126 : V(5,3) = 1.71D0 127 : V(6,3) = 1.75D0 128 : V(7,3) = 1.75D0 129 : C 130 : SEGACT MTAB3 131 : IDIM1 = MTAB3.MLOTAB 132 : DO 40 I=1,IDIM1 132 : CALL ACEM(MTAB3,I,MOT1) 133 : MOT2 = 'R' // MOT1(1:7) 134 : TYPE = 'CHPOINT ' 134 : CALL ACMO(MTAB2,MOT2,TYPE,MCHPO3) 135 : IF (IERR.NE.0) RETURN 136 : II = 0 137 : DO 10 K=1,NBCONS 138 : IF (BETA(K).EQ.MOT1) THEN 139 : II = K 140 : GOTO 20 141 : ENDIF 142 : 10 CONTINUE 143 : C Le mot %m1:4 n'est pas un nom de composante reconnu 144 : MOTERR(1:4) = MOT1(1:4) 144 : CALL ERREUR(197) 145 : RETURN 146 : 20 CONTINUE 146 : CALL LRCHT(MCHPO3,MPOVA3,TYPS,IGEO1) 147 : IF (IGEO1.NE.IPT1) THEN 148 : INDIC = 1 149 : NBCOMP = -1 149 : CALL QUEPOI(MCHPO3,IPT1,INDIC,NBCOMP,NOMTOT) 150 : IF (IERR.NE.0) RETURN 150 : CALL LRCHT(MCHPO3,MPOVA3,TYPS,IGEO1) 151 : ENDIF 152 : A1 = V(II,1) 153 : A2 = V(II,2) 154 : A3 = V(II,3) 155 : DO 30 J=1,NBCELL 156 : DVIIJ = A2 / (MPOVA1.VPOCHA(J,1) * 1.D-5) 157 : & * ((MPOVA2.VPOCHA(J,1) / 273.15D0) ** A3) 158 : GIIJ = MPOVA3.VPOCHA(J,1) / A1 159 : W(J,1) = W(J,1) + GIIJ 160 : W(J,2) = W(J,2) + GIIJ/DVIIJ 161 : 30 CONTINUE 162 : SEGDES MPOVA3 163 : 40 CONTINUE 164 : SEGDES MTAB3,MPOVA1,MPOVA2 165 : C 166 : C- Création/remplissage du chpo contenant le coefficient de diffusion 167 : C- de la vapeur dans le mélange de gaz 168 : C 169 : SEGINI, MCHPOI=MCHPO1 170 : NC = 1 171 : SEGINI MSOUPO 172 : SEGINI, MPOVAL=MPOVA1 173 : IPCHP(1) = MSOUPO 174 : NOCOMP(1) = 'SCAL' 175 : IGEOC = IPT1 176 : IPOVAL = MPOVAL 177 : NOHARM(1) = NIFOUR 178 : DO 50 I=1,NBCELL 179 : VPOCHA(I,1) = W(I,1) / W(I,2) 180 : 50 CONTINUE 181 : SEGDES MCHPOI,MSOUPO,MPOVAL 182 : C 183 : SEGSUP IWORK 183 : CALL ECROBJ('CHPOINT ',MCHPOI) 184 : RETURN 185 : END 186 : 187 : 188 :
© Cast3M 2003 - All rights reserved.
Disclaimer