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),
TARGET :: 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
72 INTEGER :: OLDFORMAT,ISUB
76 nummat = mat_elem%NUMMAT
77 ALLOCATE(mat_elem%MAT_PARAM(nummat))
79 CALL mat_elem%MAT_PARAM(imat)%ZEROING
89 mat_elem%MAT_PARAM(imat)%ILAW = ibuf(iad+ 1)
90 mat_elem%MAT_PARAM(imat)%MAT_ID = ibuf(iad+ 2)
91 mat_elem%MAT_PARAM(imat)%NUPARAM = ibuf(iad+ 3)
92 mat_elem%MAT_PARAM(imat)%NIPARAM = ibuf(iad+ 4)
93 mat_elem%MAT_PARAM(imat)%NFUNC = ibuf(iad+ 5)
94 mat_elem%MAT_PARAM(imat)%NTABLE = ibuf(iad+ 6)
95 mat_elem%MAT_PARAM(imat)%NSUBMAT = ibuf(iad+ 7)
96 mat_elem%MAT_PARAM(imat)%NFAIL = ibuf(iad+ 8)
97 mat_elem%MAT_PARAM(imat)%IVISC = ibuf(iad+ 9)
98 mat_elem%MAT_PARAM(imat)%IEOS = ibuf(iad+10)
99 mat_elem%MAT_PARAM(imat)%ITHERM = ibuf(iad+11)
100 mat_elem%MAT_PARAM(imat)%IEXPAN = ibuf(iad+12)
101 mat_elem%MAT_PARAM(imat)%IALE = ibuf(iad+13)
102 mat_elem%MAT_PARAM(imat)%ITURB = ibuf(iad+14)
103 mat_elem%MAT_PARAM(imat)%HEAT_FLAG = ibuf(iad+15)
104 mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY = ibuf(iad+16)
105 mat_elem%MAT_PARAM(imat)%SMSTR = ibuf(iad+17)
106 mat_elem%MAT_PARAM(imat)%STRAIN_FORMULATION = ibuf(iad+18)
107 mat_elem%MAT_PARAM(imat)%IPRES = ibuf(iad+19)
108 mat_elem%MAT_PARAM(imat)%ORTHOTROPY = ibuf(iad+20)
109 mat_elem%MAT_PARAM(imat)%NLOC = ibuf(iad+21)
110 mat_elem%MAT_PARAM(imat)%IFAILWAVE = ibuf(iad+22)
111 mat_elem%MAT_PARAM(imat)%IXFEM = ibuf(iad+23)
112 mat_elem%MAT_PARAM(imat)%NMOD = ibuf(iad+24)
120 ALLOCATE (rbuf(lenr) )
124 mat_elem%MAT_PARAM(imat)%RHO = rbuf(iad + 1)
125 mat_elem%MAT_PARAM(imat)%RHO0 = rbuf(iad + 2)
126 mat_elem%MAT_PARAM(imat)%YOUNG = rbuf(iad + 3)
127 mat_elem%MAT_PARAM(imat)%BULK = rbuf(iad + 4)
128 mat_elem%MAT_PARAM(imat)%SHEAR = rbuf(iad + 5)
129 mat_elem%MAT_PARAM(imat)%NU = rbuf(iad + 6)
130 mat_elem%MAT_PARAM(imat)%STIFF_CONTACT = rbuf(iad + 7)
131 mat_elem%MAT_PARAM(imat)%STIFF_HGLASS = rbuf(iad + 8)
132 mat_elem%MAT_PARAM(imat)%STIFF_TSTEP = rbuf(iad + 9)
141 mat_elem%MAT_PARAM(imat)%TITLE(i:i) = char(name(i))
147 nuparam = mat_elem%MAT_PARAM(imat)%NUPARAM
148 niparam = mat_elem%MAT_PARAM(imat)%NIPARAM
149 ALLOCATE(mat_elem%MAT_PARAM(imat)%UPARAM(nuparam))
150 ALLOCATE(mat_elem%MAT_PARAM(imat)%IPARAM(niparam))
151 mat_elem%MAT_PARAM(imat)%UPARAM = zero
152 mat_elem%MAT_PARAM(imat)%IPARAM = 0
153 IF (nuparam > 0)
THEN
154 CALL read_db(mat_elem%MAT_PARAM(imat)%UPARAM ,nuparam)
156 IF (niparam > 0)
THEN
157 CALL read_i_c(mat_elem%MAT_PARAM(imat)%IPARAM ,niparam)
163 numtabl = mat_elem%MAT_PARAM(imat)%NTABLE
164 IF (numtabl > 0)
THEN
165 ALLOCATE (mat_elem%MAT_PARAM(imat)%TABLE(numtabl))
172 IF (mat_elem%MAT_PARAM(imat)%IVISC > 0)
THEN
180 CALL read_thermparam(mat_elem%MAT_PARAM(imat)%THERM)
186 nfail = mat_elem%MAT_PARAM(imat)%NFAIL
188 ALLOCATE (mat_elem%MAT_PARAM(imat)%FAIL(nfail))
197 nmod = mat_elem%MAT_PARAM(imat)%NMOD
199 ALLOCATE(mat_elem%MAT_PARAM(imat)%MODE(nmod))
203 mat_elem%MAT_PARAM(imat)%MODE(mod)(i:i
207 ALLOCATE(mat_elem%MAT_PARAM(imat)%MODE(0))
213 mat_elem%MAT_PARAM(imat)%EOS%CV=zero
214 mat_elem%MAT_PARAM(imat)%EOS%CP=zero
215 mat_elem%MAT_PARAM(imat)%EOS%PSH=zero
216 mat_elem%MAT_PARAM(imat)%EOS%E0=zero
217 mat_elem%MAT_PARAM(imat)%EOS%P0=zero
218 mat_elem%MAT_PARAM(imat)%EOS%PMIN=zero
219 IF (mat_elem%MAT_PARAM(imat)%IEOS > 0)
THEN
220 CALL read_eosparam(mat_elem%MAT_PARAM(imat)%EOS)
231 mat_elem%MAT_PARAM(imat)%MULTIMAT%NB = nbsubmat
232 mat_elem%MAT_PARAM(imat)%MULTIMAT%old_data_format = oldformat
236 mat_elem%MAT_PARAM(imat)%MULTIMAT%mid = ibuf(1:nbsubmat)
237 mat_elem%MAT_PARAM(imat)%MULTIMAT%vfrac = rbuf(1:nbsubmat)
238 ALLOCATE (mat_elem%MAT_PARAM(imat)%MULTIMAT%pEOS(nbsubmat))
239 IF(oldformat == 1)
THEN
241 ALLOCATE (mat_elem%MAT_PARAM(imat)%MULTIMAT%EOS(nbsubmat))
243 CALL read_eosparam(mat_elem%MAT_PARAM(imat)%MULTIMAT%EOS(i))
244 mat_elem%MAT_PARAM(imat)%MULTIMAT%pEOS(i)%EOS => mat_elem%MAT_PARAM(imat)%MULTIMAT%EOS(i)
249 isub = mat_elem%MAT_PARAM(imat)%MULTIMAT%mid(i)
251 mat_elem%MAT_PARAM(imat)%MULTIMAT%pEOS(i)%EOS => mat_elem%MAT_PARAM(isub)%EOS
253 NULLIFY(mat_elem%MAT_PARAM(imat)%MULTIMAT%pEOS(i)%EOS)
269 CALL read_ale_rezoning_param(mat_elem%MAT_PARAM(imat)%REZON)