44 use write_therpmaram_mod
45 use write_ale_rezoning_param_mod ,
only : write_ale_rezoning_param
50#include "implicit_f.inc"
54 INTEGER ,
INTENT(INOUT) :: LEN
55 TYPE(mat_elem_) ,
INTENT(IN) :: MAT_ELEM
59 INTEGER :: I,NUMMAT,,NUPARAM,NIPARAM,NUMTABL,NFAIL
60 INTEGER :: IAD,NFIX,NFIXR,LENI,LENR,NMOD,MOD
61 INTEGER ,
DIMENSION(NCHARTITLE) :: NAME
62 INTEGER ,
DIMENSION(:) ,
ALLOCATABLE :: IBUF
63 INTEGER :: NBSUBMAT, OLDFORMAT
64 my_real ,
DIMENSION(:) ,
ALLOCATABLE :: rbuf
67 nummat = mat_elem%NUMMAT
70 ALLOCATE (ibuf(leni) )
75 ibuf(iad+ 1) = mat_elem%MAT_PARAM(imat)%ILAW
76 ibuf(iad+ 2) = mat_elem%MAT_PARAM(imat)%MAT_ID
77 ibuf(iad+ 3) = mat_elem%MAT_PARAM(imat)%NUPARAM
78 ibuf(iad+ 4) = mat_elem%MAT_PARAM(imat)%NIPARAM
79 ibuf(iad+ 5) = mat_elem%MAT_PARAM(imat)%NFUNC
80 ibuf(iad+ 6) = mat_elem%MAT_PARAM(imat)%NTABLE
81 ibuf(iad+ 7) = mat_elem%MAT_PARAM(imat)%NSUBMAT
82 ibuf(iad+ 8) = mat_elem%MAT_PARAM(imat)%NFAIL
83 ibuf(iad+ 9) = mat_elem%MAT_PARAM(imat)%IVISC
84 ibuf(iad+10) = mat_elem%MAT_PARAM(imat)%IEOS
85 ibuf(iad+11) = mat_elem%MAT_PARAM(imat)%ITHERM
86 ibuf(iad+12) = mat_elem%MAT_PARAM(imat)%IEXPAN
87 ibuf(iad+13) = mat_elem%MAT_PARAM(imat)%IALE
88 ibuf(iad+14) = mat_elem%MAT_PARAM(imat)%ITURB
89 ibuf(iad+15) = mat_elem%MAT_PARAM(imat)%HEAT_FLAG
90 ibuf(iad+16) = mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY
91 ibuf(iad+17) = mat_elem%MAT_PARAM(imat)%SMSTR
92 ibuf(iad+18) = mat_elem%MAT_PARAM(imat)%STRAIN_FORMULATION
93 ibuf(iad+19) = mat_elem%MAT_PARAM(imat)%IPRES
94 ibuf(iad+20) = mat_elem%MAT_PARAM(imat)%ORTHOTROPY
95 ibuf(iad+21) = mat_elem%MAT_PARAM(imat)%NLOC
96 ibuf(iad+22) = mat_elem%MAT_PARAM(imat)%IFAILWAVE
97 ibuf(iad+23) = mat_elem%MAT_PARAM(imat)%IXFEM
98 ibuf(iad+24) = mat_elem%MAT_PARAM(imat)%NMOD
111 ALLOCATE (rbuf(lenr) )
113 rbuf(iad + 1) = mat_elem%MAT_PARAM(imat)%RHO
114 rbuf(iad + 2) = mat_elem%MAT_PARAM(imat)%RHO0
115 rbuf(iad + 3) = mat_elem%MAT_PARAM(imat)%YOUNG
116 rbuf(iad + 4) = mat_elem%MAT_PARAM(imat)%BULK
117 rbuf(iad + 5) = mat_elem%MAT_PARAM(imat)%SHEAR
118 rbuf(iad + 6) = mat_elem%MAT_PARAM(imat)%NU
119 rbuf(iad + 7) = mat_elem%MAT_PARAM(imat)%STIFF_CONTACT
120 rbuf(iad + 8) = mat_elem%MAT_PARAM(imat)%STIFF_HGLASS
121 rbuf(iad + 9) = mat_elem%MAT_PARAM(imat)%STIFF_TSTEP
130 IF(imat < nummat)
THEN
132 name(i) = ichar(mat_elem%MAT_PARAM(imat)%TITLE(i:i))
142 nuparam = mat_elem%MAT_PARAM(imat)%NUPARAM
143 niparam = mat_elem%MAT_PARAM(imat)%NIPARAM
144 IF (nuparam > 0)
THEN
145 CALL write_db(mat_elem%MAT_PARAM(imat)%UPARAM ,nuparam)
147 IF (niparam > 0)
THEN
148 CALL write_i_c(mat_elem%MAT_PARAM(imat)%IPARAM ,niparam)
150 len = len + nuparam + niparam
155 numtabl = mat_elem%MAT_PARAM(imat)%NTABLE
156 IF (numtabl > 0)
THEN
158 len = len + leni + lenr
164 IF (mat_elem%MAT_PARAM(imat)%IVISC > 0)
THEN
172 CALL write_thermparam(mat_elem%MAT_PARAM(imat)%THERM,len)
178 nfail = mat_elem%MAT_PARAM(imat)%NFAIL
188 nmod = mat_elem%MAT_PARAM(imat)%NMOD
192 name(i) = ichar(mat_elem%MAT_PARAM(imat)%MODE(mod)(i:i))
201 IF (mat_elem%MAT_PARAM(imat)%IEOS > 0)
THEN
202 CALL write_eosparam(mat_elem%MAT_PARAM(imat)%EOS)
211 nbsubmat = mat_elem%MAT_PARAM(imat)%MULTIMAT%NB
212 oldformat = mat_elem%MAT_PARAM(imat)%MULTIMAT%old_data_format
217 ibuf(1:nbsubmat) = mat_elem%MAT_PARAM(imat)%MULTIMAT%mid
218 rbuf(1:nbsubmat) = mat_elem%MAT_PARAM(imat)%MULTIMAT%vfrac
222 IF(oldformat == 1)
THEN
225 CALL write_eosparam(mat_elem%MAT_PARAM(imat)%MULTIMAT%EOS(i))
238 CALL write_ale_rezoning_param(mat_elem%MAT_PARAM(imat)%REZON)