39 SUBROUTINE hm_read_mat151( MTAG, PM, IPM, ID, TITR, MULTI_FVM, UNITAB, LSUBMODEL, MATPARAM )
49 USE matparam_def_mod,
ONLY : matparam_struct_
54#include "implicit_f.inc"
63 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
64 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI)
65 INTEGER,
INTENT(IN) :: ID
66 my_real,
INTENT(INOUT) :: pm(npropm)
67 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
69 TYPE(multi_fvm_struct),
INTENT(INOUT) ::
71 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
75 LOGICAL :: IS_AVAILABLE
76 INTEGER :: NBMAT, MAT_ID
78 my_real :: frac_vol, sum_frac_vol
85 is_available = .false.
87 CALL hm_get_intv(
'NIP',nbmat,is_available,lsubmodel)
88 multi_fvm%NBMAT =
max(multi_fvm%NBMAT, nbmat)
92 CALL ancmsg(msgid = 87, msgtype = msgerror, anmode = aninfo)
98 matparam%MULTIMAT%NB = nbmat
100 IF(.NOT.
ALLOCATED(matparam%multimat%vfrac))
ALLOCATE(matparam%multimat%vfrac(nbmat))
101 IF(.NOT.
ALLOCATED(matparam%multimat%mid))
ALLOCATE(matparam%multimat%mid(nbmat))
108 ipm(20 + ii) = mat_id
109 pm(20 + ii) = frac_vol
112 sum_frac_vol = sum_frac_vol + frac_vol
113 IF (frac_vol < zero .OR. frac_vol > one)
THEN
115 CALL ancmsg(msgid = 1511, msgtype = msgerror, anmode = aninfo, c1 =
"ERROR", i1 = id, i2 = mat_id, r1 = frac_vol)
117 CALL ancmsg(msgid = 1511, msgtype = msgwarning, anmode = aninfo, c1 =
"WARNING", i1 = id, i2 = mat_id, r1 = frac_vol)
123 IF (abs(one-sum_frac_vol) > em14)
THEN
125 CALL ancmsg(msgid = 1512, msgtype = msgerror, anmode = aninfo, c1 =
"ERROR", i1 = id, r1 = sum_frac_vol)
127 CALL ancmsg(msgid = 1512, msgtype = msgwarning, anmode = aninfo, c1 =
"WARNING", i1 = id, r1 = sum_frac_vol)
128 IF(sum_frac_vol == zero)
THEN
155 matparam%multimat%vfrac(1:nbmat) = vfrac(1:nbmat)
156 matparam%multimat%mid(1:nbmat) = imid(1:nbmat)
159 WRITE(iout,1000) nbmat
161 WRITE(iout, 1010) matparam%multimat%mid(ii), matparam%multimat%vfrac(ii)
165 & 5x,
' MULTIFLUID LAW ',/,
166 & 5x,
' -------------- ',/,
167 & 5x,
' NUMBER OF MATERIALS. . . . . . .=',i8//)
169 & 5x,
' MATERIAL ID', i8,
' ; VOLUME FRACTION',1pg20.13/)
subroutine hm_read_mat151(mtag, pm, ipm, id, titr, multi_fvm, unitab, lsubmodel, matparam)
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)