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 ../engine/source/elements/elbuf/w_elbuf_str.F
25!||--- called by ------------------------------------------------------
26!|| wrrestp ../engine/source/output/restart/wrrestp.F
27!||--- calls -----------------------------------------------------
28!|| write_db ../common_source/tools/input_output/write_db.F
29!|| write_dpdb ../common_source/tools/input_output/write_db.F
30!||--- uses -----------------------------------------------------
31!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
32!||====================================================================
33 SUBROUTINE w_elbuf_str(IPARG,ELBUF_TAB,FLAG_XFEM)
34C-----------------------------------------------
35C M o d u l e s
36C-----------------------------------------------
37 USE elbufdef_mod
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C o m m o n B l o c k s
44C-----------------------------------------------
45#include "com01_c.inc"
46#include "param_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER IPARG(NPARG,NGROUP),FLAG_XFEM
51 TYPE(elbuf_struct_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I,J,K,IL,IR,IS,IT,NG,NEL,NPT,L_REL,BUFLEN,NUVAR,
56 . ITY,IGTYP,ISRATE,ERR,IFAIL,
57 . NFAIL,IXFEM,NPG,NPTT,NPTTOT,INLOC,NONL,IDFAIL,
58 . IDAMP_FREQ_RANGE
59 INTEGER ! global variables
60 . G_GAMA,G_SIG,G_OFF,G_NOFF,G_EINT,G_EINS,G_TEMP,
61 . G_RHO,G_PLA,G_VOL,G_EPSD,G_QVIS,G_DELTAX,G_TB,G_RK,G_RE,G_WPLA,
62 . G_SMSTR,G_HOURG,G_BFRAC,G_THK,G_FOR,G_MOM,G_TAG22,G_STRA,G_SIGI,
63 . G_DMG,G_FORPG,G_MOMPG,G_STRPG,G_UELR,G_UELR1,G_EPSQ,G_IERR,
64 . G_DAMDL,G_FORTH,G_EINTTH,G_FILL,G_SEQ,G_STRW,G_STRWPG,G_THK_I,
65 . G_JAC_I,G_AREA,G_SKEW,G_LENGTH,G_TOTDEPL,G_TOTROT,G_FOREP,G_MOMEP,
66 . G_DEP_IN_TENS,G_DEP_IN_COMP,G_ROT_IN_TENS,G_ROT_IN_COMP,
67 . G_POSX,G_POSY,G_POSZ,G_POSXX,G_POSYY,G_POSZZ,G_YIELD,G_LENGTH_ERR,
68 . G_DV,G_DFS,G_SKEW_ERR,G_E6,G_RUPTCRIT,G_MASS,G_V_REPCVT,
69 . G_VR_REPCVT,G_NUVAR,G_NUVARN,G_INIFRIC,G_DT,G_ISMS,G_STRHG,G_ETOTSH,
70 . G_BPRELD,G_ABURN,G_MU,G_PLANL,G_EPSDNL,G_DT_PITER,G_TEMPG,G_COR_NF,
71 . G_COR_FR,G_COR_XR,G_DEFINI,G_FORINI,G_MAXFRAC,G_MAXEPS,G_IDT_TSH,
72 . G_FORPGPINCH,G_MOMPGPINCH,G_EPGPINCHXZ,G_EPGPINCHYZ,G_EPGPINCHZZ,
73 . G_SKEW_ID,G_GAMA_R,G_SLIPRING_ID,G_SLIPRING_STRAND,G_RETRACTOR_ID,G_RINGSLIP,
74 . G_ADD_NODE,G_UPDATE,G_INTVAR,G_BETAORTH,G_AMU,G_SLIPRING_FRAM_ID,G_FRAM_FACTOR,
75 . G_TM_YIELD,G_TM_SEQ,G_TM_EINT,G_TM_DMG,G_TM_SIG,G_TM_STRA,G_TSAIWU,G_DMGSCL,
76 . G_SH_IOFFSET,G_EINT_DISTOR,G_FOR_G,G_FORPG_G,G_YIELD_IN_COMP,G_XXOLD_IN_COMP
77 INTEGER ! layer variables
78 . LY_DMG,LY_GAMA,LY_DIRA,LY_DIRB,LY_CRKDIR,LY_PLAPT,LY_SIGPT,
79 . LY_HOURG,LY_UELR,LY_UELR1,LY_OFFPG,LY_OFF,LEN_PLAPT,LEN_SIGPT
80 INTEGER ! interlayer variables
81 . LY_EINT,LY_COUNT
82 INTEGER ! local variables
83 . L_OFF,L_EINT,L_EINS,L_RHO,L_DP_DRHO,L_VOL,L_PLA,L_TB,L_TEMP,L_WPLA,
84 . L_RK,L_RE,L_VK,L_ROB,L_SIG,L_SIGV,L_SIGL,L_SIGA,L_SIGD,L_SIGB,
85 . L_SIGC,L_SIGF,L_STRA,L_EPSA,L_EPSD,L_EPSQ,L_EPSF,L_CRAK,
86 . L_ANG,L_SF,L_QVIS,L_DELTAX,L_GAMA,
87 . L_DAM,L_DSUM,L_DGLO,L_EPE,L_EPC,L_XST,L_SSP,L_Z,L_FRAC,L_VISC,
88 . L_THK,L_FOR,L_MOM,L_EPS,L_SMSTR,L_BFRAC,L_DMG,L_FORTH,L_EINTTH,
89 . L_SEQ,L_SIGPLY,L_JAC_I,L_FAC_YLD,L_ABURN,L_MU,L_PLANL,L_EPSDNL,
90 . L_DMGSCL,L_TSAIWU,L_PIJ,L_VOL0DP,L_DPR
91 INTEGER ! failure variables
92 . LF_DAM,LF_DAMMX,LF_DAMINI,LF_TDEL,LF_INDX,LF_OFF
93 INTEGER sum
94 my_real, ALLOCATABLE, DIMENSION (:) :: rbuf_l
95 INTEGER :: NVAR_EOS
96
97 DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: DP_RBUF
98 INTEGER SDP_RBUF
99
100 TYPE(elbuf_struct_), POINTER :: ELBUF
101 TYPE(g_bufel_) , POINTER :: GBUF
102 TYPE(l_bufel_) , POINTER :: LBUF
103 TYPE(buf_intloc_) , POINTER :: ILBUF
104 TYPE(buf_lay_) , POINTER :: BUFLY
105 TYPE(buf_intlay_) , POINTER :: INTLAY
106 TYPE(fail_loc_) , POINTER :: FLOC
107 TYPE(buf_nloc_) , POINTER :: BUFNL
108 TYPE(buf_nlocts_) , POINTER :: BUFNLTS
109 TYPE(l_bufel_dir_) , POINTER :: LBUF_DIR
110C=======================================================================
111 npg = 0
112 npttot = 0
113 NULLIFY(bufly)
114 l_vol0dp = 0
115 DO ng=1,ngroup
116c----
117 ity = iparg(5,ng)
118 inloc = iparg(78,ng) ! Non-local regularization flag
119 idamp_freq_range = iparg(93,ng) ! Flag for damping frequency range
120c
121 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR.
122 . ity == 3 .OR. ity == 7 .OR. ity == 101.OR.
123 . ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100) THEN
124 elbuf => elbuf_tab(ng)
125c
126 ixfem = iparg(54,ng) ! flag XFEM
127 IF (ixfem == 0 .AND. flag_xfem == 1) cycle ! no "XFEM_TAB" buffer for non xfem PARTS
128c
129 igtyp = elbuf%IGTYP
130 ixfem = elbuf%IXFEM
131 nel = elbuf%NEL
132cc NPT = IPARG(6,NG)
133C
134 npt = elbuf%NLAY*elbuf%NPTR*elbuf%NPTS*elbuf%NPTT
135C
136c---------------------------------------------------
137 npg = 0
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_tab(ng)%NLAY
146 npttot = npttot + npg*elbuf_tab(ng)%BUFLY(il)%NPTT
147 ENDDO
148 IF (npt == 0) npttot = npt
149 ELSEIF (ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100) THEN
150 npg = 0
151 npttot = 0
152 ENDIF
153c---------------------------------------------------
154c allocate and fill the transfer table for restart
155c---------------------------------------------------
156 buflen = iparg(66,ng)
157c print*,'restart : buflen, NG,igtyp,=',buflen,NG,igtyp,ITY
158 ALLOCATE (rbuf_l(buflen), stat=err)
159
160C
161 rbuf_l(1:buflen) = zero
162 l_rel = 0
163c--------- write top structure parameters: NPAR_TAB = 9
164 rbuf_l(l_rel+1) = elbuf%IGTYP
165 l_rel = l_rel+1
166 rbuf_l(l_rel+1) = elbuf%NEL
167 l_rel = l_rel+1
168 rbuf_l(l_rel+1) = elbuf%NLAY
169 l_rel = l_rel+1
170 rbuf_l(l_rel+1) = elbuf%NINTLAY
171 l_rel = l_rel+1
172 rbuf_l(l_rel+1) = elbuf%NPTR
173 l_rel = l_rel+1
174 rbuf_l(l_rel+1) = elbuf%NPTS
175 l_rel = l_rel+1
176 rbuf_l(l_rel+1) = elbuf%NPTT
177 l_rel = l_rel+1
178 rbuf_l(l_rel+1) = elbuf%IXFEM
179 l_rel = l_rel+1
180 rbuf_l(l_rel+1) = elbuf%NXEL
181 l_rel = l_rel+1
182 rbuf_l(l_rel+1) = elbuf%IDRAPE
183 l_rel = l_rel+1
184c---------------------------------------------------
185c Damping parameters for frequency range
186c---------------------------------------------------
187 IF (idamp_freq_range > 0) THEN
188 rbuf_l(l_rel+1:l_rel+3) = elbuf%DAMP_RANGE%ALPHA(1:3)
189 rbuf_l(l_rel+4:l_rel+6) = elbuf%DAMP_RANGE%TAU(1:3)
190 l_rel = l_rel + 6
191 ENDIF
192c---------------------------------------------------
193c LAYERS : write buffer at layer level
194c---------------------------------------------------
195 sum = l_rel
196
197 sdp_rbuf = 0
198 DO il = 1,elbuf%NLAY
199 bufly => elbuf_tab(ng)%BUFLY(il)
200c
201c--------- write layer parameters: NPAR_LAY = 13
202c
203 rbuf_l(l_rel+1) = bufly%ILAW
204 l_rel = l_rel+1
205 rbuf_l(l_rel+1) = bufly%IMAT
206 l_rel = l_rel+1
207 rbuf_l(l_rel+1) = bufly%IEOS
208 l_rel = l_rel+1
209 rbuf_l(l_rel+1) = bufly%IVISC
210 l_rel = l_rel+1
211 rbuf_l(l_rel+1) = bufly%IPORO
212 l_rel = l_rel+1
213 rbuf_l(l_rel+1) = bufly%NFAIL
214 l_rel = l_rel+1
215 rbuf_l(l_rel+1) = bufly%NVAR_MAT
216 l_rel = l_rel+1
217 rbuf_l(l_rel+1) = bufly%NVAR_EOS
218 l_rel = l_rel+1
219 rbuf_l(l_rel+1) = bufly%NVARTMP
220 l_rel = l_rel+1
221 rbuf_l(l_rel+1) = bufly%NVARTMP_EOS
222 l_rel = l_rel+1
223 rbuf_l(l_rel+1) = bufly%NVAR_VISC
224 l_rel = l_rel+1
225 rbuf_l(l_rel+1) = bufly%NVAR_LOC
226 l_rel = l_rel+1
227 rbuf_l(l_rel+1) = bufly%NVAR_LAY
228 l_rel = l_rel+1
229 rbuf_l(l_rel+1) = bufly%NPTT
230 l_rel = l_rel+1
231c
232c------- write layer variable lengths (BUFLY%NVAR_LAY = 7
233c
234 ly_dmg = bufly%LY_DMG
235 ly_gama = bufly%LY_GAMA
236 ly_dira = bufly%LY_DIRA
237 ly_dirb = bufly%LY_DIRB
238 ly_crkdir= bufly%LY_CRKDIR
239 ly_plapt = bufly%LY_PLAPT
240 ly_sigpt = bufly%LY_SIGPT
241 ly_hourg = bufly%LY_HOURG
242 ly_uelr = bufly%LY_UELR
243 ly_uelr1 = bufly%LY_UELR1
244 ly_offpg = bufly%LY_OFFPG
245 ly_off = bufly%LY_OFF
246c
247 rbuf_l(l_rel+1) = ly_dmg
248 l_rel = l_rel+1
249 rbuf_l(l_rel+1) = ly_gama
250 l_rel = l_rel+1
251 rbuf_l(l_rel+1) = ly_dira
252 l_rel = l_rel+1
253 rbuf_l(l_rel+1) = ly_dirb
254 l_rel = l_rel+1
255 rbuf_l(l_rel+1) = ly_crkdir
256 l_rel = l_rel+1
257 rbuf_l(l_rel+1) = ly_plapt
258 l_rel = l_rel+1
259 rbuf_l(l_rel+1) = ly_sigpt
260 l_rel = l_rel+1
261 rbuf_l(l_rel+1) = ly_hourg
262 l_rel = l_rel+1
263 rbuf_l(l_rel+1) = ly_uelr
264 l_rel = l_rel+1
265 rbuf_l(l_rel+1) = ly_uelr1
266 l_rel = l_rel+1
267 rbuf_l(l_rel+1) = ly_offpg
268 l_rel = l_rel+1
269 rbuf_l(l_rel+1) = ly_off
270 l_rel = l_rel+1
271c
272c print*,' layer var lengths: l_rel=',l_rel
273c------- write local variable lengths (BUFLY%NVAR_LOC = 48)
274c
275 l_off = bufly%L_OFF
276 l_gama = bufly%L_GAMA
277 l_stra = bufly%L_STRA
278 l_frac = bufly%L_FRAC
279 l_bfrac = bufly%L_BFRAC
280 l_eint = bufly%L_EINT
281 l_eins = bufly%L_EINS
282 l_rho = bufly%L_RHO
283 l_dp_drho= bufly%L_DP_DRHO
284 l_qvis = bufly%L_QVIS
285 l_deltax = bufly%L_DELTAX
286 l_vol = bufly%L_VOL
287 l_epsa = bufly%L_EPSA
288 l_epsd = bufly%L_EPSD
289 l_epsq = bufly%L_EPSQ
290 l_epsf = bufly%L_EPSF
291 l_pla = bufly%L_PLA
292 l_wpla = bufly%L_WPLA
293 l_temp = bufly%L_TEMP
294 l_tb = bufly%L_TB
295 l_rk = bufly%L_RK
296 l_re = bufly%L_RE
297 l_vk = bufly%L_VK
298 l_sf = bufly%L_SF
299 l_rob = bufly%L_ROB
300 l_dam = bufly%L_DAM
301 l_dsum = bufly%L_DSUM
302 l_dglo = bufly%L_DGLO
303 l_crak = bufly%L_CRAK
304 l_ang = bufly%L_ANG
305 l_epe = bufly%L_EPE
306 l_epc = bufly%L_EPC
307 l_xst = bufly%L_XST
308 l_ssp = bufly%L_SSP
309 l_z = bufly%L_Z
310 l_visc = bufly%L_VISC
311 l_sigl = bufly%L_SIGL
312 l_sigv = bufly%L_SIGV
313 l_siga = bufly%L_SIGA
314 l_sigb = bufly%L_SIGB
315 l_sigc = bufly%L_SIGC
316 l_sigd = bufly%L_SIGD
317 l_sigf = bufly%L_SIGF
318 l_sig = bufly%L_SIG
319 l_sigply = bufly%L_SIGPLY
320 l_for = bufly%L_FOR
321 l_mom = bufly%L_MOM
322 l_thk = bufly%L_THK
323 l_smstr = bufly%L_SMSTR
324 l_dmg = bufly%L_DMG
325 l_forth = bufly%L_FORTH
326 l_eintth = bufly%L_EINTTH
327 l_seq = bufly%L_SEQ
328 l_jac_i = bufly%L_JAC_I
329 l_fac_yld= bufly%L_FAC_YLD
330 l_aburn = bufly%L_ABURN
331 l_mu = bufly%L_MU
332 l_planl = bufly%L_PLANL
333 l_epsdnl = bufly%L_EPSDNL
334 l_dmgscl = bufly%L_DMGSCL
335 l_tsaiwu = bufly%L_TSAIWU
336 l_pij = bufly%L_PIJ
337 l_vol0dp = bufly%L_VOL0DP
338c---
339 rbuf_l(l_rel+1) = l_off
340 l_rel = l_rel + 1
341 rbuf_l(l_rel+1) = l_gama
342 l_rel = l_rel + 1
343 rbuf_l(l_rel+1) = l_stra
344 l_rel = l_rel + 1
345 rbuf_l(l_rel+1) = l_frac
346 l_rel = l_rel + 1
347 rbuf_l(l_rel+1) = l_bfrac
348 l_rel = l_rel + 1
349 rbuf_l(l_rel+1) = l_eint
350 l_rel = l_rel + 1
351 rbuf_l(l_rel+1) = l_eins
352 l_rel = l_rel + 1
353 rbuf_l(l_rel+1) = l_rho
354 l_rel = l_rel + 1
355 rbuf_l(l_rel+1) = l_dp_drho
356 l_rel = l_rel + 1
357 rbuf_l(l_rel+1) = l_qvis
358 l_rel = l_rel + 1
359 rbuf_l(l_rel+1) = l_deltax
360 l_rel = l_rel + 1
361 rbuf_l(l_rel+1) = l_vol
362 l_rel = l_rel + 1
363 rbuf_l(l_rel+1) = l_epsa
364 l_rel = l_rel + 1
365 rbuf_l(l_rel+1) = l_epsd
366 l_rel = l_rel + 1
367 rbuf_l(l_rel+1) = l_epsq
368 l_rel = l_rel + 1
369 rbuf_l(l_rel+1) = l_epsf
370 l_rel = l_rel + 1
371 rbuf_l(l_rel+1) = l_pla
372 l_rel = l_rel + 1
373 rbuf_l(l_rel+1) = l_wpla
374 l_rel = l_rel + 1
375 rbuf_l(l_rel+1) = l_temp
376 l_rel = l_rel + 1
377 rbuf_l(l_rel+1) = l_tb
378 l_rel = l_rel + 1
379 rbuf_l(l_rel+1) = l_rk
380 l_rel = l_rel + 1
381 rbuf_l(l_rel+1) = l_re
382 l_rel = l_rel + 1
383 rbuf_l(l_rel+1) = l_vk
384 l_rel = l_rel + 1
385 rbuf_l(l_rel+1) = l_sf
386 l_rel = l_rel + 1
387 rbuf_l(l_rel+1) = l_rob
388 l_rel = l_rel + 1
389 rbuf_l(l_rel+1) = l_dam
390 l_rel = l_rel + 1
391 rbuf_l(l_rel+1) = l_dsum
392 l_rel = l_rel + 1
393 rbuf_l(l_rel+1) = l_dglo
394 l_rel = l_rel + 1
395 rbuf_l(l_rel+1) = l_crak
396 l_rel = l_rel + 1
397 rbuf_l(l_rel+1) = l_ang
398 l_rel = l_rel + 1
399 rbuf_l(l_rel+1) = l_epe
400 l_rel = l_rel + 1
401 rbuf_l(l_rel+1) = l_epc
402 l_rel = l_rel + 1
403 rbuf_l(l_rel+1) = l_xst
404 l_rel = l_rel + 1
405 rbuf_l(l_rel+1) = l_ssp
406 l_rel = l_rel + 1
407 rbuf_l(l_rel+1) = l_z
408 l_rel = l_rel + 1
409 rbuf_l(l_rel+1) = l_visc
410 l_rel = l_rel + 1
411 rbuf_l(l_rel+1) = l_sigl
412 l_rel = l_rel + 1
413 rbuf_l(l_rel+1) = l_sigv
414 l_rel = l_rel + 1
415 rbuf_l(l_rel+1) = l_siga
416 l_rel = l_rel + 1
417 rbuf_l(l_rel+1) = l_sigb
418 l_rel = l_rel + 1
419 rbuf_l(l_rel+1) = l_sigc
420 l_rel = l_rel + 1
421 rbuf_l(l_rel+1) = l_sigd
422 l_rel = l_rel + 1
423 rbuf_l(l_rel+1) = l_sigf
424 l_rel = l_rel + 1
425 rbuf_l(l_rel+1) = l_sig
426 l_rel = l_rel + 1
427 rbuf_l(l_rel+1) = l_sigply
428 l_rel = l_rel + 1
429 rbuf_l(l_rel+1) = l_for
430 l_rel = l_rel + 1
431 rbuf_l(l_rel+1) = l_mom
432 l_rel = l_rel + 1
433 rbuf_l(l_rel+1) = l_thk
434 l_rel = l_rel + 1
435 rbuf_l(l_rel+1) = l_smstr
436 l_rel = l_rel + 1
437 rbuf_l(l_rel+1) = l_dmg
438 l_rel = l_rel + 1
439 rbuf_l(l_rel+1) = l_forth
440 l_rel = l_rel + 1
441 rbuf_l(l_rel+1) = l_eintth
442 l_rel = l_rel + 1
443 rbuf_l(l_rel+1) = l_seq
444 l_rel = l_rel + 1
445 rbuf_l(l_rel+1) = l_jac_i
446 l_rel = l_rel + 1
447 rbuf_l(l_rel+1) = l_fac_yld
448 l_rel = l_rel + 1
449 rbuf_l(l_rel+1) = l_aburn
450 l_rel = l_rel + 1
451 rbuf_l(l_rel+1) = l_mu
452 l_rel = l_rel + 1
453 rbuf_l(l_rel+1) = l_planl
454 l_rel = l_rel + 1
455 rbuf_l(l_rel+1) = l_epsdnl
456 l_rel = l_rel + 1
457 rbuf_l(l_rel+1) = l_dmgscl
458 l_rel = l_rel + 1
459 rbuf_l(l_rel+1) = l_tsaiwu
460 l_rel = l_rel + 1
461 rbuf_l(l_rel+1) = l_pij
462 l_rel = l_rel + 1
463 rbuf_l(l_rel+1) = l_vol0dp
464 l_rel = l_rel + 1
465c---------
466c ! write layer variables for each element
467c
468 rbuf_l(l_rel+1:l_rel+nel*ly_dmg) = bufly%DMG(1:nel*ly_dmg)
469 l_rel = l_rel+nel*ly_dmg
470 rbuf_l(l_rel+1:l_rel+nel*ly_gama) = bufly%GAMA(1:nel*ly_gama)
471 l_rel = l_rel+nel*ly_gama
472 IF(elbuf%IDRAPE == 0 .OR.( elbuf%IDRAPE > 0 .AND. igtyp == 17)) THEN
473 rbuf_l(l_rel+1:l_rel+nel*ly_dira) = bufly%DIRA(1:nel*ly_dira)
474 l_rel = l_rel+nel*ly_dira
475 rbuf_l(l_rel+1:l_rel+nel*ly_dirb) = bufly%DIRB(1:nel*ly_dirb)
476 l_rel = l_rel+nel*ly_dirb
477 ENDIF
478 rbuf_l(l_rel+1:l_rel+nel*ly_crkdir) = bufly%CRKDIR(1:nel*ly_crkdir)
479 l_rel = l_rel+nel*ly_crkdir
480c print*,' layer a : ,npt,npg,l_rel=',npt,npg,l_rel
481
482 IF (npg > 1) THEN
483 IF (elbuf%NLAY > 1) THEN
484 len_plapt = nel*ly_plapt
485 len_sigpt = nel*ly_sigpt
486 ELSE
487 IF (igtyp /= 51 .AND. igtyp /= 52) THEN
488 len_plapt = nel*ly_plapt*npt
489 len_sigpt = nel*ly_sigpt*npt
490 ELSE
491 len_plapt = nel*ly_plapt*bufly%NPTT
492 len_sigpt = nel*ly_sigpt*bufly%NPTT
493 ENDIF
494 ENDIF
495 rbuf_l(l_rel+1:l_rel+len_plapt) = bufly%PLAPT(1:len_plapt)
496 l_rel = l_rel+len_plapt
497 rbuf_l(l_rel+1:l_rel+len_sigpt) = bufly%SIGPT(1:len_sigpt)
498 l_rel = l_rel+len_sigpt
499 ELSEIF (npg == 1) THEN ! nothing to write
500C
501C must point after => LBUF%PLA and LBUF%SIG
502C
503 ENDIF
504c
505 rbuf_l(l_rel+1:l_rel+nel*ly_hourg) = bufly%HOURG(1:nel*ly_hourg)
506 l_rel = l_rel+nel*ly_hourg
507 rbuf_l(l_rel+1:l_rel+nel*ly_uelr) = bufly%UELR(1:nel*ly_uelr)
508 l_rel = l_rel+nel*ly_uelr
509 rbuf_l(l_rel+1:l_rel+nel*ly_uelr1) = bufly%UELR1(1:nel*ly_uelr1)
510 l_rel = l_rel+nel*ly_uelr1
511 rbuf_l(l_rel+1:l_rel+nel*ly_offpg) = bufly%OFFPG(1:nel*ly_offpg)
512 l_rel = l_rel+nel*ly_offpg
513 rbuf_l(l_rel+1:l_rel+nel*ly_off) = bufly%OFF(1:nel*ly_off)
514 l_rel = l_rel+nel*ly_off
515c
516c print*,' layer vars : l_rel=',l_rel
517c---------
518c
519c ! write local layer variables for each element
520c
521 sum = l_rel
522
523 IF (igtyp == 51 .OR. igtyp == 52) THEN
524 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
525 ELSE
526 nptt = elbuf_tab(ng)%NPTT
527 ENDIF
528c
529 DO i = 1,elbuf%NPTR
530 DO j = 1,elbuf%NPTS
531c DO K = 1,ELBUF%NPTT
532 DO k = 1,nptt
533 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(i,j,k)
534c
535 rbuf_l(l_rel+1) = lbuf%MLAW
536 l_rel = l_rel + 1
537 rbuf_l(l_rel+1) = lbuf%LawID
538 l_rel = l_rel + 1
539c
540 rbuf_l(l_rel+1:l_rel+nel*l_off) = lbuf%OFF(1:nel*l_off)
541 l_rel = l_rel+nel*l_off
542 rbuf_l(l_rel+1:l_rel+nel*l_gama) =lbuf%GAMA(1:nel*l_gama)
543 l_rel = l_rel+nel *l_gama
544 rbuf_l(l_rel+1:l_rel+nel*l_stra) = lbuf%STRA(1:nel*l_stra)
545 l_rel = l_rel+nel*l_stra
546 rbuf_l(l_rel+1:l_rel+nel*l_frac) = lbuf%FRAC(1:nel*l_frac)
547 l_rel = l_rel+nel*l_frac
548 rbuf_l(l_rel+1:l_rel+nel*l_bfrac)= lbuf%BFRAC(1:nel*l_bfrac)
549 l_rel = l_rel+nel*l_bfrac
550 rbuf_l(l_rel+1:l_rel+nel*l_eint)= lbuf%EINT(1:nel*l_eint)
551 l_rel = l_rel+nel*l_eint
552 rbuf_l(l_rel+1:l_rel+nel*l_eins)= lbuf%EINS(1:nel*l_eins)
553 l_rel = l_rel+nel*l_eins
554 rbuf_l(l_rel+1:l_rel+nel*l_rho) = lbuf%RHO(1:nel*l_rho)
555 l_rel = l_rel+nel*l_rho
556 rbuf_l(l_rel+1:l_rel+nel*l_dp_drho)=
557 . lbuf%DP_DRHO(1:nel*l_dp_drho)
558 l_rel = l_rel+nel*l_dp_drho
559 rbuf_l(l_rel+1:l_rel+nel*l_qvis)= lbuf%QVIS(1:nel*l_qvis)
560 l_rel = l_rel+nel*l_qvis
561 rbuf_l(l_rel+1:l_rel+nel*l_deltax)=
562 . lbuf%DELTAX(1:nel*l_deltax)
563 l_rel = l_rel+nel*l_deltax
564 rbuf_l(l_rel+1:l_rel+nel*l_vol) = lbuf%VOL(1:nel*l_vol)
565 l_rel = l_rel+nel*l_vol
566 rbuf_l(l_rel+1:l_rel+nel*l_epsa) = lbuf%EPSA(1:nel*l_epsa)
567 l_rel = l_rel+nel*l_epsa
568 rbuf_l(l_rel+1:l_rel+nel*l_epsd) = lbuf%EPSD(1:nel*l_epsd)
569 l_rel = l_rel+nel*l_epsd
570 rbuf_l(l_rel+1:l_rel+nel*l_epsq) = lbuf%EPSQ(1:nel*l_epsq)
571 l_rel = l_rel+nel*l_epsq
572 rbuf_l(l_rel+1:l_rel+nel*l_epsf) = lbuf%EPSF(1:nel*l_epsf)
573 l_rel = l_rel+nel*l_epsf
574 rbuf_l(l_rel+1:l_rel+nel*l_pla) = lbuf%PLA(1:nel*l_pla)
575 l_rel = l_rel+nel*l_pla
576 rbuf_l(l_rel+1:l_rel+nel*l_wpla) = lbuf%WPLA(1:nel*l_wpla)
577 l_rel = l_rel+nel*l_wpla
578 rbuf_l(l_rel+1:l_rel+nel*l_temp) = lbuf%TEMP(1:nel*l_temp)
579 l_rel = l_rel+nel*l_temp
580 rbuf_l(l_rel+1:l_rel+nel*l_tb) = lbuf%TB(1:nel*l_tb)
581 l_rel = l_rel+nel*l_tb
582 rbuf_l(l_rel+1:l_rel+nel*l_rk) = lbuf%RK(1:nel*l_rk)
583 l_rel = l_rel+nel*l_rk
584 rbuf_l(l_rel+1:l_rel+nel*l_re) = lbuf%RE(1:nel*l_re)
585 l_rel = l_rel+nel*l_re
586 rbuf_l(l_rel+1:l_rel+nel*l_vk) = lbuf%VK(1:nel*l_vk)
587 l_rel = l_rel+nel*l_vk
588 rbuf_l(l_rel+1:l_rel+nel*l_sf) = lbuf%SF(1:nel*l_sf)
589 l_rel = l_rel+nel*l_sf
590 rbuf_l(l_rel+1:l_rel+nel*l_rob) = lbuf%ROB(1:nel*l_rob)
591 l_rel = l_rel+nel*l_rob
592 rbuf_l(l_rel+1:l_rel+nel*l_dam) = lbuf%DAM(1:nel*l_dam)
593 l_rel = l_rel+nel*l_dam
594 rbuf_l(l_rel+1:l_rel+nel*l_dsum) = lbuf%DSUM(1:nel*l_dsum)
595 l_rel = l_rel+nel*l_dsum
596 rbuf_l(l_rel+1:l_rel+nel*l_dglo) = lbuf%DGLO(1:nel*l_dglo)
597 l_rel = l_rel+nel*l_dglo
598 rbuf_l(l_rel+1:l_rel+nel*l_crak) = lbuf%CRAK(1:nel*l_crak)
599 l_rel = l_rel+nel*l_crak
600 rbuf_l(l_rel+1:l_rel+nel*l_ang) = lbuf%ANG(1:nel*l_ang)
601 l_rel = l_rel+nel*l_ang
602 rbuf_l(l_rel+1:l_rel+nel*l_epe) = lbuf%EPE(1:nel*l_epe)
603 l_rel = l_rel+nel*l_epe
604 rbuf_l(l_rel+1:l_rel+nel*l_epc) = lbuf%EPC(1:nel*l_epc)
605 l_rel = l_rel+nel*l_epc
606 rbuf_l(l_rel+1:l_rel+nel*l_xst) = lbuf%XST(1:nel*l_xst)
607 l_rel = l_rel+nel*l_xst
608 rbuf_l(l_rel+1:l_rel+nel*l_ssp) = lbuf%SSP(1:nel*l_ssp)
609 l_rel = l_rel+nel*l_ssp
610 rbuf_l(l_rel+1:l_rel+nel*l_z) = lbuf%Z(1:nel*l_z)
611 l_rel = l_rel+nel*l_z
612 rbuf_l(l_rel+1:l_rel+nel*l_visc) = lbuf%VISC(1:nel*l_visc)
613 l_rel = l_rel+nel*l_visc
614 rbuf_l(l_rel+1:l_rel+nel*l_sigl) = lbuf%SIGL(1:nel*l_sigl)
615 l_rel = l_rel+nel*l_sigl
616 rbuf_l(l_rel+1:l_rel+nel*l_sigv) = lbuf%SIGV(1:nel*l_sigv)
617 l_rel = l_rel+nel*l_sigv
618 rbuf_l(l_rel+1:l_rel+nel*l_siga) = lbuf%SIGA(1:nel*l_siga)
619 l_rel = l_rel+nel*l_siga
620 rbuf_l(l_rel+1:l_rel+nel*l_sigb) = lbuf%SIGB(1:nel*l_sigb)
621 l_rel = l_rel+nel*l_sigb
622 rbuf_l(l_rel+1:l_rel+nel*l_sigc) = lbuf%SIGC(1:nel*l_sigc)
623 l_rel = l_rel+nel*l_sigc
624 rbuf_l(l_rel+1:l_rel+nel*l_sigd) = lbuf%SIGD(1:nel*l_sigd)
625 l_rel = l_rel+nel*l_sigd
626 rbuf_l(l_rel+1:l_rel+nel*l_sigf) = lbuf%SIGF(1:nel*l_sigf)
627 l_rel = l_rel+nel*l_sigf
628 rbuf_l(l_rel+1:l_rel+nel*l_sig) = lbuf%SIG(1:nel*l_sig)
629 l_rel = l_rel+nel*l_sig
630 rbuf_l(l_rel+1:l_rel+nel*l_sigply) = lbuf%SIGPLY(1:nel*l_sigply)
631 l_rel = l_rel+nel*l_sigply
632 rbuf_l(l_rel+1:l_rel+nel*l_for) = lbuf%FOR(1:nel*l_for)
633 l_rel = l_rel+nel*l_for
634 rbuf_l(l_rel+1:l_rel+nel*l_mom) = lbuf%MOM(1:nel*l_mom)
635 l_rel = l_rel+nel*l_mom
636 rbuf_l(l_rel+1:l_rel+nel*l_thk) = lbuf%THK(1:nel*l_thk)
637 l_rel = l_rel+nel*l_thk
638 rbuf_l(l_rel+1:l_rel+nel*l_smstr) = lbuf%SMSTR(1:nel*l_smstr)
639 l_rel = l_rel+nel*l_smstr
640 rbuf_l(l_rel+1:l_rel+nel*l_dmg) = lbuf%DMG(1:nel*l_dmg)
641 l_rel = l_rel+nel*l_dmg
642 rbuf_l(l_rel+1:l_rel+nel*l_forth) = lbuf%FORTH(1:nel*l_forth)
643 l_rel = l_rel+nel*l_forth
644 rbuf_l(l_rel+1:l_rel+nel*l_eintth) = lbuf%EINTTH(1:nel*l_eintth)
645 l_rel = l_rel+nel*l_eintth
646 rbuf_l(l_rel+1:l_rel+nel*l_seq) = lbuf%SEQ(1:nel*l_seq)
647 l_rel = l_rel+nel*l_seq
648 rbuf_l(l_rel+1:l_rel+nel*l_jac_i) = lbuf%JAC_I(1:nel*l_jac_i)
649 l_rel = l_rel+nel*l_jac_i
650 rbuf_l(l_rel+1:l_rel+nel*l_fac_yld) = lbuf%FAC_YLD(1:nel*l_fac_yld)
651 l_rel = l_rel+nel*l_fac_yld
652 rbuf_l(l_rel+1:l_rel+nel*l_aburn) = lbuf%ABURN(1:nel*l_aburn)
653 l_rel = l_rel+nel*l_aburn
654 rbuf_l(l_rel+1:l_rel+nel*l_mu) = lbuf%MU(1:nel*l_mu)
655 l_rel = l_rel+nel*l_mu
656 rbuf_l(l_rel+1:l_rel+nel*l_planl) = lbuf%PLANL(1:nel*l_planl)
657 l_rel = l_rel+nel*l_planl
658 rbuf_l(l_rel+1:l_rel+nel*l_epsdnl) = lbuf%EPSDNL(1:nel*l_epsdnl)
659 l_rel = l_rel+nel*l_epsdnl
660 rbuf_l(l_rel+1:l_rel+nel*l_dmgscl) = lbuf%DMGSCL(1:nel*l_dmgscl)
661 l_rel = l_rel+nel*l_dmgscl
662 rbuf_l(l_rel+1:l_rel+nel*l_tsaiwu) = lbuf%TSAIWU(1:nel*l_tsaiwu)
663 l_rel = l_rel+nel*l_tsaiwu
664 rbuf_l(l_rel+1:l_rel+nel*l_pij) = lbuf%PIJ(1:nel*l_pij)
665 l_rel = l_rel+nel*l_pij
666C------ DP of VOL0DP
667 sdp_rbuf = sdp_rbuf+nel*l_vol0dp
668 ENDDO
669 ENDDO
670 ENDDO
671 IF(elbuf%IDRAPE > 0 .AND.( igtyp == 51 .OR. igtyp == 52)) THEN
672 DO k = 1,nptt
673 lbuf_dir => elbuf_tab(ng)%BUFLY(il)%LBUF_DIR(k)
674 rbuf_l(l_rel+1:l_rel+nel*ly_dira) = lbuf_dir%DIRA(1:nel*ly_dira)
675 l_rel = l_rel + nel*ly_dira
676 rbuf_l(l_rel+1:l_rel+nel*ly_dirb) = lbuf_dir%DIRB(1:nel*ly_dirb)
677 l_rel = l_rel + nel*ly_dirb
678 ENDDO
679 ENDIF
680 ENDDO ! NALY
681c print*,' local=',l_rel
682c print*,' local=',l_rel-sum
683c
684 !-----------------------------------------------------
685 ! Layer Material buffer - UVAR
686 DO il = 1,elbuf%NLAY
687 bufly => elbuf_tab(ng)%BUFLY(il)
688 nuvar = bufly%NVAR_MAT
689 IF (igtyp == 51 .OR. igtyp == 52) THEN
690 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
691 ELSE
692 nptt = elbuf_tab(ng)%NPTT
693 ENDIF
694 DO ir = 1,elbuf%NPTR
695 DO is = 1,elbuf%NPTS
696 DO it = 1,nptt
697 rbuf_l(l_rel+1:l_rel+nel*nuvar)= bufly%MAT(ir,is,it)%VAR(1:nel*nuvar)
698 l_rel = l_rel+nel*nuvar
699 ENDDO
700 ENDDO
701 ENDDO
702 ENDDO
703c print*,' mat =',l_rel
704
705c !-----------------------------------------------------
706 ! Layer Fail buffer - UVAR
707 DO il = 1,elbuf%NLAY
708 bufly => elbuf_tab(ng)%BUFLY(il)
709 nfail = bufly%NFAIL
710 IF (igtyp == 51 .OR. igtyp == 52) THEN
711 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
712 ELSE
713 nptt = elbuf_tab(ng)%NPTT
714 ENDIF
715 DO ir = 1,elbuf%NPTR
716 DO is = 1,elbuf%NPTS
717 DO it = 1,nptt
718 DO k = 1,nfail
719 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(k)
720 ifail = floc%ILAWF
721 idfail = floc%IDFAIL
722 nuvar = floc%NVAR
723 lf_dam = floc%LF_DAM
724 lf_dammx= floc%LF_DAMMX
725 lf_damini = floc%LF_DAMINI
726 lf_tdel = floc%LF_TDEL
727 lf_indx = floc%LF_INDX
728 lf_off = floc%LF_OFF
729c
730 rbuf_l(l_rel+1)=ifail
731 l_rel = l_rel+1
732 rbuf_l(l_rel+1)=idfail
733 l_rel = l_rel+1
734 rbuf_l(l_rel+1)=nuvar
735 l_rel = l_rel+1
736 rbuf_l(l_rel+1)=lf_dam
737 l_rel = l_rel+1
738 rbuf_l(l_rel+1)=lf_dammx
739 l_rel = l_rel+1
740 rbuf_l(l_rel+1)=lf_damini
741 l_rel = l_rel+1
742 rbuf_l(l_rel+1)=lf_tdel
743 l_rel = l_rel+1
744 rbuf_l(l_rel+1)=lf_indx
745 l_rel = l_rel+1
746 rbuf_l(l_rel+1)=lf_off
747 l_rel = l_rel+1
748c
749 rbuf_l(l_rel+1:l_rel+nel*nuvar) = floc%VAR(1:nel*nuvar)
750 l_rel = l_rel + nel*nuvar
751 rbuf_l(l_rel+1:l_rel+nel*lf_dam) = floc%DAM(1:nel*lf_dam)
752 l_rel = l_rel + nel*lf_dam
753 rbuf_l(l_rel+1:l_rel+nel*lf_dammx) = floc%DAMMX(1:nel*lf_dammx)
754 l_rel = l_rel+nel*lf_dammx
755 rbuf_l(l_rel+1:l_rel+nel*lf_damini) = floc%DAMINI(1:nel*lf_damini)
756 l_rel = l_rel+nel*lf_damini
757 rbuf_l(l_rel+1:l_rel+nel*lf_tdel) = floc%TDEL(1:nel*lf_tdel)
758 l_rel = l_rel + nel*lf_tdel
759 rbuf_l(l_rel+1:l_rel+nel*lf_indx) = floc%INDX(1:nel*lf_indx)
760 l_rel = l_rel + nel*lf_indx
761 rbuf_l(l_rel+1:l_rel+nel*lf_off) = floc%OFF(1:nel*lf_off)
762 l_rel = l_rel + nel*lf_off
763 ENDDO
764 ENDDO
765 ENDDO
766 ENDDO
767 ENDDO
768
769 !-----------------------------------------------------
770 ! Layer Visc buffer - UVAR
771 DO il = 1,elbuf%NLAY
772 bufly => elbuf_tab(ng)%BUFLY(il)
773 nuvar = bufly%NVAR_VISC
774 IF (igtyp == 51 .OR. igtyp == 52) THEN
775 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
776 ELSE
777 nptt = elbuf_tab(ng)%NPTT
778 ENDIF
779 DO ir = 1,elbuf%NPTR
780 DO is = 1,elbuf%NPTS
781 DO it = 1,nptt
782 rbuf_l(l_rel+1:l_rel+nel*nuvar)= bufly%VISC(ir,is,it)%VAR(1:nel*nuvar)
783 l_rel = l_rel+nel*nuvar
784 ENDDO
785 ENDDO
786 ENDDO
787 ENDDO
788
789 !-----------------------------------------------------
790 ! Non-local regularization in the shell thickness
791 IF ((ity==3).OR.(ity==7)) THEN
792 IF ((inloc>0).AND.(elbuf%NPTT>1)) THEN
793 ! Number of non-local nodes in the thickness
794 IF (elbuf%NPTT>2) THEN
795 nonl = elbuf%NPTT+1
796 ELSE
797 nonl = elbuf%NPTT
798 ENDIF
799 ! Copying the buffer
800 DO ir = 1,elbuf%NPTR
801 DO is = 1,elbuf%NPTS
802 ! Pointing the non-local buffer
803 bufnl => elbuf_tab(ng)%NLOC(ir,is)
804 DO i = 1,nel
805 ! Nodal masses
806 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%MASSTH(i,1:nonl)
807 l_rel = l_rel + nonl
808 ! Non-local in-thickness cumulated variables
809 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%UNLTH(i,1:nonl)
810 l_rel = l_rel + nonl
811 ! Non-local in-thickness velocities
812 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%VNLTH(i,1:nonl)
813 l_rel = l_rel + nonl
814 ! Non-local in-thickness forces
815 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%FNLTH(i,1:nonl)
816 l_rel = l_rel + nonl
817 ENDDO
818 ENDDO
819 ENDDO
820 ENDIF
821 !-----------------------------------------------------
822 ! Non-local regularization in the thickshell thickness
823 ELSEIF (ity==1) THEN
824 IF ((inloc>0).AND.(elbuf%NLAY>1)) THEN
825 ! Number of non-local nodes in the thickness
826 nonl = elbuf%NLAY+1
827 ! Copying the buffer
828 DO ir = 1,elbuf%NPTR
829 DO is = 1,elbuf%NPTS
830 ! Pointing the non-local buffer
831 bufnlts => elbuf_tab(ng)%NLOCTS(ir,is)
832 DO i = 1,nel
833 ! Nodal masses
834 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%MASSTH(i,1:nonl)
835 l_rel = l_rel + nonl
836 ! Non-local in-thickness cumulated variables
837 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%UNLTH(i,1:nonl)
838 l_rel = l_rel + nonl
839 ! Non-local in-thickness velocities
840 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%VNLTH(i,1:nonl)
841 l_rel = l_rel + nonl
842 ! Non-local in-thickness forces
843 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%FNLTH(i,1:nonl)
844 l_rel = l_rel + nonl
845 ENDDO
846 ENDDO
847 ENDDO
848 ENDIF
849 ENDIF
850
851 !-----------------------------------------------------
852 ! EoS
853 DO il = 1,elbuf%NLAY
854 nvar_eos = bufly%NVAR_EOS
855 bufly => elbuf_tab(ng)%BUFLY(il)
856 IF (igtyp == 51 .OR. igtyp == 52) THEN
857 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
858 ELSE
859 nptt = elbuf_tab(ng)%NPTT
860 ENDIF
861 DO ir = 1,elbuf%NPTR
862 DO is = 1,elbuf%NPTS
863 DO it = 1,nptt
864 rbuf_l(l_rel+1:l_rel+nel*nvar_eos)= bufly%EOS(ir,is,it)%VAR(1:nel*nvar_eos)
865 l_rel = l_rel+nel*nvar_eos
866 ENDDO
867 ENDDO
868 ENDDO
869 ENDDO
870 !-----------------------------------------------------
871c
872 sum = l_rel
873
874c print*,' before interlayers=',l_rel
875c
876c---------------------------------------------------
877c INTER LAYERS (Ply Xfem only)
878c---------------------------------------------------
879 l_eps = 3
880 l_sig = 3
881 ly_eint = 1
882 ly_count= 1
883c
884 DO il = 1,elbuf%NINTLAY
885 intlay => elbuf_tab(ng)%INTLAY(il)
886c
887c--------- write inter layer parameters: = 4
888c
889 rbuf_l(l_rel+1) = intlay%ILAW
890 l_rel = l_rel+1
891 rbuf_l(l_rel+1) = intlay%IMAT
892 l_rel = l_rel+1
893 rbuf_l(l_rel+1) = intlay%NFAIL
894 l_rel = l_rel+1
895 rbuf_l(l_rel+1) = intlay%NVAR_MAT
896 l_rel = l_rel+1
897 rbuf_l(l_rel+1) = intlay%NVARTMP
898 l_rel = l_rel+1
899c
900c ! write inter layer variables for each layer
901 rbuf_l(l_rel+1:l_rel+nel*ly_eint) = intlay%EINT(1:nel*ly_eint)
902 l_rel = l_rel+nel*ly_eint
903 rbuf_l(l_rel+1:l_rel+nel*ly_count) = intlay%COUNT(1:nel*ly_count)
904 l_rel = l_rel+nel*ly_count
905
906c ! write local inter layer variables for each element
907 DO i = 1,elbuf%NPTR
908 DO j = 1,elbuf%NPTS
909 ilbuf => elbuf_tab(ng)%INTLAY(il)%ILBUF(i,j)
910c
911 rbuf_l(l_rel+1:l_rel+nel*l_eps) =ilbuf%EPS(1:nel*l_eps)
912 l_rel = l_rel+nel*l_eps
913 rbuf_l(l_rel+1:l_rel+nel*l_sig) =ilbuf%SIG(1:nel*l_sig)
914 l_rel = l_rel+nel*l_sig
915 ENDDO
916 ENDDO
917 ENDDO
918c
919c----- Inter Layer Material buffer - UVAR
920c
921 DO il = 1,elbuf%NINTLAY
922 intlay => elbuf_tab(ng)%INTLAY(il)
923 nuvar = intlay%NVAR_MAT
924 DO ir = 1,elbuf%NPTR
925 DO is = 1,elbuf%NPTS
926 rbuf_l(l_rel+1:l_rel+nel*nuvar)=
927 . intlay%MAT(ir,is)%VAR(1:nel*nuvar)
928 l_rel = l_rel+nel*nuvar
929 ENDDO
930 ENDDO
931 ENDDO
932c
933c----- Inter Layer Fail buffer - UVAR
934c
935 DO il = 1,elbuf%NINTLAY
936 intlay => elbuf_tab(ng)%INTLAY(il)
937 nfail = intlay%NFAIL
938 DO ir = 1,elbuf%NPTR
939 DO is = 1,elbuf%NPTS
940 DO k = 1,nfail
941 floc=>elbuf_tab(ng)%INTLAY(il)%FAIL(ir,is)%FLOC(k)
942 ifail = floc%ILAWF
943 idfail = floc%IDFAIL
944 nuvar = floc%NVAR
945 rbuf_l(l_rel+1)=ifail
946 l_rel = l_rel+1
947 rbuf_l(l_rel+1)=idfail
948 l_rel = l_rel+1
949 rbuf_l(l_rel+1)=nuvar
950 l_rel = l_rel+1
951 rbuf_l(l_rel+1:l_rel+nel*nuvar)=
952 . floc%VAR(1:nel*nuvar)
953 l_rel = l_rel+nel*nuvar
954 ENDDO
955 ENDDO
956 ENDDO
957 ENDDO
958c print*,' start global=',l_rel
959c
960c-----------------------------------------------------------------------
961c GLOBAL BUFFER
962c-----------------------------------------------------------------------
963 gbuf => elbuf_tab(ng)%GBUF
964c
965 g_noff = gbuf%G_NOFF
966 g_ierr = gbuf%G_IERR
967 g_off = gbuf%G_OFF
968 g_gama = gbuf%G_GAMA
969 g_smstr = gbuf%G_SMSTR
970 g_hourg = gbuf%G_HOURG
971 g_bfrac = gbuf%G_BFRAC
972 g_eint = gbuf%G_EINT
973 g_eins = gbuf%G_EINS
974 g_rho = gbuf%G_RHO
975 g_qvis = gbuf%G_QVIS
976 g_deltax= gbuf%G_DELTAX
977 g_vol = gbuf%G_VOL
978 g_epsd = gbuf%G_EPSD
979 g_epsq = gbuf%G_EPSQ
980 g_pla = gbuf%G_PLA
981 g_wpla = gbuf%G_WPLA
982 g_temp = gbuf%G_TEMP
983 g_tb = gbuf%G_TB
984 g_rk = gbuf%G_RK
985 g_re = gbuf%G_RE
986 g_sig = gbuf%G_SIG
987 g_for = gbuf%G_FOR
988 g_mom = gbuf%G_MOM
989 g_thk = gbuf%G_THK
990 g_tag22 = gbuf%G_TAG22
991 g_stra = gbuf%G_STRA
992 g_sigi = gbuf%G_SIGI
993 g_dmg = gbuf%G_DMG
994 g_forpg = gbuf%G_FORPG
995 g_mompg = gbuf%G_MOMPG
996 g_gama_r= gbuf%G_GAMA_R
997C
998 g_forpgpinch = gbuf%G_FORPGPINCH
999 g_mompgpinch = gbuf%G_MOMPGPINCH
1000 g_epgpinchxz = gbuf%G_EPGPINCHXZ
1001 g_epgpinchyz = gbuf%G_EPGPINCHYZ
1002 g_epgpinchzz = gbuf%G_EPGPINCHZZ
1003C
1004 g_strpg = gbuf%G_STRPG
1005 g_uelr = gbuf%G_UELR
1006 g_uelr1 = gbuf%G_UELR1
1007 g_damdl = gbuf%G_DAMDL
1008 g_forth = gbuf%G_FORTH
1009 g_eintth= gbuf%G_EINTTH
1010 g_fill = gbuf%G_FILL
1011 g_seq = gbuf%G_SEQ
1012 g_strw = gbuf%G_STRW
1013 g_strwpg= gbuf%G_STRWPG
1014 g_thk_i = gbuf%G_THK_I
1015 g_jac_i = gbuf%G_JAC_I
1016 g_dt = gbuf%G_DT
1017 g_isms = gbuf%G_ISMS
1018 g_bpreld= gbuf%G_BPRELD
1019 g_aburn = gbuf%G_ABURN
1020 g_mu = gbuf%G_MU
1021 g_planl = gbuf%G_PLANL
1022 g_epsdnl = gbuf%G_EPSDNL
1023 g_dmgscl = gbuf%G_DMGSCL
1024 g_tsaiwu = gbuf%G_TSAIWU
1025 g_tempg = gbuf%G_TEMPG
1026 g_cor_nf = gbuf%G_COR_NF
1027 g_cor_fr = gbuf%G_COR_FR
1028 g_cor_xr = gbuf%G_COR_XR
1029 g_maxfrac= gbuf%G_MAXFRAC
1030 g_maxeps = gbuf%G_MAXEPS
1031 g_betaorth = gbuf%G_BETAORTH
1032 g_amu = gbuf%G_AMU
1033 g_sh_ioffset = gbuf%G_SH_IOFFSET
1034 g_eint_distor = gbuf%G_EINT_DISTOR
1035 g_for_g = gbuf%G_FOR_G
1036 g_forpg_g = gbuf%G_FORPG_G
1037c---
1038c 1-D elements (TRUSS, BEAM, SPRING, NSTRAND)
1039c---
1040 g_area = gbuf%G_AREA
1041 g_skew = gbuf%G_SKEW
1042 g_length = gbuf%G_LENGTH
1043 g_totdepl = gbuf%G_TOTDEPL
1044 g_totrot = gbuf%G_TOTROT
1045 g_forep = gbuf%G_FOREP
1046 g_momep = gbuf%G_MOMEP
1047 g_dep_in_tens = gbuf%G_DEP_IN_TENS
1048 g_dep_in_comp = gbuf%G_DEP_IN_COMP
1049 g_rot_in_tens = gbuf%G_ROT_IN_TENS
1050 g_rot_in_comp = gbuf%G_ROT_IN_COMP
1051 g_posx = gbuf%G_POSX
1052 g_posy = gbuf%G_POSY
1053 g_posz = gbuf%G_POSZ
1054 g_posxx = gbuf%G_POSXX
1055 g_posyy = gbuf%G_POSYY
1056 g_poszz = gbuf%G_POSZZ
1057 g_yield = gbuf%G_YIELD
1058 g_length_err = gbuf%G_LENGTH_ERR
1059 g_dv = gbuf%G_DV
1060 g_dfs = gbuf%G_DFS
1061 g_skew_err = gbuf%G_SKEW_ERR
1062 g_e6 = gbuf%G_E6
1063 g_ruptcrit = gbuf%G_RUPTCRIT
1064 g_mass = gbuf%G_MASS
1065 g_v_repcvt = gbuf%G_V_REPCVT
1066 g_vr_repcvt = gbuf%G_VR_REPCVT
1067 g_nuvar = gbuf%G_NUVAR
1068 g_nuvarn = gbuf%G_NUVARN
1069 g_defini = gbuf%G_DEFINI
1070 g_forini = gbuf%G_FORINI
1071 g_inifric = gbuf%G_INIFRIC
1072 g_strhg = gbuf%G_STRHG
1073 g_etotsh = gbuf%G_ETOTSH
1074 g_dt_piter = gbuf%G_DT_PITER
1075 g_skew_id = gbuf%G_SKEW_ID
1076 g_yield_in_comp = gbuf%G_YIELD_IN_COMP
1077 g_xxold_in_comp = gbuf%G_XXOLD_IN_COMP
1078c---
1079c seatbelt elements
1080c---
1081 g_slipring_id = gbuf%G_SLIPRING_ID
1082 g_slipring_fram_id = gbuf%G_SLIPRING_FRAM_ID
1083 g_slipring_strand = gbuf%G_SLIPRING_STRAND
1084 g_retractor_id= gbuf%G_RETRACTOR_ID
1085 g_ringslip = gbuf%G_RINGSLIP
1086 g_add_node = gbuf%G_ADD_NODE
1087 g_update = gbuf%G_UPDATE
1088 g_fram_factor = gbuf%G_FRAM_FACTOR
1089 g_intvar = gbuf%G_INTVAR
1090 g_idt_tsh = gbuf%G_IDT_TSH
1091C ---H3D/TMAX in BUFLEN
1092 g_tm_yield = gbuf%G_TM_YIELD
1093 g_tm_seq = gbuf%G_TM_SEQ
1094 g_tm_eint = gbuf%G_TM_EINT
1095 g_tm_dmg = gbuf%G_TM_DMG
1096 g_tm_sig = gbuf%G_TM_SIG
1097 g_tm_stra = gbuf%G_TM_STRA
1098c
1099 sum = l_rel
1100c
1101 rbuf_l(l_rel+1) = gbuf%NVAR_GLOB
1102 l_rel = l_rel + 1
1103c
1104c ! write global variable lengths (GBUF%NVAR_GLOB = 34)
1105c
1106 rbuf_l(l_rel+1) = g_noff
1107 l_rel = l_rel + 1
1108 rbuf_l(l_rel+1) = g_ierr
1109 l_rel = l_rel + 1
1110 rbuf_l(l_rel+1) = g_off
1111 l_rel = l_rel + 1
1112 rbuf_l(l_rel+1) = g_gama
1113 l_rel = l_rel + 1
1114 rbuf_l(l_rel+1) = g_smstr
1115 l_rel = l_rel + 1
1116 rbuf_l(l_rel+1) = g_hourg
1117 l_rel = l_rel + 1
1118 rbuf_l(l_rel+1) = g_bfrac
1119 l_rel = l_rel + 1
1120 rbuf_l(l_rel+1) = g_eint
1121 l_rel = l_rel + 1
1122 rbuf_l(l_rel+1) = g_eins
1123 l_rel = l_rel + 1
1124 rbuf_l(l_rel+1) = g_rho
1125 l_rel = l_rel + 1
1126 rbuf_l(l_rel+1) = g_qvis
1127 l_rel = l_rel + 1
1128 rbuf_l(l_rel+1) = g_deltax
1129 l_rel = l_rel + 1
1130 rbuf_l(l_rel+1) = g_vol
1131 l_rel = l_rel + 1
1132 rbuf_l(l_rel+1) = g_epsd
1133 l_rel = l_rel + 1
1134 rbuf_l(l_rel+1) = g_epsq
1135 l_rel = l_rel + 1
1136 rbuf_l(l_rel+1) = g_pla
1137 l_rel = l_rel + 1
1138 rbuf_l(l_rel+1) = g_wpla
1139 l_rel = l_rel + 1
1140 rbuf_l(l_rel+1) = g_temp
1141 l_rel = l_rel + 1
1142 rbuf_l(l_rel+1) = g_tb
1143 l_rel = l_rel + 1
1144 rbuf_l(l_rel+1) = g_rk
1145 l_rel = l_rel + 1
1146 rbuf_l(l_rel+1) = g_re
1147 l_rel = l_rel + 1
1148 rbuf_l(l_rel+1) = g_sig
1149 l_rel = l_rel + 1
1150 rbuf_l(l_rel+1) = g_for
1151 l_rel = l_rel + 1
1152 rbuf_l(l_rel+1) = g_mom
1153 l_rel = l_rel + 1
1154 rbuf_l(l_rel+1) = g_thk
1155 l_rel = l_rel + 1
1156 rbuf_l(l_rel+1) = g_tag22
1157 l_rel = l_rel + 1
1158 rbuf_l(l_rel+1) = g_stra
1159 l_rel = l_rel + 1
1160 rbuf_l(l_rel+1) = g_sigi
1161 l_rel = l_rel + 1
1162 rbuf_l(l_rel+1) = g_dmg
1163 l_rel = l_rel + 1
1164 rbuf_l(l_rel+1) = g_forpg
1165 l_rel = l_rel + 1
1166 rbuf_l(l_rel+1) = g_mompg
1167 l_rel = l_rel + 1
1168C
1169 rbuf_l(l_rel+1) = g_forpgpinch
1170 l_rel = l_rel + 1
1171 rbuf_l(l_rel+1) = g_mompgpinch
1172 l_rel = l_rel + 1
1173 rbuf_l(l_rel+1) = g_epgpinchxz
1174 l_rel = l_rel + 1
1175 rbuf_l(l_rel+1) = g_epgpinchyz
1176 l_rel = l_rel + 1
1177 rbuf_l(l_rel+1) = g_epgpinchzz
1178 l_rel = l_rel + 1
1179C
1180 rbuf_l(l_rel+1) = g_strpg
1181 l_rel = l_rel + 1
1182 rbuf_l(l_rel+1) = g_uelr
1183 l_rel = l_rel + 1
1184 rbuf_l(l_rel+1) = g_uelr1
1185 l_rel = l_rel + 1
1186 rbuf_l(l_rel+1) = g_damdl
1187 l_rel = l_rel + 1
1188 rbuf_l(l_rel+1) = g_forth
1189 l_rel = l_rel + 1
1190 rbuf_l(l_rel+1) = g_eintth
1191 l_rel = l_rel + 1
1192 rbuf_l(l_rel+1) = g_fill
1193 l_rel = l_rel + 1
1194 rbuf_l(l_rel+1) = g_seq
1195 l_rel = l_rel + 1
1196 rbuf_l(l_rel+1) = g_strw
1197 l_rel = l_rel + 1
1198 rbuf_l(l_rel+1) = g_strwpg
1199 l_rel = l_rel + 1
1200 rbuf_l(l_rel+1) = g_thk_i
1201 l_rel = l_rel + 1
1202 rbuf_l(l_rel+1) = g_jac_i
1203 l_rel = l_rel + 1
1204 rbuf_l(l_rel+1) = g_dt
1205 l_rel = l_rel + 1
1206 rbuf_l(l_rel+1) = g_isms
1207 l_rel = l_rel + 1
1208 rbuf_l(l_rel+1) = g_bpreld
1209 l_rel = l_rel + 1
1210 rbuf_l(l_rel+1) = g_aburn
1211 l_rel = l_rel + 1
1212 rbuf_l(l_rel+1) = g_mu
1213 l_rel = l_rel + 1
1214 rbuf_l(l_rel+1) = g_planl
1215 l_rel = l_rel + 1
1216 rbuf_l(l_rel+1) = g_epsdnl
1217 l_rel = l_rel + 1
1218 rbuf_l(l_rel+1) = g_dmgscl
1219 l_rel = l_rel + 1
1220 rbuf_l(l_rel+1) = g_tsaiwu
1221 l_rel = l_rel + 1
1222 rbuf_l(l_rel+1) = g_tempg
1223 l_rel = l_rel + 1
1224 rbuf_l(l_rel+1) = g_cor_nf
1225 l_rel = l_rel + 1
1226 rbuf_l(l_rel+1) = g_cor_fr
1227 l_rel = l_rel + 1
1228 rbuf_l(l_rel+1) = g_cor_xr
1229 l_rel = l_rel + 1
1230 rbuf_l(l_rel+1) = g_maxfrac
1231 l_rel = l_rel + 1
1232 rbuf_l(l_rel+1) = g_maxeps
1233 l_rel = l_rel + 1
1234 rbuf_l(l_rel+1) = g_betaorth
1235 l_rel = l_rel + 1
1236 rbuf_l(l_rel+1) = g_amu
1237 l_rel = l_rel + 1
1238 rbuf_l(l_rel+1) = g_sh_ioffset
1239 l_rel = l_rel + 1
1240 rbuf_l(l_rel+1) = g_eint_distor
1241 l_rel = l_rel + 1
1242 rbuf_l(l_rel+1) = g_for_g
1243 l_rel = l_rel + 1
1244 rbuf_l(l_rel+1) = g_forpg_g
1245 l_rel = l_rel + 1
1246c---
1247c 1-D elements (TRUSS, BEAM, SPRING, NSTRAND)
1248c---
1249 rbuf_l(l_rel+1) = g_area
1250 l_rel = l_rel + 1
1251 rbuf_l(l_rel+1) = g_skew
1252 l_rel = l_rel + 1
1253 rbuf_l(l_rel+1) = g_length
1254 l_rel = l_rel + 1
1255 rbuf_l(l_rel+1) = g_totdepl
1256 l_rel = l_rel + 1
1257 rbuf_l(l_rel+1) = g_totrot
1258 l_rel = l_rel + 1
1259 rbuf_l(l_rel+1) = g_forep
1260 l_rel = l_rel + 1
1261 rbuf_l(l_rel+1) = g_momep
1262 l_rel = l_rel + 1
1263 rbuf_l(l_rel+1) = g_dep_in_tens
1264 l_rel = l_rel + 1
1265 rbuf_l(l_rel+1) = g_dep_in_comp
1266 l_rel = l_rel + 1
1267 rbuf_l(l_rel+1) = g_rot_in_tens
1268 l_rel = l_rel + 1
1269 rbuf_l(l_rel+1) = g_rot_in_comp
1270 l_rel = l_rel + 1
1271 rbuf_l(l_rel+1) = g_posx
1272 l_rel = l_rel + 1
1273 rbuf_l(l_rel+1) = g_posy
1274 l_rel = l_rel + 1
1275 rbuf_l(l_rel+1) = g_posz
1276 l_rel = l_rel + 1
1277 rbuf_l(l_rel+1) = g_posxx
1278 l_rel = l_rel + 1
1279 rbuf_l(l_rel+1) = g_posyy
1280 l_rel = l_rel + 1
1281 rbuf_l(l_rel+1) = g_poszz
1282 l_rel = l_rel + 1
1283 rbuf_l(l_rel+1) = g_yield
1284 l_rel = l_rel + 1
1285 rbuf_l(l_rel+1) = g_length_err
1286 l_rel = l_rel + 1
1287 rbuf_l(l_rel+1) = g_dv
1288 l_rel = l_rel + 1
1289 rbuf_l(l_rel+1) = g_dfs
1290 l_rel = l_rel + 1
1291 rbuf_l(l_rel+1) = g_skew_err
1292 l_rel = l_rel + 1
1293 rbuf_l(l_rel+1) = g_e6
1294 l_rel = l_rel + 1
1295 rbuf_l(l_rel+1) = g_ruptcrit
1296 l_rel = l_rel + 1
1297 rbuf_l(l_rel+1) = g_mass
1298 l_rel = l_rel + 1
1299 rbuf_l(l_rel+1) = g_v_repcvt
1300 l_rel = l_rel + 1
1301 rbuf_l(l_rel+1) = g_vr_repcvt
1302 l_rel = l_rel + 1
1303 rbuf_l(l_rel+1) = g_nuvar
1304 l_rel = l_rel + 1
1305 rbuf_l(l_rel+1) = g_nuvarn
1306 l_rel = l_rel + 1
1307 rbuf_l(l_rel+1) = g_defini
1308 l_rel = l_rel + 1
1309 rbuf_l(l_rel+1) = g_forini
1310 l_rel = l_rel + 1
1311 rbuf_l(l_rel+1) = g_inifric
1312 l_rel = l_rel + 1
1313 rbuf_l(l_rel+1) = g_strhg
1314 l_rel = l_rel + 1
1315 rbuf_l(l_rel+1) = g_etotsh
1316 l_rel = l_rel + 1
1317 rbuf_l(l_rel+1) = g_dt_piter
1318 l_rel = l_rel + 1
1319 rbuf_l(l_rel+1) = g_skew_id
1320 l_rel = l_rel + 1
1321 rbuf_l(l_rel+1) = g_gama_r
1322 l_rel = l_rel + 1
1323 rbuf_l(l_rel+1) = g_yield_in_comp
1324 l_rel = l_rel + 1
1325 rbuf_l(l_rel+1) = g_xxold_in_comp
1326 l_rel = l_rel + 1
1327c---
1328c seatbelt elements
1329c---
1330 rbuf_l(l_rel+1) = g_slipring_id
1331 l_rel = l_rel + 1
1332 rbuf_l(l_rel+1) = g_slipring_fram_id
1333 l_rel = l_rel + 1
1334 rbuf_l(l_rel+1) = g_slipring_strand
1335 l_rel = l_rel + 1
1336 rbuf_l(l_rel+1) = g_retractor_id
1337 l_rel = l_rel + 1
1338 rbuf_l(l_rel+1) = g_ringslip
1339 l_rel = l_rel + 1
1340 rbuf_l(l_rel+1) = g_add_node
1341 l_rel = l_rel + 1
1342 rbuf_l(l_rel+1) = g_update
1343 l_rel = l_rel + 1
1344 rbuf_l(l_rel+1) = g_fram_factor
1345 l_rel = l_rel + 1
1346 rbuf_l(l_rel+1) = g_intvar
1347 l_rel = l_rel + 1
1348 rbuf_l(l_rel+1) = g_idt_tsh
1349 l_rel = l_rel + 1
1350c---
1351c H3D/MAX
1352c---
1353 rbuf_l(l_rel+1) = g_tm_yield
1354 l_rel = l_rel + 1
1355 rbuf_l(l_rel+1) = g_tm_seq
1356 l_rel = l_rel + 1
1357 rbuf_l(l_rel+1) = g_tm_eint
1358 l_rel = l_rel + 1
1359 rbuf_l(l_rel+1) = g_tm_dmg
1360 l_rel = l_rel + 1
1361 rbuf_l(l_rel+1) = g_tm_sig
1362 l_rel = l_rel + 1
1363 rbuf_l(l_rel+1) = g_tm_stra
1364 l_rel = l_rel + 1
1365c
1366c print*,' global lengths=',l_rel
1367 sum = l_rel
1368c
1369c ! write global variables for each element
1370c
1371 rbuf_l(l_rel+1:l_rel+nel*g_noff) = gbuf%NOFF(1:nel*g_noff)
1372 l_rel = l_rel + nel*g_noff
1373 rbuf_l(l_rel+1:l_rel+nel*g_ierr) = gbuf%IERR(1:nel*g_ierr)
1374 l_rel = l_rel + nel*g_ierr
1375 rbuf_l(l_rel+1:l_rel+nel*g_gama) = gbuf%GAMA(1:nel*g_gama)
1376 l_rel = l_rel + nel*g_gama
1377C RBUF_L(L_REL+1:L_REL+NEL*G_SMSTR) = GBUF%SMSTR(1:NEL*G_SMSTR)
1378C L_REL = L_REL + NEL*G_SMSTR
1379 rbuf_l(l_rel+1:l_rel+nel*g_hourg) = gbuf%HOURG(1:nel*g_hourg)
1380 l_rel = l_rel + nel*g_hourg
1381 rbuf_l(l_rel+1:l_rel+nel*g_tag22) = gbuf%TAG22(1:nel*g_tag22)
1382 l_rel = l_rel+nel*g_tag22
1383 rbuf_l(l_rel+1:l_rel+nel*g_stra) = gbuf%STRA(1:nel*g_stra)
1384 l_rel = l_rel+nel*g_stra
1385 rbuf_l(l_rel+1:l_rel+nel*g_sigi) = gbuf%SIGI(1:nel*g_sigi)
1386 l_rel = l_rel+nel*g_sigi
1387 rbuf_l(l_rel+1:l_rel+nel*g_dmg) = gbuf%DMG(1:nel*g_dmg)
1388 l_rel = l_rel+nel*g_dmg
1389 rbuf_l(l_rel+1:l_rel+nel*g_uelr) = gbuf%UELR(1:nel*g_uelr)
1390 l_rel = l_rel+nel*g_uelr
1391 rbuf_l(l_rel+1:l_rel+nel*g_uelr1) = gbuf%UELR1(1:nel*g_uelr1)
1392 l_rel = l_rel+nel*g_uelr1
1393 rbuf_l(l_rel+1:l_rel+nel*g_damdl) = gbuf%DAMDL(1:nel*g_damdl)
1394 l_rel = l_rel+nel*g_damdl
1395 rbuf_l(l_rel+1:l_rel+nel*g_for) = gbuf%FOR(1:nel*g_for)
1396 l_rel = l_rel+nel*g_for
1397 rbuf_l(l_rel+1:l_rel+nel*g_mom) = gbuf%MOM(1:nel*g_mom)
1398 l_rel = l_rel+nel*g_mom
1399 rbuf_l(l_rel+1:l_rel+nel*g_thk) = gbuf%THK(1:nel*g_thk)
1400 l_rel = l_rel+nel*g_thk
1401 rbuf_l(l_rel+1:l_rel+nel*g_strw) = gbuf%STRW(1:nel*g_strw)
1402 l_rel = l_rel+nel*g_strw
1403 rbuf_l(l_rel+1:l_rel+nel*g_thk_i) = gbuf%THK_I(1:nel*g_thk_i)
1404 l_rel = l_rel+nel*g_thk_i
1405 rbuf_l(l_rel+1:l_rel+nel*g_jac_i) = gbuf%JAC_I(1:nel*g_jac_i)
1406 l_rel = l_rel+nel*g_jac_i
1407 rbuf_l(l_rel+1:l_rel+nel*g_dt) = gbuf%DT(1:nel*g_dt)
1408 l_rel = l_rel+nel*g_dt
1409 rbuf_l(l_rel+1:l_rel+nel*g_isms) = gbuf%ISMS(1:nel*g_isms)
1410 l_rel = l_rel+nel*g_isms
1411 rbuf_l(l_rel+1:l_rel+nel*g_bpreld)= gbuf%BPRELD(1:nel*g_bpreld)
1412 l_rel = l_rel+nel*g_bpreld
1413 rbuf_l(l_rel+1:l_rel+nel*g_cor_nf)= gbuf%COR_NF(1:nel*g_cor_nf)
1414 l_rel = l_rel+nel*g_cor_nf
1415 rbuf_l(l_rel+1:l_rel+nel*g_cor_fr)= gbuf%COR_FR(1:nel*g_cor_fr)
1416 l_rel = l_rel+nel*g_cor_fr
1417 rbuf_l(l_rel+1:l_rel+nel*g_cor_xr)= gbuf%COR_XR(1:nel*g_cor_xr)
1418 l_rel = l_rel+nel*g_cor_xr
1419 rbuf_l(l_rel+1:l_rel+nel*g_maxfrac)= gbuf%MAXFRAC(1:nel*g_maxfrac)
1420 l_rel = l_rel+nel*g_maxfrac
1421 rbuf_l(l_rel+1:l_rel+nel*g_maxeps)= gbuf%MAXEPS(1:nel*g_maxeps)
1422 l_rel = l_rel+nel*g_maxeps
1423 rbuf_l(l_rel+1:l_rel+nel*g_betaorth)= gbuf%BETAORTH(1:nel*g_betaorth)
1424 l_rel = l_rel+nel*g_betaorth
1425 rbuf_l(l_rel+1:l_rel+nel*g_amu)= gbuf%AMU(1:nel*g_amu)
1426 l_rel = l_rel+nel*g_amu
1427 rbuf_l(l_rel+1:l_rel+nel*g_sh_ioffset)= gbuf%SH_IOFFSET(1:nel*g_sh_ioffset)
1428 l_rel = l_rel+nel*g_sh_ioffset
1429 rbuf_l(l_rel+1:l_rel+nel*g_eint_distor)= gbuf%EINT_DISTOR(1:nel*g_eint_distor)
1430 l_rel = l_rel+nel*g_eint_distor
1431 rbuf_l(l_rel+1:l_rel+nel*g_for_g)= gbuf%FOR_G(1:nel*g_for_g)
1432 l_rel = l_rel+nel*g_for_g
1433 rbuf_l(l_rel+1:l_rel+nel*g_wpla) = gbuf%WPLA(1:nel*g_wpla)
1434 l_rel = l_rel+nel*g_wpla
1435c-------
1436c
1437c IF (NPG == 1) THEN ! nothing to write (pointers only)
1438c
1439 IF (npg == 1) THEN
1440 IF (g_strpg>g_stra) THEN
1441 rbuf_l(l_rel+1:l_rel+nel*g_strpg) = gbuf%STRPG(1:nel*g_strpg)
1442 l_rel = l_rel+nel*g_strpg
1443 END IF
1444 ELSEIF (npg > 1) THEN
1445 rbuf_l(l_rel+1:l_rel+nel*g_forpg) = gbuf%FORPG(1:nel*g_forpg)
1446 l_rel = l_rel+nel*g_forpg
1447 rbuf_l(l_rel+1:l_rel+nel*g_mompg) = gbuf%MOMPG(1:nel*g_mompg)
1448 l_rel = l_rel+nel*g_mompg
1449C
1450 rbuf_l(l_rel+1:l_rel+nel*g_forpgpinch) = gbuf%FORPGPINCH(1:nel*g_forpgpinch)
1451 l_rel = l_rel+nel*g_forpgpinch
1452 rbuf_l(l_rel+1:l_rel+nel*g_mompgpinch) = gbuf%MOMPGPINCH(1:nel*g_mompgpinch)
1453 l_rel = l_rel+nel*g_mompgpinch
1454 rbuf_l(l_rel+1:l_rel+nel*g_epgpinchxz) = gbuf%EPGPINCHXZ(1:nel*g_epgpinchxz)
1455 l_rel = l_rel+nel*g_epgpinchxz
1456 rbuf_l(l_rel+1:l_rel+nel*g_epgpinchyz) = gbuf%EPGPINCHYZ(1:nel*g_epgpinchyz)
1457 l_rel = l_rel+nel*g_epgpinchyz
1458 rbuf_l(l_rel+1:l_rel+nel*g_epgpinchzz) = gbuf%EPGPINCHZZ(1:nel*g_epgpinchzz)
1459 l_rel = l_rel+nel*g_epgpinchzz
1460C
1461 rbuf_l(l_rel+1:l_rel+nel*g_strpg) = gbuf%STRPG(1:nel*g_strpg)
1462 l_rel = l_rel+nel*g_strpg
1463 rbuf_l(l_rel+1:l_rel+nel*g_strwpg)= gbuf%STRWPG(1:nel*g_strwpg)
1464 l_rel = l_rel+nel*g_strwpg
1465 rbuf_l(l_rel+1:l_rel+nel*g_forpg_g)= gbuf%FORPG_G(1:nel*g_forpg_g)
1466 l_rel = l_rel+nel*g_forpg_g
1467 ENDIF
1468c print*,' global 2 =',l_rel
1469c-------
1470 IF (npttot /= 1) THEN
1471 rbuf_l(l_rel+1:l_rel+nel*g_bfrac)= gbuf%BFRAC(1:nel*g_bfrac)
1472 l_rel = l_rel + nel*g_bfrac
1473 rbuf_l(l_rel+1:l_rel+nel*g_off) = gbuf%OFF(1:nel*g_off)
1474 l_rel = l_rel+nel*g_off
1475 rbuf_l(l_rel+1:l_rel+nel*g_eint) = gbuf%EINT(1:nel*g_eint)
1476 l_rel = l_rel+nel*g_eint
1477 rbuf_l(l_rel+1:l_rel+nel*g_eins) = gbuf%EINS(1:nel*g_eins)
1478 l_rel = l_rel+nel*g_eins
1479 rbuf_l(l_rel+1:l_rel+nel*g_rho) = gbuf%RHO(1:nel*g_rho)
1480 l_rel = l_rel+nel*g_rho
1481 rbuf_l(l_rel+1:l_rel+nel*g_qvis) = gbuf%QVIS(1:nel*g_qvis)
1482 l_rel = l_rel+nel*g_qvis
1483 rbuf_l(l_rel+1:l_rel+nel*g_deltax)=gbuf%DELTAX(1:nel*g_deltax)
1484 l_rel = l_rel+nel*g_deltax
1485 rbuf_l(l_rel+1:l_rel+nel*g_vol) = gbuf%VOL(1:nel*g_vol)
1486 l_rel = l_rel+nel*g_vol
1487 rbuf_l(l_rel+1:l_rel+nel*g_epsd) = gbuf%EPSD(1:nel*g_epsd)
1488 l_rel = l_rel+nel*g_epsd
1489 rbuf_l(l_rel+1:l_rel+nel*g_epsq) = gbuf%EPSQ(1:nel*g_epsq)
1490 l_rel = l_rel+nel*g_epsq
1491 rbuf_l(l_rel+1:l_rel+nel*g_pla) = gbuf%PLA(1:nel*g_pla)
1492 l_rel = l_rel+nel*g_pla
1493 rbuf_l(l_rel+1:l_rel+nel*g_temp) = gbuf%TEMP(1:nel*g_temp)
1494 l_rel = l_rel+nel*g_temp
1495 rbuf_l(l_rel+1:l_rel+nel*g_tb) = gbuf%TB(1:nel*g_tb)
1496 l_rel = l_rel+nel*g_tb
1497 rbuf_l(l_rel+1:l_rel+nel*g_rk) = gbuf%RK(1:nel*g_rk)
1498 l_rel = l_rel+nel*g_rk
1499 rbuf_l(l_rel+1:l_rel+nel*g_re) = gbuf%RE(1:nel*g_re)
1500 l_rel = l_rel+nel*g_re
1501 rbuf_l(l_rel+1:l_rel+nel*g_sig) = gbuf%SIG(1:nel*g_sig)
1502 l_rel = l_rel+nel*g_sig
1503 rbuf_l(l_rel+1:l_rel+nel*g_forth) = gbuf%FORTH(1:nel*g_forth)
1504 l_rel = l_rel+nel*g_forth
1505 rbuf_l(l_rel+1:l_rel+nel*g_eintth) = gbuf%EINTTH(1:nel*g_eintth)
1506 l_rel = l_rel+nel*g_eintth
1507 rbuf_l(l_rel+1:l_rel+nel*g_seq) = gbuf%SEQ(1:nel*g_seq)
1508 l_rel = l_rel+nel*g_seq
1509 rbuf_l(l_rel+1:l_rel+nel*g_aburn)= gbuf%ABURN(1:nel*g_aburn)
1510 l_rel = l_rel + nel*g_aburn
1511 rbuf_l(l_rel+1:l_rel+nel*g_mu) = gbuf%MU(1:nel*g_mu)
1512 l_rel = l_rel + nel*g_mu
1513 ENDIF
1514C---------
1515 rbuf_l(l_rel+1:l_rel+nel*g_fill) = gbuf%FILL(1:nel*g_fill)
1516 l_rel = l_rel+nel*g_fill
1517c print*,' global vars=',l_rel-sum
1518c print*,' final length : buflen=',l_rel,ITY
1519c---
1520c 1-D elements (TRUSS, BEAM, SPRING, NSTRAND)
1521c---
1522 IF(igtyp == 3 .and. ity == 5) THEN
1523 rbuf_l(l_rel+1:l_rel+nel*g_dmgscl) = gbuf%DMGSCL(1:nel*g_dmgscl)
1524 l_rel = l_rel +nel*g_dmgscl
1525 ENDIF
1526 rbuf_l(l_rel+1:l_rel+nel*g_area) = gbuf%AREA(1:nel*g_area)
1527 l_rel = l_rel +nel*g_area
1528 rbuf_l(l_rel+1:l_rel+nel*g_skew) = gbuf%SKEW(1:nel*g_skew)
1529 l_rel = l_rel +nel*g_skew
1530 rbuf_l(l_rel+1:l_rel+nel*g_length) = gbuf%LENGTH(1:nel*g_length)
1531 l_rel = l_rel +nel*g_length
1532 rbuf_l(l_rel+1:l_rel+nel*g_totdepl) = gbuf%TOTDEPL(1:nel*g_totdepl)
1533 l_rel = l_rel +nel*g_totdepl
1534 rbuf_l(l_rel+1:l_rel+nel*g_totrot) = gbuf%TOTROT(1:nel*g_totrot)
1535 l_rel = l_rel +nel*g_totrot
1536 rbuf_l(l_rel+1:l_rel+nel*g_forep) = gbuf%FOREP(1:nel*g_forep)
1537 l_rel = l_rel +nel*g_forep
1538 rbuf_l(l_rel+1:l_rel+nel*g_momep) = gbuf%MOMEP(1:nel*g_momep)
1539 l_rel = l_rel +nel*g_momep
1540 rbuf_l(l_rel+1:l_rel+nel*g_dep_in_tens) = gbuf%DEP_IN_TENS(1:nel*g_dep_in_tens)
1541 l_rel = l_rel + nel*g_dep_in_tens
1542 rbuf_l(l_rel+1:l_rel+nel*g_dep_in_comp) = gbuf%DEP_IN_COMP(1:nel*g_dep_in_comp)
1543 l_rel = l_rel +nel*g_dep_in_comp
1544 rbuf_l(l_rel+1:l_rel+nel*g_rot_in_tens) = gbuf%ROT_IN_TENS(1:nel*g_rot_in_tens)
1545 l_rel = l_rel +nel*g_rot_in_tens
1546 rbuf_l(l_rel+1:l_rel+nel*g_rot_in_comp) = gbuf%ROT_IN_COMP(1:nel*g_rot_in_comp)
1547 l_rel = l_rel +nel*g_rot_in_comp
1548 rbuf_l(l_rel+1:l_rel+nel*g_posx) = gbuf%POSX(1:nel*g_posx)
1549 l_rel = l_rel +nel*g_posx
1550 rbuf_l(l_rel+1:l_rel+nel*g_posy) = gbuf%POSY(1:nel*g_posy)
1551 l_rel = l_rel +nel*g_posy
1552 rbuf_l(l_rel+1:l_rel+nel*g_posz) = gbuf%POSZ(1:nel*g_posz)
1553 l_rel = l_rel +nel*g_posz
1554 rbuf_l(l_rel+1:l_rel+nel*g_posxx) = gbuf%POSXX(1:nel*g_posxx)
1555 l_rel = l_rel +nel*g_posxx
1556 rbuf_l(l_rel+1:l_rel+nel*g_posyy) = gbuf%POSYY(1:nel*g_posyy)
1557 l_rel = l_rel +nel*g_posyy
1558 rbuf_l(l_rel+1:l_rel+nel*g_poszz) = gbuf%POSZZ(1:nel*g_poszz)
1559 l_rel = l_rel +nel*g_poszz
1560 rbuf_l(l_rel+1:l_rel+nel*g_yield) = gbuf%YIELD(1:nel*g_yield)
1561 l_rel = l_rel +nel*g_yield
1562 rbuf_l(l_rel+1:l_rel+nel*g_length_err) = gbuf%LENGTH_ERR(1:nel*g_length_err)
1563 l_rel = l_rel +nel*g_length_err
1564 rbuf_l(l_rel+1:l_rel+nel*g_dv) = gbuf%DV(1:nel*g_dv)
1565 l_rel = l_rel +nel*g_dv
1566 rbuf_l(l_rel+1:l_rel+nel*g_dfs) = gbuf%DFS(1:nel*g_dfs)
1567 l_rel = l_rel +nel*g_dfs
1568 rbuf_l(l_rel+1:l_rel+nel*g_skew_err) = gbuf%SKEW_ERR(1:nel*g_skew_err)
1569 l_rel = l_rel +nel*g_skew_err
1570 rbuf_l(l_rel+1:l_rel+nel*g_e6) = gbuf%E6(1:nel*g_e6)
1571 l_rel = l_rel +nel*g_e6
1572 rbuf_l(l_rel+1:l_rel+nel*g_ruptcrit) = gbuf%RUPTCRIT(1:nel*g_ruptcrit)
1573 l_rel = l_rel +nel*g_ruptcrit
1574 rbuf_l(l_rel+1:l_rel+nel*g_mass) = gbuf%MASS(1:nel*g_mass)
1575 l_rel = l_rel +nel*g_mass
1576 rbuf_l(l_rel+1:l_rel+nel*g_v_repcvt) = gbuf%V_REPCVT(1:nel*g_v_repcvt)
1577 l_rel = l_rel +nel*g_v_repcvt
1578 rbuf_l(l_rel+1:l_rel+nel*g_vr_repcvt) = gbuf%VR_REPCVT(1:nel*g_vr_repcvt)
1579 l_rel = l_rel +nel*g_vr_repcvt
1580 rbuf_l(l_rel+1:l_rel+nel*g_nuvar) = gbuf%VAR(1:nel*g_nuvar)
1581 l_rel = l_rel +nel*g_nuvar
1582 rbuf_l(l_rel+1:l_rel+nel*g_nuvarn) = gbuf%VARN(1:nel*g_nuvarn)
1583 l_rel = l_rel +nel*g_nuvarn
1584 rbuf_l(l_rel+1:l_rel+nel*g_defini) = gbuf%DEFINI(1:nel*g_defini)
1585 l_rel = l_rel +nel*g_defini
1586 rbuf_l(l_rel+1:l_rel+nel*g_forini) = gbuf%FORINI(1:nel*g_forini)
1587 l_rel = l_rel +nel*g_forini
1588 rbuf_l(l_rel+1:l_rel+nel*g_inifric) = gbuf%INIFRIC(1:nel*g_inifric)
1589 l_rel = l_rel +nel*g_inifric
1590 rbuf_l(l_rel+1:l_rel+nel*g_strhg) = gbuf%STRHG(1:nel*g_strhg)
1591 l_rel = l_rel +nel*g_strhg
1592 rbuf_l(l_rel+1:l_rel+nel*g_dt_piter) = gbuf%DT_PITER(1:nel*g_dt_piter)
1593 l_rel = l_rel +nel*g_dt_piter
1594 rbuf_l(l_rel+1:l_rel+nel*g_skew_id) = gbuf%SKEW_ID(1:nel*g_skew_id)
1595 l_rel = l_rel +nel*g_skew_id
1596 rbuf_l(l_rel+1:l_rel+nel*g_yield_in_comp)= gbuf%YIELD_IN_COMP(1:nel*g_yield_in_comp)
1597 l_rel = l_rel +nel*g_yield_in_comp
1598 rbuf_l(l_rel+1:l_rel+nel*g_xxold_in_comp)= gbuf%XXOLD_IN_COMP(1:nel*g_xxold_in_comp)
1599 l_rel = l_rel +nel*g_xxold_in_comp
1600c
1601c failure model for beams type 3
1602 IF (igtyp == 3 .and. g_noff == 1) THEN
1603 ifail = elbuf_tab(ng)%GBUF%FAIL(1)%ILAWF
1604 idfail = elbuf_tab(ng)%GBUF%FAIL(1)%IDFAIL
1605 nuvar = elbuf_tab(ng)%GBUF%FAIL(1)%NVAR
1606 lf_dam = elbuf_tab(ng)%GBUF%FAIL(1)%LF_DAM
1607 lf_dammx = elbuf_tab(ng)%GBUF%FAIL(1)%LF_DAMMX
1608 lf_damini= elbuf_tab(ng)%GBUF%FAIL(1)%LF_DAMINI
1609 lf_tdel = elbuf_tab(ng)%GBUF%FAIL(1)%LF_TDEL
1610 lf_indx = elbuf_tab(ng)%GBUF%FAIL(1)%LF_INDX
1611 lf_off = elbuf_tab(ng)%GBUF%FAIL(1)%LF_OFF
1612c
1613 rbuf_l(l_rel+1)=ifail
1614 l_rel = l_rel+1
1615 rbuf_l(l_rel+1)=idfail
1616 l_rel = l_rel+1
1617 rbuf_l(l_rel+1)=nuvar
1618 l_rel = l_rel+1
1619 rbuf_l(l_rel+1)=lf_dam
1620 l_rel = l_rel+1
1621 rbuf_l(l_rel+1)=lf_dammx
1622 l_rel = l_rel+1
1623 rbuf_l(l_rel+1)=lf_damini
1624 l_rel = l_rel+1
1625 rbuf_l(l_rel+1)=lf_tdel
1626 l_rel = l_rel+1
1627 rbuf_l(l_rel+1)=lf_indx
1628 l_rel = l_rel+1
1629 rbuf_l(l_rel+1)=lf_off
1630 l_rel = l_rel+1
1631c
1632 rbuf_l(l_rel+1:l_rel+nel*nuvar) = elbuf_tab(ng)%GBUF%FAIL(1)%VAR(1:nel*nuvar)
1633 l_rel = l_rel+nel*nuvar
1634 rbuf_l(l_rel+1:l_rel+nel*lf_dam) = elbuf_tab(ng)%GBUF%FAIL(1)%DAM(1:nel*lf_dam)
1635 l_rel = l_rel+nel*lf_dam
1636 rbuf_l(l_rel+1:l_rel+nel*lf_dammx) = elbuf_tab(ng)%GBUF%FAIL(1)%DAMMX(1:nel*lf_dammx)
1637 l_rel = l_rel+nel*lf_dammx
1638 rbuf_l(l_rel+1:l_rel+nel*lf_damini) = elbuf_tab(ng)%GBUF%FAIL(1)%DAMINI(1:nel*lf_damini)
1639 l_rel = l_rel+nel*lf_damini
1640 rbuf_l(l_rel+1:l_rel+nel*lf_tdel) = elbuf_tab(ng)%GBUF%FAIL(1)%TDEL(1:nel*lf_tdel)
1641 l_rel = l_rel + nel*lf_tdel
1642 rbuf_l(l_rel+1:l_rel+nel*lf_indx) = elbuf_tab(ng)%GBUF%FAIL(1)%INDX(1:nel*lf_indx)
1643 l_rel = l_rel + nel*lf_indx
1644 rbuf_l(l_rel+1:l_rel+nel*lf_off) = elbuf_tab(ng)%GBUF%FAIL(1)%OFF(1:nel*lf_off)
1645 l_rel = l_rel + nel*lf_off
1646 END IF
1647c---
1648c seatbelt elements
1649c---
1650 rbuf_l(l_rel+1:l_rel+nel*g_slipring_id) = gbuf%SLIPRING_ID(1:nel*g_slipring_id)
1651 l_rel = l_rel +nel*g_slipring_id
1652 rbuf_l(l_rel+1:l_rel+nel*g_slipring_fram_id) = gbuf%SLIPRING_FRAM_ID(1:nel*g_slipring_fram_id)
1653 l_rel = l_rel +nel*g_slipring_fram_id
1654 rbuf_l(l_rel+1:l_rel+nel*g_slipring_strand) = gbuf%SLIPRING_STRAND(1:nel*g_slipring_strand)
1655 l_rel = l_rel +nel*g_slipring_strand
1656 rbuf_l(l_rel+1:l_rel+nel*g_retractor_id)= gbuf%RETRACTOR_ID(1:nel*g_retractor_id)
1657 l_rel = l_rel +nel*g_retractor_id
1658 rbuf_l(l_rel+1:l_rel+nel*g_ringslip)= gbuf%RINGSLIP(1:nel*g_ringslip)
1659 l_rel = l_rel +nel*g_ringslip
1660 rbuf_l(l_rel+1:l_rel+nel*g_add_node)= gbuf%ADD_NODE(1:nel*g_add_node)
1661 l_rel = l_rel +nel*g_add_node
1662 rbuf_l(l_rel+1:l_rel+nel*g_update)= gbuf%UPDATE(1:nel*g_update)
1663 l_rel = l_rel +nel*g_update
1664 rbuf_l(l_rel+1:l_rel+nel*g_fram_factor)= gbuf%FRAM_FACTOR(1:nel*g_fram_factor)
1665 l_rel = l_rel +nel*g_fram_factor
1666 rbuf_l(l_rel+1:l_rel+nel*g_intvar)= gbuf%INTVAR(1:nel*g_intvar)
1667 l_rel = l_rel +nel*g_intvar
1668 rbuf_l(l_rel+1:l_rel+nel*g_idt_tsh)= gbuf%IDT_TSH(1:nel*g_idt_tsh)
1669 l_rel = l_rel +nel*g_idt_tsh
1670C---------
1671 IF (npg > 1) THEN
1672 rbuf_l(l_rel+1:l_rel + nel*gbuf%G_TEMPG)= gbuf%TEMPG(1:nel*gbuf%G_TEMPG)
1673 l_rel = l_rel + nel*gbuf%G_TEMPG
1674 ENDIF
1675c---
1676c TMAX(H3D)
1677c---
1678 rbuf_l(l_rel+1:l_rel+nel*g_tm_yield) = gbuf%TM_YIELD(1:nel*g_tm_yield)
1679 l_rel = l_rel +nel*g_tm_yield
1680 rbuf_l(l_rel+1:l_rel+nel*g_tm_seq) = gbuf%TM_SEQ(1:nel*g_tm_seq)
1681 l_rel = l_rel +nel*g_tm_seq
1682 rbuf_l(l_rel+1:l_rel+nel*g_tm_eint) = gbuf%TM_EINT(1:nel*g_tm_eint)
1683 l_rel = l_rel +nel*g_tm_eint
1684 rbuf_l(l_rel+1:l_rel+nel*g_tm_dmg) = gbuf%TM_DMG(1:nel*g_tm_dmg)
1685 l_rel = l_rel +nel*g_tm_dmg
1686 rbuf_l(l_rel+1:l_rel+nel*g_tm_sig) = gbuf%TM_SIG1(1:nel*g_tm_sig)
1687 l_rel = l_rel +nel*g_tm_sig
1688 rbuf_l(l_rel+1:l_rel+nel*g_tm_sig) = gbuf%TM_SIG3(1:nel*g_tm_sig)
1689 l_rel = l_rel +nel*g_tm_sig
1690 rbuf_l(l_rel+1:l_rel+nel*g_tm_stra) = gbuf%TM_STRA1(1:nel*g_tm_stra)
1691 l_rel = l_rel +nel*g_tm_stra
1692 rbuf_l(l_rel+1:l_rel+nel*g_tm_stra) = gbuf%TM_STRA3(1:nel*g_tm_stra)
1693 l_rel = l_rel +nel*g_tm_stra
1694C ------------
1695 CALL write_db (rbuf_l,l_rel)
1696C ------------Part of DP
1697C
1698C SMSTR must be written in separate Buffer (Forced in double precision)
1699C
1700 sdp_rbuf = sdp_rbuf + g_smstr *nel
1701 IF(sdp_rbuf > 0)THEN
1702 ALLOCATE(dp_rbuf(sdp_rbuf))
1703 l_dpr = 0
1704C--------local buf first
1705 DO il = 1,elbuf%NLAY
1706 bufly => elbuf_tab(ng)%BUFLY(il)
1707 IF (igtyp == 51 .OR. igtyp == 52) THEN
1708 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
1709 ELSE
1710 nptt = elbuf_tab(ng)%NPTT
1711 ENDIF
1712 DO ir = 1,elbuf%NPTR
1713 DO is = 1,elbuf%NPTS
1714 DO it = 1,nptt
1715 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
1716c
1717 dp_rbuf(l_dpr+1:l_dpr+nel*l_vol0dp) = lbuf%VOL0DP(1:nel*l_vol0dp)
1718 l_dpr = l_dpr+nel*l_vol0dp
1719 ENDDO
1720 ENDDO
1721 ENDDO
1722 ENDDO
1723 dp_rbuf(l_dpr+1:l_dpr+nel*g_smstr)= gbuf%SMSTR(1:nel*g_smstr)
1724 CALL write_dpdb(dp_rbuf,sdp_rbuf)
1725 DEALLOCATE(dp_rbuf)
1726 ENDIF
1727C---------
1728 DEALLOCATE (rbuf_l)
1729c---------
1730 ENDIF ! ity
1731 ENDDO ! NG=1,NGROUP
1732C-----------
1733 RETURN
1734 END
#define my_real
Definition cppsort.cpp:32
subroutine w_elbuf_str(iparg, elbuf_tab, flag_xfem)
Definition w_elbuf_str.F:34
subroutine write_db(a, n)
Definition write_db.F:140
subroutine write_dpdb(a, n)
Definition write_db.F:302