36
37
38
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57#include "implicit_f.inc"
58
59
60
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
66
67
68
69#include "param_c.inc"
70
71
72
73 my_real gamma, p0,t0, e0, psh, rho0,fac_l,fac_t,fac_m,fac_c,k0,k1,rhoi,rhor,mu0,df,ssp0,g0,dpdmu
74 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE, IS_AVAILABLE_RHO0
75
76
77
78 is_encrypted = .false.
79 is_available = .false.
80 is_available_rho0 = .false.
81
83
84 CALL hm_get_floatv(
'EOS_K0', k0, is_available,lsubmodel,unitab)
86 CALL hm_get_floatv(
'LAW5_P0', p0, is_available,lsubmodel,unitab)
87 CALL hm_get_floatv(
'LAW5_PSH', psh, is_available,lsubmodel,unitab)
88 CALL hm_get_floatv(
'Refer_Rho', rho0, is_available_rho0,lsubmodel,unitab)
89
90 rhor = pm(1)
91 rhoi = pm(89)
92
93 IF(rho0 > zero) THEN
94 rhor = rho0
95 pm(1)= rho0
96 ELSE
97 rho0=rhor
98 ENDIF
99
100 e0=zero
101
102 IF(k0 <= zero)THEN
103 CALL ancmsg(msgid=67,msgtype=msgerror,anmode=aninfo,i1=imideos,
104 . '/EOS/MURNAGHAN',
105 . c2='K0 MUST BE POSITIVE')
106 ENDIF
107
108 pm(32)=p0
109 pm(36)=k0
110 pm(88)=psh
111 pm(23)=e0
112 pm(35)=k1
113 IF(pm(79)==zero)pm(79)=three100
114
115 IF(rhoi == zero)THEN
116 mu0 = zero
117 ELSE
118 IF(rhor /= zero)THEN
119 mu0 = rhoi/rhor-one
120 ELSE
121 mu0 = zero
122 ENDIF
123 ENDIF
124
125 IF(rhoi /= zero)THEN
126 df = rhor/rhoi
127 ELSE
128 df = zero
129 ENDIF
130
131
132 pm(31) = k0/k1 * (exp(k1*log(1+mu0)) - one ) + p0 - psh
133 pm(104)= k0/k1 * (exp(k1*log(1+mu0)) - one ) + p0 - psh
134
135
136 ssp0 = zero
137 g0 = pm(22)
138 rhoi = pm(89)
139 dpdmu = k0*exp( k1*log(1+mu0) )/(one+mu0)
140 dpdmu =
max(zero,dpdmu)
141 IF(rhor > zero) ssp0 = sqrt((dpdmu + two_third*g0)/rhor)
142 pm(27)=ssp0
143 WRITE(iout,1000)
144
145 IF(is_encrypted)THEN
146 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
147 ELSE
148 WRITE(iout,1500)k0,k1,p0,pm(31),psh
149 IF(is_available_rho0)WRITE(iout,1501)pm(1)
150 ENDIF
151
152 RETURN
153 1000 FORMAT(
154 & 5x,' MURNAGHAN EOS ',/,
155 & 5x,' ------------- ',/)
156 1500 FORMAT(
157 & 5x,'K0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
158 & 5x,'K1. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
159 & 5x,'P0. . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
160 & 5x,'INITIAL PRESSURE. . . . . . . . . . . . .=',1pg20.13/,
161 & 5x,'PSH . . . . . . . . . . . . . . . . . . .=',1pg20.13)
162 1501 FORMAT(
163 & 5x,'EOS REFERENCE DENSITY . . . . . . . . . .=',1pg20.13)
164
165
166 RETURN
167
168
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
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)