64 . MAT_PARAM ,IPM ,PM ,BUFMAT ,NUMMAT ,NFUNCT ,
65 . BUFLEN ,IADBUF ,EOS_TAG ,UNITAB ,LSUBMODEL,
66 . MLAW_TAG ,NPC ,TF ,SNPC ,NPTS ,SBUFMAT,
78 USE hm_read_eos_compaction_mod ,
ONLY : hm_read_eos_compaction
79 USE hm_read_eos_compaction2_mod ,
ONLY : hm_read_eos_compaction2
80 USE hm_read_eos_compaction_tab_mod ,
ONLY : hm_read_eos_compaction_tab
85#include "implicit_f.inc"
94 INTEGER,
INTENT(IN) :: NUMMAT, NTABLE, NFUNCT
95 TYPE(MLAW_TAG_) ,
DIMENSION(NUMMAT),
INTENT(INOUT) :: MLAW_TAG
96 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
97 INTEGER :: BUFLEN,IADBUF
98 INTEGER,
INTENT(IN) :: SBUFMAT
99 INTEGER ,
DIMENSION(NPROPMI,NUMMAT) ,
INTENT(INOUT) :: IPM
100 INTEGER,
INTENT(IN) :: SNPC, NPTS
101 INTEGER,
INTENT(IN) :: NPC(SNPC)
103 my_real ,
DIMENSION(NPROPM ,NUMMAT) ,
INTENT(INOUT)
104 my_real ,
DIMENSION(SBUFMAT),
INTENT(INOUT) :: bufmat
105 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
106 TYPE(
eos_tag_),
DIMENSION(0:MAXEOS) ,
INTENT(INOUT) :: EOS_TAG
107 TYPE(
submodel_data) ,
DIMENSION(NSUBMOD) ,
INTENT(IN) :: LSUBMODEL
108 TYPE(
ttable) ,
DIMENSION(NTABLE) ,
INTENT(IN) :: TABLE
112 INTEGER :: I,IMAT,IEOS,HM_NEOS,IUNIT,FLAGUNIT,FLAGMAT,IMID,,MTN,UNIT_ID
113 CHARACTER(LEN=NCHARTITLE) :: TITR
114 CHARACTER KEY2*32, EOS_key*32
159 CALL hm_option_read_key(lsubmodel, option_id=eos_uid, option_titr=titr, unit_id=unit_id)
161 eos_key = key2(1:len_trim(key2))
166 IF (imid == eos_uid)
THEN
171 IF (eos_uid > 0 .AND. flagmat == 0)
THEN
172 CALL ancmsg(msgid=1663, anmode=aninfo, msgtype=msgerror, i1=eos_uid, c1=
'EOS', c2=eos_key, c3=titr)
177 DO iunit=1,unitab%NUNITS
178 IF (unitab%UNIT_ID(iunit) == unit_id)
THEN
183 IF (unit_id > 0 .AND. flagunit == 0)
THEN
184 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,i1=eos_uid,i2=unit_id,c1=
'MATERIAL',c2=
'EOS MODEL',c3=titr)
188 mat_param(imat)%EOS%TITLE =
''
189 mat_param(imat)%EOS%TITLE(1:len_trim(titr)) = titr(1:len_trim(titr))
190 mat_param(imat)%EOS%NUPARAM = 0
191 mat_param(imat)%EOS%NIPARAM = 0
192 mat_param(imat)%EOS%NFUNC = 0
193 mat_param(imat)%EOS%NTABLE = 0
194 mat_param(imat)%EOS%ISFLUID = 0
197 WRITE(iout,1000) trim(titr),eos_uid
199 SELECT CASE (eos_key)
219 CALL hm_read_eos_sesame(iout,pm(1,imat),unitab,iunit,lsubmodel,eos_uid,imid,titr,bufmat,buflen,iadbuf)
221 CASE (
'NOBLE-ABEL',
'NA')
226 CASE (
'IDEAL-GAS',
'IDEAL-GAS-VE')
239 CASE (
'STIFF-GAS',
'SG')
251 CALL hm_read_eos_powderburn(iout,pm(1,imat),ipm(1,imat),unitab,lsubmodel,eos_uid, mat_param(imat),
252 . npropm, npropmi, mlaw_tag(imat), eos_tag, ieos )
256 CALL hm_read_eos_compaction(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,
257 . mat_param(imat)%EOS )
264 CASE (
'IDEAL-GAS-VT')
279 CALL hm_read_eos_exponential(iout,pm(1,imat),unitab,lsubmodel,npropm)
283 CALL hm_read_eos_compaction2(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,
284 . mat_param(imat)%EOS, iunit, nfunct, npc, tf ,snpc , npts)
285 CASE (
'COMPACTION_TAB')
287 CALL hm_read_eos_compaction_tab(iout,pm(1,imat),unitab,lsubmodel,eos_uid,eos_tag,ieos,npropm,
maxeos,
288 . mat_param(imat)%EOS, ntable, table, mat_param(imat)%REZON)
292 CALL ancmsg(msgid=67,anmode=aninfo,msgtype=msgerror,i1= eos_uid,c1=key2,c2=
'EOS KEYWORD IS NOT VALID')
297 mat_param(imat)%IEOS = ieos
298 mat_param(imat)%EOS%ISFLUID = isfluid
304 IF (mtn /= 42) pm(100,i) = pm(32,i)
310 & 5x,
'EQUATION OF STATE ',/,
312 & 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)