31
32
33
34 USE elbufdef_mod
35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com01_c.inc"
43#include "param_c.inc"
44
45
46
47 INTEGER PROC,LEN_AM, IPARG(NPARG,*),FLAG_XFEM
48 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
49
50
51
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,NPG,NPTT,NPTTOT,INLOC,NONL,
55 . IDAMP_FREQ_RANGE
56 INTEGER
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_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_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_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
76 . LY_DMG,LY_GAMA,LY_DIRA,LY_DIRB,LY_CRKDIR,LY_PLAPT,LY_SIGPT,
77 . LY_HOURG,LY_UELR,LY_UELR1,Ly_OFFPG,LY_OFF,LEN_PLAPT,LEN_SIGPT
78 INTEGER
79 . LY_EINT,LY_COUNT
80 INTEGER
81 . L_OFF,L_EINT,,L_RHO,L_DP_DRHO,L_VOL,L_PLA,L_TB,,
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
90 . LF_DAM,LF_DAMMX,LF_DAMINI,LF_TDEL,LF_INDX,LF_OFF
91 INTEGER
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() , POINTER :: FLOC
105 TYPE(BUF_NLOC_) , POINTER :: BUFNL
106 TYPE() , POINTER :: BUFNLTS
107 TYPE(L_BUFEL_DIR_) , POINTER :: LBUF_DIR
108
109
110 debug_print = 0
111 npg = -huge(npg)
112
113 DO ng=1,ngroup
114 p = iparg(32,ng)
115 inloc = iparg(78,ng)
116 idamp_freq_range = iparg(93,ng)
117
118 IF (p == proc) THEN
119
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)
126
127 ixfem = iparg(54,ng)
128 IF (ixfem == 0 .AND. flag_xfem == 1) cycle
129
130 igtyp = elbuf%IGTYP
131 ixfem = elbuf%IXFEM
132 nel = elbuf%NEL
133 idrape = elbuf%IDRAPE
134
135 npt = elbuf%NLAY*elbuf%NPTR*elbuf%NPTS*elbuf%NPTT
136
137
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
153
154
155
156 buflen = iparg
157 ALLOCATE (rbuf_l(buflen), stat=err)
158
159
160
161
162
163
164
165
166
167 gbuf => elbuf_tab(ng)%GBUF
168
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
190
191
192 rbuf_l(1:buflen) = zero
193 l_rel = 0
194
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
215
216
217
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
223
224
225
226 sum = l_rel
227
228 IF (debug_print == 1) THEN
229 print*,' NPAR_TAB=',sum
230 ENDIF
231
232 DO il = 1,elbuf%NLAY
233 bufly => elbuf_tab(ng)%BUFLY(il)
234
235
236
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
265
266
267 IF (debug_print == 1) THEN
268 print*,' ** LAYER=',il
269 print*,' NPAR_LAY=', l_rel-sum
270 iad = l_rel
271 ENDIF
272
273
274
275
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
288
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
313
314
315 IF (debug_print == 1) THEN
316 print*,' NVAR_LAY=', l_rel-iad
317 iad = l_rel
318 ENDIF
319
320
321
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
387
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
514
515 IF (debug_print == 1) THEN
516 print*,' NVAR_LOC=', l_rel-iad
517 iad = l_rel
518 ENDIF
519
520
521
522
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 IF(idrape == 0 .OR.(idrape > 0 .AND. 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
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 IF (igtyp /= 51 .AND. 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
554
555
556
557 ENDIF
558
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
569
570
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
576
577 sum = l_rel
578
579
580
581
582
583
584 IF (igtyp == 51 .OR. igtyp == 52) THEN
585 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
586 ELSE
587 nptt = elbuf_tab(ng)%NPTT
588 ENDIF
589
590 DO i = 1,elbuf%NPTR
591 DO j = 1,elbuf%NPTS
592
593 DO k = 1,nptt
594 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(i,j,k)
595
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
600
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
727
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 IF(idrape > 0 .AND. (igtyp == 51 .OR. 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
745
746 IF (debug_print == 1) THEN
747 print*,' LOCAL VARS (LBUF TABLES)=', l_rel-iad
748 iad = l_rel
749 ENDIF
750
751
752
753
754 DO il = 1,elbuf%NLAY
755 bufly => elbuf_tab(ng)%BUFLY(il)
756 nuvar = bufly%NVAR_MAT
757 IF (igtyp == 51 .OR. 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
764
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
772
773 IF (debug_print == 1) THEN
774 print*,' MAT UVAR=', l_rel-iad
775 iad = l_rel
776 ENDIF
777
778
779
780
781 DO il = 1,elbuf%NLAY
782 bufly => elbuf_tab(ng)%BUFLY(il)
783 nfail = bufly%NFAIL
784 IF (igtyp == 51 .OR. 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
803
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
822
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
842
843 IF (debug_print == 1) THEN
844 print*,' FAIL UVAR=', l_rel-iad
845 iad = l_rel
846 ENDIF
847
848
849
850
851 DO il = 1,elbuf%NLAY
852 bufly => elbuf_tab(ng)%BUFLY(il)
853 nuvar = bufly%NVAR_VISC
854 IF(nuvar>0) THEN
855 IF (igtyp == 51 .OR. 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
870
871 IF (debug_print == 1) THEN
872 print*,' VISC UVAR=', l_rel-iad
873 iad = l_rel
874 ENDIF
875
876
877
878 IF ((ity==3).OR.(ity==7)) THEN
879 IF ((inloc>0).AND.(elbuf%NPTT>1)) THEN
880
881 IF (elbuf%NPTT>2) THEN
882 nonl = elbuf%NPTT+1
883 ELSE
884 nonl = elbuf%NPTT
885 ENDIF
886
887 DO ir = 1,elbuf%NPTR
888 DO is = 1,elbuf%NPTS
889
890 bufnl => elbuf_tab(ng)%NLOC(ir,is)
891 DO i = 1,nel
892
893 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%MASSTH(i,1:nonl)
894 l_rel = l_rel + nonl
895
896 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%UNLTH(i,1:nonl)
897 l_rel = l_rel + nonl
898
899 rbuf_l(l_rel+1:l_rel+nonl) = bufnl%VNLTH(i
900 l_rel = l_rel + nonl
901
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 ELSEIF ((ity == 1).AND.(elbuf_tab(ng)%NLAY>1)) THEN
909 IF (inloc>0) THEN
910
911 nonl = elbuf%NLAY+1
912
913 DO ir = 1,elbuf%NPTR
914 DO is = 1,elbuf%NPTS
915
916 bufnlts => elbuf_tab(ng)%NLOCTS(ir,is)
917 DO i = 1,nel
918
919 rbuf_l(l_rel+1:l_rel+nonl
920 l_rel = l_rel + nonl
921
922 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%UNLTH(i,1:nonl)
923 l_rel = l_rel + nonl
924
925 rbuf_l(l_rel+1:l_rel+nonl) = bufnlts%VNLTH(i,1:nonl)
926 l_rel = l_rel + nonl
927
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
935
936 IF (debug_print == 1) THEN
937 print*,' NLOC UVAR=', l_rel-iad
938 iad = l_rel
939 ENDIF
940
941
942
943
944
945
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 IF (igtyp == 51 .OR. 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
964 ENDDO
965
966 IF (debug_print == 1) THEN
967 print*,' EOS UVAR=', l_rel-iad
968 iad = l_rel
969 ENDIF
970
971 sum = l_rel
972
973
974
975
976 l_eps = 3
977 l_sig = 3
978 ly_eint = 1
979 ly_count= 1
980
981 DO il = 1,elbuf%NINTLAY
982 intlay => elbuf_tab(ng)%INTLAY(il)
983
984
985
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
996
997
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
1003
1004 DO i = 1,elbuf%NPTR
1005 DO j = 1,elbuf%NPTS
1006 ilbuf => elbuf_tab(ng)%INTLAY(il)%ILBUF(i,j)
1007
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
1015
1016
1017
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
1028
1029
1030
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
1053
1054 IF (debug_print == 1) THEN
1055 print*,' TOTAL INTERLAYER=', l_rel-sum
1056 iad = l_rel
1057 ENDIF
1058
1059
1060
1061
1062
1063 gbuf => elbuf_tab(ng)%GBUF
1064
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
1100
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
1106
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
1136
1137
1138
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
1179
1180
1181
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
1191
1192 g_betaorth = gbuf%G_BETAORTH
1193
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
1200
1201
1202 sum = l_rel
1203
1204
1205 rbuf_l(l_rel+1) = gbuf%NVAR_GLOB
1206 l_rel = l_rel + 1
1207
1208
1209
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
1272
1273 rbuf_l(l_rel+1) = g_forpgpinch
1274 l_rel = l_rel + 1
1275 rbuf_l(l_rel+1) =
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
1283
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
1338
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
1351
1352
1353
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
1432
1433
1434
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
1455
1456
1457
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
1470
1471 IF (debug_print == 1) THEN
1472 print*,' NVAR_GLOB=',gbuf%NVAR_GLOB,l_rel-sum
1473 iad = l_rel
1474 ENDIF
1475
1476
1477 sum = l_rel
1478
1479
1480
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
1535
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
1548
1549 IF (debug_print == 1) THEN
1550 print*,' COMMON GLOB=', l_rel-sum
1551 iad = l_rel
1552 ENDIF
1553
1554
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
1565
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
1576
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
1584
1585 IF (debug_print == 1) THEN
1586 print*,' GLOB NPG > 1 =', l_rel-iad
1587 iad = l_rel
1588 ENDIF
1589
1590
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
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
1636
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
1639
1640
1641
1642 IF(igtyp == 3 .and. 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
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
1697 l_rel = l_rel +nel*g_v_repcvt
1698 rbuf_l(l_rel+1:l_rel+nel*g_vr_repcvt) = gbuf%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
1703 l_rel = l_rel +nel*g_nuvarn
1704 rbuf_l(l_rel+1:l_rel+nel*g_defini) = gbuf%DEFINI(1:nel
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
1720
1721
1722 IF (igtyp == 3 .and. 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
1732
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
1751
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(
1765 l_rel = l_rel + nel*lf_off
1766 END IF
1767
1768
1769
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
1788
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
1795
1796
1797
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
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
1814
1815 IF (debug_print == 1) THEN
1816 print*,' TOTAL GLOB VARS =', l_rel-sum
1817 iad = l_rel
1818 ENDIF
1819
1820
1822 IF( sdp_rbuf >0)THEN
1824 DEALLOCATE(dp_rbuf)
1825 ENDIF
1826
1827 DEALLOCATE (rbuf_l)
1828
1829 len_am = len_am + l_rel
1830 ENDIF
1831 ENDIF
1832 ENDDO
1833
1834 RETURN
subroutine write_db(a, n)
subroutine write_dpdb(a, n)