50#include "implicit_f.inc"
59 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
60 INTEGER,
INTENT(IN) :: ID
61 CHARACTER(LEN = NCHARTITLE) :: TITR
62 INTEGER,
DIMENSION(NPROPMI),
INTENT(INOUT) :: IPM
63 my_real,
DIMENSION(NPROPM),
INTENT(INOUT)
64 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
65 CHARACTER(LEN = NCHARLINE),
INTENT(IN) :: KEY2
70 . mw, cpa, cpb, cpc, cpd, cpe, cpf, cv,
71 . fac_l, fac_t, fac_m, r_igc1, fac_cp, fac
72 CHARACTER(LEN = NCHARLINE) :: KEY, USERGAS_NAME, KEY2_TRIM
73 CHARACTER(LEN = 20) :: GASTYPE
74 INTEGER :: IGAS, IMOLE
75 LOGICAL :: IS_AVAILABLE, IS_ENCRYPTED
83 is_available = .false.
84 is_encrypted = .false.
87 key2_trim = key2(1:len_trim(key2))
88 SELECT CASE(key2_trim)
98 CASE(
'PREDEF',
'PREDEFINED')
113 CALL hm_get_floatv(
'MASS', mw, is_available, lsubmodel, unitab)
115 CALL ancmsg(msgid = 710, msgtype = msgerror, anmode = aninfo,
116 . i1 = id, c1 = titr)
118 CALL hm_get_floatv(
'ABG_cpai', cpa, is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'ABG_cpbi', cpb, is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'ABG_cpci', cpc, is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_D', cpd, is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_E1', cpe, is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_F', cpf, is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'MAT_BSAT', cpa, is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'MAT_RSAT', cv, is_available, lsubmodel, unitab
139 IF (cpa <= zero .OR. cv <= zero)
THEN
140 CALL ancmsg(msgid = 916, msgtype = msgerror, anmode = aninfo,
141 . i1 = id, c1 = titr)
144 CALL ancmsg(msgid = 917, msgtype = msgerror, anmode = aninfo,
145 . i1 = id, c1 = titr)
149 IF (usergas_name(1:3) ==
'N2O')
THEN
150 gastype =
'Nitrous oxide'
158 ELSE IF (usergas_name(1:2) ==
'N2')
THEN
167 ELSE IF (usergas_name(1:2) ==
'O2')
THEN
176 ELSE IF (usergas_name(1:3) ==
'CO2')
THEN
177 gastype = 'carbon dioxide
'
185 ELSE IF (USERGAS_NAME(1:2) == 'co
') THEN
186 GASTYPE = 'carbon monoxide
'
194 ELSE IF (USERGAS_NAME(1:2) == 'ar
') THEN
203 ELSE IF (USERGAS_NAME(1:2) == 'ne
') THEN
212 ELSE IF (USERGAS_NAME(1:2) == 'he
') THEN
221 ELSE IF (USERGAS_NAME(1:3) == 'h2o
') THEN
222 GASTYPE = 'water vapour
'
230 ELSE IF (USERGAS_NAME(1:2) == 'h2
') THEN
239 ELSE IF (USERGAS_NAME(1:3) == 'nh3
') THEN
248 ELSE IF (USERGAS_NAME(1:3) == 'h2s
') THEN
249 GASTYPE = 'hydrogen sulphide
'
257 ELSE IF (USERGAS_NAME(1:4) == 'c6h6
') THEN
266 ELSE IF (USERGAS_NAME(1:3) == 'air
') THEN
276 CALL ANCMSG(MSGID = 722, MSGTYPE = MSGERROR, ANMODE = ANINFO,
277 . I1 = ID, C1 = TITR, C2 = USERGAS_NAME)
281.AND.
IF (IGAS /= 3 MW <= ZERO) THEN
282 CALL ANCMSG(MSGID = 710, MSGTYPE = MSGERROR, ANMODE = ANINFO,
283 . I1 = ID, C1 = TITR)
286! ***********************************
287! Units for hard-coded default values
288 FAC_M = UNITAB%FAC_M_WORK
289 FAC_L = UNITAB%FAC_L_WORK
290 FAC_T = UNITAB%FAC_T_WORK
291 FAC_CP = FAC_L * FAC_L / (FAC_T * FAC_T)
293 R_IGC1 = R_IGC / FAC_M / FAC_L / FAC_L * (FAC_T * FAC_T)
313 MW = R_IGC1 / (CPA - CV)
316! **************************
317! Store in IPM and PM arrays
330 WRITE (IOUT, 1001) TRIM(TITR), ID
332 IF (IS_ENCRYPTED)THEN
333 WRITE (IOUT,'(5x,a,//)
')'confidential data
'
336 WRITE (IOUT, 1100) GASTYPE, CPA, CV, MW, R_IGC1
338 WRITE (IOUT, 1200) GASTYPE, MW, CPA, CPB, CPC, CPD, CPE, CPF, R_IGC1
346 & 7X,'gas characteristics
',/,
347 & 7X,'-------------------
',//)
350 & 5X,40HMATERIAL NUMBER . . . . . . . . . . . .=,I10/,
353 & 5X,42HGAS TYPE. . . . . . . . . . . . . . . .= ,A/,
354 & 5X,40HSPECIFIC HEAT AT CONSTANT PRESSURE CP .=,E12.4/,
355 & 5X,40HSPECIFIC HEAT AT CONSTANT VOLUME CV. . =,E12.4/,
356 & 5X,40HMOLECULAR WEIGHT . . . . . . . . . . .=,E12.4/,
357 & 5X,40HUNIVERSAL GAS CONSTANT. . . . . . . . .=,E12.4//)
359 & 5X,42HGAS TYPE. . . . . . . . . . . . . . . .= ,A/,
360 & 5X,40HMOLECULAR WEIGHT . . . . . . . . . . .=,E12.4/,
361 & 5X,40HCOEFFICIENT CPA . . . . . . . . . . . .=,E12.4/,
362 & 5X,40HCOEFFICIENT CPB . . . . . . . . . . . .=,E12.4/,
363 & 5X,40HCOEFFICIENT CPC . . . . . . . . . . . .=,E12.4/,
364 & 5X,40HCOEFFICIENT CPD . . . . . . . . . . . .=,E12.4/,
365 & 5X,40HCOEFFICIENT CPE . . . . . . . . . . . .=,E12.4/,
366 & 5X,40HCOEFFICIENT CPF . . . . . . . . . . . .=,E12.4/,
367 & 5X,40HUNIVERSAL GAS CONSTANT. . . . . . . . .=,E12.4//)
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)