OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2r_matparam_copy.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r2r_matparam_copy (matparam_tab, matparam_ini, nummat0, nummat)

Function/Subroutine Documentation

◆ r2r_matparam_copy()

subroutine r2r_matparam_copy ( type(matparam_struct_), dimension(nummat ) matparam_tab,
type(matparam_struct_), dimension(nummat0) matparam_ini,
integer nummat0,
integer nummat )

Definition at line 29 of file r2r_matparam_copy.F.

30C-----------------------------------------------
31C M o d u l e s
32C-----------------------------------------------
33 USE matparam_def_mod
34 USE multimat_param_mod
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER NUMMAT0,NUMMAT
43 TYPE(MATPARAM_STRUCT_) ,DIMENSION(NUMMAT ) :: MATPARAM_TAB
44 TYPE(MATPARAM_STRUCT_) ,DIMENSION(NUMMAT0) :: MATPARAM_INI
45C-----------------------------------------------
46C L o c a l V a r i a b l e s
47C-----------------------------------------------
48 INTEGER I,J,IFAIL,NUPARAM,NIPARAM,NFAIL,IMAT,NBMAT
49C=======================================================================
50c Copy matparam from standard materials
51c
52 DO i = 1,nummat0
53 nuparam = matparam_ini(i)%NUPARAM
54 niparam = matparam_ini(i)%NIPARAM
55 nfail = matparam_ini(i)%NFAIL
56 nbmat = matparam_ini(i)%MULTIMAT%NB
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(i)%ITURB
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(i)%ORTHOTROPY = matparam_ini(i)%ORTHOTROPY
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
80c
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
87c
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
94c
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)%NU
101 matparam_tab(i)%STIFF_CONTACT = matparam_ini(i)%STIFF_CONTACT
102 matparam_tab(i)%STIFF_HGLASS = matparam_ini(i)%STIFF_HGLASS
103 matparam_tab(i)%STIFF_TSTEP = matparam_ini(i)%STIFF_TSTEP
104c
105 matparam_tab(i)%COMPATIBILITY_EOS = matparam_ini(i)%COMPATIBILITY_EOS
106c
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)%NUVAR
126 matparam_tab(i)%FAIL(ifail)%NFUNC = matparam_ini(i)%FAIL(ifail)%NFUNC
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 ! NFAIL
148 ENDIF
149c
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)%MULTIMAT%VFRAC(imat)
156 END DO ! IMAT
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 ! copy of matparam between subdomains must be completed with further evolution of MATPARAM structure
176c
177c Fill matparam for additional rad2rad void materials
178c
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
203c
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(i)%VISC%NTABLE = 0
210c
211 matparam_tab(i)%PROP_SOLID = 1
212 matparam_tab(i)%PROP_SHELL = 1
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
218c
219 matparam_tab(i)%MULTIMAT%NB = 0
220c
221 matparam_tab(i)%RHO = zero
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
231c-----------------------------------------------
232 RETURN