OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
initvars_auto.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| initvars_auto ../starter/source/elements/elbuf_init/initvars_auto.F
25!||--- called by ------------------------------------------------------
26!|| elbuf_ini ../starter/source/elements/elbuf_init/elbuf_ini.F
27!||--- uses -----------------------------------------------------
28!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
29!||====================================================================
30 SUBROUTINE initvars_auto(
31 . ELBUF_STR,MLAW_TAG ,PROP_TAG ,
32 . GMAT ,GLAW ,IGTYP ,JMULT ,IFAIL ,
33 . IEOS ,EOS_TAG ,ISNOD)
34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE elbufdef_mod
38 USE elbuftag_mod
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "tablen_c.inc"
47#include "inter22.inc"
48#include "com04_c.inc"
49#include "scr17_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER IGTYP,GMAT,GLAW,JMULT,IFAIL,IEOS,ISNOD
54 TYPE(ELBUF_STRUCT_),TARGET :: ELBUF_STR
55 TYPE(MLAW_TAG_) ,TARGET ,DIMENSION(NUMMAT) :: MLAW_TAG
56 TYPE(eos_tag_) ,TARGET ,DIMENSION(0:MAXEOS) :: EOS_TAG
57 TYPE(prop_tag_) ,TARGET ,DIMENSION(0:MAXPROP) :: PROP_TAG
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER ILAY,NLAY,NPG,NPTT,NPTR,NPTS,IL,IR,IS,IT
62 TYPE(G_BUFEL_) , POINTER :: GBUF
63 TYPE(BUF_LAY_) , POINTER :: BUFLY
64 TYPE(mlaw_tag_) , POINTER :: MTAG
65 TYPE(eos_tag_) , POINTER :: ETAG
66 TYPE(prop_tag_) , POINTER :: PTAG
67C-----------------------------------------------------------------------
68c GMAT - globat material number
69c GLAW - globat material law model
70C=======================================================================
71C-----------------------------------------------
72C B o d y
73C-----------------------------------------------
74 NULLIFY(etag)
75
76 gbuf => elbuf_str%GBUF
77 ptag => prop_tag(igtyp)
78 IF(ieos>0)etag => eos_tag(ieos)
79 nlay = elbuf_str%NLAY
80 nptt = elbuf_str%NPTT
81 npg = elbuf_str%NPTR*elbuf_str%NPTS
82
83 nptr = elbuf_str%NPTR
84 npts = elbuf_str%NPTS
85c---------------------
86c global material variables
87c---------------------
88 IF (jmult > 0) THEN
89 IF (mlaw_tag(gmat)%L_FRAC > 0) THEN
90 DO ilay = 1,nlay
91 elbuf_str%BUFLY(ilay)%L_FRAC = mlaw_tag(gmat)%L_FRAC
92 ENDDO
93 ENDIF
94 DO ilay = 1,jmult
95 bufly => elbuf_str%BUFLY(ilay)
96 IF (glaw == 151) THEN
97 mtag => mlaw_tag(gmat)
98 ELSE
99 mtag => mlaw_tag(bufly%IMAT)
100 ENDIF
101 IF (gbuf%G_GAMA == 0) gbuf%G_GAMA = mtag%G_GAMA
102 IF (gbuf%G_EINT == 0) gbuf%G_EINT = mtag%G_EINT
103 IF (gbuf%G_EINS == 0) gbuf%G_EINS = mtag%G_EINS
104 IF (gbuf%G_RHO == 0) gbuf%G_RHO = mtag%G_RHO
105 IF (gbuf%G_DELTAX == 0) gbuf%G_DELTAX = mtag%G_DELTAX
106 IF (gbuf%G_EPSD == 0) gbuf%G_EPSD = mtag%G_EPSD
107 IF (gbuf%G_EPSQ == 0) gbuf%G_EPSQ = mtag%G_EPSQ
108 IF (gbuf%G_PLA == 0) gbuf%G_PLA = mtag%G_PLA
109 IF ((gbuf%G_WPLA == 0).AND.(gbuf%G_PLA > 0)) THEN
110 gbuf%G_WPLA = 1
111 ENDIF
112 IF (gbuf%G_RK == 0) gbuf%G_RK = mtag%G_RK
113 IF (gbuf%G_RE == 0) gbuf%G_RE = mtag%G_RE
114 IF (gbuf%G_TB == 0) gbuf%G_TB = mtag%G_TB
115 IF (gbuf%G_TEMP == 0) gbuf%G_TEMP = mtag%G_TEMP
116 IF (gbuf%G_BFRAC == 0) gbuf%G_BFRAC = mtag%G_BFRAC
117 IF (gbuf%G_SIGI == 0) gbuf%G_SIGI = mtag%G_SIGI
118 IF (gbuf%G_IERR == 0) gbuf%G_IERR = mtag%G_IERR
119 IF (gbuf%G_DAMDL == 0) gbuf%G_DAMDL = mtag%G_DAMDL
120 IF (gbuf%G_SEQ == 0) gbuf%G_SEQ = mtag%G_SEQ
121 IF (gbuf%G_ABURN == 0) gbuf%G_ABURN = mtag%G_ABURN
122 IF (gbuf%G_MU == 0) gbuf%G_MU = mtag%G_MU
123 IF (gbuf%G_DMG == 0) gbuf%G_DMG = mtag%G_DMG
124 IF (gbuf%G_MAXFRAC== 0) gbuf%G_MAXFRAC= mtag%G_MAXFRAC
125 IF (gbuf%G_MAXEPS == 0) gbuf%G_MAXEPS = mtag%G_MAXEPS
126 IF (gbuf%G_PLANL == 0) gbuf%G_PLANL = mtag%G_PLANL
127 IF (gbuf%G_EPSDNL == 0) gbuf%G_EPSDNL = mtag%G_EPSDNL
128 IF (gbuf%G_DMGSCL == 0) gbuf%G_DMGSCL = mtag%G_DMGSCL
129 IF (gbuf%G_TSAIWU == 0) gbuf%G_TSAIWU = mtag%G_TSAIWU
130 bufly%NVAR_MAT= mtag%NUVAR
131 bufly%NVARTMP = mtag%NVARTMP
132 IF(bufly%NVAR_EOS==0 .AND. ieos>0 )bufly%NVAR_EOS=etag%NVAR
133 IF(bufly%NVARTMP_EOS==0 .AND. ieos>0 )bufly%NVARTMP_EOS=etag%NVARTMP
134 ENDDO
135 ELSE
136 IF (igtyp == 11 .or. igtyp == 17 .or. igtyp == 51 .or. igtyp == 52 .or. nlay > 1) THEN
137 DO ilay = 1,nlay
138 mtag => mlaw_tag(elbuf_str%BUFLY(ilay)%IMAT)
139 IF (gbuf%G_GAMA == 0) gbuf%G_GAMA = mtag%G_GAMA
140 IF (gbuf%G_EINT == 0) gbuf%G_EINT = mtag%G_EINT
141 IF (gbuf%G_EINS == 0) gbuf%G_EINS = mtag%G_EINS
142 IF (gbuf%G_RHO == 0) gbuf%G_RHO = mtag%G_RHO
143 IF (gbuf%G_DELTAX == 0) gbuf%G_DELTAX = mtag%G_DELTAX
144 IF (gbuf%G_EPSD == 0) gbuf%G_EPSD = mtag%G_EPSD
145 IF (gbuf%G_EPSQ == 0) gbuf%G_EPSQ = mtag%G_EPSQ
146 IF (gbuf%G_PLA == 0) gbuf%G_PLA = mtag%G_PLA
147 IF ((gbuf%G_WPLA == 0).AND.(gbuf%G_PLA > 0)) THEN
148 gbuf%G_WPLA = 1
149 ENDIF
150 IF (gbuf%G_RK == 0) gbuf%G_RK = mtag%G_RK
151 IF (gbuf%G_RE == 0) gbuf%G_RE = mtag%G_RE
152 IF (gbuf%G_TB == 0) gbuf%G_TB = mtag%G_TB
153 IF (gbuf%G_TEMP == 0) gbuf%G_TEMP = mtag%G_TEMP
154 IF (gbuf%G_BFRAC == 0) gbuf%G_BFRAC = mtag%G_BFRAC
155 IF (gbuf%G_SIGI == 0) gbuf%G_SIGI = mtag%G_SIGI
156 IF (gbuf%G_IERR == 0) gbuf%G_IERR = mtag%G_IERR
157 IF (gbuf%G_DAMDL == 0) gbuf%G_DAMDL = mtag%G_DAMDL
158 IF (gbuf%G_SEQ == 0) gbuf%G_SEQ = mtag%G_SEQ
159 IF (gbuf%G_ABURN == 0) gbuf%G_ABURN = mtag%G_ABURN
160 IF (gbuf%G_MU == 0) gbuf%G_MU = mtag%G_MU
161 IF (gbuf%G_DMG == 0) gbuf%G_DMG = mtag%G_DMG
162 IF (gbuf%G_DAMDL == 0) gbuf%G_DAMDL = mtag%G_DAMDL
163 IF (gbuf%G_IERR == 0) gbuf%G_IERR = mtag%G_IERR
164 IF (gbuf%G_MAXFRAC== 0) gbuf%G_MAXFRAC= mtag%G_MAXFRAC
165 IF (gbuf%G_MAXEPS == 0) gbuf%G_MAXEPS = mtag%G_MAXEPS
166 IF (gbuf%G_PLANL == 0) gbuf%G_PLANL = mtag%G_PLANL
167 IF (gbuf%G_EPSDNL == 0) gbuf%G_EPSDNL = mtag%G_EPSDNL
168 IF (gbuf%G_DMGSCL == 0) gbuf%G_DMGSCL = mtag%G_DMGSCL
169 IF (gbuf%G_TSAIWU == 0) gbuf%G_TSAIWU = mtag%G_TSAIWU
170 ENDDO
171 ELSE IF (gmat > 0) THEN
172 mtag => mlaw_tag(gmat)
173 IF (gbuf%G_GAMA == 0) gbuf%G_GAMA = mtag%G_GAMA
174 IF (gbuf%G_EINT == 0) gbuf%G_EINT = mtag%G_EINT
175 IF (gbuf%G_EINS == 0) gbuf%G_EINS = mtag%G_EINS
176 IF (gbuf%G_RHO == 0) gbuf%G_RHO = mtag%G_RHO
177 IF (gbuf%G_DELTAX == 0) gbuf%G_DELTAX = mtag%G_DELTAX
178 IF (gbuf%G_EPSD == 0) gbuf%G_EPSD = mtag%G_EPSD
179 IF (gbuf%G_EPSQ == 0) gbuf%G_EPSQ = mtag%G_EPSQ
180 IF (gbuf%G_PLA == 0) gbuf%G_PLA = mtag%G_PLA
181 IF ((gbuf%G_WPLA == 0).AND.(gbuf%G_PLA > 0)) THEN
182 gbuf%G_WPLA = 1
183 ENDIF
184 IF (gbuf%G_RK == 0) gbuf%G_RK = mtag%G_RK
185 IF (gbuf%G_RE == 0) gbuf%G_RE = mtag%G_RE
186 IF (gbuf%G_TB == 0) gbuf%G_TB = mtag%G_TB
187 IF (gbuf%G_TEMP == 0) gbuf%G_TEMP = mtag%G_TEMP
188 IF (gbuf%G_BFRAC == 0) gbuf%G_BFRAC = mtag%G_BFRAC
189 IF (gbuf%G_SIGI == 0) gbuf%G_SIGI = mtag%G_SIGI
190 IF (gbuf%G_IERR == 0) gbuf%G_IERR = mtag%G_IERR
191 IF (gbuf%G_DAMDL == 0) gbuf%G_DAMDL = mtag%G_DAMDL
192 IF (gbuf%G_SEQ == 0) gbuf%G_SEQ = mtag%G_SEQ
193 IF (gbuf%G_ABURN == 0) gbuf%G_ABURN = mtag%G_ABURN
194 IF (gbuf%G_MU == 0) gbuf%G_MU = mtag%G_MU
195 IF (gbuf%G_PLANL == 0) gbuf%G_PLANL = mtag%G_PLANL
196 IF (gbuf%G_EPSDNL == 0) gbuf%G_EPSDNL = mtag%G_EPSDNL
197 IF (gbuf%G_DMGSCL == 0) gbuf%G_DMGSCL = mtag%G_DMGSCL
198 IF (gbuf%G_TSAIWU == 0) gbuf%G_TSAIWU = mtag%G_TSAIWU
199 IF (gbuf%G_MAXFRAC== 0) gbuf%G_MAXFRAC= mtag%G_MAXFRAC
200 IF (gbuf%G_MAXEPS == 0) gbuf%G_MAXEPS = mtag%G_MAXEPS
201 IF (gbuf%G_DMG == 0) gbuf%G_DMG = mtag%G_DMG
202 IF (gbuf%G_NUVAR == 0) gbuf%G_NUVAR = mtag%G_NUVAR
203 IF (gbuf%G_THK == 0) gbuf%G_THK = mtag%G_THK
204c
205 IF (igtyp == 2 .or. igtyp == 3) THEN ! truss / beam with Material
206 IF (gbuf%G_NUVAR == 0) gbuf%G_NUVAR = mtag%NUVAR
207 ENDIF
208 ENDIF ! GMAT > 0
209 ENDIF
210C
211
212 IF (int22 > 0) gbuf%G_TAG22 = 1
213 gbuf%G_DT = 1
214
215c
216c equation of state (eos)
217c
218 IF (ieos > 0)THEN
219 IF (gbuf%G_MU == 0) gbuf%G_MU = etag%G_MU
220 IF (gbuf%G_TB == 0) gbuf%G_TB = etag%G_TB
221 IF (gbuf%G_ABURN == 0) gbuf%G_ABURN = etag%G_ABURN
222 IF (gbuf%G_BFRAC == 0) gbuf%G_BFRAC = etag%G_BFRAC
223
224 DO il = 1, nlay
225 IF (igtyp == 51 .OR. igtyp == 52) THEN
226 nptt = elbuf_str%BUFLY(il)%NPTT
227 ELSE
228 nptt = elbuf_str%NPTT
229 ENDIF
230 DO ir = 1,nptr
231 DO is = 1,npts
232 DO it = 1,nptt
233 IF(elbuf_str%BUFLY(il)%NVAR_EOS == 0)THEN
234 elbuf_str%BUFLY(il)%NVAR_EOS = etag%NVAR
235 ENDIF
236 ENDDO
237 ENDDO
238 ENDDO
239 ENDDO
240
241
242 ENDIF
243
244c
245c global property variables
246c
247 IF(igtyp > 0)THEN
248 IF (gbuf%G_OFF == 0) gbuf%G_OFF = ptag%G_OFF
249 IF (ifail > 0) gbuf%G_NOFF = 1
250 IF (gbuf%G_NOFF == 0) gbuf%G_NOFF = ptag%G_NOFF
251 gbuf%G_GAMA = max(gbuf%G_GAMA, ptag%G_GAMA)
252 gbuf%G_EINT = max(gbuf%G_EINT, ptag%G_EINT)
253 IF (gbuf%G_SMSTR == 0) gbuf%G_SMSTR = ptag%G_SMSTR
254 IF (gbuf%G_HOURG == 0) gbuf%G_HOURG = ptag%G_HOURG
255 IF (gbuf%G_FOR == 0) gbuf%G_FOR = ptag%G_FOR
256 IF (gbuf%G_MOM == 0) gbuf%G_MOM = ptag%G_MOM
257 IF (gbuf%G_SIG == 0) gbuf%G_SIG = ptag%G_SIG
258 IF (gbuf%G_STRA == 0) gbuf%G_STRA = ptag%G_STRA
259 IF (gbuf%G_THK == 0) gbuf%G_THK = ptag%G_THK
260 IF (gbuf%G_VOL == 0) gbuf%G_VOL = ptag%G_VOL
261 IF (gbuf%G_QVIS == 0) gbuf%G_QVIS = ptag%G_QVIS
262 IF (gbuf%G_FORPG == 0) gbuf%G_FORPG = ptag%G_FORPG*npg
263 IF (gbuf%G_MOMPG == 0) gbuf%G_MOMPG = ptag%G_MOMPG*npg
264C
265 IF (gbuf%G_FORPGPINCH == 0) gbuf%G_FORPGPINCH = ptag%G_FORPGPINCH*npg
266 IF (gbuf%G_MOMPGPINCH == 0) gbuf%G_MOMPGPINCH = ptag%G_MOMPGPINCH*npg
267 IF (gbuf%G_EPGPINCHXZ == 0) gbuf%G_EPGPINCHXZ = ptag%G_EPGPINCHXZ*npg
268 IF (gbuf%G_EPGPINCHYZ == 0) gbuf%G_EPGPINCHYZ = ptag%G_EPGPINCHYZ*npg
269 IF (gbuf%G_EPGPINCHZZ == 0) gbuf%G_EPGPINCHZZ = ptag%G_EPGPINCHZZ*npg
270C
271 IF (gbuf%G_STRPG == 0) gbuf%G_STRPG = ptag%G_STRPG*npg
272 IF (gbuf%G_FORTH == 0) gbuf%G_FORTH = ptag%G_FORTH
273 IF (gbuf%G_EINTTH == 0) gbuf%G_EINTTH = ptag%G_EINTTH
274 IF (gbuf%G_FILL == 0) gbuf%G_FILL = ptag%G_FILL
275c---
276c 1-D elements (TRUSS, BEAM, SPRING, NSTRAND)
277c---
278 IF (gbuf%G_AREA == 0) gbuf%G_AREA = ptag%G_AREA
279 IF (gbuf%G_SKEW == 0) gbuf%G_SKEW = ptag%G_SKEW
280 IF (gbuf%G_LENGTH == 0) gbuf%G_LENGTH = ptag%G_LENGTH
281 IF (gbuf%G_TOTDEPL == 0) gbuf%G_TOTDEPL = ptag%G_TOTDEPL
282 IF (gbuf%G_TOTROT == 0) gbuf%G_TOTROT = ptag%G_TOTROT
283 IF (gbuf%G_FOREP == 0) gbuf%G_FOREP = ptag%G_FOREP
284 IF (gbuf%G_MOMEP == 0) gbuf%G_MOMEP = ptag%G_MOMEP
285 IF (gbuf%G_DEP_IN_TENS == 0) gbuf%G_DEP_IN_TENS = ptag%G_DEP_IN_TENS
286 IF (gbuf%G_DEP_IN_COMP == 0) gbuf%G_DEP_IN_COMP = ptag%G_DEP_IN_COMP
287 IF (gbuf%G_ROT_IN_TENS == 0) gbuf%G_ROT_IN_TENS = ptag%G_ROT_IN_TENS
288 IF (gbuf%G_ROT_IN_COMP == 0) gbuf%G_ROT_IN_COMP = ptag%G_ROT_IN_COMP
289 IF (gbuf%G_POSX == 0) gbuf%G_POSX = ptag%G_POSX
290 IF (gbuf%G_POSY == 0) gbuf%G_POSY = ptag%G_POSY
291 IF (gbuf%G_POSZ == 0) gbuf%G_POSZ = ptag%G_POSZ
292 IF (gbuf%G_POSXX == 0) gbuf%G_POSXX = ptag%G_POSXX
293 IF (gbuf%G_POSYY == 0) gbuf%G_POSYY = ptag%G_POSYY
294 IF (gbuf%G_POSZZ == 0) gbuf%G_POSZZ = ptag%G_POSZZ
295 IF (gbuf%G_YIELD == 0) gbuf%G_YIELD = ptag%G_YIELD
296 IF (gbuf%G_LENGTH_ERR == 0) gbuf%G_LENGTH_ERR = ptag%G_LENGTH_ERR
297 IF (gbuf%G_DV == 0) gbuf%G_DV = ptag%G_DV
298 IF (gbuf%G_DFS == 0) gbuf%G_DFS = ptag%G_DFS
299 IF (gbuf%G_SKEW_ERR == 0) gbuf%G_SKEW_ERR = ptag%G_SKEW_ERR
300 IF (gbuf%G_E6 == 0) gbuf%G_E6 = ptag%G_E6
301 IF (gbuf%G_RUPTCRIT == 0) gbuf%G_RUPTCRIT = ptag%G_RUPTCRIT
302 IF (gbuf%G_MASS == 0) gbuf%G_MASS = ptag%G_MASS
303 IF (gbuf%G_V_REPCVT == 0) gbuf%G_V_REPCVT = ptag%G_V_REPCVT
304 IF (gbuf%G_VR_REPCVT == 0) gbuf%G_VR_REPCVT = ptag%G_VR_REPCVT
305 IF (gbuf%G_NUVAR == 0) gbuf%G_NUVAR = ptag%G_NUVAR
306 IF (gbuf%G_NUVARN == 0) gbuf%G_NUVARN = ptag%G_NUVARN
307 IF (gbuf%G_DEFINI == 0) gbuf%G_DEFINI = ptag%G_DEFINI
308 IF (gbuf%G_FORINI == 0) gbuf%G_FORINI = ptag%G_FORINI
309 IF (gbuf%G_INIFRIC == 0) gbuf%G_INIFRIC = ptag%G_INIFRIC
310 IF (gbuf%G_SKEW_ID == 0) gbuf%G_SKEW_ID = ptag%G_SKEW_ID
311 ENDIF ! IGTYP > 0
312C
313 IF (igtyp == 23 .AND. gmat > 0) THEN ! spring with Material
314 mtag => mlaw_tag(gmat)
315 IF (gbuf%G_TOTDEPL == 0) gbuf%G_TOTDEPL = mtag%G_TOTDEPL
316 IF (gbuf%G_TOTROT == 0) gbuf%G_TOTROT = mtag%G_TOTROT
317 IF (gbuf%G_DEP_IN_TENS == 0) gbuf%G_DEP_IN_TENS = mtag%G_DEP_IN_TENS
318 IF (gbuf%G_DEP_IN_COMP == 0) gbuf%G_DEP_IN_COMP = mtag%G_DEP_IN_COMP
319 IF (gbuf%G_ROT_IN_TENS == 0) gbuf%G_ROT_IN_TENS = mtag%G_ROT_IN_TENS
320 IF (gbuf%G_ROT_IN_COMP == 0) gbuf%G_ROT_IN_COMP = mtag%G_ROT_IN_COMP
321 IF (gbuf%G_POSX == 0) gbuf%G_POSX = mtag%G_POSX
322 IF (gbuf%G_POSY == 0) gbuf%G_POSY = mtag%G_POSY
323 IF (gbuf%G_POSZ == 0) gbuf%G_POSZ = mtag%G_POSZ
324 IF (gbuf%G_POSXX == 0) gbuf%G_POSXX = mtag%G_POSXX
325 IF (gbuf%G_POSYY == 0) gbuf%G_POSYY = mtag%G_POSYY
326 IF (gbuf%G_POSZZ == 0) gbuf%G_POSZZ = mtag%G_POSZZ
327 IF (gbuf%G_YIELD == 0) gbuf%G_YIELD = mtag%G_YIELD
328 IF (gbuf%G_RUPTCRIT == 0) gbuf%G_RUPTCRIT = mtag%G_RUPTCRIT
329 IF (gbuf%G_MASS == 0) gbuf%G_MASS = mtag%G_MASS
330 IF (gbuf%G_SKEW_ID == 0) gbuf%G_SKEW_ID = mtag%G_SKEW_ID
331 IF (gbuf%G_YIELD_IN_COMP == 0) gbuf%G_YIELD_IN_COMP = mtag%G_YIELD_IN_COMP
332 IF (gbuf%G_XXOLD_IN_COMP == 0) gbuf%G_XXOLD_IN_COMP = mtag%G_XXOLD_IN_COMP
333 ENDIF
334C
335 IF ((igtyp == 23).AND.(glaw == 114) .AND. gmat > 0) THEN ! 1D seatbelt material
336 mtag => mlaw_tag(gmat)
337 IF (gbuf%G_DFS == 0) gbuf%G_DFS = mtag%G_DFS
338 IF (gbuf%G_SLIPRING_ID == 0) gbuf%G_SLIPRING_ID = mtag%G_SLIPRING_ID
339 IF (gbuf%G_SLIPRING_FRAM_ID == 0) gbuf%G_SLIPRING_FRAM_ID = mtag%G_SLIPRING_FRAM_ID
340 IF (gbuf%G_SLIPRING_STRAND == 0) gbuf%G_SLIPRING_STRAND = mtag%G_SLIPRING_STRAND
341 IF (gbuf%G_RETRACTOR_ID== 0) gbuf%G_RETRACTOR_ID = mtag%G_RETRACTOR_ID
342 IF (gbuf%G_RINGSLIP == 0) gbuf%G_RINGSLIP = mtag%G_RINGSLIP
343 IF (gbuf%G_ADD_NODE == 0) gbuf%G_ADD_NODE = mtag%G_ADD_NODE
344 IF (gbuf%G_UPDATE == 0) gbuf%G_UPDATE = mtag%G_UPDATE
345 IF (gbuf%G_FRAM_FACTOR == 0) gbuf%G_FRAM_FACTOR = mtag%G_FRAM_FACTOR
346 IF (gbuf%G_INTVAR == 0) gbuf%G_INTVAR = mtag%G_INTVAR
347 ENDIF
348C
349 IF ((igtyp == 9).AND.(glaw == 119) .AND. gmat > 0) THEN ! 2D seatbelt material
350 mtag => mlaw_tag(gmat)
351 IF (gbuf%G_SLIPRING_ID == 0) gbuf%G_SLIPRING_ID = mtag%G_SLIPRING_ID
352 IF (gbuf%G_SLIPRING_FRAM_ID == 0) gbuf%G_SLIPRING_FRAM_ID = mtag%G_SLIPRING_FRAM_ID
353 IF (gbuf%G_INTVAR == 0) gbuf%G_INTVAR = mtag%G_INTVAR
354 IF (gbuf%G_ADD_NODE == 0) gbuf%G_ADD_NODE = mtag%G_ADD_NODE
355 IF (gbuf%G_UPDATE == 0) gbuf%G_UPDATE = mtag%G_UPDATE
356 IF (gbuf%G_POSX == 0) gbuf%G_POSX = mtag%G_POSX
357 IF (gbuf%G_POSY == 0) gbuf%G_POSY = mtag%G_POSY
358 ENDIF
359C
360 IF(isnod == 10 .AND. idt1tet10 > 1)THEN
361 gbuf%G_DT_PITER=30
362 END IF
363c
364c local variables : defined per layer
365c
366 DO ilay = 1,nlay
367 bufly => elbuf_str%BUFLY(ilay)
368 IF (jmult > 0 .and. glaw == 151) THEN
369 mtag => mlaw_tag(gmat)
370 ELSE
371 mtag => mlaw_tag(bufly%IMAT)
372 ENDIF
373 etag => eos_tag(bufly%IEOS)
374 IF(ieos > 0)THEN
375 IF (bufly%L_MU == 0) bufly%L_MU = etag%L_MU
376 IF (bufly%L_TB == 0) bufly%L_TB = etag%L_TB
377 IF (bufly%L_ABURN == 0) bufly%L_ABURN = etag%L_ABURN
378 IF (bufly%L_BFRAC == 0) bufly%L_BFRAC = etag%L_BFRAC
379 ENDIF
380
381 IF (igtyp == 51 .OR. igtyp == 52) nptt = bufly%NPTT
382c local material variables
383 IF(gmat >0)THEN
384 IF (bufly%L_GAMA == 0) bufly%L_GAMA = mtag%L_GAMA
385 IF (bufly%L_STRA == 0) bufly%L_STRA = mtag%L_STRA
386 IF (bufly%L_BFRAC == 0) bufly%L_BFRAC = mtag%L_BFRAC
387 IF (bufly%L_EINT == 0) bufly%L_EINT = mtag%L_EINT
388 IF (bufly%L_EINS == 0) bufly%L_EINS = mtag%L_EINS
389 IF (bufly%L_RHO == 0) bufly%L_RHO = mtag%L_RHO
390 IF (bufly%L_DP_DRHO== 0) bufly%L_DP_DRHO= mtag%L_DP_DRHO
391 IF (bufly%L_DELTAX == 0) bufly%L_DELTAX = mtag%L_DELTAX
392 IF (bufly%L_PLA == 0) bufly%L_PLA = mtag%L_PLA
393 IF ((bufly%L_WPLA == 0).AND.(bufly%L_PLA > 0)) THEN
394 bufly%L_WPLA = 1
395 ENDIF
396 IF (bufly%L_TB == 0) bufly%L_TB = mtag%L_TB
397 IF (bufly%L_RK == 0) bufly%L_RK = mtag%L_RK
398 IF (bufly%L_RE == 0) bufly%L_RE = mtag%L_RE
399 IF (bufly%L_EPSA == 0) bufly%L_EPSA = mtag%L_EPSA
400 IF (bufly%L_EPSD == 0) bufly%L_EPSD = mtag%L_EPSD
401 IF (bufly%L_EPSQ == 0) bufly%L_EPSQ = mtag%L_EPSQ
402 IF (bufly%L_EPSF == 0) bufly%L_EPSF = mtag%L_EPSF
403 IF (bufly%L_SIGL == 0) bufly%L_SIGL = mtag%L_SIGL
404 IF (mtag%G_GAMA > 0 .AND. bufly%L_SIGL == 0) bufly%L_SIGL = 6
405 IF (bufly%L_SIGV == 0) bufly%L_SIGV = mtag%L_SIGV
406 IF (bufly%L_SIGA == 0) bufly%L_SIGA = mtag%L_SIGA
407 IF (bufly%L_SIGB == 0) bufly%L_SIGB = mtag%L_SIGB
408 IF (bufly%L_SIGC == 0) bufly%L_SIGC = mtag%L_SIGC
409 IF (bufly%L_SIGD == 0) bufly%L_SIGD = mtag%L_SIGD
410 IF (bufly%L_SIGF == 0) bufly%L_SIGF = mtag%L_SIGF
411 IF (bufly%L_TEMP == 0) bufly%L_TEMP = mtag%L_TEMP
412 IF (bufly%L_VK == 0) bufly%L_VK = mtag%L_VK
413 IF (bufly%L_SF == 0) bufly%L_SF = mtag%L_SF
414 IF (bufly%L_ROB == 0) bufly%L_ROB = mtag%L_ROB
415 IF (bufly%L_DAM == 0) bufly%L_DAM = mtag%L_DAM
416 IF (bufly%L_DSUM == 0) bufly%L_DSUM = mtag%L_DSUM
417 IF (bufly%L_DGLO == 0) bufly%L_DGLO = mtag%L_DGLO
418 IF (bufly%L_CRAK == 0) bufly%L_CRAK = mtag%L_CRAK
419 IF (bufly%L_ANG == 0) bufly%L_ANG = mtag%L_ANG
420 IF (bufly%L_EPE == 0) bufly%L_EPE = mtag%L_EPE
421 IF (bufly%L_EPC == 0) bufly%L_EPC = mtag%L_EPC
422 IF (bufly%L_XST == 0) bufly%L_XST = mtag%L_XST
423 IF (bufly%L_SSP == 0) bufly%L_SSP = mtag%L_SSP
424 IF (bufly%L_Z == 0) bufly%L_Z = mtag%L_Z
425 IF (bufly%L_FRAC == 0) bufly%L_FRAC = mtag%L_FRAC
426 IF (bufly%L_DMG == 0) bufly%L_DMG = mtag%L_DMG
427 IF (bufly%LY_DIRA == 0) bufly%LY_DIRA = mtag%LY_DIRA
428 IF (bufly%L_SEQ == 0) bufly%L_SEQ = mtag%L_SEQ
429 IF (bufly%L_FAC_YLD== 0) bufly%L_FAC_YLD= mtag%L_FAC_YLD
430 IF (bufly%L_ABURN == 0) bufly%L_ABURN = mtag%L_ABURN
431 IF (bufly%L_MU == 0) bufly%L_MU = mtag%L_MU
432 IF (bufly%L_PLANL == 0) bufly%L_PLANL = mtag%L_PLANL
433 IF (bufly%L_EPSDNL == 0) bufly%L_EPSDNL = mtag%L_EPSDNL
434 IF (bufly%L_DMGSCL == 0) bufly%L_DMGSCL = mtag%L_DMGSCL
435 IF (bufly%L_TSAIWU == 0) bufly%L_TSAIWU = mtag%L_TSAIWU
436 ENDIF ! GMAT > 0
437c layer property variables
438 IF(igtyp > 0) THEN
439 IF (bufly%LY_DMG == 0) bufly%LY_DMG = ptag%LY_DMG
440 IF (bufly%LY_GAMA == 0) bufly%LY_GAMA = ptag%LY_GAMA
441 IF (bufly%LY_DIRA == 0) bufly%LY_DIRA = ptag%LY_DIRA
442 IF (bufly%LY_DIRB == 0) bufly%LY_DIRB = ptag%LY_DIRB
443 IF (bufly%LY_PLAPT== 0 .and. bufly%L_PLA > 0) bufly%LY_PLAPT = ptag%LY_PLAPT
444 IF (bufly%LY_SIGPT == 0) bufly%LY_SIGPT = ptag%LY_SIGPT
445 IF (bufly%LY_HOURG == 0) bufly%LY_HOURG = ptag%LY_HOURG
446c local property variables
447 IF (bufly%L_OFF == 0) bufly%L_OFF = ptag%L_OFF
448 bufly%L_EINT = max(bufly%L_EINT, ptag%L_EINT)
449 IF (bufly%L_GAMA == 0) bufly%L_GAMA = ptag%L_GAMA
450 IF (bufly%L_STRA == 0) bufly%L_STRA = ptag%L_STRA
451 IF (bufly%L_FOR == 0) bufly%L_FOR = ptag%L_FOR
452 IF (bufly%L_MOM == 0) bufly%L_MOM = ptag%L_MOM
453 IF (bufly%L_SIGL == 0) bufly%L_SIGL = ptag%L_SIGL
454 IF (bufly%L_SIG == 0) bufly%L_SIG = ptag%L_SIG
455 IF (bufly%L_SIGPLY == 0) bufly%L_SIGPLY = ptag%L_SIGPLY
456 IF (bufly%L_THK == 0) bufly%L_THK = ptag%L_THK
457 IF (bufly%L_VOL == 0) bufly%L_VOL = ptag%L_VOL
458 IF (bufly%L_QVIS == 0) bufly%L_QVIS = ptag%L_QVIS
459 IF (bufly%L_FORTH == 0) bufly%L_FORTH = ptag%L_FORTH
460 IF (bufly%L_EINTTH == 0) bufly%L_EINTTH = ptag%L_EINTTH
461 ENDIF
462 ENDDO
463C-----------------------------------------------
464 RETURN
465 END SUBROUTINE initvars_auto
466
subroutine initvars_auto(elbuf_str, mlaw_tag, prop_tag, gmat, glaw, igtyp, jmult, ifail, ieos, eos_tag, isnod)
#define max(a, b)
Definition macros.h:21