53 use read_therpmaram_mod
54 use read_ale_rezoning_param_mod ,
only : read_ale_rezoning_param
58#include "implicit_f.inc"
62 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
66 INTEGER :: I,IMAT,NUMMAT,NUMTABL,NUPARAM,NIPARAM,NFAIL
67 INTEGER :: IAD,NFIX,NFIXR,LEN,LENR,NMOD,MOD
68 INTEGER ,
DIMENSION(NCHARTITLE) :: NAME
69 INTEGER ,
DIMENSION(:) ,
ALLOCATABLE :: IBUF
71 my_real ,
DIMENSION(:) ,
ALLOCATABLE :: rbuf
75 nummat = mat_elem%NUMMAT
76 ALLOCATE(mat_elem%MAT_PARAM(nummat))
78 CALL mat_elem%MAT_PARAM(imat)%ZEROING
88 mat_elem%MAT_PARAM(imat)%ILAW = ibuf(iad+ 1)
89 mat_elem%MAT_PARAM(imat)%MAT_ID = ibuf
90 mat_elem%MAT_PARAM(imat)%NUPARAM = ibuf(iad+ 3)
91 mat_elem%MAT_PARAM(imat)%NIPARAM = ibuf(iad+ 4)
92 mat_elem%MAT_PARAM(imat)%NFUNC = ibuf(iad+ 5)
93 mat_elem%MAT_PARAM(imat)%NTABLE = ibuf(iad+ 6)
94 mat_elem%MAT_PARAM(imat)%NSUBMAT = ibuf(iad+ 7)
95 mat_elem%MAT_PARAM(imat)%NFAIL = ibuf(iad+ 8)
96 mat_elem%MAT_PARAM(imat)%IVISC = ibuf(iad+ 9)
97 mat_elem%MAT_PARAM(imat)%IEOS = ibuf(iad+10)
98 mat_elem%MAT_PARAM(imat)%ITHERM = ibuf(iad+11)
99 mat_elem%MAT_PARAM(imat)%IEXPAN = ibuf(iad+12)
100 mat_elem%MAT_PARAM(imat)%IALE = ibuf(iad+13)
101 mat_elem%MAT_PARAM(imat)%ITURB = ibuf(iad+14)
102 mat_elem%MAT_PARAM(imat)%HEAT_FLAG = ibuf(iad+15)
103 mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY = ibuf(iad+16)
104 mat_elem%MAT_PARAM(imat)%SMSTR = ibuf(iad+17)
105 mat_elem%MAT_PARAM(imat)%STRAIN_FORMULATION = ibuf(iad+18)
106 mat_elem%MAT_PARAM(imat)%IPRES = ibuf
107 mat_elem%MAT_PARAM(imat)%ORTHOTROPY = ibuf(iad+20)
108 mat_elem%MAT_PARAM(imat)%NLOC = ibuf(iad+21)
109 mat_elem%MAT_PARAM(imat)%IFAILWAVE = ibuf(iad+22)
110 mat_elem%MAT_PARAM(imat)%IXFEM = ibuf(iad+23)
111 mat_elem%MAT_PARAM(imat)%NMOD = ibuf(iad+24)
119 ALLOCATE (rbuf(lenr) )
123 mat_elem%MAT_PARAM(imat)%RHO = rbuf(iad + 1)
124 mat_elem%MAT_PARAM(imat)%RHO0 = rbuf(iad + 2)
125 mat_elem%MAT_PARAM(imat)%YOUNG = rbuf(iad + 3)
126 mat_elem%MAT_PARAM(imat)%BULK = rbuf(iad + 4)
127 mat_elem%MAT_PARAM(imat)%SHEAR = rbuf(iad + 5)
128 mat_elem%MAT_PARAM(imat)%NU = rbuf(iad + 6)
129 mat_elem%MAT_PARAM(imat)%STIFF_CONTACT = rbuf(iad + 7)
130 mat_elem%MAT_PARAM(imat)%STIFF_HGLASS = rbuf(iad + 8)
131 mat_elem%MAT_PARAM(imat)%STIFF_TSTEP = rbuf(iad + 9)
140 mat_elem%MAT_PARAM(imat)%TITLE(i:i) = char(name(i))
146 nuparam = mat_elem%MAT_PARAM(imat)%NUPARAM
147 niparam = mat_elem%MAT_PARAM(imat)%NIPARAM
148 ALLOCATE(mat_elem%MAT_PARAM(imat)%UPARAM(nuparam))
149 ALLOCATE(mat_elem%MAT_PARAM(imat)%IPARAM(niparam))
150 mat_elem%MAT_PARAM(imat)%UPARAM = zero
151 mat_elem%MAT_PARAM(imat)%IPARAM = 0
152 IF (nuparam > 0)
THEN
153 CALL read_db(mat_elem%MAT_PARAM(imat)%UPARAM ,nuparam)
155 IF (niparam > 0)
THEN
156 CALL read_i_c(mat_elem%MAT_PARAM(imat)%IPARAM ,niparam)
162 numtabl = mat_elem%MAT_PARAM(imat)%NTABLE
163 IF (numtabl > 0)
THEN
164 ALLOCATE (mat_elem%MAT_PARAM(imat)%TABLE(numtabl))
171 IF (mat_elem%MAT_PARAM(imat)%IVISC > 0)
THEN
179 itherm = mat_elem%MAT_PARAM(imat)%ITHERM
181 CALL read_thermparam(mat_elem%MAT_PARAM(imat)%THERM)
188 nfail = mat_elem%MAT_PARAM(imat)%NFAIL
190 ALLOCATE (mat_elem%MAT_PARAM(imat)%FAIL(nfail))
199 nmod = mat_elem%MAT_PARAM(imat)%NMOD
201 ALLOCATE(mat_elem%MAT_PARAM(imat)%MODE(nmod))
205 mat_elem%MAT_PARAM(imat)%MODE(mod)(i:i) = char(name(i))
209 ALLOCATE(mat_elem%MAT_PARAM(imat)%MODE(0))
219 mat_elem%MAT_PARAM(imat)%MULTIMAT%NB = nbsubmat
223 mat_elem%MAT_PARAM(imat)%MULTIMAT%mid = ibuf(1:nbsubmat
224 mat_elem%MAT_PARAM(imat)%MULTIMAT%vfrac = rbuf(1:nbsubmat)
232 mat_elem%MAT_PARAM(imat)%EOS%CV=zero
233 mat_elem%MAT_PARAM(imat)%EOS%CP=zero
234 IF (mat_elem%MAT_PARAM(imat)%IEOS > 0)
THEN
235 CALL read_eosparam(mat_elem%MAT_PARAM(imat)%EOS)
241 CALL read_ale_rezoning_param(mat_elem%MAT_PARAM(imat)%REZON)