30
31
32
33 USE matparam_def_mod
34 USE multimat_param_mod
35
36
37
38#include "implicit_f.inc"
39
40
41
42 INTEGER NUMMAT0,NUMMAT
43 TYPE(MATPARAM_STRUCT_) ,DIMENSION(NUMMAT ) :: MATPARAM_TAB
44 TYPE(MATPARAM_STRUCT_) ,DIMENSION(NUMMAT0) :: MATPARAM_INI
45
46
47
48 INTEGER I,J,IFAIL,NUPARAM,NIPARAM,NFAIL,IMAT,NBMAT
49
50
51
52 DO i = 1,nummat0
53 nuparam = matparam_ini(i)%NUPARAM
54 niparam = matparam_ini(i)%NIPARAM
55 nfail = matparam_ini(i)%NFAIL
56
57 matparam_tab(i)%ILAW = matparam_ini(i)%ILAW
58 matparam_tab(i)%MAT_ID = matparam_ini(i)%MAT_ID
59 matparam_tab(i)%NUPARAM = nuparam
60 matparam_tab(i)%NIPARAM = niparam
61 matparam_tab(i)%NFUNC = matparam_ini(i)%NFUNC
62 matparam_tab(i)%NTABLE = matparam_ini(i)%NTABLE
63 matparam_tab(i)%NSUBMAT = matparam_ini(i)%NSUBMAT
64 matparam_tab(i)%NFAIL = nfail
65 matparam_tab(i)%IVISC = matparam_ini(i)%IVISC
66 matparam_tab(i)%IEOS = matparam_ini(i)%IEOS
67 matparam_tab(i)%ITHERM = matparam_ini(i)%ITHERM
68 matparam_tab(i)%IEXPAN = matparam_ini(i)%IEXPAN
69 matparam_tab(i)%IALE = matparam_ini(i)%IALE
70 matparam_tab(i)%ITURB = matparam_ini
71 matparam_tab(i)%HEAT_FLAG = matparam_ini(i)%HEAT_FLAG
72 matparam_tab(i)%COMPRESSIBILITY = matparam_ini(i)%COMPRESSIBILITY
73 matparam_tab(i)%SMSTR = matparam_ini(i)%SMSTR
74 matparam_tab(i)%STRAIN_FORMULATION = matparam_ini(i)%STRAIN_FORMULATION
75 matparam_tab(i)%IPRES = matparam_ini(i)%IPRES
76 matparam_tab
77 matparam_tab(i)%NLOC = matparam_ini(i)%NLOC
78 matparam_tab(i)%IFAILWAVE = matparam_ini(i)%IFAILWAVE
79 matparam_tab(i)%IXFEM = matparam_ini(i)%IXFEM
80
81 matparam_tab(i)%VISC%ILAW = matparam_ini(i)%VISC%ILAW
82 matparam_tab(i)%VISC%NUPARAM = matparam_ini(i)%VISC%NUPARAM
83 matparam_tab(i)%VISC%NIPARAM = matparam_ini(i)%VISC%NIPARAM
84 matparam_tab(i)%VISC%NUVAR = matparam_ini(i)%VISC%NUVAR
85 matparam_tab(i)%VISC%NFUNC = matparam_ini(i)%VISC%NFUNC
86 matparam_tab(i)%VISC%NTABLE = matparam_ini(i)%VISC%NTABLE
87
88 matparam_tab(i)%PROP_SOLID = matparam_ini(i)%PROP_SOLID
89 matparam_tab(i)%PROP_SHELL = matparam_ini(i)%PROP_SHELL
90 matparam_tab(i)%PROP_BEAM = matparam_ini(i)%PROP_BEAM
91 matparam_tab(i)%PROP_SPRING = matparam_ini(i)%PROP_SPRING
92 matparam_tab(i)%PROP_TRUSS = matparam_ini(i)%PROP_TRUSS
93 matparam_tab(i)%PROP_SPH = matparam_ini(i)%PROP_SPH
94
95 matparam_tab(i)%RHO = matparam_ini(i)%RHO
96 matparam_tab(i)%RHO0 = matparam_ini(i)%RHO0
97 matparam_tab(i)%YOUNG = matparam_ini(i)%YOUNG
98 matparam_tab(i)%SHEAR = matparam_ini(i)%SHEAR
99 matparam_tab(i)%BULK = matparam_ini(i)%BULK
100 matparam_tab(i)%NU = matparam_ini(i
101
102 matparam_tab(i)%STIFF_HGLASS = matparam_ini(i)%STIFF_HGLASS
103 matparam_tab(i)%STIFF_TSTEP = matparam_ini(i)%STIFF_TSTEP
104
105 matparam_tab(i)%COMPATIBILITY_EOS = matparam_ini(i)%COMPATIBILITY_EOS
106
107 ALLOCATE(matparam_tab(i)%UPARAM(nuparam))
108 IF (nuparam > 0) THEN
109 matparam_tab(i)%UPARAM(1:nuparam) = matparam_ini(i)%UPARAM(1:nuparam)
110 END IF
111
112 ALLOCATE(matparam_tab(i)%IPARAM(niparam))
113 IF (niparam > 0) THEN
114 matparam_tab(i)%IPARAM(1:niparam) = matparam_ini(i)%IPARAM(1:niparam)
115 END IF
116
117 ALLOCATE(matparam_tab(i)%FAIL(nfail))
118 IF (nfail > 0) THEN
119 DO ifail=1,nfail
120 matparam_tab(i)%FAIL(ifail)%KEYWORD = matparam_ini(i)%FAIL(ifail)%KEYWORD
121 matparam_tab(i)%FAIL(ifail)%IRUPT = matparam_ini(i)%FAIL(ifail)%IRUPT
122 matparam_tab(i)%FAIL(ifail)%FAIL_ID = matparam_ini(i)%FAIL(ifail)%FAIL_ID
123 matparam_tab(i)%FAIL(ifail)%NUPARAM = matparam_ini(i)%FAIL(ifail)%NUPARAM
124 matparam_tab(i)%FAIL(ifail)%NIPARAM = matparam_ini(i)%FAIL(ifail)%NIPARAM
125 matparam_tab(i)%FAIL(ifail)%NUVAR = matparam_ini(i)%FAIL(ifail
126 matparam_tab(i)%FAIL(ifail)%NFUNC = matparam_ini(i)%FAIL(ifail
127 matparam_tab(i)%FAIL(ifail)%NTABLE = matparam_ini(i)%FAIL(ifail)%NTABLE
128 matparam_tab(i)%FAIL(ifail)%NMOD = matparam_ini(i)%FAIL(ifail)%NMOD
129 matparam_tab(i)%FAIL(ifail)%FAIL_IP = matparam_ini(i)%FAIL(ifail)%FAIL_IP
130 matparam_tab(i)%FAIL(ifail)%PTHK = matparam_ini(i)%FAIL(ifail)%PTHK
131 ALLOCATE(matparam_tab(i)%FAIL(ifail)%UPARAM(matparam_tab(i)%FAIL(ifail)%NUPARAM))
132 DO j=1,matparam_tab(i)%FAIL(ifail)%NUPARAM
133 matparam_tab(i)%FAIL(ifail)%UPARAM(j) = matparam_ini(i)%FAIL(ifail)%UPARAM(j)
134 END DO
135 ALLOCATE(matparam_tab(i)%FAIL(ifail)%IPARAM(matparam_tab(i)%FAIL(ifail)%NIPARAM))
136 DO j=1,matparam_tab(i)%FAIL(ifail)%NIPARAM
137 matparam_tab(i)%FAIL(ifail)%IPARAM(j) = matparam_ini(i)%FAIL(ifail)%IPARAM(j)
138 END DO
139 ALLOCATE(matparam_tab(i)%FAIL(ifail)%IFUNC(matparam_tab(i)%FAIL(ifail)%NFUNC))
140 DO j=1,matparam_tab(i)%FAIL(ifail)%NFUNC
141 matparam_tab(i)%FAIL(ifail)%IFUNC(j) = matparam_ini(i)%FAIL(ifail)%IFUNC(j)
142 END DO
143 ALLOCATE(matparam_tab(i)%FAIL(ifail)%TABLE(matparam_tab(i)%FAIL(ifail)%NTABLE))
144 DO j=1,matparam_tab(i)%FAIL(ifail)%NTABLE
145 matparam_tab(i)%FAIL(ifail)%TABLE(j) = matparam_ini(i)%FAIL(ifail)%TABLE(j)
146 END DO
147 END DO
148 ENDIF
149
150 ALLOCATE(matparam_tab(i)%MULTIMAT%MID(nbmat))
151 ALLOCATE(matparam_tab(i)%MULTIMAT%VFRAC(nbmat))
152 IF (nbmat > 0) THEN
153 DO imat=1,nbmat
154 matparam_tab(i)%MULTIMAT%MID(imat) = matparam_ini(i)%MULTIMAT%MID(imat)
155 matparam_tab(i)%MULTIMAT%VFRAC(imat) = matparam_ini(i
156 END DO
157 ENDIF
158
159 IF (matparam_tab(i)%ITHERM > 0 .or. matparam_tab(i)%IEXPAN > 0) THEN
160 matparam_tab(i)%THERM%iform = matparam_ini(i)%THERM%iform
161 matparam_tab(i)%THERM%tini = matparam_ini(i)%THERM%tini
162 matparam_tab(i)%THERM%tref = matparam_ini(i)%THERM%tref
163 matparam_tab(i)%THERM%tmelt = matparam_ini(i)%THERM%tmelt
164 matparam_tab(i)%THERM%rhocp = matparam_ini(i)%THERM%rhocp
165 matparam_tab(i)%THERM%as = matparam_ini(i)%THERM%as
166 matparam_tab(i)%THERM%bs = matparam_ini(i)%THERM%bs
167 matparam_tab(i)%THERM%al = matparam_ini(i)%THERM%al
168 matparam_tab(i)%THERM%bl = matparam_ini(i)%THERM%bl
169 matparam_tab(i)%THERM%efrac = matparam_ini(i)%THERM%efrac
170 matparam_tab(i)%THERM%func_thexp = matparam_ini(i)%THERM%func_thexp
171 matparam_tab(i)%THERM%scale_thexp = matparam_ini(i)%THERM%scale_thexp
172 END IF
173 ENDDO
174
175
176
177
178
179 DO i = nummat0+1,nummat
180 matparam_tab(i)%ILAW = 0
181 matparam_tab(i)%MAT_ID = 0
182 matparam_tab(i)%NUPARAM = 0
183 matparam_tab(i)%NIPARAM = 0
184 matparam_tab(i)%NFUNC = 0
185 matparam_tab(i)%NTABLE = 0
186 matparam_tab(i)%NSUBMAT = 0
187 matparam_tab(i)%NFAIL = 0
188 matparam_tab(i)%IVISC = 0
189 matparam_tab(i)%IEOS = 0
190 matparam_tab(i)%ITHERM = 0
191 matparam_tab(i)%IEXPAN = 0
192 matparam_tab(i)%IALE = 0
193 matparam_tab(i)%ITURB = 0
194 matparam_tab(i)%HEAT_FLAG = 0
195 matparam_tab(i)%COMPRESSIBILITY = 0
196 matparam_tab(i)%SMSTR = 0
197 matparam_tab(i)%STRAIN_FORMULATION = 0
198 matparam_tab(i)%IPRES = 0
199 matparam_tab(i)%ORTHOTROPY = 0
200 matparam_tab(i)%NLOC = 0
201 matparam_tab(i)%IFAILWAVE = 0
202 matparam_tab(i)%IXFEM = 0
203
204 matparam_tab(i)%VISC%ILAW = 0
205 matparam_tab(i)%VISC%NUPARAM = 0
206 matparam_tab(i)%VISC%NIPARAM = 0
207 matparam_tab(i)%VISC%NUVAR = 0
208 matparam_tab(i)%VISC%NFUNC = 0
209 matparam_tab
210
211 matparam_tab(i)%PROP_SOLID = 1
212 matparam_tab
213 matparam_tab(i)%PROP_BEAM = 3
214 matparam_tab(i)%PROP_SPRING = 2
215 matparam_tab(i)%PROP_TRUSS = 1
216 matparam_tab(i)%PROP_SPH = 1
217 matparam_tab(i)%COMPATIBILITY_EOS = 0
218
219 matparam_tab(i)%MULTIMAT%NB = 0
220
221 matparam_tab(i)%RHO
222 matparam_tab(i)%RHO0 = zero
223 matparam_tab(i)%YOUNG = zero
224 matparam_tab(i)%SHEAR = zero
225 matparam_tab(i)%BULK = zero
226 matparam_tab(i)%NU = zero
227 matparam_tab(i)%STIFF_CONTACT = zero
228 matparam_tab(i)%STIFF_HGLASS = zero
229 matparam_tab(i)%STIFF_TSTEP = zero
230 ENDDO
231
232 RETURN