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
80 INTEGER IG,I,J,K,NGASES,IFLOW,IJET,NOD1,NOD2,NOD3,
82 INTEGER MAT_ID(2,100),F_IDMASS(2,100),(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.
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)
139 IF (ngases<1.OR.100<ngases)
THEN
148 IF (iflow/=0.AND.iflow/=1)
THEN
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 ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)