41 USE matparam_def_mod,
ONLY : matparam_struct_
57#include "implicit_f.inc"
61 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
64 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
65 TYPE(matparam_struct_),
INTENT(INOUT) :: MAT_PARAM
66 INTEGER,
INTENT(IN) :: IMIDEOS
67 INTEGER,
INTENT(INOUT) :: ISFLUID
75 my_real :: c0, c1, c2, c3, c4, c5, c6, e0, psh, rho0,rhor,mu0,mu02,rhoi, g0, ssp0, df, dpdmu
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(
'MAT_C0', c0, is_available,lsubmodel,unitab)
87 CALL hm_get_floatv(
'MAT_C1', c1, is_available,lsubmodel,unitab)
88 CALL hm_get_floatv(
'MAT_C2', c2, is_available,lsubmodel,unitab)
90 CALL hm_get_floatv(
'MAT_C4', c4, is_available,lsubmodel,unitab)
91 CALL hm_get_floatv(
'MAT_C5', c5, is_available,lsubmodel,unitab)
92 CALL hm_get_floatv(
'MAT_C6', c6, is_available,lsubmodel,unitab)
93 CALL hm_get_floatv(
'MAT_EA', e0, is_available,lsubmodel,unitab)
94 CALL hm_get_floatv(
'MAT_PSH', psh, is_available,lsubmodel,unitab)
95 CALL hm_get_floatv(
'Refer_Rho', rho0, is_available_rho0,lsubmodel,unitab)
113 mat_param%EOS%NUPARAM = 7
114 mat_param%EOS%NIPARAM = 0
115 mat_param%EOS%NFUNC = 0
116 mat_param%EOS%NTABLE = 0
117 CALL mat_param%EOS%CONSTRUCT()
119 mat_param%EOS%UPARAM(1) = c0-psh
120 mat_param%EOS%UPARAM(2) = c1
121 mat_param%EOS%UPARAM(3) = c2
122 mat_param%EOS%UPARAM(4) = c3
123 mat_param%EOS%UPARAM(5) = c4
124 mat_param%EOS%UPARAM(6) = c5
125 mat_param%EOS%UPARAM(7) = c6
126 mat_param%EOS%PSH = psh
127 mat_param%EOS%E0 = e0
128 IF (mat_param%THERM%TINI == zero)
THEN
129 mat_param%THERM%TINI =three100
143 mu02 = mu0*
max(zero,mu0)
151 pm(31) = c0-psh+c1*mu0+c2*mu02+c3*mu0**3+(c4+c5*mu0+c6*mu02)*e0
158 dpdmu = c1 + two*c2*
max(zero,mu0) + three*c3*mu0*mu0 + (c5+c6*
max(zero,mu0))*e0 + (c4 +c5*mu0 +c6*mu02)*df*df*(pm(31)+psh)
159 dpdmu=
max(zero,dpdmu)
160 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
163 IF(c1 == zero .AND. c2 == zero .AND. c3 == zero .AND. c4 == c5 .AND. c4 > one .AND. c6 == zero)
THEN
169 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
171 WRITE(iout,1500)c0,c1,c2,c3,c4,c5,c6,e0,pm(104),psh
172 IF(is_available_rho0)
WRITE(iout,1501)pm(1
177 & 5x,
' POLYNOMIAL EOS ',/,
178 & 5x,
' -------------- ',/)
180 & 5x,
'C0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
181 & 5x,'c1. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
182 & 5X,'c2. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
183 & 5X,'c3. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
184 & 5X,'c4. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
185 & 5X,'c5. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
186 & 5X,'c6. . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
187 & 5X,'initial internal energy per unit volume .=
',1PG20.13/,
188 & 5X,'initial pressure. . . . . . . . . . . . .=
',1PG20.13/,
189 & 5X,'pressure shift. . . . . . . . . . . . . .=
',1PG20.13)
191 & 5X,'eos reference density . . . . . . . . . .=
',1PG20.13)