39 . LSUBMODEL ,MTAG6 ,UNITAB ,IPM ,PM,
40 . MAT_ID ,TITR ,ISRATE,
41 . ITYP ,MTAG17 ,MATPARAM )
65#include "implicit_f.inc"
75 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
76 INTEGER,
INTENT(INOUT) :: MAT_ID
77 INTEGER,
INTENT(INOUT) :: ISRATE
78 INTEGER,
DIMENSION(NPROPMI) ,
INTENT(INOUT) :: IPM
79 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
80 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
83INTEGER,
INTENT(IN) :: ITYP
84 TYPE(matparam_struct_),
INTENT(INOUT) :: MATPARAM
88 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED,IS_EOS
89 INTEGER JTUR, I, EMPTY_LINE
92 . ssl, ctm, sk, se, rpr, ct1, ct2, ct3, ak, e, a, b, yp0, yp1,
105 CALL hm_get_intv ('line_count
' ,COUNT ,IS_AVAILABLE, LSUBMODEL)
106 CALL HM_GET_FLOATV('mat_rho
' ,RHO0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
107 CALL HM_GET_FLOATV('refer_rho
' ,RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
108 CALL HM_GET_BOOLV ('eos_data_exist
' ,IS_EOS ,IS_AVAILABLE)
109 CALL HM_GET_INTV ('law6_opt
' ,LAW6_OPT ,IS_AVAILABLE, LSUBMODEL) !1:HYD_VISC,2:HYDRO,3:K-EPS
110 CALL HM_GET_FLOATV('damp1
' ,VIS ,IS_AVAILABLE, LSUBMODEL, UNITAB)
111 CALL HM_GET_FLOATV('mat_pc
' ,PMIN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
113 IF(COUNT==3)IS_EOS=.TRUE. !EoS no longer embedded since format 2018, but still compatible
114 IF(INVERS_INIT<2018)IS_EOS=.TRUE. !no embedded EoS before up to format 2017
117 IEOS = 1 ! polynomial EOS
118 CALL HM_GET_FLOATV('mat_c0
' ,C0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('mat_c1' ,c1 ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_C2' ,c2 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv'MAT_C3' ,c3 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_C4' ,c4 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_C5' ,c5 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_EA' ,e0 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_PSH' ,psh ,is_available, lsubmodel, unitab)
138 IF (pmin == zero) pmin=-infinity
139 IF (rhor == zero) rhor=rho0
146 IF(rhor /= zero)
THEN
152 pm(31) = -psh + c0+c1*mu+ c3*mu**3+(c4+c5*mu)*e0
154 pm(31) = -psh + c0+c1*mu+c2*mu**2+c3*mu**3+(c4+c5*mu)*e0
184 WRITE(iout,2001) trim(titr),mat_id,6
188 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
190 WRITE(iout,2002)rho0,rhor
193 WRITE(iout,1500)c0,c1,c2,c3,c4,c5,pmin,pm(31),e0
195 WRITE(iout,2002)rho0,rhor
221 & 5x,
' VISCOUS FLUID ',/,
222 & 5x,
' -------------- ',//)
224 & 5x,
'VISCOSITY . . . . . . . . . . . . . . .=',1pg20.13)
226 & 5x,
'PSH PRESSURE SHIFT. . . . . . . . . . .=',1pg20.13/)
228 & 5x,
'C0. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
229 & 5x,
'C1. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
230 & 5x,
'C2. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
231 & 5x,
'C3. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
232 & 5x,
'C4. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
233 & 5x,
'C5. . . . . . . . . . . . . . . . . . .=',1pg20.13/,
234 & 5x,
'PRESSURE CUTOFF . . . . . . . . . . . .=',1pg20.13/,
235 & 5x,
'INITIAL PRESSURE. . . . . . . . . . . .=',1pg20.13/,
236 & 5x,
'INITIAL INTERNAL ENERGY PER UNIT VOLUME=',1pg20.13//)
238 & 5x,
'PRESSURE CUTOFF . . . . . . . . . . . .=',1pg20.13//)
241 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
242 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10
244 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/,
245 & 5x,
'REFERENCE DENSITY . . . . . . . . . . .=',1pg20.13)
subroutine hm_read_mat06(lsubmodel, mtag6, unitab, ipm, pm, mat_id, titr, israte, ityp, mtag17, matparam)