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 :: c, s1, s2, s3, gama0, a, e0, rho0,rhoi,rhor
75 my_real :: mu0, df, ssp0, g0, fac, ff, fg, xx, dff, dfg
78 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE, IS_AVAILABLE_RHO0
82 is_encrypted = .false.
83 is_available = .false.
84 is_available_rho0 = .false.
93 CALL hm_get_floatv(
'GAMMA',gama0, is_available,lsubmodel,unitab)
98 CALL hm_get_floatv(
'Refer_Rho', rho0 ,is_available_rho0,lsubmodel,unitab)
100 IF(a == zero) a=gama0
104 CALL ancmsg(msgid=67,msgtype=msgerror,anmode=aninfo,i1=imideos,
105 . c1=
'/EOS/GRUNEISEN',
106 . c2=
'INITIAL PRESSURE MUST BE STRICTLY POSITIVE (TOTAL PRESSURE). USE PSH PARAMETER TO SHIFT THE PRESSURE')
109 IF(p0 > zero .AND. e0 /= zero)
THEN
110 CALL ancmsg(msgid=67,msgtype=msgerror,anmode=aninfo,i1=imideos,
111 . c1=
'/EOS/GRUNEISEN',
112 . c2=
'INITIAL PRESSURE PROVIDED. E0 IS CONSEQUENTLY REDEFINED SUCH AS P(RHO0,E0)=P0')
138 if(gama0 /= zero)
then
139 e0 = (p0-rho0*c*c*mu0)/(gama0+a*mu0)
157 ff=one+(one-half*gama0)*mu0-half*a*mu2
158 fg=one-(s1-one+s2*xx+s3*xx*xx)*mu0
160 dff=one-half*gama0-a*mu0
161 dfg=one-s1+xx*(-two*s2+xx*(s2-three*s3)+two*s3*xx*xx)
162 fac1=fac*(one+mu0*(dff/ff-two*dfg/fg))
166 pp=
max(aa+bb*e0,pm(37))
168 dpdmu=fac1*rhoi*c*c+pp*df*df*bb+a*e0
169 dpdmu=
max(zero,dpdmu)
170 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
182 IF(pm(79)==zero)pm(79)=three100
189 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
191 WRITE(iout,1500)c,s1,s2,s3,gama0,a,e0,pp,psh,pp-psh
192 IF(is_available_rho0)
WRITE(iout,1501)pm(1)
198 & 5x,
' MIE-GRUNEISEN EOS ',/,
199 & 5x,
' ----------------- ',/)
201 & 5x,
'C . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
202 & 5x,
'S1. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
203 & 5x,
'S2. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
204 & 5x,
'S3. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
205 & 5x,
'GAMA0 . . . . . . . . . . . . . . . . . .=',1pg20.13/,
206 & 5x,
'A . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
207 & 5x,
'INITIAL INTERNAL ENERGY PER UNIT VOLUME .=',1pg20.13/,
208 & 5x,
'INITIAL PRESSURE . . . . . . . . . . . .=',1pg20.13/,
209 & 5x,
'PRESSURE SHIFT . . . . . . . . . . . . .=',1pg20.13/,
210 & 5x,
'INITIAL PRESSURE (SHIFTED) . . . . . . .=',1pg20.13)
212 & 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)