35 USE multimat_param_mod
39#include "implicit_f.inc"
43 INTEGER NUMMAT0,NUMMAT
44 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT ),
TARGET ::
45 TYPE(matparam_struct_) ,
DIMENSION(NUMMAT0) :: MATPARAM_INI
49 INTEGER I,J,IFAIL,NUPARAM,NIPARAM,NFAIL,IMAT,NBMAT,MID
54 nuparam = matparam_ini(i)%NUPARAM
55 niparam = matparam_ini(i)%NIPARAM
56 nfail = matparam_ini(i)%NFAIL
57 nbmat = matparam_ini(i)%MULTIMAT%NB
58 matparam_tab(i)%ILAW = matparam_ini(i)%ILAW
59 matparam_tab(i)%MAT_ID = matparam_ini(i)%MAT_ID
60 matparam_tab(i)%NUPARAM = nuparam
61 matparam_tab(i)%NIPARAM = niparam
62 matparam_tab(i)%NFUNC = matparam_ini(i)%NFUNC
63 matparam_tab(i)%NTABLE = matparam_ini(i)%NTABLE
64 IF (matparam_tab(i)%NTABLE > 0)
THEN
65 ALLOCATE(matparam_tab(i)%TABLE(matparam_tab(i)%NTABLE))
66 DO j=1,matparam_tab(i)%NTABLE
67 matparam_tab(i)%TABLE(j) = matparam_ini(i)%TABLE(j)
71 matparam_tab(i)%NSUBMAT = matparam_ini(i)%NSUBMAT
72 matparam_tab(i)%NFAIL = nfail
73 matparam_tab(i)%IVISC = matparam_ini(i)%IVISC
74 matparam_tab(i)%IEOS = matparam_ini(i)%IEOS
75 matparam_tab(i)%ITHERM = matparam_ini(i)%ITHERM
76 matparam_tab(i)%IEXPAN = matparam_ini(i)%IEXPAN
77 matparam_tab(i)%IALE = matparam_ini(i)%IALE
78 matparam_tab(i)%ITURB = matparam_ini(i)%ITURB
79 matparam_tab(i)%HEAT_FLAG = matparam_ini(i)%HEAT_FLAG
80 matparam_tab(i)%COMPRESSIBILITY = matparam_ini(i)%COMPRESSIBILITY
81 matparam_tab(i)%SMSTR = matparam_ini(i)%SMSTR
82 matparam_tab(i)%STRAIN_FORMULATION = matparam_ini(i)%STRAIN_FORMULATION
83 matparam_tab(i)%IPRES = matparam_ini(i)%IPRES
84 matparam_tab(i)%ORTHOTROPY = matparam_ini(i)%ORTHOTROPY
85 matparam_tab(i)%NLOC = matparam_ini(i)%NLOC
86 matparam_tab(i)%IFAILWAVE = matparam_ini(i)%IFAILWAVE
87 matparam_tab(i)%IXFEM = matparam_ini(i)%IXFEM
89 matparam_tab(i)%VISC%ILAW = matparam_ini(i)%VISC%ILAW
90 matparam_tab(i)%VISC%NUPARAM = matparam_ini(i)%VISC%NUPARAM
91 matparam_tab(i)%VISC%NIPARAM = matparam_ini(i)%VISC%NIPARAM
92 matparam_tab(i)%VISC%NUVAR = matparam_ini(i)%VISC%NUVAR
93 matparam_tab(i)%VISC%NFUNC = matparam_ini(i)%VISC%NFUNC
94 matparam_tab(i)%VISC%NTABLE = matparam_ini(i)%VISC%NTABLE
95 IF (matparam_tab(i)%VISC%NTABLE > 0)
THEN
96 ALLOCATE(matparam_tab(i)%VISC%TABLE(matparam_tab(i)%VISC%NTABLE))
97 DO j=1,matparam_tab(i)%VISC%NTABLE
98 matparam_tab(i)%VISC%TABLE(j) = matparam_ini(i)%VISC%TABLE(j)
102 matparam_tab(i)%PROP_SOLID = matparam_ini(i)%PROP_SOLID
103 matparam_tab(i)%PROP_SHELL = matparam_ini(i)%PROP_SHELL
104 matparam_tab(i)%PROP_BEAM = matparam_ini(i)%PROP_BEAM
105 matparam_tab(i)%PROP_SPRING = matparam_ini(i)%PROP_SPRING
106 matparam_tab(i)%PROP_TRUSS = matparam_ini(i)%PROP_TRUSS
107 matparam_tab(i)%PROP_SPH = matparam_ini(i)%PROP_SPH
109 matparam_tab(i)%RHO = matparam_ini(i)%RHO
110 matparam_tab(i)%RHO0 = matparam_ini(i)%RHO0
111 matparam_tab(i)%YOUNG = matparam_ini(i)%YOUNG
112 matparam_tab(i)%SHEAR = matparam_ini(i)%SHEAR
113 matparam_tab(i)%BULK = matparam_ini(i)%BULK
114 matparam_tab(i)%NU = matparam_ini(i)%NU
115 matparam_tab(i)%STIFF_CONTACT = matparam_ini(i)%STIFF_CONTACT
116 matparam_tab(i)%STIFF_HGLASS = matparam_ini(i)%STIFF_HGLASS
117 matparam_tab(i)%STIFF_TSTEP = matparam_ini(i)%STIFF_TSTEP
119 matparam_tab(i)%COMPATIBILITY_EOS = matparam_ini(i)%COMPATIBILITY_EOS
121 ALLOCATE(matparam_tab(i)%UPARAM(nuparam))
122 IF (nuparam > 0)
THEN
123 matparam_tab(i)%UPARAM(1:nuparam) = matparam_ini(i)%UPARAM(1:nuparam)
126 ALLOCATE(matparam_tab(i)%IPARAM(niparam))
127 IF (niparam > 0)
THEN
128 matparam_tab(i)%IPARAM(1:niparam) = matparam_ini(i)%IPARAM(1:niparam)
131 ALLOCATE(matparam_tab(i)%FAIL(nfail))
134 matparam_tab(i)%FAIL(ifail)%KEYWORD = matparam_ini(i)%FAIL(ifail)%KEYWORD
135 matparam_tab(i)%FAIL(ifail)%IRUPT = matparam_ini(i)%FAIL(ifail)%IRUPT
136 matparam_tab(i)%FAIL(ifail)%FAIL_ID = matparam_ini(i)%FAIL(ifail)%FAIL_ID
137 matparam_tab(i)%FAIL(ifail)%NUPARAM = matparam_ini(i)%FAIL(ifail)%NUPARAM
138 matparam_tab(i)%FAIL(ifail)%NIPARAM = matparam_ini(i)%FAIL(ifail)%NIPARAM
139 matparam_tab(i)%FAIL(ifail)%NUVAR = matparam_ini(i)%FAIL(ifail)%NUVAR
140 matparam_tab(i)%FAIL(ifail)%NFUNC = matparam_ini(i)%FAIL(ifail)%NFUNC
141 matparam_tab(i)%FAIL(ifail)%NTABLE = matparam_ini(i)%FAIL(ifail)%NTABLE
142 matparam_tab(i)%FAIL(ifail)%NMOD = matparam_ini(i)%FAIL(ifail)%NMOD
143 matparam_tab(i)%FAIL(ifail)%FAIL_IP = matparam_ini
144 matparam_tab(i)%FAIL(ifail)%PTHK = matparam_ini(i)%FAIL(ifail)%PTHK
145 ALLOCATE(matparam_tab(i)%FAIL(ifail)%UPARAM(matparam_tab(i)%FAIL(ifail)%NUPARAM))
146 DO j=1,matparam_tab(i)%FAIL(ifail)%NUPARAM
147 matparam_tab(i)%FAIL(ifail)%UPARAM(j) = matparam_ini(i)%FAIL(ifail)%UPARAM(j)
149 ALLOCATE(matparam_tab(i)%FAIL(ifail)%IPARAM(matparam_tab(i)%FAIL(ifail)%NIPARAM))
150 DO j=1,matparam_tab(i)%FAIL(ifail)%NIPARAM
151 matparam_tab(i)%FAIL(ifail)%IPARAM(j) = matparam_ini(i)%FAIL(ifail)%IPARAM(j)
153 ALLOCATE(matparam_tab(i)%FAIL(ifail)%IFUNC(matparam_tab(i)%FAIL(ifail)%NFUNC))
154 DO j=1,matparam_tab(i)%FAIL(ifail)%NFUNC
155 matparam_tab(i)%FAIL(ifail)%IFUNC(j) = matparam_ini(i)%FAIL(ifail)%IFUNC(j)
157 ALLOCATE(matparam_tab(i)%FAIL(ifail)%TABLE(matparam_tab(i)%FAIL(ifail)%NTABLE))
158 DO j=1,matparam_tab(i)%FAIL(ifail)%NTABLE
159 matparam_tab(i)%FAIL(ifail)%TABLE(j) = matparam_ini(i)%FAIL(ifail)%TABLE(j)
164 IF (matparam_ini(i)%IEOS > 0)
THEN
165 CALL matparam_ini(i)%EOS%COPYTO(matparam_tab(i)%EOS)
168 ALLOCATE(matparam_tab(i)%MULTIMAT%MID(nbmat))
169 ALLOCATE(matparam_tab(i)%MULTIMAT%VFRAC(nbmat))
171 matparam_tab(i)%MULTIMAT%NB = matparam_ini(i)%MULTIMAT%NB
172 matparam_tab(i)%MULTIMAT%OLD_DATA_FORMAT = matparam_ini(i)%MULTIMAT%OLD_DATA_FORMAT
174 matparam_tab(i)%MULTIMAT%MID(imat) = matparam_ini(i)%MULTIMAT%MID(imat)
175 matparam_tab(i)%MULTIMAT%VFRAC(imat) = matparam_ini(i)%MULTIMAT%VFRAC(imat)
176 IF(.NOT.
ASSOCIATED(matparam_tab(i)%MULTIMAT%pEOS))
ALLOCATE( matparam_tab(i)%MULTIMAT%pEOS(nbmat))
177 IF(matparam_ini(i)%MULTIMAT%OLD_DATA_FORMAT == 1)
THEN
178 IF(.NOT.
ALLOCATED(matparam_tab(i)%MULTIMAT%EOS))
ALLOCATE(matparam_tab(i)%MULTIMAT%EOS(nbmat))
179 CALL matparam_ini(i)%MULTIMAT%EOS(imat)%COPYTO(matparam_tab(i)%MULTIMAT%EOS(imat))
180 matparam_tab(i)%MULTIMAT%pEOS(imat)%EOS => matparam_tab(i)%MULTIMAT%EOS(imat)
182 mid = matparam_ini(i)%MULTIMAT%MID(imat)
184 IF(mid /= 0)matparam_tab(i)%MULTIMAT%pEOS(imat)%EOS => matparam_tab(mid)%EOS
189 matparam_tab(i)%THERM%iform = matparam_ini(i)%THERM%iform
190 matparam_tab(i)%THERM%tini = matparam_ini(i)%THERM%tini
191 matparam_tab(i)%THERM%tref = matparam_ini(i)%THERM%tref
192 matparam_tab(i)%THERM%tmelt = matparam_ini(i)%THERM%tmelt
193 matparam_tab(i)%THERM%rhocp = matparam_ini(i)%THERM%rhocp
194 matparam_tab(i)%THERM%as = matparam_ini(i)%THERM%as
195 matparam_tab(i)%THERM%bs = matparam_ini(i)%THERM%bs
196 matparam_tab(i)%THERM%al = matparam_ini(i)%THERM%al
197 matparam_tab(i)%THERM%bl = matparam_ini(i)%THERM%bl
198 matparam_tab(i)%THERM%efrac = matparam_ini(i)%THERM%efrac
199 matparam_tab(i)%THERM%func_thexp = matparam_ini(i)%THERM%func_thexp
200 matparam_tab(i)%THERM%scale_thexp = matparam_ini(i)%THERM%scale_thexp
207 DO i = nummat0+1,nummat
208 matparam_tab(i)%ILAW = 0
209 matparam_tab(i)%MAT_ID = 0
210 matparam_tab(i)%NUPARAM = 0
211 matparam_tab(i)%NIPARAM = 0
212 matparam_tab(i)%NFUNC = 0
213 matparam_tab(i)%NTABLE = 0
214 matparam_tab(i)%NSUBMAT = 0
215 matparam_tab(i)%NFAIL = 0
216 matparam_tab(i)%IVISC = 0
217 matparam_tab(i)%IEOS = 0
218 matparam_tab(i)%ITHERM = 0
219 matparam_tab(i)%IEXPAN = 0
220 matparam_tab(i)%IALE = 0
221 matparam_tab(i)%ITURB = 0
222 matparam_tab(i)%HEAT_FLAG = 0
223 matparam_tab(i)%COMPRESSIBILITY = 0
224 matparam_tab(i)%SMSTR = 0
225 matparam_tab(i)%STRAIN_FORMULATION = 0
226 matparam_tab(i)%IPRES = 0
227 matparam_tab(i)%ORTHOTROPY = 0
228 matparam_tab(i)%NLOC = 0
229 matparam_tab(i)%IFAILWAVE = 0
230 matparam_tab(i)%IXFEM = 0
232 matparam_tab(i)%VISC%ILAW = 0
233 matparam_tab(i)%VISC%NUPARAM = 0
234 matparam_tab(i)%VISC%NIPARAM = 0
235 matparam_tab(i)%VISC%NUVAR = 0
236 matparam_tab(i)%VISC%NFUNC = 0
237 matparam_tab(i)%VISC%NTABLE = 0
239 matparam_tab(i)%PROP_SOLID = 1
240 matparam_tab(i)%PROP_SHELL = 1
241 matparam_tab(i)%PROP_BEAM = 3
242 matparam_tab(i)%PROP_SPRING = 2
243 matparam_tab(i)%PROP_TRUSS = 1
244 matparam_tab(i)%PROP_SPH = 1
245 matparam_tab(i)%COMPATIBILITY_EOS = 0
247 matparam_tab(i)%MULTIMAT%NB = 0
249 matparam_tab(i)%RHO = zero
250 matparam_tab(i)%RHO0 = zero
251 matparam_tab(i)%YOUNG = zero
252 matparam_tab(i)%SHEAR = zero
253 matparam_tab(i)%BULK = zero
254 matparam_tab(i)%NU = zero
255 matparam_tab(i)%STIFF_CONTACT = zero
256 matparam_tab(i)%STIFF_HGLASS = zero
257 matparam_tab(i)%STIFF_TSTEP = zero