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_realINTENT(INOUT) :: pm(npropm)
67 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
69 TYPE(multi_fvm_struct),
INTENT(INOUT) :: MULTI_FVM
71 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
76INTEGER :: NBMAT, MAT_ID
78 my_real :: frac_vol, sum_frac_vol
84 is_available = .false.
86 CALL hm_get_intv(
'NIP',nbmat,is_available,lsubmodel)
87 multi_fvm%NBMAT =
max(multi_fvm%NBMAT, nbmat)
91 CALL ancmsg(msgid = 87, msgtype = msgerror, anmode = aninfo)
97 matparam%MULTIMAT%NB = nbmat
99 IF(.NOT.
ALLOCATED(matparam%multimat%vfrac))
ALLOCATE(matparam%multimat%vfrac(nbmat))
100 IF(.NOT.
ALLOCATED(matparam%multimat%mid))
ALLOCATE(matparam%multimat%mid(nbmat))
107 ipm(20 + ii) = mat_id
108 pm(20 + ii) = frac_vol
111 sum_frac_vol = sum_frac_vol + frac_vol
112 IF (frac_vol < zero .OR. frac_vol > one)
THEN
114 CALL ancmsg(msgid = 1511, msgtype = msgerror, anmode = aninfo, c1 =
"ERROR", i1 = id, i2 = mat_id, r1 = frac_vol)
116 CALL ancmsg(msgid = 1511, msgtype = msgwarning, anmode = aninfo, c1 =
"WARNING", i1 = id, i2 = mat_id, r1 = frac_vol)
122 IF (sum_frac_vol /= one)
THEN
124 CALL ancmsg(msgid = 1512, msgtype = msgerror, anmode = aninfo, c1 =
"ERROR", i1 = id, r1 = sum_frac_vol)
126 CALL ancmsg(msgid = 1512, msgtype = msgwarning, anmode = aninfo, c1 =
"WARNING", i1 = id, r1 = sum_frac_vol)
127 IF(sum_frac_vol == zero)
THEN
154 matparam%multimat%vfrac(1:nbmat) = vfrac(1:nbmat)
155 matparam%multimat%mid(1:nbmat) = imid(1:nbmat)
158 WRITE(iout,1000) nbmat
164 & 5x,
' MULTIFLUID LAW ',/,
165 & 5x,
' -------------- ',/,
166 & 5x,
' NUMBER OF MATERIALS. . . . . . .=',i8//)
168 & 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)