57#include "implicit_f.inc"
61 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
62 INTEGER IIN,IOUT,IUNIT
64 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
65 INTEGER,
INTENT(IN) :: IMIDEOS
73 my_real gamma, p0,t0, e0, psh, rho0,fac_l,fac_t,fac_m,fac_c, fac_e
74 my_real a1,a2,b0,b1,b2,c0,c1,d0,rhoi,rhor,dpdmu_partial,dpde,df,mu0,dpdmu,a2_,g0,ssp0, denom
75 LOGICAL :: , IS_AVAILABLE, IS_AVAILABLE_RHO0
79 is_encrypted = .false.
80 is_available = .false.
81 is_available_rho0 = .false.
85 CALL hm_get_floatv(
'EOS_A1', a1, is_available,lsubmodel,unitab)
86 CALL hm_get_floatv(
'EOS_A2', a2, is_available,lsubmodel,unitab)
87 CALL hm_get_floatv(
'EOS_B0', b0, is_available,lsubmodel,unitab)
88 CALL hm_get_floatv(
'EOS_B1', b1, is_available,lsubmodel,unitab)
89 CALL hm_get_floatv(
'EOS_B2', b2, is_available,lsubmodel,unitab)
91 CALL hm_get_floatv(
'EOS_C0', c0, is_available,lsubmodel,unitab)
92 CALL hm_get_floatv(
'EOS_C_1', c1, is_available,lsubmodel,unitab)
93 CALL hm_get_floatv(
'EOS_D0', d0, is_available,lsubmodel,unitab)
94 CALL hm_get_floatv(
'LAW5_P0', p0, is_available,lsubmodel,unitab)
96 CALL hm_get_floatv(
'Refer_Rho', rho0, is_available_rho0,lsubmodel,unitab)
119 CALL ancmsg(msgid=67, msgtype=msgerror, anmode=aninfo,
122 . c2=
'PARAMETERS MUST BE STRICTLY POSITIVE')
127 e0 =-half*(b0-p0-sqrt(four*c0*d0*p0+b0**two-two*b0*p0+p0**two))/c0
143 IF(pm(79)==zero)pm(79)=three100
168 IF(mu0 < zero)a2_=-a2
170 dpdmu_partial = (a1+2*a2_*mu0+(two*b2*mu0+b1)*e0+c1*e0*e0)/denom
171 dpde = (((b2*mu0+b1)*mu0+b0)+(two*(c1*mu0+c0))*e0 - p0/denom)/denom
172 dpdmu = dpdmu_partial + dpde*df*df*(p0)
174 dpdmu=
max(zero,dpdmu)
175 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
181 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
183 WRITE(iout,1500)a1,a2,b0,b1,b2,c0,c1,d0,p0
184 IF(is_available_rho0)
WRITE(iout,1501)pm(1)
189 & 5x,
' OSBORNE EOS ',/,
190 & 5x,
' ----------- ',/)
192 & 5x,
'A1. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
193 & 5x,
'A2. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
194 & 5x,
'B0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
195 & 5x,
'B1. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
196 & 5x,
'B2. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
197 & 5x,
'C0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
198 & 5x,
'C1. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
199 & 5x,
'D0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
200 & 5x,
'P0. . . . . . . . . . . . . . . . . . . .=',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)