OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_elbuf_str.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!|| w_elbuf_str ../starter/source/restart/ddsplit/w_elbuf_str.f
25!||--- called by ------------------------------------------------------
26!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
27!||--- calls -----------------------------------------------------
28!||--- uses -----------------------------------------------------
29!||====================================================================
30 SUBROUTINE w_elbuf_str(PROC,IPARG,ELBUF_TAB,LEN_AM,FLAG_XFEM)
31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34 USE elbufdef_mod
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "com01_c.inc"
43#include "param_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER PROC,LEN_AM, IPARG(NPARG,*),FLAG_XFEM
48 TYPE(elbuf_struct_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I,J,K,IL,IR,IS,IT,NG,NEL,NPT,P,L_REL,BUFLEN,NUVAR,
53 . ITY,IGTYP,ERR,IFAIL,IDFAIL,DEBUG_PRINT,IAD,
54 . NFAIL,IXFEM,IVISC,II,NINTLAY,NPG,IPT,NPTT,NPTTOT,INLOC,NONL,
55 . IDAMP_FREQ_RANGE
56 INTEGER ! global variables
57 . G_GAMA,G_SIG,G_OFF,G_NOFF,G_EINT,G_EINS,G_TEMP,
58 . G_RHO,G_PLA,G_VOL,G_EPSD,G_QVIS,G_DELTAX,G_TB,G_RK,G_RE,G_WPLA,
59 . G_SMSTR,G_HOURG,G_BFRAC,G_THK,G_FOR,G_MOM,G_TAG22,G_STRA,G_SIGI,
60 . G_DMG,G_FORPG,G_MOMPG,G_STRPG,G_UELR,G_UELR1,G_EPSQ,G_IERR,
61 . G_DAMDL,G_FORTH,G_EINTTH,G_FILL,G_SEQ,G_STRW,G_STRWPG,G_THK_I,
62 . G_JAC_I,G_AREA,G_SKEW,G_LENGTH,G_TOTDEPL,G_TOTROT,G_FOREP,G_MOMEP,
63 . G_DEP_IN_TENS,G_DEP_IN_COMP,G_ROT_IN_TENS,G_ROT_IN_COMP,
64 . G_POSX,G_POSY,G_POSZ,G_POSXX,G_POSYY,G_POSZZ,G_YIELD,G_LENGTH_ERR,
65 . G_DV,G_DFS,G_SKEW_ERR,G_E6,G_RUPTCRIT,G_MASS,G_V_REPCVT,
66 . G_VR_REPCVT,G_NUVAR,G_NUVARN,G_INIFRIC,G_DT,G_ISMS,G_STRHG,G_ETOTSH,
67 . G_BPRELD,G_ABURN,G_MU,G_PLANL,G_EPSDNL,G_MAXFRAC,G_MAXEPS,G_DT_PITER,
68 . G_TEMPG,G_COR_NF,G_COR_FR,G_COR_XR,G_DEFINI,G_FORINI,G_IDT_TSH,
69 . G_FORPGPINCH,G_MOMPGPINCH,G_EPGPINCHXZ,G_EPGPINCHYZ,G_EPGPINCHZZ,
70 . G_SKEW_ID,G_GAMA_R,G_SLIPRING_ID,G_SLIPRING_STRAND,G_RETRACTOR_ID,G_RINGSLIP,
71 . G_ADD_NODE,G_UPDATE,G_INTVAR,G_BETAORTH,G_AMU,G_SLIPRING_FRAM_ID,G_FRAM_FACTOR,
72 . G_TM_YIELD,G_TM_SEQ,G_TM_EINT,G_TM_DMG,G_TM_SIG,G_TM_STRA,G_TSAIWU,G_DMGSCL,
73 . G_SH_IOFFSET,G_EINT_DISTOR,G_FOR_G,G_FORPG_G,G_YIELD_IN_COMP,G_XXOLD_IN_COMP
74
75 INTEGER ! layer variables
76 . LY_DMG,LY_GAMA,LY_DIRA,LY_DIRB,LY_CRKDIR,LY_PLAPT,LY_SIGPT,LY_SMSTR,
77 . LY_HOURG,LY_UELR,LY_UELR1,Ly_OFFPG,LY_OFF,LEN_PLAPT,LEN_SIGPT
78 INTEGER ! interlayer variables
79 . LY_EINT,LY_COUNT
80 INTEGER ! local variables
81 . L_OFF,L_EINT,L_EINS,L_RHO,L_DP_DRHO,L_VOL,L_PLA,L_TB,L_TEMP,
82 . L_RK,L_RE,L_VK,L_ROB,L_SIG,L_SIGV,L_SIGL,L_SIGA,L_SIGD,L_SIGB,
83 . L_SIGC,L_SIGF,L_STRA,L_EPSA,L_EPSD,L_EPSQ,L_EPSF,L_CRAK,L_WPLA,
84 . L_ANG,L_SF,L_QVIS,L_DELTAX,L_GAMA,
85 . L_DAM,L_DSUM,L_DGLO,L_EPE,L_EPC,L_XST,L_SSP,L_Z,L_FRAC,L_VISC,
86 . L_THK,L_FOR,L_MOM,L_EPS,L_SMSTR,L_BFRAC,L_DMG,L_FORTH,L_EINTTH,
87 . L_SEQ,L_SIGPLY,L_JAC_I,L_FAC_YLD,L_ABURN,L_MU,L_PLANL,L_EPSDNL,
88 . L_DMGSCL,L_PIJ,L_VOL0DP,L_TSAIWU,IDRAPE
89 INTEGER ! failure variables
90 . LF_DAM,LF_DAMMX,LF_DAMINI,LF_TDEL,LF_INDX,LF_OFF
91 INTEGER sum
92 my_real,
93 . ALLOCATABLE, DIMENSION (:) :: rbuf_l
94
95 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: DP_RBUF
96 INTEGER SDP_RBUF,L_DPREL
97
98 TYPE(elbuf_struct_), POINTER :: ELBUF
99 TYPE(G_BUFEL_) , POINTER :: GBUF
100 TYPE(l_bufel_) , POINTER :: LBUF
101 TYPE(buf_intloc_) , POINTER :: ILBUF
102 TYPE(buf_lay_) , POINTER :: BUFLY
103 TYPE(buf_intlay_) , POINTER :: INTLAY
104 TYPE(fail_loc_) , POINTER :: FLOC
105 TYPE(buf_nloc_) , POINTER :: BUFNL
106 TYPE(BUF_NLOCTS_) , POINTER :: BUFNLTS
107 TYPE(l_bufel_dir_) , POINTER :: LBUF_DIR
108
109C=======================================================================
110 debug_print = 0
111 npg = -huge(npg)
112c
113 DO ng=1,ngroup
114 p = iparg(32,ng)
115 inloc = iparg(78,ng) ! Flag for non-local regularization
116 idamp_freq_range = iparg(93,ng) ! Flag for damping frequency range
117c----
118 IF (p == proc) THEN
119c----
120 ity = iparg(5,ng)
121
122 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR.
123 . ity == 3 .OR. ity == 7 .OR. ity == 101.OR.
124 . ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100) THEN
125 elbuf => elbuf_tab(ng)
126c
127 ixfem = iparg(54,ng) ! flag XFEM
128 IF (ixfem == 0 .AND. flag_xfem == 1) cycle ! no "XFEM_TAB" buffer for non xfem PARTS
129c
130 igtyp = elbuf%IGTYP
131 ixfem = elbuf%IXFEM
132 nel = elbuf%NEL
133 idrape = elbuf%IDRAPE
134cc NPT = IPARG(6,NG)
135 npt = elbuf%NLAY*elbuf%NPTR*elbuf%NPTS*elbuf%NPTT
136C
137c---------------------------------------------------
138 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR.
139 . ity == 101) THEN
140 npg = elbuf%NPTR*elbuf%NPTS*elbuf%NPTT
141 npttot = npt
142 ELSEIF (ity == 3 .OR. ity == 7) THEN
143 npg = elbuf%NPTR*elbuf%NPTS
144 npttot = 0
145 DO il=1,elbuf%NLAY
146 npttot = npttot + npg*elbuf%BUFLY(il)%NPTT
147 ENDDO
148 IF (npt == 0) npttot = npt
149 ELSE
150 npg = 0
151 npttot = 0
152 ENDIF
153c---------------------------------------------------
154c allocate and fill the transfer table for restart
155c---------------------------------------------------
156 buflen = iparg(66,ng)
157 ALLOCATE (rbuf_l(buflen), stat=err)
158c
159c---------------------------------------------------
160C IF (DEBUG_PRINT == 1) THEN
161C print*,'**** GROUP,ITY,IGTYP,BUFLEN=',ng,ity,igtyp,BUFLEN
162C ENDIF
163c---------------------------------------------------
164C
165C SMSTR must be written in separate Buffer (Forced in double precision)
166C
167 gbuf => elbuf_tab(ng)%GBUF
168C-- add VOL0DP
169 sdp_rbuf = 0
170 DO il = 1,elbuf%NLAY
171 bufly => elbuf_tab(ng)%BUFLY(il)
172 IF (igtyp == 51 .OR. igtyp == 52) THEN
173 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
174 ELSE
175 nptt = elbuf_tab(ng)%NPTT
176 ENDIF
177 DO ir = 1,elbuf%NPTR
178 DO is = 1,elbuf%NPTS
179 DO it = 1,nptt
180 sdp_rbuf = sdp_rbuf+bufly%L_VOL0DP*nel
181 ENDDO
182 ENDDO
183 ENDDO
184 ENDDO
185 sdp_rbuf = sdp_rbuf + gbuf%G_SMSTR *nel
186 IF(sdp_rbuf > 0)THEN
187 ALLOCATE(dp_rbuf(sdp_rbuf))
188 ENDIF
189 l_dprel = 0
190C
191
192 rbuf_l(1:buflen) = zero
193 l_rel = 0
194c--------- write top structure parameters: NPAR_TAB = 9
195 rbuf_l(l_rel+1) = elbuf%IGTYP
196 l_rel = l_rel+1
197 rbuf_l(l_rel+1) = elbuf%NEL
198 l_rel = l_rel+1
199 rbuf_l(l_rel+1) = elbuf%NLAY
200 l_rel = l_rel+1
201 rbuf_l(l_rel+1) = elbuf%NINTLAY
202 l_rel = l_rel+1
203 rbuf_l(l_rel+1) = elbuf%NPTR
204 l_rel = l_rel+1
205 rbuf_l(l_rel+1) = elbuf%NPTS
206 l_rel = l_rel+1
207 rbuf_l(l_rel+1) = elbuf%NPTT
208 l_rel = l_rel+1
209 rbuf_l(l_rel+1) = elbuf%IXFEM
210 l_rel = l_rel+1
211 rbuf_l(l_rel+1) = elbuf%NXEL
212 l_rel = l_rel+1
213 rbuf_l(l_rel+1) = elbuf%IDRAPE
214 l_rel = l_rel+1
215c---------------------------------------------------
216c Damping parameters for frequency range
217c---------------------------------------------------
218 IF (idamp_freq_range > 0) THEN
219 rbuf_l(l_rel+1:l_rel+3) = elbuf%DAMP_RANGE%ALPHA(1:3)
220 rbuf_l(l_rel+4:l_rel+6) = elbuf%DAMP_RANGE%TAU(1:3)
221 l_rel = l_rel + 6
222 ENDIF
223c---------------------------------------------------
224c LAYERS : write buffer at layer level
225c---------------------------------------------------
226 sum = l_rel
227
228 IF (debug_print == 1) THEN
229 print*,' NPAR_TAB=',sum
230 ENDIF
231c---------------------------------------------------
232 DO il = 1,elbuf%NLAY
233 bufly => elbuf_tab(ng)%BUFLY(il)
234c
235c--------- write layer parameters: NPAR_LAY = 13
236c
237 rbuf_l(l_rel+1) = bufly%ILAW
238 l_rel = l_rel+1
239 rbuf_l(l_rel+1) = bufly%IMAT
240 l_rel = l_rel+1
241 rbuf_l(l_rel+1) = bufly%IEOS
242 l_rel = l_rel+1
243 rbuf_l(l_rel+1) = bufly%IVISC
244 l_rel = l_rel+1
245 rbuf_l(l_rel+1) = bufly%IPORO
246 l_rel = l_rel+1
247 rbuf_l(l_rel+1) = bufly%NFAIL
248 l_rel = l_rel+1
249 rbuf_l(l_rel+1) = bufly%NVAR_MAT
250 l_rel = l_rel+1
251 rbuf_l(l_rel+1) = bufly%NVAR_EOS
252 l_rel = l_rel+1
253 rbuf_l(l_rel+1) = bufly%NVARTMP
254 l_rel = l_rel+1
255 rbuf_l(l_rel+1) = bufly%NVARTMP_EOS
256 l_rel = l_rel+1
257 rbuf_l(l_rel+1) = bufly%NVAR_VISC
258 l_rel = l_rel+1
259 rbuf_l(l_rel+1) = bufly%NVAR_LOC
260 l_rel = l_rel+1
261 rbuf_l(l_rel+1) = bufly%NVAR_LAY
262 l_rel = l_rel+1
263 rbuf_l(l_rel+1) = bufly%NPTT
264 l_rel = l_rel+1
265c
266c---------------------------------------------------
267 IF (debug_print == 1) THEN
268 print*,' ** LAYER=',il
269 print*,' NPAR_LAY=', l_rel-sum
270 iad = l_rel
271 ENDIF
272c---------------------------------------------------
273c
274c------- write layer variable lengths (BUFLY%NVAR_LAY = 12)
275c
276 ly_dmg = bufly%LY_DMG
277 ly_gama = bufly%LY_GAMA
278 ly_dira = bufly%LY_DIRA
279 ly_dirb = bufly%LY_DIRB
280 ly_crkdir= bufly%LY_CRKDIR
281 ly_plapt = bufly%LY_PLAPT
282 ly_sigpt = bufly%LY_SIGPT
283 ly_hourg = bufly%LY_HOURG
284 ly_uelr = bufly%LY_UELR
285 ly_uelr1 = bufly%LY_UELR1
286 ly_offpg = bufly%LY_OFFPG
287 ly_off = bufly%LY_OFF
288c
289 rbuf_l(l_rel+1) = ly_dmg
290 l_rel = l_rel+1
291 rbuf_l(l_rel+1) = ly_gama
292 l_rel = l_rel+1
293 rbuf_l(l_rel+1) = ly_dira
294 l_rel = l_rel+1
295 rbuf_l(l_rel+1) = ly_dirb
296 l_rel = l_rel+1
297 rbuf_l(l_rel+1) = ly_crkdir
298 l_rel = l_rel+1
299 rbuf_l(l_rel+1) = ly_plapt
300 l_rel = l_rel+1
301 rbuf_l(l_rel+1) = ly_sigpt
302 l_rel = l_rel+1
303 rbuf_l(l_rel+1) = ly_hourg
304 l_rel = l_rel+1
305 rbuf_l(l_rel+1) = ly_uelr
306 l_rel = l_rel+1
307 rbuf_l(l_rel+1) = ly_uelr1
308 l_rel = l_rel+1
309 rbuf_l(l_rel+1) = ly_offpg
310 l_rel = l_rel+1
311 rbuf_l(l_rel+1) = ly_off
312 l_rel = l_rel+1
313c
314c---------------------------------------------------
315 IF (debug_print == 1) THEN
316 print*,' NVAR_LAY=', l_rel-iad
317 iad = l_rel
318 ENDIF
319c---------------------------------------------------
320c------- write local variable lengths
321c
322 l_off = bufly%L_OFF
323 l_gama = bufly%L_GAMA
324 l_stra = bufly%L_STRA
325 l_frac = bufly%L_FRAC
326 l_bfrac = bufly%L_BFRAC
327 l_eint = bufly%L_EINT
328 l_eins = bufly%L_EINS
329 l_rho = bufly%L_RHO
330 l_dp_drho = bufly%L_DP_DRHO
331 l_qvis = bufly%L_QVIS
332 l_deltax = bufly%L_DELTAX
333 l_vol = bufly%L_VOL
334 l_epsa = bufly%L_EPSA
335 l_epsd = bufly%L_EPSD
336 l_epsq = bufly%L_EPSQ
337 l_epsf = bufly%L_EPSF
338 l_pla = bufly%L_PLA
339 l_wpla = bufly%L_WPLA
340 l_temp = bufly%L_TEMP
341 l_tb = bufly%L_TB
342 l_rk = bufly%L_RK
343 l_re = bufly%L_RE
344 l_vk = bufly%L_VK
345 l_sf = bufly%L_SF
346 l_rob = bufly%L_ROB
347 l_dam = bufly%L_DAM
348 l_dsum = bufly%L_DSUM
349 l_dglo = bufly%L_DGLO
350 l_crak = bufly%L_CRAK
351 l_ang = bufly%L_ANG
352 l_epe = bufly%L_EPE
353 l_epc = bufly%L_EPC
354 l_xst = bufly%L_XST
355 l_ssp = bufly%L_SSP
356 l_z = bufly%L_Z
357 l_visc = bufly%L_VISC
358 l_sigl = bufly%L_SIGL
359 l_sigv = bufly%L_SIGV
360 l_siga = bufly%L_SIGA
361 l_sigb = bufly%L_SIGB
362 l_sigc = bufly%L_SIGC
363 l_sigd = bufly%L_SIGD
364 l_sigf = bufly%L_SIGF
365 l_sig = bufly%L_SIG
366 l_sigply = bufly%L_SIGPLY
367 l_for = bufly%L_FOR
368 l_mom = bufly%L_MOM
369 l_thk = bufly%L_THK
370 l_smstr = bufly%L_SMSTR
371 l_dmg = bufly%L_DMG
372 l_forth = bufly%L_FORTH
373 l_eintth = bufly%L_EINTTH
374 l_seq = bufly%L_SEQ
375 l_jac_i = bufly%L_JAC_I
376 l_fac_yld = bufly%L_FAC_YLD
377 l_aburn = bufly%L_ABURN
378 l_mu = bufly%L_MU
379 l_planl = bufly%L_PLANL
380 l_epsdnl = bufly%L_EPSDNL
381 l_dmgscl = bufly%L_DMGSCL
382 l_tsaiwu = bufly%L_TSAIWU
383 l_pij = bufly%L_PIJ
384 l_vol0dp = bufly%L_VOL0DP
385
386
387c---
388 rbuf_l(l_rel+1) = l_off
389 l_rel = l_rel + 1
390 rbuf_l(l_rel+1) = l_gama
391 l_rel = l_rel + 1
392 rbuf_l(l_rel+1) = l_stra
393 l_rel = l_rel + 1
394 rbuf_l(l_rel+1) = l_frac
395 l_rel = l_rel + 1
396 rbuf_l(l_rel+1) = l_bfrac
397 l_rel = l_rel + 1
398 rbuf_l(l_rel+1) = l_eint
399 l_rel = l_rel + 1
400 rbuf_l(l_rel+1) = l_eins
401 l_rel = l_rel + 1
402 rbuf_l(l_rel+1) = l_rho
403 l_rel = l_rel + 1
404 rbuf_l(l_rel+1) = l_dp_drho
405 l_rel = l_rel + 1
406 rbuf_l(l_rel+1) = l_qvis
407 l_rel = l_rel + 1
408 rbuf_l(l_rel+1) = l_deltax
409 l_rel = l_rel + 1
410 rbuf_l(l_rel+1) = l_vol
411 l_rel = l_rel + 1
412 rbuf_l(l_rel+1) = l_epsa
413 l_rel = l_rel + 1
414 rbuf_l(l_rel+1) = l_epsd
415 l_rel = l_rel + 1
416 rbuf_l(l_rel+1) = l_epsq
417 l_rel = l_rel + 1
418 rbuf_l(l_rel+1) = l_epsf
419 l_rel = l_rel + 1
420 rbuf_l(l_rel+1) = l_pla
421 l_rel = l_rel + 1
422 rbuf_l(l_rel+1) = l_wpla
423 l_rel = l_rel + 1
424 rbuf_l(l_rel+1) = l_temp
425 l_rel = l_rel + 1
426 rbuf_l(l_rel+1) = l_tb
427 l_rel = l_rel + 1
428 rbuf_l(l_rel+1) = l_rk
429 l_rel = l_rel + 1
430 rbuf_l(l_rel+1) = l_re
431 l_rel = l_rel + 1
432 rbuf_l(l_rel+1) = l_vk
433 l_rel = l_rel + 1
434 rbuf_l(l_rel+1) = l_sf
435 l_rel = l_rel + 1
436 rbuf_l(l_rel+1) = l_rob
437 l_rel = l_rel + 1
438 rbuf_l(l_rel+1) = l_dam
439 l_rel = l_rel + 1
440 rbuf_l(l_rel+1) = l_dsum
441 l_rel = l_rel + 1
442 rbuf_l(l_rel+1) = l_dglo
443 l_rel = l_rel + 1
444 rbuf_l(l_rel+1) = l_crak
445 l_rel = l_rel + 1
446 rbuf_l(l_rel+1) = l_ang
447 l_rel = l_rel + 1
448 rbuf_l(l_rel+1) = l_epe
449 l_rel = l_rel + 1
450 rbuf_l(l_rel+1) = l_epc
451 l_rel = l_rel + 1
452 rbuf_l(l_rel+1) = l_xst
453 l_rel = l_rel + 1
454 rbuf_l(l_rel+1) = l_ssp
455 l_rel = l_rel + 1
456 rbuf_l(l_rel+1) = l_z
457 l_rel = l_rel + 1
458 rbuf_l(l_rel+1) = l_visc
459 l_rel = l_rel + 1
460 rbuf_l(l_rel+1) = l_sigl
461 l_rel = l_rel + 1
462 rbuf_l(l_rel+1) = l_sigv
463 l_rel = l_rel + 1
464 rbuf_l(l_rel+1) = l_siga
465 l_rel = l_rel + 1
466 rbuf_l(l_rel+1) = l_sigb
467 l_rel = l_rel + 1
468 rbuf_l(l_rel+1) = l_sigc
469 l_rel = l_rel + 1
470 rbuf_l(l_rel+1) = l_sigd
471 l_rel = l_rel + 1
472 rbuf_l(l_rel+1) = l_sigf
473 l_rel = l_rel + 1
474 rbuf_l(l_rel+1) = l_sig
475 l_rel = l_rel + 1
476 rbuf_l(l_rel+1) = l_sigply
477 l_rel = l_rel + 1
478 rbuf_l(l_rel+1) = l_for
479 l_rel = l_rel + 1
480 rbuf_l(l_rel+1) = l_mom
481 l_rel = l_rel + 1
482 rbuf_l(l_rel+1) = l_thk
483 l_rel = l_rel + 1
484 rbuf_l(l_rel+1) = l_smstr
485 l_rel = l_rel + 1
486 rbuf_l(l_rel+1) = l_dmg
487 l_rel = l_rel + 1
488 rbuf_l(l_rel+1) = l_forth
489 l_rel = l_rel + 1
490 rbuf_l(l_rel+1) = l_eintth
491 l_rel = l_rel + 1
492 rbuf_l(l_rel+1) = l_seq
493 l_rel = l_rel + 1
494 rbuf_l(l_rel+1) = l_jac_i
495 l_rel = l_rel + 1
496 rbuf_l(l_rel+1) = l_fac_yld
497 l_rel = l_rel + 1
498 rbuf_l(l_rel+1) = l_aburn
499 l_rel = l_rel + 1
500 rbuf_l(l_rel+1) = l_mu
501 l_rel = l_rel + 1
502 rbuf_l(l_rel+1) = l_planl
503 l_rel = l_rel + 1
504 rbuf_l(l_rel+1) = l_epsdnl
505 l_rel = l_rel + 1
506 rbuf_l(l_rel+1) = l_dmgscl
507 l_rel = l_rel + 1
508 rbuf_l(l_rel+1) = l_tsaiwu
509 l_rel = l_rel + 1
510 rbuf_l(l_rel+1) = l_pij
511 l_rel = l_rel + 1
512 rbuf_l(l_rel+1) = l_vol0dp
513 l_rel = l_rel + 1
514c---------------------------------------------------
515 IF (debug_print == 1) THEN
516 print*,' nvar_loc=', L_REL-IAD
517 IAD = L_REL
518 ENDIF
519c---------------------------------------------------
520c---------
521c ! write layer variables for each element
522c
523 RBUF_L(L_REL+1:L_REL+NEL*LY_DMG) = BUFLY%DMG(1:NEL*LY_DMG)
524 L_REL = L_REL+NEL*LY_DMG
525 RBUF_L(L_REL+1:L_REL+NEL*LY_GAMA) = BUFLY%GAMA(1:NEL*LY_GAMA)
526 L_REL = L_REL+NEL*LY_GAMA
527.OR..AND. IF(IDRAPE == 0 (IDRAPE > 0 IGTYP == 17)) THEN
528 RBUF_L(L_REL+1:L_REL+NEL*LY_DIRA) = BUFLY%DIRA(1:NEL*LY_DIRA)
529 L_REL = L_REL+NEL*LY_DIRA
530 RBUF_L(L_REL+1:L_REL+NEL*LY_DIRB) = BUFLY%DIRB(1:NEL*LY_DIRB)
531 L_REL = L_REL+NEL*LY_DIRB
532 ENDIF
533 IF(LY_CRKDIR > 0) RBUF_L(L_REL+1:L_REL+NEL*LY_CRKDIR) = BUFLY%CRKDIR(1:NEL*LY_CRKDIR)
534 L_REL = L_REL+NEL*LY_CRKDIR
535
536 IF (NPG > 1) THEN
537 IF (ELBUF%NLAY > 1) THEN
538 LEN_PLAPT = NEL*LY_PLAPT
539 LEN_SIGPT = NEL*LY_SIGPT
540 ELSE
541.AND. IF (IGTYP /= 51 IGTYP /= 52) THEN
542 LEN_PLAPT = NEL*LY_PLAPT*NPT
543 LEN_SIGPT = NEL*LY_SIGPT*NPT
544 ELSE
545 LEN_PLAPT = NEL*LY_PLAPT*BUFLY%NPTT
546 LEN_SIGPT = NEL*LY_SIGPT*BUFLY%NPTT
547 ENDIF
548 ENDIF
549 RBUF_L(L_REL+1:L_REL+LEN_PLAPT) = BUFLY%PLAPT(1:LEN_PLAPT)
550 L_REL = L_REL+LEN_PLAPT
551 RBUF_L(L_REL+1:L_REL+LEN_SIGPT) = BUFLY%SIGPT(1:LEN_SIGPT)
552 L_REL = L_REL+LEN_SIGPT
553 ELSEIF (NPG == 1) THEN ! nothing to write
554C
555C must point after => LBUF%PLA and LBUF%SIG
556C
557 ENDIF
558c
559 RBUF_L(L_REL+1:L_REL+NEL*LY_HOURG) = BUFLY%HOURG(1:NEL*LY_HOURG)
560 L_REL = L_REL+NEL*LY_HOURG
561 RBUF_L(L_REL+1:L_REL+NEL*LY_UELR) = BUFLY%UELR(1:NEL*LY_UELR)
562 L_REL = L_REL+NEL*LY_UELR
563 RBUF_L(L_REL+1:L_REL+NEL*LY_UELR1) = BUFLY%UELR1(1:NEL*LY_UELR1)
564 L_REL = L_REL+NEL*LY_UELR1
565 RBUF_L(L_REL+1:L_REL+NEL*LY_OFFPG) = BUFLY%OFFPG(1:NEL*LY_OFFPG)
566 L_REL = L_REL+NEL*LY_OFFPG
567 RBUF_L(L_REL+1:L_REL+NEL*LY_OFF ) = BUFLY%OFF(1:NEL*LY_OFF)
568 L_REL = L_REL+NEL*LY_OFF
569c
570c---------------------------------------------------
571 IF (DEBUG_PRINT == 1) THEN
572 print*,' layer_vars=', L_REL-IAD
573 print*,' total layer vars =', L_REL - SUM
574 IAD = L_REL
575 ENDIF
576c---------------------------------------------------
577 sum = l_rel
578c
579c---------
580c
581c ! write local layer variables for each element
582c
583
584.OR. IF (IGTYP == 51 IGTYP == 52) THEN
585 NPTT = ELBUF_TAB(NG)%BUFLY(IL)%NPTT
586 ELSE
587 NPTT = ELBUF_TAB(NG)%NPTT
588 ENDIF
589C
590 DO I = 1,ELBUF%NPTR
591 DO J = 1,ELBUF%NPTS
592cc DO K = 1,ELBUF%NPTT
593 DO K = 1,NPTT
594 LBUF => ELBUF_TAB(NG)%BUFLY(IL)%LBUF(I,J,K)
595c
596 RBUF_L(L_REL+1) = LBUF%MLAW
597 L_REL = L_REL + 1
598 RBUF_L(L_REL+1) = LBUF%LawID
599 L_REL = L_REL + 1
600c
601 RBUF_L(L_REL+1:L_REL+NEL*L_OFF) = LBUF%OFF(1:NEL*L_OFF)
602 L_REL = L_REL+NEL*L_OFF
603 RBUF_L(L_REL+1:L_REL+NEL*L_GAMA) =LBUF%GAMA(1:NEL*L_GAMA)
604 L_REL = L_REL+NEL *L_GAMA
605 RBUF_L(L_REL+1:L_REL+NEL*L_STRA) = LBUF%STRA(1:NEL*L_STRA)
606 L_REL = L_REL+NEL*L_STRA
607 RBUF_L(L_REL+1:L_REL+NEL*L_FRAC) = LBUF%FRAC(1:NEL*L_FRAC)
608 L_REL = L_REL+NEL*L_FRAC
609 RBUF_L(L_REL+1:L_REL+NEL*L_BFRAC)= LBUF%BFRAC(1:NEL*L_BFRAC)
610 L_REL = L_REL+NEL*L_BFRAC
611 RBUF_L(L_REL+1:L_REL+NEL*L_EINT)= LBUF%EINT(1:NEL*L_EINT)
612 L_REL = L_REL+NEL*L_EINT
613 RBUF_L(L_REL+1:L_REL+NEL*L_EINS)= LBUF%EINS(1:NEL*L_EINS)
614 L_REL = L_REL+NEL*L_EINS
615 RBUF_L(L_REL+1:L_REL+NEL*L_RHO) = LBUF%RHO(1:NEL*L_RHO)
616 L_REL = L_REL+NEL*L_RHO
617 RBUF_L(L_REL+1:L_REL+NEL*L_DP_DRHO)=
618 . LBUF%DP_DRHO(1:NEL*L_DP_DRHO)
619 L_REL = L_REL+NEL*L_DP_DRHO
620 RBUF_L(L_REL+1:L_REL+NEL*L_QVIS)= LBUF%QVIS(1:NEL*L_QVIS)
621 L_REL = L_REL+NEL*L_QVIS
622 RBUF_L(L_REL+1:L_REL+NEL*L_DELTAX)=
623 . LBUF%DELTAX(1:NEL*L_DELTAX)
624 L_REL = L_REL+NEL*L_DELTAX
625 RBUF_L(L_REL+1:L_REL+NEL*L_VOL) = LBUF%VOL(1:NEL*L_VOL)
626 L_REL = L_REL+NEL*L_VOL
627 RBUF_L(L_REL+1:L_REL+NEL*L_EPSA) = LBUF%EPSA(1:NEL*L_EPSA)
628 L_REL = L_REL+NEL*L_EPSA
629 RBUF_L(L_REL+1:L_REL+NEL*L_EPSD) = LBUF%EPSD(1:NEL*L_EPSD)
630 L_REL = L_REL+NEL*L_EPSD
631 RBUF_L(L_REL+1:L_REL+NEL*L_EPSQ) = LBUF%EPSQ(1:NEL*L_EPSQ)
632 L_REL = L_REL+NEL*L_EPSQ
633 RBUF_L(L_REL+1:L_REL+NEL*L_EPSF) = LBUF%EPSF(1:NEL*L_EPSF)
634 L_REL = L_REL+NEL*L_EPSF
635 RBUF_L(L_REL+1:L_REL+NEL*L_PLA) = LBUF%PLA(1:NEL*L_PLA)
636 L_REL = L_REL+NEL*L_PLA
637 RBUF_L(L_REL+1:L_REL+NEL*L_WPLA) = LBUF%WPLA(1:NEL*L_WPLA)
638 L_REL = L_REL+NEL*L_WPLA
639 RBUF_L(L_REL+1:L_REL+NEL*L_TEMP) = LBUF%TEMP(1:NEL*L_TEMP)
640 L_REL = L_REL+NEL*L_TEMP
641 RBUF_L(L_REL+1:L_REL+NEL*L_TB) = LBUF%TB(1:NEL*L_TB)
642 L_REL = L_REL+NEL*L_TB
643 RBUF_L(L_REL+1:L_REL+NEL*L_RK) = LBUF%RK(1:NEL*L_RK)
644 L_REL = L_REL+NEL*L_RK
645 RBUF_L(L_REL+1:L_REL+NEL*L_RE) = LBUF%RE(1:NEL*L_RE)
646 L_REL = L_REL+NEL*L_RE
647 RBUF_L(L_REL+1:L_REL+NEL*L_VK) = LBUF%VK(1:NEL*L_VK)
648 L_REL = L_REL+NEL*L_VK
649 RBUF_L(L_REL+1:L_REL+NEL*L_SF) = LBUF%SF(1:NEL*L_SF)
650 L_REL = L_REL+NEL*L_SF
651 RBUF_L(L_REL+1:L_REL+NEL*L_ROB) = LBUF%ROB(1:NEL*L_ROB)
652 L_REL = L_REL+NEL*L_ROB
653 RBUF_L(L_REL+1:L_REL+NEL*L_DAM) = LBUF%DAM(1:NEL*L_DAM)
654 L_REL = L_REL+NEL*L_DAM
655 RBUF_L(L_REL+1:L_REL+NEL*L_DSUM) = LBUF%DSUM(1:NEL*L_DSUM)
656 L_REL = L_REL+NEL*L_DSUM
657 RBUF_L(L_REL+1:L_REL+NEL*L_DGLO) = LBUF%DGLO(1:NEL*L_DGLO)
658 L_REL = L_REL+NEL*L_DGLO
659 RBUF_L(L_REL+1:L_REL+NEL*L_CRAK) = LBUF%CRAK(1:NEL*L_CRAK)
660 L_REL = L_REL+NEL*L_CRAK
661 RBUF_L(L_REL+1:L_REL+NEL*L_ANG) = LBUF%ANG(1:NEL*L_ANG)
662 L_REL = L_REL+NEL*L_ANG
663 RBUF_L(L_REL+1:L_REL+NEL*L_EPE) = LBUF%EPE(1:NEL*L_EPE)
664 L_REL = L_REL+NEL*L_EPE
665 RBUF_L(L_REL+1:L_REL+NEL*L_EPC) = LBUF%EPC(1:NEL*L_EPC)
666 L_REL = L_REL+NEL*L_EPC
667 RBUF_L(L_REL+1:L_REL+NEL*L_XST) = LBUF%XST(1:NEL*L_XST)
668 L_REL = L_REL+NEL*L_XST
669 RBUF_L(L_REL+1:L_REL+NEL*L_SSP) = LBUF%SSP(1:NEL*L_SSP)
670 L_REL = L_REL+NEL*L_SSP
671 RBUF_L(L_REL+1:L_REL+NEL*L_Z) = LBUF%Z(1:NEL*L_Z)
672 L_REL = L_REL+NEL*L_Z
673 RBUF_L(L_REL+1:L_REL+NEL*L_VISC) = LBUF%VISC(1:NEL*L_VISC)
674 L_REL = L_REL+NEL*L_VISC
675 RBUF_L(L_REL+1:L_REL+NEL*L_SIGL) = LBUF%SIGL(1:NEL*L_SIGL)
676 L_REL = L_REL+NEL*L_SIGL
677 RBUF_L(L_REL+1:L_REL+NEL*L_SIGV) = LBUF%SIGV(1:NEL*L_SIGV)
678 L_REL = L_REL+NEL*L_SIGV
679 RBUF_L(L_REL+1:L_REL+NEL*L_SIGA) = LBUF%SIGA(1:NEL*L_SIGA)
680 L_REL = L_REL+NEL*L_SIGA
681 RBUF_L(L_REL+1:L_REL+NEL*L_SIGB) = LBUF%SIGB(1:NEL*L_SIGB)
682 L_REL = L_REL+NEL*L_SIGB
683 RBUF_L(L_REL+1:L_REL+NEL*L_SIGC) = LBUF%SIGC(1:NEL*L_SIGC)
684 L_REL = L_REL+NEL*L_SIGC
685 RBUF_L(L_REL+1:L_REL+NEL*L_SIGD) = LBUF%SIGD(1:NEL*L_SIGD)
686 L_REL = L_REL+NEL*L_SIGD
687 RBUF_L(L_REL+1:L_REL+NEL*L_SIGF) = LBUF%SIGF(1:NEL*L_SIGF)
688 L_REL = L_REL+NEL*L_SIGF
689 RBUF_L(L_REL+1:L_REL+NEL*L_SIG) = LBUF%SIG(1:NEL*L_SIG)
690 L_REL = L_REL+NEL*L_SIG
691 RBUF_L(L_REL+1:L_REL+NEL*L_SIGPLY) = LBUF%SIGPLY(1:NEL*L_SIGPLY)
692 L_REL = L_REL+NEL*L_SIGPLY
693 RBUF_L(L_REL+1:L_REL+NEL*L_FOR) = LBUF%FOR(1:NEL*L_FOR)
694 L_REL = L_REL+NEL*L_FOR
695 RBUF_L(L_REL+1:L_REL+NEL*L_MOM) = LBUF%MOM(1:NEL*L_MOM)
696 L_REL = L_REL+NEL*L_MOM
697 RBUF_L(L_REL+1:L_REL+NEL*L_THK) = LBUF%THK(1:NEL*L_THK)
698 L_REL = L_REL+NEL*L_THK
699 RBUF_L(L_REL+1:L_REL+NEL*L_SMSTR) = LBUF%SMSTR(1:NEL*L_SMSTR)
700 L_REL = L_REL+NEL*L_SMSTR
701 RBUF_L(L_REL+1:L_REL+NEL*L_DMG) = LBUF%DMG(1:NEL*L_DMG)
702 L_REL = L_REL+NEL*L_DMG
703 RBUF_L(L_REL+1:L_REL+NEL*L_FORTH) = LBUF%FORTH(1:NEL*L_FORTH)
704 L_REL = L_REL+NEL*L_FORTH
705 RBUF_L(L_REL+1:L_REL+NEL*L_EINTTH) = LBUF%EINTTH(1:NEL*L_EINTTH)
706 L_REL = L_REL+NEL*L_EINTTH
707 RBUF_L(L_REL+1:L_REL+NEL*L_SEQ) = LBUF%SEQ(1:NEL*L_SEQ)
708 L_REL = L_REL+NEL*L_SEQ
709 RBUF_L(L_REL+1:L_REL+NEL*L_JAC_I) = LBUF%JAC_I(1:NEL*L_JAC_I)
710 L_REL = L_REL+NEL*L_JAC_I
711 RBUF_L(L_REL+1:L_REL+NEL*L_FAC_YLD) = LBUF%FAC_YLD(1:NEL*L_FAC_YLD)
712 L_REL = L_REL+NEL*L_FAC_YLD
713 RBUF_L(L_REL+1:L_REL+NEL*L_ABURN)= LBUF%ABURN(1:NEL*L_ABURN)
714 L_REL = L_REL+NEL*L_ABURN
715 RBUF_L(L_REL+1:L_REL+NEL*L_MU)= LBUF%MU(1:NEL*L_MU)
716 L_REL = L_REL+NEL*L_MU
717 RBUF_L(L_REL+1:L_REL+NEL*L_PLANL)= LBUF%PLANL(1:NEL*L_PLANL)
718 L_REL = L_REL+NEL*L_PLANL
719 RBUF_L(L_REL+1:L_REL+NEL*L_EPSDNL)= LBUF%EPSDNL(1:NEL*L_EPSDNL)
720 L_REL = L_REL+NEL*L_EPSDNL
721 RBUF_L(L_REL+1:L_REL+NEL*L_DMGSCL)= LBUF%DMGSCL(1:NEL*L_DMGSCL)
722 L_REL = L_REL+NEL*L_DMGSCL
723 RBUF_L(L_REL+1:L_REL+NEL*L_TSAIWU)= LBUF%TSAIWU(1:NEL*L_TSAIWU)
724 L_REL = L_REL+NEL*L_TSAIWU
725 RBUF_L(L_REL+1:L_REL+NEL*L_PIJ) = LBUF%PIJ(1:NEL*L_PIJ)
726 L_REL = L_REL+NEL*L_PIJ
727C--------write first VOL0DP
728 IF(NEL*L_VOL0DP >0)THEN
729 DP_RBUF(L_DPREL+1:L_DPREL+NEL*L_VOL0DP)= LBUF%VOL0DP(1:NEL*L_VOL0DP)
730 L_DPREL = L_DPREL + NEL*L_VOL0DP
731 ENDIF
732 ENDDO
733 ENDDO
734 ENDDO
735.AND..OR. IF(IDRAPE > 0 (IGTYP == 51 IGTYP == 52)) THEN
736 DO K = 1,NPTT
737 LBUF_DIR => ELBUF_TAB(NG)%BUFLY(IL)%LBUF_DIR(K)
738 RBUF_L(L_REL+1:L_REL+NEL*LY_DIRA) = LBUF_DIR%DIRA(1:NEL*LY_DIRA)
739 L_REL = L_REL + NEL*LY_DIRA
740 RBUF_L(L_REL+1:L_REL+NEL*LY_DIRB) = LBUF_DIR%DIRB(1:NEL*LY_DIRB)
741 L_REL = L_REL + NEL*LY_DIRB
742 ENDDO
743 ENDIF
744 ENDDO ! ELBUF%NLAY
745c---------------------------------------------------
746 IF (DEBUG_PRINT == 1) THEN
747 print*,' local vars(lbuf tables)=', L_REL-IAD
748 IAD = L_REL
749 ENDIF
750c---------------------------------------------------
751c
752c----- Layer Material buffer - UVAR
753c
754 DO IL = 1,ELBUF%NLAY
755 BUFLY => ELBUF_TAB(NG)%BUFLY(IL)
756 NUVAR = BUFLY%NVAR_MAT
757.OR. IF (IGTYP == 51 IGTYP == 52) THEN
758 NPTT = ELBUF_TAB(NG)%BUFLY(IL)%NPTT
759 ELSE
760 NPTT = ELBUF_TAB(NG)%NPTT
761 ENDIF
762 DO IR = 1,ELBUF%NPTR
763 DO IS = 1,ELBUF%NPTS
764cc DO IT = 1,ELBUF%NPTT
765 DO IT = 1,NPTT
766 RBUF_L(L_REL+1:L_REL+NEL*NUVAR)=BUFLY%MAT(IR,IS,IT)%VAR(1:NEL*NUVAR)
767 L_REL = L_REL+NEL*NUVAR
768 ENDDO
769 ENDDO
770 ENDDO
771 ENDDO
772c---------------------------------------------------
773 IF (DEBUG_PRINT == 1) THEN
774 print*,' mat uvar=', L_REL-IAD
775 IAD = L_REL
776 ENDIF
777c---------------------------------------------------
778c
779c----- Layer Fail buffer - UVAR
780c
781 DO IL = 1,ELBUF%NLAY
782 BUFLY => ELBUF_TAB(NG)%BUFLY(IL)
783 NFAIL = BUFLY%NFAIL
784.OR. IF (IGTYP == 51 IGTYP == 52) THEN
785 NPTT = ELBUF_TAB(NG)%BUFLY(IL)%NPTT
786 ELSE
787 NPTT = ELBUF_TAB(NG)%NPTT
788 ENDIF
789 DO IR = 1,ELBUF%NPTR
790 DO IS = 1,ELBUF%NPTS
791 DO IT = 1,NPTT
792 DO K = 1,NFAIL
793 FLOC=>ELBUF_TAB(NG)%BUFLY(IL)%FAIL(IR,IS,IT)%FLOC(K)
794 IFAIL = FLOC%ILAWF
795 IDFAIL = FLOC%IDFAIL
796 NUVAR = FLOC%NVAR
797 LF_DAM= FLOC%LF_DAM
798 LF_DAMMX= FLOC%LF_DAMMX
799 LF_DAMINI= FLOC%LF_DAMINI
800 LF_TDEL= FLOC%LF_TDEL
801 LF_INDX= FLOC%LF_INDX
802 LF_OFF = FLOC%LF_OFF
803c
804 RBUF_L(L_REL+1)=IFAIL
805 L_REL = L_REL+1
806 RBUF_L(L_REL+1)=IDFAIL
807 L_REL = L_REL+1
808 RBUF_L(L_REL+1)=NUVAR
809 L_REL = L_REL+1
810 RBUF_L(L_REL+1)=LF_DAM
811 L_REL = L_REL+1
812 RBUF_L(L_REL+1)=LF_DAMMX
813 L_REL = L_REL+1
814 RBUF_L(L_REL+1)=LF_DAMINI
815 L_REL = L_REL+1
816 RBUF_L(L_REL+1)=LF_TDEL
817 L_REL = L_REL+1
818 RBUF_L(L_REL+1)=LF_INDX
819 L_REL = L_REL+1
820 RBUF_L(L_REL+1)=LF_OFF
821 L_REL = L_REL+1
822c
823 RBUF_L(L_REL+1:L_REL+NEL*NUVAR) = FLOC%VAR(1:NEL*NUVAR)
824 L_REL = L_REL+NEL*NUVAR
825 RBUF_L(L_REL+1:L_REL+NEL*LF_DAM) = FLOC%DAM(1:NEL*LF_DAM)
826 L_REL = L_REL+NEL*LF_DAM
827 RBUF_L(L_REL+1:L_REL+NEL*LF_DAMMX) = FLOC%DAMMX(1:NEL*LF_DAMMX)
828 L_REL = L_REL+NEL*LF_DAMMX
829 RBUF_L(L_REL+1:L_REL+NEL*LF_DAMINI) = FLOC%DAMINI(1:NEL*LF_DAMINI)
830 L_REL = L_REL+NEL*LF_DAMINI
831 RBUF_L(L_REL+1:L_REL+NEL*LF_TDEL) = FLOC%TDEL(1:NEL*LF_TDEL)
832 L_REL = L_REL + NEL*LF_TDEL
833 RBUF_L(L_REL+1:L_REL+NEL*LF_INDX) = FLOC%INDX(1:NEL*LF_INDX)
834 L_REL = L_REL + NEL*LF_INDX
835 RBUF_L(L_REL+1:L_REL+NEL*LF_OFF) = FLOC%OFF(1:NEL*LF_OFF)
836 L_REL = L_REL + NEL*LF_OFF
837 ENDDO
838 ENDDO
839 ENDDO
840 ENDDO
841 ENDDO
842c---------------------------------------------------
843 IF (DEBUG_PRINT == 1) THEN
844 print*,' fail uvar=', L_REL-IAD
845 IAD = L_REL
846 ENDIF
847c---------------------------------------------------
848c
849c----- Layer Visc buffer - UVAR
850c
851 DO IL = 1,ELBUF%NLAY
852 BUFLY => ELBUF_TAB(NG)%BUFLY(IL)
853 NUVAR = BUFLY%NVAR_VISC
854 IF(NUVAR>0) THEN
855.OR. IF (IGTYP == 51 IGTYP == 52) THEN
856 NPTT = ELBUF_TAB(NG)%BUFLY(IL)%NPTT
857 ELSE
858 NPTT = ELBUF_TAB(NG)%NPTT
859 ENDIF
860 DO IR = 1,ELBUF%NPTR
861 DO IS = 1,ELBUF%NPTS
862 DO IT = 1,NPTT
863 RBUF_L(L_REL+1:L_REL+NEL*NUVAR)=BUFLY%VISC(IR,IS,IT)%VAR(1:NEL*NUVAR)
864 L_REL = L_REL+NEL*NUVAR
865 ENDDO
866 ENDDO
867 ENDDO
868 ENDIF
869 ENDDO
870c---------------------------------------------------
871 IF (DEBUG_PRINT == 1) THEN
872 print*,' visc uvar=', L_REL-IAD
873 IAD = L_REL
874 ENDIF
875c---------------------------------------------------
876c
877 ! Non-local regularization in the shell thickness
878.OR. IF ((ITY==3)(ITY==7)) THEN
879.AND. IF ((INLOC>0)(ELBUF%NPTT>1)) THEN
880 ! Number of non-local nodes in the thickness
881 IF (ELBUF%NPTT>2) THEN
882 NONL = ELBUF%NPTT+1
883 ELSE
884 NONL = ELBUF%NPTT
885 ENDIF
886 ! Copying the buffer
887 DO IR = 1,ELBUF%NPTR
888 DO IS = 1,ELBUF%NPTS
889 ! Pointing the non-local buffer
890 BUFNL => ELBUF_TAB(NG)%NLOC(IR,IS)
891 DO I = 1,NEL
892 ! Nodal masses
893 RBUF_L(L_REL+1:L_REL+NONL) = BUFNL%MASSTH(I,1:NONL)
894 L_REL = L_REL + NONL
895 ! Non-local in-thickness cumulated variables
896 RBUF_L(L_REL+1:L_REL+NONL) = BUFNL%UNLTH(I,1:NONL)
897 L_REL = L_REL + NONL
898 ! Non-local in-thickness velocities
899 RBUF_L(L_REL+1:L_REL+NONL) = BUFNL%VNLTH(I,1:NONL)
900 L_REL = L_REL + NONL
901 ! Non-local in-thickness forces
902 RBUF_L(L_REL+1:L_REL+NONL) = BUFNL%FNLTH(I,1:NONL)
903 L_REL = L_REL + NONL
904 ENDDO
905 ENDDO
906 ENDDO
907 ENDIF
908.AND. ELSEIF ((ITY == 1)(ELBUF_TAB(NG)%NLAY>1)) THEN
909 IF (INLOC>0) THEN
910 ! Number of non-local nodes in the thickshell thickness
911 NONL = ELBUF%NLAY+1
912 ! Copying the buffer
913 DO IR = 1,ELBUF%NPTR
914 DO IS = 1,ELBUF%NPTS
915 ! Pointing the non-local buffer
916 BUFNLTS => ELBUF_TAB(NG)%NLOCTS(IR,IS)
917 DO I = 1,NEL
918 ! Nodal masses
919 RBUF_L(L_REL+1:L_REL+NONL) = BUFNLTS%MASSTH(I,1:NONL)
920 L_REL = L_REL + NONL
921 ! Non-local in-thickness cumulated variables
922 RBUF_L(L_REL+1:L_REL+NONL) = BUFNLTS%UNLTH(I,1:NONL)
923 L_REL = L_REL + NONL
924 ! Non-local in-thickness velocities
925 RBUF_L(L_REL+1:L_REL+NONL) = BUFNLTS%VNLTH(I,1:NONL)
926 L_REL = L_REL + NONL
927 ! Non-local in-thickness forces
928 RBUF_L(L_REL+1:L_REL+NONL) = BUFNLTS%FNLTH(I,1:NONL)
929 L_REL = L_REL + NONL
930 ENDDO
931 ENDDO
932 ENDDO
933 ENDIF
934 ENDIF
935c---------------------------------------------------
936 IF (DEBUG_PRINT == 1) THEN
937 print*,' nloc uvar=', L_REL-IAD
938 IAD = L_REL
939 ENDIF
940c---------------------------------------------------
941
942c---------------------------------------------------
943c
944c----- EoS
945c
946 DO IL = 1,ELBUF%NLAY
947 BUFLY => ELBUF_TAB(NG)%BUFLY(IL)
948 NUVAR = BUFLY%NVAR_EOS
949 IF(ASSOCIATED(BUFLY%EOS))THEN
950.OR. IF (IGTYP == 51 IGTYP == 52) THEN
951 NPTT = ELBUF_TAB(NG)%BUFLY(IL)%NPTT
952 ELSE
953 NPTT = ELBUF_TAB(NG)%NPTT
954 ENDIF
955 DO IR = 1,ELBUF%NPTR
956 DO IS = 1,ELBUF%NPTS
957 DO IT = 1,NPTT
958 RBUF_L(L_REL+1:L_REL+NEL*NUVAR)=BUFLY%EOS(IR,IS,IT)%VAR(1:NEL*NUVAR)
959 L_REL = L_REL+NEL*NUVAR
960 ENDDO
961 ENDDO
962 ENDDO
963 ENDIF!IF(ASSOCIATED(BUFLY%EOS))
964 ENDDO
965c---------------------------------------------------
966 IF (DEBUG_PRINT == 1) THEN
967 print*,' eos uvar=', L_REL-IAD
968 IAD = L_REL
969 ENDIF
970c---------------------------------------------------
971 sum = l_rel
972c
973c---------------------------------------------------
974c INTER LAYERS (Ply Xfem only)
975c---------------------------------------------------
976 L_EPS = 3
977 L_SIG = 3
978 LY_EINT = 1
979 LY_COUNT= 1
980c
981 DO IL = 1,ELBUF%NINTLAY
982 INTLAY => ELBUF_TAB(NG)%INTLAY(IL)
983c
984c--------- write inter layer parameters: = 5
985c
986 RBUF_L(L_REL+1) = INTLAY%ILAW
987 L_REL = L_REL+1
988 RBUF_L(L_REL+1) = INTLAY%IMAT
989 L_REL = L_REL+1
990 RBUF_L(L_REL+1) = INTLAY%NFAIL
991 L_REL = L_REL+1
992 RBUF_L(L_REL+1) = INTLAY%NVAR_MAT
993 L_REL = L_REL+1
994 RBUF_L(L_REL+1) = INTLAY%NVARTMP
995 L_REL = L_REL+1
996c
997c ! write inter layer variables for each layer
998 RBUF_L(L_REL+1:L_REL+NEL*LY_EINT) = INTLAY%EINT(1:NEL*LY_EINT)
999 L_REL = L_REL+NEL*LY_EINT
1000 RBUF_L(L_REL+1:L_REL+NEL*LY_COUNT) = INTLAY%COUNT(1:NEL*LY_COUNT)
1001 L_REL = L_REL+NEL*LY_COUNT
1002
1003c ! write local inter layer variables for each element
1004 DO I = 1,ELBUF%NPTR
1005 DO J = 1,ELBUF%NPTS
1006 ILBUF => ELBUF_TAB(NG)%INTLAY(IL)%ILBUF(I,J)
1007c
1008 RBUF_L(L_REL+1:L_REL+NEL*L_EPS) =ILBUF%EPS(1:NEL*L_EPS)
1009 L_REL = L_REL+NEL*L_EPS
1010 RBUF_L(L_REL+1:L_REL+NEL*L_SIG) =ILBUF%SIG(1:NEL*L_SIG)
1011 L_REL = L_REL+NEL*L_SIG
1012 ENDDO
1013 ENDDO
1014 ENDDO
1015c
1016c----- Inter Layer Material buffer - UVAR
1017c
1018 DO IL = 1,ELBUF%NINTLAY
1019 INTLAY => ELBUF_TAB(NG)%INTLAY(IL)
1020 NUVAR = INTLAY%NVAR_MAT
1021 DO IR = 1,ELBUF%NPTR
1022 DO IS = 1,ELBUF%NPTS
1023 RBUF_L(L_REL+1:L_REL+NEL*NUVAR)=INTLAY%MAT(IR,IS)%VAR(1:NEL*NUVAR)
1024 L_REL = L_REL+NEL*NUVAR
1025 ENDDO
1026 ENDDO
1027 ENDDO
1028c
1029c----- Inter Layer Fail buffer - UVAR
1030c
1031 DO IL = 1,ELBUF%NINTLAY
1032 INTLAY => ELBUF_TAB(NG)%INTLAY(IL)
1033 NFAIL = INTLAY%NFAIL
1034 DO IR = 1,ELBUF%NPTR
1035 DO IS = 1,ELBUF%NPTS
1036 DO K = 1,NFAIL
1037 FLOC=>ELBUF_TAB(NG)%INTLAY(IL)%FAIL(IR,IS)%FLOC(K)
1038 IFAIL = FLOC%ILAWF
1039 IDFAIL = FLOC%IDFAIL
1040 NUVAR = FLOC%NVAR
1041 RBUF_L(L_REL+1)=IFAIL
1042 L_REL = L_REL+1
1043 RBUF_L(L_REL+1)=IDFAIL
1044 L_REL = L_REL+1
1045 RBUF_L(L_REL+1)=NUVAR
1046 L_REL = L_REL+1
1047 RBUF_L(L_REL+1:L_REL+NEL*NUVAR)=FLOC%VAR(1:NEL*NUVAR)
1048 L_REL = L_REL+NEL*NUVAR
1049 ENDDO
1050 ENDDO
1051 ENDDO
1052 ENDDO
1053c---------------------------------------------------
1054 IF (DEBUG_PRINT == 1) THEN
1055 print*,' total interlayer=', L_REL-SUM
1056 IAD = L_REL
1057 ENDIF
1058c---------------------------------------------------
1059c
1060c-----------------------------------------------------------------------
1061c GLOBAL BUFFER
1062c-----------------------------------------------------------------------
1063 GBUF => ELBUF_TAB(NG)%GBUF
1064c
1065 G_NOFF = GBUF%G_NOFF
1066 G_IERR = GBUF%G_IERR
1067 G_OFF = GBUF%G_OFF
1068 G_GAMA = GBUF%G_GAMA
1069 G_SMSTR = GBUF%G_SMSTR
1070 G_HOURG = GBUF%G_HOURG
1071 G_BFRAC = GBUF%G_BFRAC
1072 G_EINT = GBUF%G_EINT
1073 G_EINS = GBUF%G_EINS
1074 G_RHO = GBUF%G_RHO
1075 G_QVIS = GBUF%G_QVIS
1076 G_DELTAX= GBUF%G_DELTAX
1077 G_VOL = GBUF%G_VOL
1078 G_EPSD = GBUF%G_EPSD
1079 G_EPSQ = GBUF%G_EPSQ
1080 G_PLA = GBUF%G_PLA
1081 G_WPLA = GBUF%G_WPLA
1082 G_TEMP = GBUF%G_TEMP
1083 G_TB = GBUF%G_TB
1084 G_RK = GBUF%G_RK
1085 G_RE = GBUF%G_RE
1086 G_SIG = GBUF%G_SIG
1087 G_FOR = GBUF%G_FOR
1088 G_MOM = GBUF%G_MOM
1089 G_THK = GBUF%G_THK
1090 G_TAG22 = GBUF%G_TAG22
1091 G_STRA = GBUF%G_STRA
1092 G_SIGI = GBUF%G_SIGI
1093 G_DMG = GBUF%G_DMG
1094 G_FORPG = GBUF%G_FORPG
1095 G_MOMPG = GBUF%G_MOMPG
1096 G_MAXEPS= GBUF%G_MAXEPS
1097 G_AMU = GBUF%G_AMU
1098 G_MAXFRAC = GBUF%G_MAXFRAC
1099 G_GAMA_R = GBUF%G_GAMA_R
1100C
1101 G_FORPGPINCH = GBUF%G_FORPGPINCH
1102 G_MOMPGPINCH = GBUF%G_MOMPGPINCH
1103 G_EPGPINCHXZ = GBUF%G_EPGPINCHXZ
1104 G_EPGPINCHYZ = GBUF%G_EPGPINCHYZ
1105 G_EPGPINCHZZ = GBUF%G_EPGPINCHZZ
1106C
1107 G_STRPG = GBUF%G_STRPG
1108 G_UELR = GBUF%G_UELR
1109 G_UELR1 = GBUF%G_UELR1
1110 G_DAMDL = GBUF%G_DAMDL
1111 G_FORTH = GBUF%G_FORTH
1112 G_EINTTH = GBUF%G_EINTTH
1113 G_FILL = GBUF%G_FILL
1114 G_SEQ = GBUF%G_SEQ
1115 G_STRW = GBUF%G_STRW
1116 G_STRWPG= GBUF%G_STRWPG
1117 G_THK_I = GBUF%G_THK_I
1118 G_JAC_I = GBUF%G_JAC_I
1119 G_DT = GBUF%G_DT
1120 G_ISMS = GBUF%G_ISMS
1121 G_BPRELD= GBUF%G_BPRELD
1122 G_ABURN = GBUF%G_ABURN
1123 G_MU = GBUF%G_MU
1124 G_PLANL = GBUF%G_PLANL
1125 G_EPSDNL = GBUF%G_EPSDNL
1126 G_DMGSCL = GBUF%G_DMGSCL
1127 G_TSAIWU = GBUF%G_TSAIWU
1128 G_COR_NF = GBUF%G_COR_NF
1129 G_COR_FR = GBUF%G_COR_FR
1130 G_COR_XR = GBUF%G_COR_XR
1131 G_SH_IOFFSET = GBUF%G_SH_IOFFSET
1132 G_EINT_DISTOR = GBUF%G_EINT_DISTOR
1133 G_FOR_G = GBUF%G_FOR_G
1134 G_FORPG_G = GBUF%G_FORPG_G
1135
1136c---
1137c 1-D elements (TRUSS, BEAM, SPRING)
1138c---
1139 G_AREA = GBUF%G_AREA
1140 G_SKEW = GBUF%G_SKEW
1141 G_LENGTH = GBUF%G_LENGTH
1142 G_TOTDEPL = GBUF%G_TOTDEPL
1143 G_TOTROT = GBUF%G_TOTROT
1144 G_FOREP = GBUF%G_FOREP
1145 G_MOMEP = GBUF%G_MOMEP
1146 G_DEP_IN_TENS = GBUF%G_DEP_IN_TENS
1147 G_DEP_IN_COMP = GBUF%G_DEP_IN_COMP
1148 G_ROT_IN_TENS = GBUF%G_ROT_IN_TENS
1149 G_ROT_IN_COMP = GBUF%G_ROT_IN_COMP
1150 G_POSX = GBUF%G_POSX
1151 G_POSY = GBUF%G_POSY
1152 G_POSZ = GBUF%G_POSZ
1153 G_POSXX = GBUF%G_POSXX
1154 G_POSYY = GBUF%G_POSYY
1155 G_POSZZ = GBUF%G_POSZZ
1156 G_YIELD = GBUF%G_YIELD
1157 G_LENGTH_ERR = GBUF%G_LENGTH_ERR
1158 G_DV = GBUF%G_DV
1159 G_DFS = GBUF%G_DFS
1160 G_SKEW_ERR = GBUF%G_SKEW_ERR
1161 G_E6 = GBUF%G_E6
1162 G_RUPTCRIT = GBUF%G_RUPTCRIT
1163 G_MASS = GBUF%G_MASS
1164 G_V_REPCVT = GBUF%G_V_REPCVT
1165 G_VR_REPCVT = GBUF%G_VR_REPCVT
1166 G_NUVAR = GBUF%G_NUVAR
1167 G_NUVARN = GBUF%G_NUVARN
1168 G_DEFINI = GBUF%G_DEFINI
1169 G_FORINI = GBUF%G_FORINI
1170 G_INIFRIC = GBUF%G_INIFRIC
1171 G_STRHG = GBUF%G_STRHG
1172 G_ETOTSH = GBUF%G_ETOTSH
1173 G_DT_PITER = GBUF%G_DT_PITER
1174 G_TEMPG = GBUF%G_TEMPG
1175 G_SKEW_ID = GBUF%G_SKEW_ID
1176 G_IDT_TSH = GBUF%G_IDT_TSH
1177 G_YIELD_IN_COMP = GBUF%G_YIELD_IN_COMP
1178 G_XXOLD_IN_COMP = GBUF%G_XXOLD_IN_COMP
1179c---
1180c seatbelts elements
1181c---
1182 G_SLIPRING_ID = GBUF%G_SLIPRING_ID
1183 G_SLIPRING_FRAM_ID = GBUF%G_SLIPRING_FRAM_ID
1184 G_SLIPRING_STRAND = GBUF%G_SLIPRING_STRAND
1185 G_RETRACTOR_ID= GBUF%G_RETRACTOR_ID
1186 G_RINGSLIP = GBUF%G_RINGSLIP
1187 G_ADD_NODE = GBUF%G_ADD_NODE
1188 G_UPDATE = GBUF%G_UPDATE
1189 G_FRAM_FACTOR = GBUF%G_FRAM_FACTOR
1190 G_INTVAR = GBUF%G_INTVAR
1191C
1192 G_BETAORTH = GBUF%G_BETAORTH
1193C ---H3D/TMAX in BUFLEN
1194 G_TM_YIELD = GBUF%G_TM_YIELD
1195 G_TM_SEQ = GBUF%G_TM_SEQ
1196 G_TM_EINT = GBUF%G_TM_EINT
1197 G_TM_DMG = GBUF%G_TM_DMG
1198 G_TM_SIG = GBUF%G_TM_SIG
1199 G_TM_STRA = GBUF%G_TM_STRA
1200c
1201c--------------------
1202 sum = l_rel
1203c--------------------
1204c
1205 RBUF_L(L_REL+1) = GBUF%NVAR_GLOB
1206 L_REL = L_REL + 1
1207c
1208c ! write global variable lengths (GBUF%NVAR_GLOB)
1209c
1210 RBUF_L(L_REL+1) = G_NOFF
1211 L_REL = L_REL + 1
1212 RBUF_L(L_REL+1) = G_IERR
1213 L_REL = L_REL + 1
1214 RBUF_L(L_REL+1) = G_OFF
1215 L_REL = L_REL + 1
1216 RBUF_L(L_REL+1) = G_GAMA
1217 L_REL = L_REL + 1
1218 RBUF_L(L_REL+1) = G_SMSTR
1219 L_REL = L_REL + 1
1220 RBUF_L(L_REL+1) = G_HOURG
1221 L_REL = L_REL + 1
1222 RBUF_L(L_REL+1) = G_BFRAC
1223 L_REL = L_REL + 1
1224 RBUF_L(L_REL+1) = G_EINT
1225 L_REL = L_REL + 1
1226 RBUF_L(L_REL+1) = G_EINS
1227 L_REL = L_REL + 1
1228 RBUF_L(L_REL+1) = G_RHO
1229 L_REL = L_REL + 1
1230 RBUF_L(L_REL+1) = G_QVIS
1231 L_REL = L_REL + 1
1232 RBUF_L(L_REL+1) = G_DELTAX
1233 L_REL = L_REL + 1
1234 RBUF_L(L_REL+1) = G_VOL
1235 L_REL = L_REL + 1
1236 RBUF_L(L_REL+1) = G_EPSD
1237 L_REL = L_REL + 1
1238 RBUF_L(L_REL+1) = G_EPSQ
1239 L_REL = L_REL + 1
1240 RBUF_L(L_REL+1) = G_PLA
1241 L_REL = L_REL + 1
1242 RBUF_L(L_REL+1) = G_WPLA
1243 L_REL = L_REL + 1
1244 RBUF_L(L_REL+1) = G_TEMP
1245 L_REL = L_REL + 1
1246 RBUF_L(L_REL+1) = G_TB
1247 L_REL = L_REL + 1
1248 RBUF_L(L_REL+1) = G_RK
1249 L_REL = L_REL + 1
1250 RBUF_L(L_REL+1) = G_RE
1251 L_REL = L_REL + 1
1252 RBUF_L(L_REL+1) = G_SIG
1253 L_REL = L_REL + 1
1254 RBUF_L(L_REL+1) = G_FOR
1255 L_REL = L_REL + 1
1256 RBUF_L(L_REL+1) = G_MOM
1257 L_REL = L_REL + 1
1258 RBUF_L(L_REL+1) = G_THK
1259 L_REL = L_REL + 1
1260 RBUF_L(L_REL+1) = G_TAG22
1261 L_REL = L_REL + 1
1262 RBUF_L(L_REL+1) = G_STRA
1263 L_REL = L_REL + 1
1264 RBUF_L(L_REL+1) = G_SIGI
1265 L_REL = L_REL + 1
1266 RBUF_L(L_REL+1) = G_DMG
1267 L_REL = L_REL + 1
1268 RBUF_L(L_REL+1) = G_FORPG
1269 L_REL = L_REL + 1
1270 RBUF_L(L_REL+1) = G_MOMPG
1271 L_REL = L_REL + 1
1272C
1273 RBUF_L(L_REL+1) = G_FORPGPINCH
1274 L_REL = L_REL + 1
1275 RBUF_L(L_REL+1) = G_MOMPGPINCH
1276 L_REL = L_REL + 1
1277 RBUF_L(L_REL+1) = G_EPGPINCHXZ
1278 L_REL = L_REL + 1
1279 RBUF_L(L_REL+1) = G_EPGPINCHYZ
1280 L_REL = L_REL + 1
1281 RBUF_L(L_REL+1) = G_EPGPINCHZZ
1282 L_REL = L_REL + 1
1283C
1284 RBUF_L(L_REL+1) = G_STRPG
1285 L_REL = L_REL + 1
1286 RBUF_L(L_REL+1) = G_UELR
1287 L_REL = L_REL + 1
1288 RBUF_L(L_REL+1) = G_UELR1
1289 L_REL = L_REL + 1
1290 RBUF_L(L_REL+1) = G_DAMDL
1291 L_REL = L_REL + 1
1292 RBUF_L(L_REL+1) = G_FORTH
1293 L_REL = L_REL + 1
1294 RBUF_L(L_REL+1) = G_EINTTH
1295 L_REL = L_REL + 1
1296 RBUF_L(L_REL+1) = G_FILL
1297 L_REL = L_REL + 1
1298 RBUF_L(L_REL+1) = G_SEQ
1299 L_REL = L_REL + 1
1300 RBUF_L(L_REL+1) = G_STRW
1301 L_REL = L_REL + 1
1302 RBUF_L(L_REL+1) = G_STRWPG
1303 L_REL = L_REL + 1
1304 RBUF_L(L_REL+1) = G_THK_I
1305 L_REL = L_REL + 1
1306 RBUF_L(L_REL+1) = G_JAC_I
1307 L_REL = L_REL + 1
1308 RBUF_L(L_REL+1) = G_DT
1309 L_REL = L_REL + 1
1310 RBUF_L(L_REL+1) = G_ISMS
1311 L_REL = L_REL + 1
1312 RBUF_L(L_REL+1) = G_BPRELD
1313 L_REL = L_REL + 1
1314 RBUF_L(L_REL+1) = G_ABURN
1315 L_REL = L_REL + 1
1316 RBUF_L(L_REL+1) = G_MU
1317 L_REL = L_REL + 1
1318 RBUF_L(L_REL+1) = G_PLANL
1319 L_REL = L_REL + 1
1320 RBUF_L(L_REL+1) = G_EPSDNL
1321 L_REL = L_REL + 1
1322 RBUF_L(L_REL+1) = G_DMGSCL
1323 L_REL = L_REL + 1
1324 RBUF_L(L_REL+1) = G_TSAIWU
1325 L_REL = L_REL + 1
1326 RBUF_L(L_REL+1) = G_TEMPG
1327 L_REL = L_REL + 1
1328 RBUF_L(L_REL+1) = G_COR_NF
1329 L_REL = L_REL + 1
1330 RBUF_L(L_REL+1) = G_COR_FR
1331 L_REL = L_REL + 1
1332 RBUF_L(L_REL+1) = G_COR_XR
1333 L_REL = L_REL + 1
1334 RBUF_L(L_REL+1) = G_MAXFRAC
1335 L_REL = L_REL + 1
1336 RBUF_L(L_REL+1) = G_MAXEPS
1337 L_REL = L_REL + 1
1338C
1339 RBUF_L(L_REL+1) = G_BETAORTH
1340 L_REL = L_REL + 1
1341 RBUF_L(L_REL+1) = G_AMU
1342 L_REL = L_REL + 1
1343 RBUF_L(L_REL+1) = G_SH_IOFFSET
1344 L_REL = L_REL + 1
1345 RBUF_L(L_REL+1) = G_EINT_DISTOR
1346 L_REL = L_REL + 1
1347 RBUF_L(L_REL+1) = G_FOR_G
1348 L_REL = L_REL + 1
1349 RBUF_L(L_REL+1) = G_FORPG_G
1350 L_REL = L_REL + 1
1351c---
1352c 1-D elements (TRUSS, BEAM, SPRING)
1353c---
1354 RBUF_L(L_REL+1) = G_AREA
1355 L_REL = L_REL + 1
1356 RBUF_L(L_REL+1) = G_SKEW
1357 L_REL = L_REL + 1
1358 RBUF_L(L_REL+1) = G_LENGTH
1359 L_REL = L_REL + 1
1360 RBUF_L(L_REL+1) = G_TOTDEPL
1361 L_REL = L_REL + 1
1362 RBUF_L(L_REL+1) = G_TOTROT
1363 L_REL = L_REL + 1
1364 RBUF_L(L_REL+1) = G_FOREP
1365 L_REL = L_REL + 1
1366 RBUF_L(L_REL+1) = G_MOMEP
1367 L_REL = L_REL + 1
1368 RBUF_L(L_REL+1) = G_DEP_IN_TENS
1369 L_REL = L_REL + 1
1370 RBUF_L(L_REL+1) = G_DEP_IN_COMP
1371 L_REL = L_REL + 1
1372 RBUF_L(L_REL+1) = G_ROT_IN_TENS
1373 L_REL = L_REL + 1
1374 RBUF_L(L_REL+1) = G_ROT_IN_COMP
1375 L_REL = L_REL + 1
1376 RBUF_L(L_REL+1) = G_POSX
1377 L_REL = L_REL + 1
1378 RBUF_L(L_REL+1) = G_POSY
1379 L_REL = L_REL + 1
1380 RBUF_L(L_REL+1) = G_POSZ
1381 L_REL = L_REL + 1
1382 RBUF_L(L_REL+1) = G_POSXX
1383 L_REL = L_REL + 1
1384 RBUF_L(L_REL+1) = G_POSYY
1385 L_REL = L_REL + 1
1386 RBUF_L(L_REL+1) = G_POSZZ
1387 L_REL = L_REL + 1
1388 RBUF_L(L_REL+1) = G_YIELD
1389 L_REL = L_REL + 1
1390 RBUF_L(L_REL+1) = G_LENGTH_ERR
1391 L_REL = L_REL + 1
1392 RBUF_L(L_REL+1) = G_DV
1393 L_REL = L_REL + 1
1394 RBUF_L(L_REL+1) = G_DFS
1395 L_REL = L_REL + 1
1396 RBUF_L(L_REL+1) = G_SKEW_ERR
1397 L_REL = L_REL + 1
1398 RBUF_L(L_REL+1) = G_E6
1399 L_REL = L_REL + 1
1400 RBUF_L(L_REL+1) = G_RUPTCRIT
1401 L_REL = L_REL + 1
1402 RBUF_L(L_REL+1) = G_MASS
1403 L_REL = L_REL + 1
1404 RBUF_L(L_REL+1) = G_V_REPCVT
1405 L_REL = L_REL + 1
1406 RBUF_L(L_REL+1) = G_VR_REPCVT
1407 L_REL = L_REL + 1
1408 RBUF_L(L_REL+1) = G_NUVAR
1409 L_REL = L_REL + 1
1410 RBUF_L(L_REL+1) = G_NUVARN
1411 L_REL = L_REL + 1
1412 RBUF_L(L_REL+1) = G_DEFINI
1413 L_REL = L_REL + 1
1414 RBUF_L(L_REL+1) = G_FORINI
1415 L_REL = L_REL + 1
1416 RBUF_L(L_REL+1) = G_INIFRIC
1417 L_REL = L_REL + 1
1418 RBUF_L(L_REL+1) = G_STRHG
1419 L_REL = L_REL + 1
1420 RBUF_L(L_REL+1) = G_ETOTSH
1421 L_REL = L_REL + 1
1422 RBUF_L(L_REL+1) = G_DT_PITER
1423 L_REL = L_REL + 1
1424 RBUF_L(L_REL+1) = G_SKEW_ID
1425 L_REL = L_REL + 1
1426 RBUF_L(L_REL+1) = G_GAMA_R
1427 L_REL = L_REL + 1
1428 RBUF_L(L_REL+1) = G_YIELD_IN_COMP
1429 L_REL = L_REL + 1
1430 RBUF_L(L_REL+1) = G_XXOLD_IN_COMP
1431 L_REL = L_REL + 1
1432c---
1433c seatbelts elements
1434c---
1435 RBUF_L(L_REL+1) = G_SLIPRING_ID
1436 L_REL = L_REL + 1
1437 RBUF_L(L_REL+1) = G_SLIPRING_FRAM_ID
1438 L_REL = L_REL + 1
1439 RBUF_L(L_REL+1) = G_SLIPRING_STRAND
1440 L_REL = L_REL + 1
1441 RBUF_L(L_REL+1) = G_RETRACTOR_ID
1442 L_REL = L_REL + 1
1443 RBUF_L(L_REL+1) = G_RINGSLIP
1444 L_REL = L_REL + 1
1445 RBUF_L(L_REL+1) = G_ADD_NODE
1446 L_REL = L_REL + 1
1447 RBUF_L(L_REL+1) = G_UPDATE
1448 L_REL = L_REL + 1
1449 RBUF_L(L_REL+1) = G_FRAM_FACTOR
1450 L_REL = L_REL + 1
1451 RBUF_L(L_REL+1) = G_INTVAR
1452 L_REL = L_REL + 1
1453 RBUF_L(L_REL+1) = G_IDT_TSH
1454 L_REL = L_REL + 1
1455c---
1456c H3D/MAX
1457c---
1458 RBUF_L(L_REL+1) = G_TM_YIELD
1459 L_REL = L_REL + 1
1460 RBUF_L(L_REL+1) = G_TM_SEQ
1461 L_REL = L_REL + 1
1462 RBUF_L(L_REL+1) = G_TM_EINT
1463 L_REL = L_REL + 1
1464 RBUF_L(L_REL+1) = G_TM_DMG
1465 L_REL = L_REL + 1
1466 RBUF_L(L_REL+1) = G_TM_SIG
1467 L_REL = L_REL + 1
1468 RBUF_L(L_REL+1) = G_TM_STRA
1469 L_REL = L_REL + 1
1470c---------------------------------
1471 IF (DEBUG_PRINT == 1) THEN
1472 print*,' nvar_glob=',GBUF%NVAR_GLOB,L_REL-SUM
1473 IAD = L_REL
1474 ENDIF
1475c---------------------------------
1476c
1477 sum = l_rel
1478c
1479c ! write global variables for each element
1480c
1481 RBUF_L(L_REL+1:L_REL+NEL*G_NOFF) = GBUF%NOFF(1:NEL*G_NOFF)
1482 L_REL = L_REL + NEL*G_NOFF
1483 RBUF_L(L_REL+1:L_REL+NEL*G_IERR) = GBUF%IERR(1:NEL*G_IERR)
1484 L_REL = L_REL + NEL*G_IERR
1485 RBUF_L(L_REL+1:L_REL+NEL*G_GAMA) = GBUF%GAMA(1:NEL*G_GAMA)
1486 L_REL = L_REL + NEL*G_GAMA
1487 IF(NEL*G_SMSTR >0)THEN
1488 DP_RBUF(L_DPREL+1:L_DPREL+NEL*G_SMSTR)= GBUF%SMSTR(1:NEL*G_SMSTR)
1489 L_DPREL = L_DPREL + NEL*G_SMSTR
1490 ENDIF
1491 RBUF_L(L_REL+1:L_REL+NEL*G_HOURG)= GBUF%HOURG(1:NEL*G_HOURG)
1492 L_REL = L_REL + NEL*G_HOURG
1493 RBUF_L(L_REL+1:L_REL+NEL*G_TAG22)= GBUF%TAG22(1:NEL*G_TAG22)
1494 L_REL = L_REL+NEL*G_TAG22
1495 RBUF_L(L_REL+1:L_REL+NEL*G_STRA) = GBUF%STRA(1:NEL*G_STRA)
1496 L_REL = L_REL+NEL*G_STRA
1497 RBUF_L(L_REL+1:L_REL+NEL*G_SIGI) = GBUF%SIGI(1:NEL*G_SIGI)
1498 L_REL = L_REL+NEL*G_SIGI
1499 RBUF_L(L_REL+1:L_REL+NEL*G_DMG) = GBUF%DMG(1:NEL*G_DMG)
1500 L_REL = L_REL+NEL*G_DMG
1501 RBUF_L(L_REL+1:L_REL+NEL*G_UELR) = GBUF%UELR(1:NEL*G_UELR)
1502 L_REL = L_REL+NEL*G_UELR
1503 RBUF_L(L_REL+1:L_REL+NEL*G_UELR1) = GBUF%UELR1(1:NEL*G_UELR1)
1504 L_REL = L_REL+NEL*G_UELR1
1505 RBUF_L(L_REL+1:L_REL+NEL*G_DAMDL) = GBUF%DAMDL(1:NEL*G_DAMDL)
1506 L_REL = L_REL+NEL*G_DAMDL
1507 RBUF_L(L_REL+1:L_REL+NEL*G_FOR) = GBUF%FOR(1:NEL*G_FOR)
1508 L_REL = L_REL+NEL*G_FOR
1509 RBUF_L(L_REL+1:L_REL+NEL*G_MOM) = GBUF%MOM(1:NEL*G_MOM)
1510 L_REL = L_REL+NEL*G_MOM
1511 RBUF_L(L_REL+1:L_REL+NEL*G_THK) = GBUF%THK(1:NEL*G_THK)
1512 L_REL = L_REL+NEL*G_THK
1513 RBUF_L(L_REL+1:L_REL+NEL*G_STRW)=GBUF%STRW(1:NEL*G_STRW)
1514 L_REL = L_REL+NEL*G_STRW
1515 RBUF_L(L_REL+1:L_REL+NEL*G_THK_I) = GBUF%THK_I(1:NEL*G_THK_I)
1516 L_REL = L_REL+NEL*G_THK_I
1517 RBUF_L(L_REL+1:L_REL+NEL*G_JAC_I) = GBUF%JAC_I(1:NEL*G_JAC_I)
1518 L_REL = L_REL+NEL*G_JAC_I
1519 RBUF_L(L_REL+1:L_REL+NEL*G_DT) = GBUF%DT(1:NEL*G_DT)
1520 L_REL = L_REL+NEL*G_DT
1521 RBUF_L(L_REL+1:L_REL+NEL*G_ISMS) = GBUF%ISMS(1:NEL*G_ISMS)
1522 L_REL = L_REL+NEL*G_ISMS
1523 RBUF_L(L_REL+1:L_REL+NEL*G_BPRELD) = GBUF%BPRELD(1:NEL*G_BPRELD)
1524 L_REL = L_REL+NEL*G_BPRELD
1525 RBUF_L(L_REL+1:L_REL+NEL*G_COR_NF) = GBUF%COR_NF(1:NEL*G_COR_NF)
1526 L_REL = L_REL+NEL*G_COR_NF
1527 RBUF_L(L_REL+1:L_REL+NEL*G_COR_FR) = GBUF%COR_FR(1:NEL*G_COR_FR)
1528 L_REL = L_REL+NEL*G_COR_FR
1529 RBUF_L(L_REL+1:L_REL+NEL*G_COR_XR) = GBUF%COR_XR(1:NEL*G_COR_XR)
1530 L_REL = L_REL+NEL*G_COR_XR
1531 RBUF_L(L_REL+1:L_REL+NEL*G_MAXFRAC)= GBUF%MAXFRAC(1:NEL*G_MAXFRAC)
1532 L_REL = L_REL + NEL*G_MAXFRAC
1533 RBUF_L(L_REL+1:L_REL+NEL*G_MAXEPS)= GBUF%MAXEPS(1:NEL*G_MAXEPS)
1534 L_REL = L_REL + NEL*G_MAXEPS
1535C
1536 RBUF_L(L_REL+1:L_REL+NEL*G_BETAORTH) = GBUF%BETAORTH(1:NEL*G_BETAORTH)
1537 L_REL = L_REL+NEL*G_BETAORTH
1538 RBUF_L(L_REL+1:L_REL+NEL*G_AMU) = GBUF%AMU(1:NEL*G_AMU)
1539 L_REL = L_REL + NEL*G_AMU
1540 RBUF_L(L_REL+1:L_REL+NEL*G_SH_IOFFSET) = GBUF%SH_IOFFSET(1:NEL*G_SH_IOFFSET)
1541 L_REL = L_REL + NEL*G_SH_IOFFSET
1542 RBUF_L(L_REL+1:L_REL+NEL*G_EINT_DISTOR) = GBUF%EINT_DISTOR(1:NEL*G_EINT_DISTOR)
1543 L_REL = L_REL + NEL*G_EINT_DISTOR
1544 RBUF_L(L_REL+1:L_REL+NEL*G_FOR_G) = GBUF%FOR_G(1:NEL*G_FOR_G)
1545 L_REL = L_REL + NEL*G_FOR_G
1546 RBUF_L(L_REL+1:L_REL+NEL*G_WPLA) = GBUF%WPLA(1:NEL*G_WPLA)
1547 L_REL = L_REL+NEL*G_WPLA
1548c---------------------------------------------------
1549 IF (DEBUG_PRINT == 1) THEN
1550 print*,' COMMON glob=', L_REL-SUM
1551 IAD = L_REL
1552 ENDIF
1553c---------------------------------------------------
1554c
1555 IF (NPG == 1) THEN
1556 IF (G_STRPG>G_STRA) THEN
1557 RBUF_L(L_REL+1:L_REL+NEL*G_STRPG) = GBUF%STRPG(1:NEL*G_STRPG)
1558 L_REL = L_REL+NEL*G_STRPG
1559 END IF
1560 ELSEIF (NPG > 1) THEN
1561 RBUF_L(L_REL+1:L_REL+NEL*G_FORPG) = GBUF%FORPG(1:NEL*G_FORPG)
1562 L_REL = L_REL+NEL*G_FORPG
1563 RBUF_L(L_REL+1:L_REL+NEL*G_MOMPG) = GBUF%MOMPG(1:NEL*G_MOMPG)
1564 L_REL = L_REL+NEL*G_MOMPG
1565C
1566 RBUF_L(L_REL+1:L_REL+NEL*G_FORPGPINCH) = GBUF%FORPGPINCH(1:NEL*G_FORPGPINCH)
1567 L_REL = L_REL+NEL*G_FORPGPINCH
1568 RBUF_L(L_REL+1:L_REL+NEL*G_MOMPGPINCH) = GBUF%MOMPGPINCH(1:NEL*G_MOMPGPINCH)
1569 L_REL = L_REL+NEL*G_MOMPGPINCH
1570 RBUF_L(L_REL+1:L_REL+NEL*G_EPGPINCHXZ) = GBUF%EPGPINCHXZ(1:NEL*G_EPGPINCHXZ)
1571 L_REL = L_REL+NEL*G_EPGPINCHXZ
1572 RBUF_L(L_REL+1:L_REL+NEL*G_EPGPINCHYZ) = GBUF%EPGPINCHYZ(1:NEL*G_EPGPINCHYZ)
1573 L_REL = L_REL+NEL*G_EPGPINCHYZ
1574 RBUF_L(L_REL+1:L_REL+NEL*G_EPGPINCHZZ) = GBUF%EPGPINCHZZ(1:NEL*G_EPGPINCHZZ)
1575 L_REL = L_REL+NEL*G_EPGPINCHZZ
1576C
1577 RBUF_L(L_REL+1:L_REL+NEL*G_STRPG) = GBUF%STRPG(1:NEL*G_STRPG)
1578 L_REL = L_REL+NEL*G_STRPG
1579 RBUF_L(L_REL+1:L_REL+NEL*G_STRWPG)= GBUF%STRWPG(1:NEL*G_STRWPG)
1580 L_REL = L_REL+NEL*G_STRWPG
1581 RBUF_L(L_REL+1:L_REL+NEL*G_FORPG_G)= GBUF%FORPG_G(1:NEL*G_FORPG_G)
1582 L_REL = L_REL+NEL*G_FORPG_G
1583 ENDIF
1584c---------------------------------------------------
1585 IF (DEBUG_PRINT == 1) THEN
1586 print*,' glob npg > 1 =', L_REL-IAD
1587 IAD = L_REL
1588 ENDIF
1589c---------------------------------------------------
1590c-------
1591 sum=L_REL
1592 IF (NPTTOT /= 1) THEN
1593 RBUF_L(L_REL+1:L_REL+NEL*G_BFRAC)= GBUF%BFRAC(1:NEL*G_BFRAC)
1594 L_REL = L_REL + NEL*G_BFRAC
1595 RBUF_L(L_REL+1:L_REL+NEL*G_OFF) = GBUF%OFF(1:NEL*G_OFF)
1596 L_REL = L_REL+NEL*G_OFF
1597 RBUF_L(L_REL+1:L_REL+NEL*G_EINT) = GBUF%EINT(1:NEL*G_EINT)
1598 L_REL = L_REL+NEL*G_EINT
1599 RBUF_L(L_REL+1:L_REL+NEL*G_EINS) = GBUF%EINS(1:NEL*G_EINS)
1600 L_REL = L_REL+NEL*G_EINS
1601 RBUF_L(L_REL+1:L_REL+NEL*G_RHO) = GBUF%RHO(1:NEL*G_RHO)
1602 L_REL = L_REL+NEL*G_RHO
1603 RBUF_L(L_REL+1:L_REL+NEL*G_QVIS) = GBUF%QVIS(1:NEL*G_QVIS)
1604 L_REL = L_REL+NEL*G_QVIS
1605 RBUF_L(L_REL+1:L_REL+NEL*G_DELTAX)=GBUF%DELTAX(1:NEL*G_DELTAX)
1606 L_REL = L_REL+NEL*G_DELTAX
1607 RBUF_L(L_REL+1:L_REL+NEL*G_VOL) = GBUF%VOL(1:NEL*G_VOL)
1608 L_REL = L_REL+NEL*G_VOL
1609 RBUF_L(L_REL+1:L_REL+NEL*G_EPSD) = GBUF%EPSD(1:NEL*G_EPSD)
1610 L_REL = L_REL+NEL*G_EPSD
1611 RBUF_L(L_REL+1:L_REL+NEL*G_EPSQ) = GBUF%EPSQ(1:NEL*G_EPSQ)
1612 L_REL = L_REL+NEL*G_EPSQ
1613 RBUF_L(L_REL+1:L_REL+NEL*G_PLA) = GBUF%PLA(1:NEL*G_PLA)
1614 L_REL = L_REL+NEL*G_PLA
1615 RBUF_L(L_REL+1:L_REL+NEL*G_TEMP) = GBUF%TEMP(1:NEL*G_TEMP)
1616 L_REL = L_REL+NEL*G_TEMP
1617 RBUF_L(L_REL+1:L_REL+NEL*G_TB) = GBUF%TB(1:NEL*G_TB)
1618 L_REL = L_REL+NEL*G_TB
1619 RBUF_L(L_REL+1:L_REL+NEL*G_RK) = GBUF%RK(1:NEL*G_RK)
1620 L_REL = L_REL+NEL*G_RK
1621 RBUF_L(L_REL+1:L_REL+NEL*G_RE) = GBUF%RE(1:NEL*G_RE)
1622 L_REL = L_REL+NEL*G_RE
1623 RBUF_L(L_REL+1:L_REL+NEL*G_SIG) = GBUF%SIG(1:NEL*G_SIG)
1624 L_REL = L_REL+NEL*G_SIG
1625 RBUF_L(L_REL+1:L_REL+NEL*G_FORTH)= GBUF%FORTH(1:NEL*G_FORTH)
1626 L_REL = L_REL+NEL*G_FORTH
1627 RBUF_L(L_REL+1:L_REL+NEL*G_EINTTH)= GBUF%EINTTH(1:NEL*G_EINTTH)
1628 L_REL = L_REL+NEL*G_EINTTH
1629 RBUF_L(L_REL+1:L_REL+NEL*G_SEQ) = GBUF%SEQ(1:NEL*G_SEQ)
1630 L_REL = L_REL+NEL*G_SEQ
1631 RBUF_L(L_REL+1:L_REL+NEL*G_ABURN)= GBUF%ABURN(1:NEL*G_ABURN)
1632 L_REL = L_REL + NEL*G_ABURN
1633 RBUF_L(L_REL+1:L_REL+NEL*G_MU)= GBUF%MU(1:NEL*G_MU)
1634 L_REL = L_REL + NEL*G_MU
1635 ENDIF
1636C---------
1637 RBUF_L(L_REL+1:L_REL+NEL*G_FILL) = GBUF%FILL(1:NEL*G_FILL)
1638 L_REL = L_REL+NEL*G_FILL
1639c---
1640c 1-D elements (TRUSS, BEAM, SPRING)
1641c---
1642.and. IF(IGTYP == 3 ITY == 5) THEN
1643 RBUF_L(L_REL+1:L_REL+NEL*G_DMGSCL) = GBUF%DMGSCL(1:NEL*G_DMGSCL)
1644 L_REL = L_REL+NEL*G_DMGSCL
1645 ENDIF
1646 RBUF_L(L_REL+1:L_REL+NEL*G_AREA) = GBUF%AREA(1:NEL*G_AREA)
1647 L_REL = L_REL +NEL*G_AREA
1648 RBUF_L(L_REL+1:L_REL+NEL*G_SKEW) = GBUF%SKEW(1:NEL*G_SKEW)
1649 L_REL = L_REL +NEL*G_SKEW
1650 RBUF_L(L_REL+1:L_REL+NEL*G_LENGTH) = GBUF%LENGTH(1:NEL*G_LENGTH)
1651 L_REL = L_REL +NEL*G_LENGTH
1652 RBUF_L(L_REL+1:L_REL+NEL*G_TOTDEPL) = GBUF%TOTDEPL(1:NEL*G_TOTDEPL)
1653 L_REL = L_REL +NEL*G_TOTDEPL
1654 RBUF_L(L_REL+1:L_REL+NEL*G_TOTROT) = GBUF%TOTROT(1:NEL*G_TOTROT)
1655 L_REL = L_REL +NEL*G_TOTROT
1656 RBUF_L(L_REL+1:L_REL+NEL*G_FOREP) = GBUF%FOREP(1:NEL*G_FOREP)
1657 L_REL = L_REL +NEL*G_FOREP
1658 RBUF_L(L_REL+1:L_REL+NEL*G_MOMEP) = GBUF%MOMEP(1:NEL*G_MOMEP)
1659 L_REL = L_REL +NEL*G_MOMEP
1660 RBUF_L(L_REL+1:L_REL+NEL*G_DEP_IN_TENS) = GBUF%DEP_IN_TENS(1:NEL*G_DEP_IN_TENS)
1661 L_REL = L_REL + NEL*G_DEP_IN_TENS
1662 RBUF_L(L_REL+1:L_REL+NEL*G_DEP_IN_COMP) = GBUF%DEP_IN_COMP(1:NEL*G_DEP_IN_COMP)
1663 L_REL = L_REL +NEL*G_DEP_IN_COMP
1664 RBUF_L(L_REL+1:L_REL+NEL*G_ROT_IN_TENS) = GBUF%ROT_IN_TENS(1:NEL*G_ROT_IN_TENS)
1665 L_REL = L_REL +NEL*G_ROT_IN_TENS
1666 RBUF_L(L_REL+1:L_REL+NEL*G_ROT_IN_COMP) = GBUF%ROT_IN_COMP(1:NEL*G_ROT_IN_COMP)
1667 L_REL = L_REL +NEL*G_ROT_IN_COMP
1668 RBUF_L(L_REL+1:L_REL+NEL*G_POSX) = GBUF%POSX(1:NEL*G_POSX)
1669 L_REL = L_REL +NEL*G_POSX
1670 RBUF_L(L_REL+1:L_REL+NEL*G_POSY) = GBUF%POSY(1:NEL*G_POSY)
1671 L_REL = L_REL +NEL*G_POSY
1672 RBUF_L(L_REL+1:L_REL+NEL*G_POSZ) = GBUF%POSZ(1:NEL*G_POSZ)
1673 L_REL = L_REL +NEL*G_POSZ
1674 RBUF_L(L_REL+1:L_REL+NEL*G_POSXX) = GBUF%POSXX(1:NEL*G_POSXX)
1675 L_REL = L_REL +NEL*G_POSXX
1676 RBUF_L(L_REL+1:L_REL+NEL*G_POSYY) = GBUF%POSYY(1:NEL*G_POSYY)
1677 L_REL = L_REL +NEL*G_POSYY
1678 RBUF_L(L_REL+1:L_REL+NEL*G_POSZZ) = GBUF%POSZZ(1:NEL*G_POSZZ)
1679 L_REL = L_REL +NEL*G_POSZZ
1680 RBUF_L(L_REL+1:L_REL+NEL*G_YIELD) = GBUF%YIELD(1:NEL*G_YIELD)
1681 L_REL = L_REL +NEL*G_YIELD
1682 RBUF_L(L_REL+1:L_REL+NEL*G_LENGTH_ERR) = GBUF%LENGTH_ERR(1:NEL*G_LENGTH_ERR)
1683 L_REL = L_REL +NEL*G_LENGTH_ERR
1684 RBUF_L(L_REL+1:L_REL+NEL*G_DV) = GBUF%DV(1:NEL*G_DV)
1685 L_REL = L_REL +NEL*G_DV
1686 RBUF_L(L_REL+1:L_REL+NEL*G_DFS) = GBUF%DFS(1:NEL*G_DFS)
1687 L_REL = L_REL +NEL*G_DFS
1688 RBUF_L(L_REL+1:L_REL+NEL*G_SKEW_ERR) = GBUF%SKEW_ERR(1:NEL*G_SKEW_ERR)
1689 L_REL = L_REL +NEL*G_SKEW_ERR
1690 RBUF_L(L_REL+1:L_REL+NEL*G_E6) = GBUF%E6(1:NEL*G_E6)
1691 L_REL = L_REL +NEL*G_E6
1692 RBUF_L(L_REL+1:L_REL+NEL*G_RUPTCRIT) = GBUF%RUPTCRIT(1:NEL*G_RUPTCRIT)
1693 L_REL = L_REL +NEL*G_RUPTCRIT
1694 RBUF_L(L_REL+1:L_REL+NEL*G_MASS) = GBUF%MASS(1:NEL*G_MASS)
1695 L_REL = L_REL +NEL*G_MASS
1696 RBUF_L(L_REL+1:L_REL+NEL*G_V_REPCVT) = GBUF%V_REPCVT(1:NEL*G_V_REPCVT)
1697 L_REL = L_REL +NEL*G_V_REPCVT
1698 RBUF_L(L_REL+1:L_REL+NEL*G_VR_REPCVT) = GBUF%VR_REPCVT(1:NEL*G_VR_REPCVT)
1699 L_REL = L_REL +NEL*G_VR_REPCVT
1700 RBUF_L(L_REL+1:L_REL+NEL*G_NUVAR) = GBUF%VAR(1:NEL*G_NUVAR)
1701 L_REL = L_REL +NEL*G_NUVAR
1702 RBUF_L(L_REL+1:L_REL+NEL*G_NUVARN) = GBUF%VARN(1:NEL*G_NUVARN)
1703 L_REL = L_REL +NEL*G_NUVARN
1704 RBUF_L(L_REL+1:L_REL+NEL*G_DEFINI) = GBUF%DEFINI(1:NEL*G_DEFINI)
1705 L_REL = L_REL +NEL*G_DEFINI
1706 RBUF_L(L_REL+1:L_REL+NEL*G_FORINI) = GBUF%FORINI(1:NEL*G_FORINI)
1707 L_REL = L_REL +NEL*G_FORINI
1708 RBUF_L(L_REL+1:L_REL+NEL*G_INIFRIC) = GBUF%INIFRIC(1:NEL*G_INIFRIC)
1709 L_REL = L_REL +NEL*G_INIFRIC
1710 RBUF_L(L_REL+1:L_REL+NEL*G_STRHG) = GBUF%STRHG(1:NEL*G_STRHG)
1711 L_REL = L_REL +NEL*G_STRHG
1712 RBUF_L(L_REL+1:L_REL+NEL*G_DT_PITER) = GBUF%DT_PITER(1:NEL*G_DT_PITER)
1713 L_REL = L_REL +NEL*G_DT_PITER
1714 RBUF_L(L_REL+1:L_REL+NEL*G_SKEW_ID) = GBUF%SKEW_ID(1:NEL*G_SKEW_ID)
1715 L_REL = L_REL +NEL*G_SKEW_ID
1716 RBUF_L(L_REL+1:L_REL+NEL*G_YIELD_IN_COMP) = GBUF%YIELD_IN_COMP(1:NEL*G_YIELD_IN_COMP)
1717 L_REL = L_REL +NEL*G_YIELD_IN_COMP
1718 RBUF_L(L_REL+1:L_REL+NEL*G_XXOLD_IN_COMP) = GBUF%XXOLD_IN_COMP(1:NEL*G_XXOLD_IN_COMP)
1719 L_REL = L_REL +NEL*G_XXOLD_IN_COMP
1720c
1721c failure model for beams type 3
1722.and. IF (IGTYP == 3 G_NOFF == 1) THEN
1723 IFAIL = ELBUF_TAB(NG)%GBUF%FAIL(1)%ILAWF
1724 IDFAIL = ELBUF_TAB(NG)%GBUF%FAIL(1)%IDFAIL
1725 NUVAR = ELBUF_TAB(NG)%GBUF%FAIL(1)%NVAR
1726 LF_DAM = ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_DAM
1727 LF_DAMMX = ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_DAMMX
1728 LF_DAMINI= ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_DAMINI
1729 LF_TDEL = ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_TDEL
1730 LF_INDX = ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_INDX
1731 LF_OFF = ELBUF_TAB(NG)%GBUF%FAIL(1)%LF_OFF
1732c
1733 RBUF_L(L_REL+1)=IFAIL
1734 L_REL = L_REL+1
1735 RBUF_L(L_REL+1)=IDFAIL
1736 L_REL = L_REL+1
1737 RBUF_L(L_REL+1)=NUVAR
1738 L_REL = L_REL+1
1739 RBUF_L(L_REL+1)=LF_DAM
1740 L_REL = L_REL+1
1741 RBUF_L(L_REL+1)=LF_DAMMX
1742 L_REL = L_REL+1
1743 RBUF_L(L_REL+1)=LF_DAMINI
1744 L_REL = L_REL+1
1745 RBUF_L(L_REL+1)=LF_TDEL
1746 L_REL = L_REL+1
1747 RBUF_L(L_REL+1)=LF_INDX
1748 L_REL = L_REL+1
1749 RBUF_L(L_REL+1)=LF_OFF
1750 L_REL = L_REL+1
1751c
1752 RBUF_L(L_REL+1:L_REL+NEL*NUVAR) = ELBUF_TAB(NG)%GBUF%FAIL(1)%VAR(1:NEL*NUVAR)
1753 L_REL = L_REL+NEL*NUVAR
1754 RBUF_L(L_REL+1:L_REL+NEL*LF_DAM) = ELBUF_TAB(NG)%GBUF%FAIL(1)%DAM(1:NEL*LF_DAM)
1755 L_REL = L_REL+NEL*LF_DAM
1756 RBUF_L(L_REL+1:L_REL+NEL*LF_DAMMX) = ELBUF_TAB(NG)%GBUF%FAIL(1)%DAMMX(1:NEL*LF_DAMMX)
1757 L_REL = L_REL+NEL*LF_DAMMX
1758 RBUF_L(L_REL+1:L_REL+NEL*LF_DAMINI) = ELBUF_TAB(NG)%GBUF%FAIL(1)%DAMINI(1:NEL*LF_DAMINI)
1759 L_REL = L_REL+NEL*LF_DAMINI
1760 RBUF_L(L_REL+1:L_REL+NEL*LF_TDEL) = ELBUF_TAB(NG)%GBUF%FAIL(1)%TDEL(1:NEL*LF_TDEL)
1761 L_REL = L_REL + NEL*LF_TDEL
1762 RBUF_L(L_REL+1:L_REL+NEL*LF_INDX) = ELBUF_TAB(NG)%GBUF%FAIL(1)%INDX(1:NEL*LF_INDX)
1763 L_REL = L_REL + NEL*LF_INDX
1764 RBUF_L(L_REL+1:L_REL+NEL*LF_OFF) = ELBUF_TAB(NG)%GBUF%FAIL(1)%OFF(1:NEL*LF_OFF)
1765 L_REL = L_REL + NEL*LF_OFF
1766 END IF
1767c---
1768c seatbelts elements
1769c---
1770 RBUF_L(L_REL+1:L_REL+NEL*G_SLIPRING_ID) = GBUF%SLIPRING_ID(1:NEL*G_SLIPRING_ID)
1771 L_REL = L_REL +NEL*G_SLIPRING_ID
1772 RBUF_L(L_REL+1:L_REL+NEL*G_SLIPRING_FRAM_ID) = GBUF%SLIPRING_FRAM_ID(1:NEL*G_SLIPRING_FRAM_ID)
1773 L_REL = L_REL +NEL*G_SLIPRING_FRAM_ID
1774 RBUF_L(L_REL+1:L_REL+NEL*G_SLIPRING_STRAND) = GBUF%SLIPRING_STRAND(1:NEL*G_SLIPRING_STRAND)
1775 L_REL = L_REL +NEL*G_SLIPRING_STRAND
1776 RBUF_L(L_REL+1:L_REL+NEL*G_RETRACTOR_ID)= GBUF%RETRACTOR_ID(1:NEL*G_RETRACTOR_ID)
1777 L_REL = L_REL +NEL*G_RETRACTOR_ID
1778 RBUF_L(L_REL+1:L_REL+NEL*G_RINGSLIP)= GBUF%RINGSLIP(1:NEL*G_RINGSLIP)
1779 L_REL = L_REL +NEL*G_RINGSLIP
1780 RBUF_L(L_REL+1:L_REL+NEL*G_ADD_NODE)= GBUF%ADD_NODE(1:NEL*G_ADD_NODE)
1781 L_REL = L_REL +NEL*G_ADD_NODE
1782 RBUF_L(L_REL+1:L_REL+NEL*G_UPDATE) = GBUF%UPDATE(1:NEL*G_UPDATE)
1783 L_REL = L_REL +NEL*G_UPDATE
1784 RBUF_L(L_REL+1:L_REL+NEL*G_FRAM_FACTOR) = GBUF%FRAM_FACTOR(1:NEL*G_FRAM_FACTOR)
1785 L_REL = L_REL +NEL*G_FRAM_FACTOR
1786 RBUF_L(L_REL+1:L_REL+NEL*G_INTVAR) = GBUF%INTVAR(1:NEL*G_INTVAR)
1787 L_REL = L_REL +NEL*G_INTVAR
1788C----
1789 RBUF_L(L_REL+1:L_REL+NEL*G_IDT_TSH) = GBUF%IDT_TSH(1:NEL*G_IDT_TSH)
1790 L_REL = L_REL +NEL*G_IDT_TSH
1791 IF (NPG > 1) THEN
1792 RBUF_L(L_REL+1:L_REL + NEL*GBUF%G_TEMPG)= GBUF%TEMPG(1:NEL*GBUF%G_TEMPG)
1793 L_REL = L_REL + NEL*GBUF%G_TEMPG
1794 ENDIF
1795c---
1796c TMAX(H3D)
1797c---
1798 RBUF_L(L_REL+1:L_REL+NEL*G_TM_YIELD) = GBUF%TM_YIELD(1:NEL*G_TM_YIELD)
1799 L_REL = L_REL +NEL*G_TM_YIELD
1800 RBUF_L(L_REL+1:L_REL+NEL*G_TM_SEQ) = GBUF%TM_SEQ(1:NEL*G_TM_SEQ)
1801 L_REL = L_REL +NEL*G_TM_SEQ
1802 RBUF_L(L_REL+1:L_REL+NEL*G_TM_EINT) = GBUF%TM_EINT(1:NEL*G_TM_EINT)
1803 L_REL = L_REL +NEL*G_TM_EINT
1804 RBUF_L(L_REL+1:L_REL+NEL*G_TM_DMG) = GBUF%TM_DMG(1:NEL*G_TM_DMG)
1805 L_REL = L_REL +NEL*G_TM_DMG
1806 RBUF_L(L_REL+1:L_REL+NEL*G_TM_SIG) = GBUF%TM_SIG1(1:NEL*G_TM_SIG)
1807 L_REL = L_REL +NEL*G_TM_SIG
1808 RBUF_L(L_REL+1:L_REL+NEL*G_TM_SIG) = GBUF%TM_SIG3(1:NEL*G_TM_SIG)
1809 L_REL = L_REL +NEL*G_TM_SIG
1810 RBUF_L(L_REL+1:L_REL+NEL*G_TM_STRA) = GBUF%TM_STRA1(1:NEL*G_TM_STRA)
1811 L_REL = L_REL +NEL*G_TM_STRA
1812 RBUF_L(L_REL+1:L_REL+NEL*G_TM_STRA) = GBUF%TM_STRA3(1:NEL*G_TM_STRA)
1813 L_REL = L_REL +NEL*G_TM_STRA
1814c---------------------------------------------------
1815 IF (DEBUG_PRINT == 1) THEN
1816 print*,' total glob vars =', L_REL-SUM
1817 IAD = L_REL
1818 ENDIF
1819c---------------------------------------------------
1820C---------
1821 CALL WRITE_DB (RBUF_L,L_REL)
1822 IF( SDP_RBUF >0)THEN
1823 CALL WRITE_DPDB(DP_RBUF,SDP_RBUF)
1824 DEALLOCATE(DP_RBUF)
1825 ENDIF
1826C---------
1827 DEALLOCATE (RBUF_L)
1828c---------
1829 LEN_AM = LEN_AM + L_REL
1830 ENDIF ! ity
1831 ENDIF ! p = proc
1832 ENDDO ! NG=1,NGROUP
1833C-----------
1834 RETURN
1835 END
#define my_real
Definition cppsort.cpp:32
subroutine ddsplit(p, cep, cel, igeo, mat_elem, ipm, icode, iskew, iskn, insel, ibcslag, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, detonators, ipartx, npc, ixtg, group_param_tab, ixtg6, ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, itab, itabm1, gjbufi, nale, ale_connectivity, kxx, ixx, ibcl, ibfv, las, laccelm, nnlink, lllink, iparg, igrav, lgrav, ibvel, lbvel, iactiv, factiv, kinet, ipari, nprw, lprw, iexmad, npby, lpby, ixri, nstrf, ljoint, pornod, monvol, icontact, lagbuf, fr_iad, x, d, v, vr, dr, thke, dampr, damp, ms, in, tf, pm, skew, xframe, geo, eani, bufmat, bufgeo, bufsf, brmpc, gjbufr, w, veul, fill, dfill, wb, dsav, asav, msnf, spbuf, fac, vel, fsav, fzero, xlas, accelm, fbvel, gravfac, fr_wave, failwave, parts0, elbuf, rwl, rwsav, rby, rivet, secbuf, rvolu, rconx, nloc_dmg, fvmain, libagale, lenthg, lbufmat, lbufgeo, lbufsf, lenxlas, lnom_opt, lenlas, lenvolu, npts, cne, lcne, addcne, cni2, lcni2g, addcni2, cepi2, celi2, i2nsnt, probint, ddstat, pm1shf, dd_iad, kxsp, ixsp, nod2sp, cepsp, nthwa, nairwa, nmnt, l_mul_lag1, l_mul_lag, lwaspio, ipartsp, ispcond, pm1sph, wma, eigipm, eigibuf, eigrpm, iflow, rflow, memflow, iexlnk, fasolfr, iparth, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, iadll, lll, ibmpc, lambda, lrbagale, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, mcp, temp, unitab, intstamp, iframe, clusters, partsav, ibft, fbft, ibcv, fconv, irbe3, lrbe3, frbe3, front_rm, rbym, irbym, lcrbym, inoise, fnoise, ms0, admsms, nom_sect, ispsym, sh4tree, sh3tree, ipadmesh, ibfflux, fbfflux, sh4trim, sh3trim, padmesh, msc, mstg, inc, intg, ptg, mcpc, mcptg, rcontact, acontact, pcontact, mscnd, incnd, mssa, mstr, msp, msrt, ibcr, fradia, dmelc, dmeltg, dmels, dmeltr, dmelp, dmelrt, res_sms, isphio, lprtsph, lonfsph, vsphio, sphveln, alph, ifill, ims, irbe2, lrbe2, ms_ply, zi_ply, inod_pxfem, iel_pxfem, icodply, iskwply, addcne_pxfem, cne_pxfem, cel_pxfem, ithvar, xdp, table, celsph, icfield, lcfield, cfield, msz2, itask, diag_sms, iloadp, lloadp, loadp, inod_crkxfem, iel_crkxfem, addcne_crkxfem, cne_crkxfem, cel_crkxfem, ibufssg_io, intercep, ibordnode, iedgesh, ibordedge, linale, nodedge, iedge, cep_crkxfem, iedge_tmp, crknodiad, elbuf_tab, nom_opt, lgauge, gauge, igaup, ngaup, nodlevxf, frontb_r2r, dflow, vflow, wflow, sph2sol, sol2sph, irst, elcutc, nodenr, kxfenod2elc, enrtag, intbuf_tab, i11flag, xfem_tab, lenthgr, rthbuf, ixig3d, kxig3d, knot, ipartig3d, wige, ncrkpart, indx_crk, crklvset, crkshell, crksky, crkavx, crkedge, sensors, stack, xfem_phantom, t8, tab_ump, poin_ump, sol2sph_typ, addcsrect, csrect, drape, loads, itagnd, icnds10, addcncnd, cepcnd, celcnd, cncnd, nativ_sms, i24maxnsne, multi_fvm, segquadfr, intbuf_fric_tab, subset, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, igrslin, poin_part_shell, poin_part_tri, poin_part_sol, mid_pid_shell, mid_pid_tri, mid_pid_sol, tag_nm, nindx_nm, indx_nm, tag_scratch, nindx_scrt, indx_scrt, flag_24_25, numnod_l, tag_skn, multiple_skew, igrsurf_proc, knotlocpc, knotlocel, ale_elm, size_ale_elm, pinch_data, tag_skins6, ibcscyc, lbcscyc, t_monvol, indx_s, indx_q, indx_tg, face_elm_s, face_elm_q, face_elm_tg, nbr_th_monvol, ebcs_tab, kloadpinter, loadpinter, dgaploadint, s_loadpinter, len_cep, dynain_data, drapeg, user_windows, output, interfaces, number_load_cyl, loads_per_proc, python, dpl0cld, vel0cld, names_and_titles, bcs_per_proc, constraint_struct, glob_therm, pblast)
Definition ddsplit.F:336
subroutine w_elbuf_str(proc, iparg, elbuf_tab, len_am, flag_xfem)
Definition w_elbuf_str.F:31
program starter
Definition starter.F:39