42 USE matparam_def_mod,
ONLY : matparam_struct_
58#include "implicit_f.inc"
62 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
65 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
66 INTEGER,
INTENT(IN) :: IMIDEOS
67 TYPE(matparam_struct_),
INTENT(INOUT) :: MAT_PARAM
75 my_real gamma, p0, t0, e0, psh, rho0, cv, mu0, rhoi, rhor, g0, ssp0, dpdmu, df
76 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE, IS_AVAILABLE_RHO0
80 is_encrypted = .false.
81 is_available = .false.
82 is_available_rho0 = .false.
86 CALL hm_get_floatv(
'Gamma', gamma, is_available,lsubmodel,unitab)
87 CALL hm_get_floatv(
'LAW5_P0', p0, is_available,lsubmodel,unitab)
88 CALL hm_get_floatv(
'LAW5_PSH', psh, is_available,lsubmodel,unitab)
89 CALL hm_get_floatv(
'T_Initial', t0, is_available,lsubmodel,unitab)
90 CALL hm_get_floatv(
'Refer_Rho', rho0, is_available_rho0,lsubmodel,unitab)
120 e0 = p0/(gamma-one)/(one+mu0)
129 CALL ancmsg(msgid=67,msgtype=msgerror,anmode=aninfo,i1=imideos,
130 . c1=
'/EOS/IDEAL-GAS',
131 . c2=
'INITIAL PRESSURE MUST BE POSITIVE')
135 CALL ancmsg(msgid=67,msgtype=msgerror,anmode=aninfo,i1=imideos,
136 . c1=
'/EOS/IDEAL-GAS',
137 . c2=
'SPECIFIC HEAT RATIO (GAMMA) MUST BE GREATER THAN 1.0')
140 IF (t0 == zero) t0 = three100
141 mat_param%THERM%TINI =three100
145 IF(rho0*t0 /= zero)
THEN
152 pm(32) = (gamma-one)*e0
157 mat_param%EOS%NUPARAM = 3
158 mat_param%EOS%NIPARAM = 0
159 mat_param%EOS%NFUNC = 0
160 mat_param%EOS%NTABLE = 0
161 CALL mat_param%EOS%CONSTRUCT()
163 mat_param%EOS%UPARAM(1) = gamma
164 mat_param%EOS%UPARAM(2) = p0
165 mat_param%EOS%UPARAM(3) = t0
166 mat_param%EOS%PSH = psh
167 mat_param%EOS%Cv = cv
168 mat_param%EOS%Cp = gamma * cv
169 mat_param%EOS%E0 = e0
175 dpdmu = (gamma-one)*e0+(one+mu0)*(gamma-one)*df*df*(pm(31)+psh)
177 dpdmu=
max(zero,dpdmu)
178 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
184 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
186 WRITE(iout,1500)gamma,p0,psh,t0,e0,cv
188 IF(is_available_rho0)
WRITE(iout,1501)pm(1)
192 & 5x,
' IDEAL GAS EOS ',/,
193 & 5x,
' ------------- ',/)
195 & 5x,
'GAMMA . . . . . . . . . . . . . . . . . .=',1pg20.13/,
196 & 5x,
'P0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
197 & 5x,
'PSH . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
198 & 5x,
'T0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
199 & 5x,
'E0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
200 & 5x,
'COMPUTED HEAT CAPACITY (Cv) . . . . . . .=',1pg20.13)
202 & 5x,
'EOS REFERENCE DENSITY . . . . . . . . . .=',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)