44 . IDTITL ,UNITAB ,LSUBMODEL,IPM ,PM ,
58#include "implicit_f.inc"
65#include "tablen_c.inc
"
69 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
71 INTEGER ,INTENT(IN) :: IGTYP,PROP_ID,IPM(NPROPMI,NUMMAT),NPC(*)
72 my_real, INTENT(IN) :: PLD(*),PM(NPROPM,NUMMAT)
73 my_real, INTENT(INOUT) :: GEO(*)
74 CHARACTER(LEN=NCHARTITLE)::IDTITL
75 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
76 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
80 INTEGER IG,I,J,K,NGASES,IFLOW,IJET,NOD1,NOD2,NOD3,
82 INTEGER MAT_ID(2,100),F_IDMASS(2,100),F_IDTEMP(2,100),
83 . F_IDMF(2,100),MW_MIXTURE,MW_MIXTURE_OK,
84 . NB_POINTS,NB_POINTS_1,NB_POINTS_OLD,
85 . IFUN_REF,IFUN_TMP,IFUN_TMP_USR
87 . FSMASS(100),FSTEMP(100),ASTIME,
89 . CPAI_MIX,CPBI_MIX,CPCI_MIX,CPDI_MIX,CPEI_MIX,CPFI_MIX,
90 . MF_TOT,MOL_TOT,MASS_TOT,MASS_INI,MOL_INI,MWI_MIXTURE,
91 . STP_GAMA_MIX,STP_TEMP,MASS_MOL,INIT_MASS,CPI_MIX,
92 . R_IGC1, FAC_TIME, FAC_MASS, FAC_TEMP
94 DATA MESS/'INJECTOR PROPERTY SET '/
96 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
100 INTEGER NINTRI,USR2SYS
103 IS_ENCRYPTED = .FALSE.
104 IS_AVAILABLE = .FALSE.
114 IGEO(22)=1 !I_INJECT : Injectors (1:'INJECT1' or 2:'INJECT2')
133 CALL HM_GET_INTV('NIP',NGASES,IS_AVAILABLE,LSUBMODEL)
134 CALL HM_GET_INTV('IFLOW',IFLOW,IS_AVAILABLE,LSUBMODEL)
135 CALL HM_GET_FLOATV('A_SCALE_X',ASTIME,IS_AVAILABLE,LSUBMODEL,UNITAB)
136 CALL HM_GET_FLOATV_DIM('A_SCALE_X',FAC_TIME,IS_AVAILABLE,LSUBMODEL,UNITAB)
139.OR.
IF (NGASES<1100<NGASES) THEN
140 CALL ANCMSG(MSGID=696,
148.AND.
IF (IFLOW/=0IFLOW/=1) THEN
149 CALL ANCMSG(MSGID=697,
157 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('ABG_Smass',FAC_MASS,1,IS_AVAILABLE,LSUBMODEL,UNITAB)
158 CALL HM_GET_FLOAT_ARRAY_INDEX_DIM('ABG_Stemp',FAC_TEMP,1,IS_AVAILABLE,LSUBMODEL,UNITAB)
162 CALL HM_GET_INT_ARRAY_INDEX('materialIds',MAT_ID(1,I),I,IS_AVAILABLE,LSUBMODEL)
163 CALL HM_GET_INT_ARRAY_INDEX('ABG_Imass',F_IDMASS(1,I),I,IS_AVAILABLE,LSUBMODEL)
164 CALL HM_GET_INT_ARRAY_INDEX('ABG_Itemp',F_IDTEMP(1,I),I,IS_AVAILABLE,LSUBMODEL)
165 CALL HM_GET_FLOAT_ARRAY_INDEX('ABG_Smass',FSMASS(I),I,IS_AVAILABLE,LSUBMODEL,UNITAB)
166 CALL HM_GET_FLOAT_ARRAY_INDEX('ABG_Stemp',FSTEMP(I),I,IS_AVAILABLE,LSUBMODEL,UNITAB)
170 IF(FSMASS(I) == ZERO)FSMASS(I)=ONE*FAC_MASS
171 IF(FSTEMP(I) == ZERO)FSTEMP(I)=ONE*FAC_TEMP
172 MAT_ID(2,I) = NINTRI(MAT_ID(1,I),IPM,NPROPMI,NUMMAT,1)
173 IF(MAT_ID(2,I) == 0) THEN
174 CALL ANCMSG(MSGID=698,
176 . ANMODE=ANINFO_BLIND_1,
180 ELSEIF(IPM(2,MAT_ID(2,I))/=999) THEN
181 CALL ANCMSG(MSGID=857,
183 . ANMODE=ANINFO_BLIND_1,
189 IF(F_IDMASS(1,I) > 0) THEN
191 IF(NPC(NFUNCT+1+J) == F_IDMASS(1,I)) F_IDMASS(2,I)=J
194 IF(F_IDTEMP(1,I) > 0) THEN
196 IF(NPC(NFUNCT+1+J) == F_IDTEMP(1,I)) F_IDTEMP(2,I)=J
199.AND.
IF(F_IDMASS(1,I)/=0F_IDMASS(2,I) == 0)THEN
200 CALL ANCMSG(MSGID=708,
202 . ANMODE=ANINFO_BLIND_1,
207.AND.
IF(F_IDTEMP(1,I)/=0F_IDTEMP(2,I) == 0)THEN
208 CALL ANCMSG(MSGID=708,
210 . ANMODE=ANINFO_BLIND_1,
218 IF(ASTIME == ZERO)ASTIME=ONE*FAC_TIME
219 R_IGC1=PM(27,MAT_ID(2,1))
224 IF (IGEO(22) == 1) THEN
225 IF (F_IDMASS(2,I)/=0) THEN
226 IFUN_TMP=F_IDMASS(2,I)
227 IFUN_TMP_USR=F_IDMASS(1,I)
229 ELSE IF (IGEO(22) == 2) THEN
230 IF (F_IDMF(2,I)/=0) THEN
232 IFUN_TMP_USR=F_IDMF(1,I)
235 IF (IFUN_TMP/=0) THEN
236 IF ((NPC(IFUN_TMP+1)-NPC(IFUN_TMP)) >= 4) THEN
238 DO J = NPC(IFUN_TMP),NPC(IFUN_TMP+1)-3,2
239 IF (PLD(J+1) > PLD(J+3)) THEN
240 CALL ANCMSG(MSGID=720,
241 . MSGTYPE=MSGWARNING,
242 . ANMODE=ANINFO_BLIND_1,
245 . I2=IFUN_TMP_USR,I3=I)
248 ELSE IF (IFLOW == 1) THEN
249 DO J = NPC(IFUN_TMP),NPC(IFUN_TMP+1)-1,2
250 IF (PLD(J+1) < ZERO) THEN
251 CALL ANCMSG(MSGID=721,
252 . MSGTYPE=MSGWARNING,
253 . ANMODE=ANINFO_BLIND_1,
256 . I2=IFUN_TMP_USR,I3=I)
280 IF (F_IDMASS(2,I) > 0) THEN
281 MASS_TOT = MASS_TOT + PLD(NPC(F_IDMASS(2,I))+3)*FSMASS(I)
290.OR.
IF (MASS_TOT == ZERO F_IDMASS(2,I) == 0) THEN
293 INIT_MASS=PLD(NPC(F_IDMASS(2,I))+3)*FSMASS(I)
295 MOL_TOT=MOL_TOT + INIT_MASS/PM(20,MAT_ID(2,I))
296 CPAI_MIX = CPAI_MIX + INIT_MASS*PM(21,MAT_ID(2,I))
297 CPBI_MIX = CPBI_MIX + INIT_MASS*PM(22,MAT_ID(2,I))
298 CPCI_MIX = CPCI_MIX + INIT_MASS*PM(23,MAT_ID(2,I))
299 CPDI_MIX = CPDI_MIX + INIT_MASS*PM(24,MAT_ID(2,I))
300 CPEI_MIX = CPEI_MIX + INIT_MASS*PM(25,MAT_ID(2,I))
301 CPFI_MIX = CPFI_MIX + INIT_MASS*PM(26,MAT_ID(2,I))
305 IF (MASS_TOT == ZERO) THEN
308 MWI_MIXTURE=MASS_TOT/MOL_TOT
309 CPAI_MIX = CPAI_MIX / MASS_TOT
310 CPBI_MIX = CPBI_MIX / MASS_TOT
311 CPCI_MIX = CPCI_MIX / MASS_TOT
312 CPDI_MIX = CPDI_MIX / MASS_TOT
313 CPEI_MIX = CPEI_MIX / MASS_TOT
314 CPFI_MIX = CPFI_MIX / MASS_TOT
319 IGEO(100+(I-1)*3+1)=MAT_ID(2,I)
320 IGEO(100+(I-1)*3+2)=F_IDMASS(2,I)
321 IGEO(100+(I-1)*3+3)=F_IDTEMP(2,I)
334 . +CPCI_MIX*STP_TEMP*STP_TEMP
335 . +CPDI_MIX*STP_TEMP*STP_TEMP*STP_TEMP
336 . +CPEI_MIX/(STP_TEMP*STP_TEMP)
337 . +CPFI_MIX*STP_TEMP*STP_TEMP*STP_TEMP*STP_TEMP
338 STP_GAMA_MIX=CPI_MIX/(CPI_MIX-R_IGC1/MWI_MIXTURE)
341 GEO(208+(I-1)*2+1)=FSMASS(I)
342 GEO(208+(I-1)*2+2)=FSTEMP(I)
346 WRITE(IOUT,1000)PROP_ID
348 WRITE(IOUT,1100)IG,IFLOW,ASTIME
349 WRITE(IOUT,1110)NGASES
350 WRITE(IOUT,1115)MWI_MIXTURE,STP_GAMA_MIX,
351 . CPAI_MIX,CPBI_MIX,CPCI_MIX,
352 . CPDI_MIX,CPEI_MIX,CPFI_MIX
354 WRITE(IOUT,1120)MAT_ID(1,I),F_IDMASS(1,I),F_IDTEMP(1,I), FSMASS(I),FSTEMP(I)
362.AND.
IF(GEO(39)/=ZEROIGEO( 9)== 0) IGEO( 9)=NINT(GEO(39))
363.AND.
IF(GEO(171)/=ZEROIGEO(10)== 0) IGEO(10)=NINT(GEO(171))
368 & 5X,'INJECTOR PROPERTY SET (/PROP/INJECT1)'/,
369 & 5X,'--------------------------------------',/,
370 & 5X,'PROPERTY SET NUMBER . . . . . . . . . .=',I10,/,
371 & 5X,'CONFIDENTIAL DATA'//)
373 & 5X,'INJECTOR PROPERTY SET (/PROP/INJECT1)'/,
374 & 5X,'PROPERTY SET NUMBER . . . . . . . . . .=',I10,/,
375 & 5X,'INCOMING MASS FLAG FOR FUNCTIONS. . . .=',I10,/,
376 & 5X,'(0:MASS/TIME, 1:MASS FLOW/TIME)',/,
377 & 5X,'ABSCISSA SCALE FACTOR',/,
378 & 5X,' FOR TIME BASED FUNCTIONS . . . . .=',1PG20.13,/)
380 & 5X,'MIXTURE DEFINTION'/,
381 & 5X,'NUMBER OF GASES . . . . . . . . . . . .=',I10,/)
383 & 5X,'INITIAL CHARACTERISTICS OF MIXTURE',/,
384 & 5X,'----------------------------------',/,
385 & 5X,'MOLECULAR WEIGHT. . . . . . . . . . . .=',1PG20.13,/,
386 & 5X,'STP GAMMA . . . . . . . . . . . . . . .=',1PG20.13,/,
387 & 5X,'COEFFICIENT CPA . . . . . . . . . . . .=',1PG20.13,/,
388 & 5X,'COEFFICIENT CPB . . . . . . . . . . . .=',1PG20.13,/,
389 & 5X,'COEFFICIENT CPC . . . . . . . . . . . .=',1PG20.13,/,
390 & 5X,'COEFFICIENT CPD . . . . . . . . . . . .=',1PG20.13,/,
391 & 5X,'COEFFICIENT CPE . . . . . . . . . . . .=',1PG20.13,/,
392 & 5X,'COEFFICIENT CPF . . . . . . . . . . . .=',1PG20.13,/)
394 & 10X,'GAS NUMBER. . . . . . . . . . . . . . .=',I10,/,
395 & 10X,'TIME FUNCTION FOR INCOMING MASS . . . .=',I10,/,
396 & 10X,'TIME FUNCTION FOR INCOMING GAS TEMP . .=',I10,/,
397 & 10X,'SCALE FACTOR FOR INCOMING MASS. . . . .=',1PG20.13,/,
398 & 10X,'SCALE FACTOR FOR INCOMING GAS TEMP. . .=',1PG20.13,/)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_read_inject1(geo, igeo, prop_tag, igtyp, prop_id, idtitl, unitab, lsubmodel, ipm, pm, npc, pld)
integer, parameter nchartitle