65 . MAT_PARAM ,IPM ,PM ,BUFMAT ,NUMMAT ,NFUNCT ,
66 . BUFLEN ,IADBUF ,EOS_TAG ,UNITAB ,LSUBMODEL,
67 . MLAW_TAG ,NPC ,TF ,SNPC ,NPTS ,SBUFMAT,
79 USE hm_read_eos_exponential_mod ,
ONLY : hm_read_eos_exponential
80 USE hm_read_eos_compaction_mod ,
ONLY : hm_read_eos_compaction
81 USE hm_read_eos_compaction2_mod ,
ONLY : hm_read_eos_compaction2
82 USE hm_read_eos_compaction_tab_mod ,
ONLY : hm_read_eos_compaction_tab
88#include "implicit_f.inc"
97 INTEGER,
INTENT(IN) :: NUMMAT, NTABLE, NFUNCT
98 TYPE(MLAW_TAG_) ,
DIMENSION(NUMMAT),
INTENT(INOUT) :: MLAW_TAG
99 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
101 INTEGER,
INTENT(IN) :: SBUFMAT
102 INTEGER ,
DIMENSION(NPROPMI,NUMMAT) ,
INTENT(INOUT) :: IPM
103 INTEGER,
INTENT(IN) :: SNPC, NPTS
104 INTEGER,
INTENT(IN) :: NPC(SNPC)
106 my_real ,
DIMENSION(NPROPM ,NUMMAT) ,
INTENT(INOUT) :: pm
107 my_real ,
DIMENSION(SBUFMAT),
INTENT(INOUT) :: bufmat
108 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT) ,
TARGET,
INTENT(INOUT) :: MAT_PARAM
109 TYPE(
eos_tag_),
DIMENSION(0:MAXEOS) ,
INTENT(INOUT) :: EOS_TAG
110 TYPE(
submodel_data) ,
DIMENSION(NSUBMOD) ,
INTENT(IN) :: LSUBMODEL
111 TYPE(
ttable) ,
DIMENSION(NTABLE) ,
INTENT(IN) :: TABLE
115 INTEGER :: I,IMAT,IEOS,HM_NEOS,IUNIT,FLAGUNIT,FLAGMAT,IMID,EOS_uid,MTN,UNIT_ID
116 CHARACTER(LEN=NCHARTITLE) :: TITR
117 CHARACTER KEY2*32, EOS_key*32
120 TYPE(eos_param_),
POINTER :: EOS_STRUCT
163 CALL hm_option_read_key(lsubmodel, option_id=eos_uid, option_titr=titr, unit_id=unit_id)
165 eos_key = key2(1:len_trim(key2))
170 IF (imid == eos_uid)
THEN
175 IF (eos_uid > 0 .AND. flagmat == 0)
THEN
176 CALL ancmsg(msgid=1663, anmode=aninfo, msgtype=msgerror, i1=eos_uid, c1=
'EOS', c2=eos_key, c3=titr)
181 DO iunit=1,unitab%NUNITS
182 IF (unitab%UNIT_ID(iunit) == unit_id)
THEN
187 IF (unit_id > 0 .AND. flagunit == 0)
THEN
188 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,i1=eos_uid,i2=unit_id,c1=
'MATERIAL',c2=
'EOS MODEL',c3=titr)
192 mat_param(imat)%EOS%TITLE =
''
193 mat_param(imat)%EOS%TITLE(1:len_trim(titr)) = titr(1:len_trim(titr))
194 mat_param(imat)%EOS%NUPARAM = 0
195 mat_param(imat)%EOS%NIPARAM = 0
196 mat_param(imat)%EOS%NFUNC = 0
197 mat_param(imat)%EOS%NTABLE = 0
198 mat_param(imat)%EOS%ISFLUID = 0
199 eos_struct => mat_param(imat)%EOS
202 WRITE(iout,1000) trim(titr),eos_uid
203 eos_struct%TITLE = eos_key
205 SELECT CASE (eos_key)
217 CALL hm_read_eos_tillotson(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,eos_tag,ieos,mat_param(imat))
221 CALL hm_read_eos_puff(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,mat_param(imat))
227 CASE (
'NOBLE-ABEL',
'NA')
232 CASE (
'IDEAL-GAS',
'IDEAL-GAS-VE')
245 CASE (
'STIFF-GAS',
'SG')
252 CALL hm_read_eos_lszk(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,mat_param(imat))
257 CALL hm_read_eos_powderburn(iout,pm(1,imat),ipm(1,imat),unitab,lsubmodel,eos_uid, mat_param
258 . npropm, npropmi, mlaw_tag(imat), eos_tag, ieos )
262 CALL hm_read_eos_compaction(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,eos_struct)
266 CALL hm_read_eos_nasg(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,mat_param(imat))
269 CASE (
'IDEAL-GAS-VT')
280 CALL hm_read_eos_linear(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,mat_param(imat))
284 CALL hm_read_eos_exponential(iout,pm(1,imat),unitab,lsubmodel,npropm, eos_struct)
288 CALL hm_read_eos_compaction2(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,
289 . eos_struct, nfunct, npc, tf ,snpc , npts, mat_param(imat)%REZON)
290 CASE (
'COMPACTION_TAB')
292 CALL hm_read_eos_compaction_tab(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,
293 . eos_struct, ntable, table, mat_param(imat)%REZON)
297 CALL ancmsg(msgid=67,anmode=aninfo,msgtype=msgerror,i1= eos_uid,c1=key2,c2=
'EOS KEYWORD IS NOT VALID')
302 mat_param(imat)%IEOS = ieos
303 mat_param(imat)%EOS%EOSTYPE = ieos
304 mat_param(imat)%EOS%ISFLUID = isfluid
310 IF (mtn /= 42) pm(100,i) = pm(32,i)
316 & 5x,
'EQUATION OF STATE ',/,
318 & 5x,
'MATERIAL ID . . . . . . . . . . . .=',i10/)
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)