58#include "implicit_f.inc"
62 TYPE (),
INTENT(IN) ::UNITAB
63 INTEGER IIN,IOUT,IUNIT
64 INTEGER,
INTENT(IN) :: IEOS
66 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
67 INTEGER,
INTENT(IN) :: IMIDEOS
68 TYPE(
eos_tag_),
DIMENSION(0:MAXEOS) ,
INTENT(INOUT) :: EOS_TAG
76 my_real :: c1, c2, a, b, er, es, vs, e0, rho0,rhoi,rhor,
alpha, beta,
77 . fac_l,fac_t,fac_m,fac_c,facc1,facc2,facpb,mu0,mu2,df,eta,
78 . omega,aa,bb,pp,xx,expa,expb,dpdmu, ssp0, g0
79 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE,
83 is_encrypted = .false.
84 is_available = .false.
85 is_available_rho0 = .false.
87 eos_tag(ieos)%NVAR = 1
91 CALL hm_get_floatv(
'EOS_C1', c1, is_available,lsubmodel,unitab)
92 CALL hm_get_floatv(
'EOS_C2', c2, is_available,lsubmodel,unitab)
99 CALL hm_get_floatv(
'MAT_EA', e0 ,is_available,lsubmodel,unitab)
100 CALL hm_get_floatv(
'Refer_Rho', rho0 ,is_available_rho0,lsubmodel,unitab)
103 CALL hm_get_floatv(
'Beta', beta ,is_available,lsubmodel,unitab)
121 IF(pm(79)==zero)pm(79)=three100
151 IF(df>vs .OR. (df<=vs .AND. e0>=es) )
THEN
153 expa = exp(-
alpha*xx*xx)
160 omega = one+e0/(er*eta**2)
161 aa = facc1*c1*mu0+facc2*c2*mu2
163 pp =
max(aa+bb*eta*e0,pm(37))
171 dpdmu=facc1*c1+two*facc2*c2*mu0+bb*eta*pp*df*df
172 . +e0*( bb+(two*e0/eta-pp*df*df)
173 . *b*facpb/(er*eta*omega**2) )
174 dpdmu=
max(zero,dpdmu)
175 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
180 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
182 WRITE(iout,1500)c1,c2,a,b,er,es,vs,e0,pm(31),
alpha,beta
183 IF(is_available_rho0)
WRITE(iout,1501)pm(1)
189 & 5x,
' TILLOTSON EOS ',/,
190 & 5x,
' -------------- ',/)
192 & 5x,
'C1. . . . . . . . . . . . . . . . . . . .=',1pg20
193 & 5x,
'C2. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
194 & 5x,
'A . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
195 & 5x,'b . . . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
196 & 5X,'ref internal energy (per unit volume) . .=
',1PG20.13/,
197 & 5X,'sublimation energy(per unit volume) . .=
',1PG20.13/,
198 & 5X,'sublimation relative volume . . . . . . .=
',1PG20.13/,
199 & 5X,'initial internal energy(per unit volume).=
',1PG20.13/,
200 & 5X,'initial pressure. . . . . . . . . . . . .=
',1PG20.13/,
201 & 5X,'alpha . . . . . . . . . . . . . . . . . .=
',1PG20.13/,
202 & 5X,'beta. . . . . . . . . . . . . . . . . . .=
',1PG20.13)
204 & 5X,'eos reference density . . . . . . . . . .=
',1PG20.13)
subroutine hm_read_eos(mat_param, ipm, pm, bufmat, nummat, nfunct, buflen, iadbuf, eos_tag, unitab, lsubmodel, mlaw_tag, npc, tf, snpc, npts, sbufmat, ntable, table)