35
36
37
38 USE my_alloc_mod
39 USE elbufdef_mod
42
43
44
45#include "implicit_f.inc"
46
47
48
49 INTEGER ,INTENT(IN) :: NPROPM
50 INTEGER ,INTENT(IN) :: NUMMAT
51 INTEGER NLAY,NINTLAY,NPTR,NPTS,NPTT,NEL,NPT,NG,NGROUP,ITY,IGTYP
52 TYPE(ELBUF_STRUCT_),TARGET ,DIMENSION(NGROUP) ::
54
55
56
57 INTEGER I,J,IL,IR,IS,IT,Stat,,ILAYER,IPT,IMAT,
58 . LEN1,LEN2,LEN_PLAPT,LEN_SIGPT,NPTTOT,IDRAPE
60 TYPE(BUF_MAT_) , POINTER :: MATBUF
61 TYPE(BUF_LAY_) , POINTER :: BUFLY
62 TYPE(BUF_INTLAY_) , POINTER :: INTLAY
63 TYPE(BUF_VISC_) , POINTER :: VISCBUF
64 TYPE(G_BUFEL_) , POINTER :: GBUF
65 TYPE(L_BUFEL_) , POINTER :: LBUF
66 TYPE(BUF_INTLOC_) , POINTER :: ILBUF
67 TYPE(FAIL_LOC_) , POINTER :: FLOC
68 TYPE (L_BUFEL_DIR_), POINTER :: LBUF_DIR
69
70 stat = 0
71 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR. ity == 101) THEN
72 npg = nptr*npts*nptt
73 npttot = npt
74 ELSEIF (ity == 3 .OR. ity == 7) THEN
75 npg = nptr*npts
76 npttot = 0
77 DO i=1,nlay
78 npttot = npttot + npg*elbuf_tab(ng)%BUFLY(i)%NPTT
79 ENDDO
80 IF (npt == 0) npttot = npt
81 ELSE
82 npg = 0
83 npttot = 0
84 ENDIF
85 idrape = elbuf_tab(ng)%IDRAPE
86
87
88
89 DO i = 1, nlay
90 bufly => elbuf_tab(ng)%BUFLY(i)
91
92 CALL my_alloc(bufly%DMG,nel*bufly%LY_DMG)
93 bufly%DMG = zero
94 CALL my_alloc(bufly%GAMA,nel*bufly%LY_GAMA
95 bufly%GAMA = zero
96 IF(idrape == 0 .OR. (idrape >0 .AND. igtyp == 17)) THEN
97 CALL my_alloc(bufly%DIRA,nel*bufly%LY_DIRA)
98 bufly%DIRA = zero
99 CALL my_alloc(bufly%DIRB,nel*bufly%LY_DIRB)
100 bufly%DIRB = zero
101 ENDIF
102 CALL my_alloc(bufly%CRKDIR,nel*bufly%LY_CRKDIR)
103 bufly%CRKDIR = zero
104 CALL my_alloc(bufly%OFFPG,nel*bufly%LY_OFFPG)
105 bufly%OFFPG = 1
106 CALL my_alloc(bufly%OFF,nel*bufly%LY_OFF)
107 bufly%OFF = 1
108
109 IF (npg > 1) THEN
110 IF (nlay > 1) THEN
111 len_plapt = nel*bufly%LY_PLAPT
112 len_sigpt = nel*bufly%LY_SIGPT
113 ELSE
114 IF (igtyp /= 51 .AND. igtyp /= 52 ) THEN
115 len_plapt = nel*bufly%LY_PLAPT*npt
116 len_sigpt = nel*bufly%LY_SIGPT*npt
117 ELSE
118 len_plapt = nel*bufly%LY_PLAPT*bufly%NPTT
119 len_sigpt = nel*bufly%LY_SIGPT*bufly%NPTT
120 ENDIF
121 ENDIF
122 CALL my_alloc(bufly%PLAPT,len_plapt)
123 bufly%PLAPT = zero
124 CALL my_alloc(bufly%SIGPT,len_sigpt)
125 bufly%SIGPT = zero
126 ELSEIF (npg == 1) THEN
127
128
129
130 ENDIF
131
132 CALL my_alloc(bufly%HOURG,nel*bufly%LY_HOURG)
133 bufly%HOURG = zero
134 CALL my_alloc(bufly%UELR,nel*bufly%LY_UELR
135 bufly%UELR = zero
136 CALL my_alloc(bufly%UELR1,nel*bufly%LY_UELR1)
137 bufly%UELR1 = zero
138 ENDDO
139
140
141
142
143 idrape = elbuf_tab(ng)%IDRAPE
144 DO i = 1, nlay
145 bufly => elbuf_tab(ng)%BUFLY(i)
146 imat = elbuf_tab(ng)%BUFLY(i)%IMAT
147 IF (igtyp == 51 .OR. igtyp == 52) THEN
148 nptt = bufly%NPTT
149 ELSE
150 nptt = elbuf_tab(ng)%NPTT
151 ENDIF
152 DO ir = 1,nptr
153 DO is = 1,npts
154 DO it = 1,nptt
155 lbuf => elbuf_tab(ng)%BUFLY(i)%LBUF(ir,is,it)
156
157 CALL my_alloc(lbuf%OFF,nel*bufly%L_OFF)
158 lbuf%OFF = one
159 CALL my_alloc (lbuf%GAMA,nel*bufly%L_GAMA)
160 lbuf%GAMA = zero
161 CALL my_alloc(lbuf%STRA,nel*bufly%L_STRA)
162 lbuf%STRA = zero
163 CALL my_alloc(lbuf%FRAC,nel*bufly%L_FRAC)
164 lbuf%FRAC = zero
165 CALL my_alloc(lbuf%BFRAC,nel*bufly%L_BFRAC)
166 lbuf%BFRAC = zero
167 CALL my_alloc(lbuf%EINT,nel*bufly%L_EINT)
168 lbuf%EINT = zero
169 CALL my_alloc(lbuf%EINS,nel*bufly%L_EINS)
170 lbuf%EINS = zero
171 CALL my_alloc(lbuf%RHO,nel*bufly%L_RHO)
172 lbuf%RHO = zero
173 CALL my_alloc(lbuf%DP_DRHO,nel)
174 lbuf%DP_DRHO = zero
175 CALL my_alloc(lbuf%QVIS,nel*bufly%L_QVIS)
176 lbuf%QVIS = zero
177 CALL my_alloc(lbuf%DELTAX,nel*bufly%L_DELTAX)
178 lbuf%DELTAX = zero
179 CALL my_alloc(lbuf%VOL,nel*bufly%L_VOL)
180 lbuf%VOL = zero
181 CALL my_alloc(lbuf%EPSA,nel*bufly%L_EPSA)
182 lbuf%EPSA = zero
183 CALL my_alloc(lbuf%EPSD,nel*bufly%L_EPSD)
184 lbuf%EPSD = zero
185 CALL my_alloc(lbuf%EPSQ,nel*bufly%L_EPSQ)
186 lbuf%EPSQ = zero
187 CALL my_alloc(lbuf%EPSF,nel*bufly%L_EPSF)
188 lbuf%EPSF = zero
189 CALL my_alloc(lbuf%PLA,nel*bufly%L_PLA)
190 lbuf%PLA = zero
191 CALL my_alloc(lbuf%WPLA,nel*bufly%L_WPLA)
192 lbuf%WPLA = zero
193 CALL my_alloc(lbuf%TEMP,nel*bufly%L_TEMP)
194 lbuf%TEMP =
min(bufly%L_TEMP,1) * pm(79,imat)
195 CALL my_alloc(lbuf%TB,nel*bufly%L_TB)
196 lbuf%TB = -ep21
197 CALL my_alloc(lbuf%RK,nel*bufly%L_RK)
198 lbuf%RK = zero
199 CALL my_alloc(lbuf%RE,nel*bufly%L_RE)
200 lbuf%RE = zero
201 CALL my_alloc(lbuf%VK,nel*bufly%L_VK)
202 lbuf%VK = zero
203 CALL my_alloc(lbuf%SF,nel*bufly%L_SF)
204 lbuf%SF = zero
205 CALL my_alloc(lbuf%ROB,nel*bufly%L_ROB)
206 lbuf%ROB = zero
207 CALL my_alloc(lbuf%DAM,nel*bufly%L_DAM)
208 lbuf%DAM = zero
209 CALL my_alloc(lbuf%DSUM,nel*bufly%L_DSUM)
210 lbuf%DSUM = zero
211 CALL my_alloc(lbuf%DGLO,nel*bufly%L_DGLO)
212 lbuf%DGLO = zero
213 CALL my_alloc(lbuf%CRAK,nel*bufly%L_CRAK)
214 lbuf%CRAK = zero
215 CALL my_alloc(lbuf%EPE,nel*bufly%L_EPE)
216 lbuf%EPE = zero
217 CALL my_alloc(lbuf%ANG,nel*bufly%L_ANG)
218 lbuf%ANG = zero
219 CALL my_alloc(lbuf%EPC,nel*bufly%L_EPC)
220 lbuf%EPC = zero
221 CALL my_alloc(lbuf%XST,nel*bufly%L_XST)
222 lbuf%XST = zero
223 CALL my_alloc(lbuf%SSP,nel*bufly%L_SSP)
224 lbuf%SSP = zero
225 CALL my_alloc(lbuf%Z,nel*bufly%L_Z)
226 lbuf%Z = zero
227 CALL my_alloc(lbuf%VISC,nel*bufly%L_VISC)
228 lbuf%VISC = zero
229 CALL my_alloc(lbuf%SIGL,nel*bufly%L_SIGL)
230 lbuf%SIGL = zero
231 CALL my_alloc(lbuf%SIGV,nel*bufly%L_SIGV)
232 lbuf%SIGV = zero
233 CALL my_alloc(lbuf%SIGA,nel*bufly%L_SIGA)
234 lbuf%SIGA = zero
235 CALL my_alloc(lbuf%SIGB,nel*bufly%L_SIGB)
236 lbuf%SIGB = zero
237 CALL my_alloc(lbuf%SIGC,nel*bufly%L_SIGC)
238 lbuf%SIGC = zero
239 CALL my_alloc(lbuf%SIGD,nel*bufly%L_SIGD)
240 lbuf%SIGD = zero
241 CALL my_alloc(lbuf%SIGF,nel*bufly%L_SIGF)
242 lbuf%SIGF = zero
243 CALL my_alloc(lbuf%SIG,nel*bufly%L_SIG)
244 lbuf%SIG = zero
245 CALL my_alloc(lbuf%SIGPLY,nel*bufly%L_SIGPLY)
246 lbuf%SIGPLY = zero
247 CALL my_alloc(lbuf%FOR,nel*bufly%L_FOR)
248 lbuf%FOR = zero
249 CALL my_alloc(lbuf%MOM,nel*bufly%L_MOM)
250 lbuf%MOM = zero
251 CALL my_alloc(lbuf%THK,nel*bufly%L_THK)
252 lbuf%THK = zero
253 CALL my_alloc(lbuf%SMSTR,nel*bufly%L_SMSTR)
254 lbuf%SMSTR = zero
255 CALL my_alloc(lbuf%DMG,nel*bufly%L_DMG)
256 lbuf%DMG = zero
257 CALL my_alloc(lbuf%FORTH,nel*bufly%L_FORTH)
258 lbuf%FORTH = zero
259 CALL my_alloc(lbuf%EINTTH,nel*bufly%L_EINTTH)
260 lbuf%EINTTH = zero
261 CALL my_alloc(lbuf%SEQ,nel*bufly%L_SEQ)
262 lbuf%SEQ = zero
263 CALL my_alloc(lbuf%JAC_I,nel*bufly%L_JAC_I)
264 lbuf%JAC_I = zero
265 CALL my_alloc(lbuf%FAC_YLD,nel*bufly%L_FAC_YLD)
266 lbuf%FAC_YLD = one
267 CALL my_alloc(lbuf%ABURN,nel*bufly%L_ABURN)
268 lbuf%ABURN = zero
269 CALL my_alloc(lbuf%MU,nel*bufly%L_MU)
270 lbuf%MU = zero
271 CALL my_alloc(lbuf%PLANL,nel*bufly%L_PLANL)
272 lbuf%PLANL = zero
273 CALL my_alloc(lbuf%EPSDNL,nel*bufly%L_EPSDNL)
274 lbuf%EPSDNL = zero
275 CALL my_alloc(lbuf%DMGSCL,nel*bufly%L_DMGSCL)
276 lbuf%DMGSCL = one
277 CALL my_alloc(lbuf%TSAIWU,nel*bufly%L_TSAIWU)
278 lbuf%TSAIWU = zero
279
280 CALL my_alloc(lbuf%PIJ,nel*bufly%L_PIJ)
281 lbuf%PIJ = zero
282
283 CALL my_alloc(lbuf%VOL0DP,nel)
284 lbuf%VOL0DP = zero
285 ENDDO
286 ENDDO
287 ENDDO
288 IF ( idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52)) THEN
289 DO it= 1,nptt
290 lbuf_dir
291 CALL my_alloc(lbuf_dir%DIRA,nel*bufly%LY_DIRA)
292 lbuf_dir%DIRA = zero
293 CALL my_alloc(lbuf_dir%DIRB,nel*bufly%LY_DIRB)
294 lbuf_dir%DIRB
295 ENDDO
296 ENDIF
297 ENDDO
298
299
300
301
302 DO i = 1, nlay
303 bufly => elbuf_tab(ng)%BUFLY(i)
304 IF (npg == 1) THEN
305 ilayer = i
306 IF (nlay > 1) THEN
307 IF (igtyp == 51 .OR. igtyp == 52) THEN
308 nptt = bufly%NPTT
309 DO it=1,nptt
310 lbuf => elbuf_tab(ng)%BUFLY(ilayer)%LBUF(1,1,it)
311 bufly%PLAPT(1:nel*bufly%LY_PLAPT) => lbuf%PLA
312 bufly%SIGPT(1:nel*bufly%LY_SIGPT) => lbuf%SIG
313 ENDDO
314 ELSE
315 lbuf => elbuf_tab(ng)%BUFLY(ilayer)%LBUF(1,1,1)
316 bufly%PLAPT(1:nel*bufly%LY_PLAPT) => lbuf%PLA
317 bufly%SIGPT(1:nel*bufly%LY_SIGPT) => lbuf%SIG
318 ENDIF
319 ELSE
320 IF (igtyp == 51 .OR. igtyp == 52) THEN
321 nptt = bufly%NPTT
322 DO ipt = 1,nptt
323 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,ipt)
324 len1 = 1+(ipt-1)*nel*bufly%LY_PLAPT
325 len2 = ipt*nel*bufly%LY_PLAPT
326 bufly%PLAPT(len1:len2) => lbuf%PLA
327 len1 = 1+(ipt-1)*nel*bufly%LY_SIGPT
328 len2 = ipt*nel*bufly%LY_SIGPT
329 bufly%SIGPT(len1:len2) => lbuf%SIG
330 ENDDO
331 ELSE
332 DO ipt = 1,npt
333 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,ipt)
334 len1 = 1+(ipt-1)*nel*bufly%LY_PLAPT
335 len2 = ipt*nel*bufly%LY_PLAPT
336 bufly%PLAPT(len1:len2) => lbuf%PLA(1:nel*bufly%L_PLA)
337 len1 = 1+(ipt-1)*nel*bufly%LY_SIGPT
338 len2 = ipt*nel*bufly%LY_SIGPT
339 bufly%SIGPT(len1:len2) => lbuf%SIG
340 ENDDO
341 ENDIF
342 ENDIF
343 ENDIF
344 ENDDO
345
346
347
348 DO i = 1, nintlay
349 intlay => elbuf_tab(ng)%INTLAY(i)
350 CALL my_alloc(elbuf_tab(ng)%INTLAY(i)%EINT,nel)
351 elbuf_tab(ng)%INTLAY(i)%EINT = zero
352 CALL my_alloc(elbuf_tab(ng)%INTLAY(i)%COUNT,nel)
353 elbuf_tab(ng)%INTLAY(i)%COUNT = zero
354
355 DO ir = 1,nptr
356 DO is = 1,npts
357 ilbuf => elbuf_tab(ng)%INTLAY(i)%ILBUF(ir,is)
358 CALL my_alloc(ilbuf%EPS,nel*3)
359 ilbuf%EPS = zero
360 CALL my_alloc (ilbuf%SIG,nel*3)
361 ilbuf%SIG = zero
362 ENDDO
363 ENDDO
364 ENDDO
365
366
367
368 gbuf => elbuf_tab(ng)%GBUF
369 CALL my_alloc(gbuf%NOFF,nel*gbuf%G_NOFF)
370 elbuf_tab(ng)%GBUF%NOFF = 0
371 CALL my_alloc(gbuf%IERR,nel*gbuf%G_IERR)
372 elbuf_tab(ng)%GBUF%IERR = 0
373 CALL my_alloc(gbuf%GAMA,nel*gbuf%G_GAMA)
374 elbuf_tab(ng)%GBUF%GAMA = zero
375 CALL my_alloc(gbuf%SMSTR,nel*gbuf%G_SMSTR)
376 elbuf_tab(ng)%GBUF%SMSTR = zero
377 CALL my_alloc(gbuf%HOURG,nel*gbuf%G_HOURG)
378 elbuf_tab(ng)%GBUF%HOURG = zero
379 CALL my_alloc(gbuf%TAG22,nel*gbuf%G_TAG22)
380 elbuf_tab(ng)%GBUF%TAG22 = zero
381 CALL my_alloc(gbuf%STRA,nel*gbuf%G_STRA)
382 elbuf_tab(ng)%GBUF%STRA = zero
383 CALL my_alloc(gbuf%STRW,nel*gbuf%G_STRW)
384 elbuf_tab(ng)%GBUF%STRW = zero
385 CALL my_alloc(gbuf%SIGI,nel*gbuf%G_SIGI)
386 elbuf_tab(ng)%GBUF%SIGI = zero
387 CALL my_alloc(gbuf%DMG,nel*gbuf%G_DMG)
388 elbuf_tab(ng)%GBUF%DMG = zero
389 CALL my_alloc(gbuf%UELR,nel*gbuf%G_UELR)
390 elbuf_tab(ng)%GBUF%UELR = zero
391 CALL my_alloc(gbuf%UELR1,nel*gbuf%G_UELR1)
392 elbuf_tab(ng)%GBUF%UELR1 = zero
393 CALL my_alloc(gbuf%DAMDL,nel*gbuf%G_DAMDL)
394 elbuf_tab(ng)%GBUF%DAMDL = zero
395 CALL my_alloc(gbuf%FOR,nel*gbuf%G_FOR)
396 elbuf_tab(ng)%GBUF%FOR = zero
397 CALL my_alloc(gbuf%MOM,nel*gbuf%G_MOM)
398 elbuf_tab(ng)%GBUF%MOM = zero
399 CALL my_alloc(gbuf%THK,nel*gbuf%G_THK)
400 elbuf_tab(ng)%GBUF%THK = zero
401 CALL my_alloc(gbuf%THK_I,nel*gbuf%G_THK_I)
402 elbuf_tab(ng)%GBUF%THK_I = zero
403 CALL my_alloc(gbuf%JAC_I,nel*gbuf%G_JAC_I)
404 elbuf_tab(ng)%GBUF%JAC_I = zero
405 CALL my_alloc(gbuf%DT,nel*gbuf%G_DT)
406 elbuf_tab(ng)%GBUF%DT = zero
407 CALL my_alloc(gbuf%ISMS,nel*gbuf%G_ISMS)
408 elbuf_tab(ng)%GBUF%ISMS = 0
409 CALL my_alloc(gbuf%STRHG,nel*gbuf%G_STRHG)
410 elbuf_tab(ng)%GBUF%STRHG = zero
411 CALL my_alloc(gbuf%BPRELD,nel*gbuf%G_BPRELD)
412 elbuf_tab(ng)%GBUF%BPRELD = zero
413 CALL my_alloc(gbuf%COR_NF,nel*gbuf%G_COR_NF)
414 elbuf_tab(ng)%GBUF%COR_NF = zero
415 CALL my_alloc(gbuf%COR_FR,nel*gbuf%G_COR_FR)
416 elbuf_tab(ng)%GBUF%COR_FR = zero
417 CALL my_alloc(gbuf%COR_XR,nel*gbuf%G_COR_XR)
418 elbuf_tab(ng)%GBUF%COR_XR = zero
419 CALL my_alloc(gbuf%MAXFRAC,nel*gbuf%G_MAXFRAC)
420 elbuf_tab(ng)%GBUF%MAXFRAC = zero
421 CALL my_alloc(gbuf%MAXEPS,nel*gbuf%G_MAXEPS)
422 elbuf_tab(ng)%GBUF%MAXEPS = zero
423 CALL my_alloc(gbuf%GAMA_R,nel*gbuf%G_GAMA_R)
424 elbuf_tab(ng)%GBUF%GAMA_R = zero
425
426 CALL my_alloc(gbuf%BETAORTH,nel*gbuf%G_BETAORTH)
427 elbuf_tab(ng)%GBUF%BETAORTH= zero
428 CALL my_alloc(gbuf%AMU,nel*gbuf%G_AMU)
429 elbuf_tab(ng)%GBUF%AMU = zero
430 CALL my_alloc(gbuf%SH_IOFFSET,nel*gbuf%G_SH_IOFFSET)
431 elbuf_tab(ng)%GBUF%SH_IOFFSET = 0
432 CALL my_alloc(gbuf%EINT_DISTOR,nel*gbuf%G_EINT_DISTOR)
433 elbuf_tab(ng)%GBUF%EINT_DISTOR = zero
434 CALL my_alloc(gbuf%FOR_G,nel*gbuf%G_FOR_G)
435 elbuf_tab(ng)%GBUF%FOR_G = zero
436
437
438 IF (npg == 1) THEN
439 elbuf_tab(ng)%GBUF%FORPG => gbuf%FOR
440 elbuf_tab(ng)%GBUF%MOMPG => gbuf%MOM
441
442
443
444
445
446
447
448 elbuf_tab
449 IF (gbuf%G_STRPGTHEN
450 elbuf_tab(ng)%GBUF%STRPG => gbuf%STRA
451 ELSE
452 CALL my_alloc(elbuf_tab(ng)%GBUF%STRPG,nel*gbuf%G_STRPG)
453 elbuf_tab(ng)%GBUF%STRPG = zero
454 END IF
455 elbuf_tab(ng)%GBUF%FORPG_G=> gbuf%FOR_G
456 ELSEIF (npg > 1) THEN
457 CALL my_alloc(elbuf_tab(ng)%GBUF%FORPG,nel*gbuf%G_FORPG)
458 elbuf_tab(ng)%GBUF%FORPG = zero
459 CALL my_alloc(elbuf_tab
460 elbuf_tab(ng)%GBUF%MOMPG = zero
461
462 CALL my_alloc(elbuf_tab(ng)%GBUF%FORPGPINCH,nel*gbuf%G_FORPGPINCH)
463 elbuf_tab(ng)%GBUF%FORPGPINCH = zero
464 CALL my_alloc(elbuf_tab(ng)%GBUF%MOMPGPINCH,nel*gbuf%G_MOMPGPINCH)
465 elbuf_tab(ng)%GBUF%MOMPGPINCH = zero
466 CALL my_alloc(elbuf_tab(ng)%GBUF%EPGPINCHXZ,nel*gbuf%G_EPGPINCHXZ)
467 elbuf_tab(ng)%GBUF%EPGPINCHXZ = zero
468 CALL my_alloc(elbuf_tab(ng)%GBUF%EPGPINCHYZ,nel*gbuf%G_EPGPINCHYZ)
469 elbuf_tab(ng)%GBUF%EPGPINCHYZ = zero
470 CALL my_alloc(elbuf_tab(ng)%GBUF%EPGPINCHZZ,nel*gbuf%G_EPGPINCHZZ)
471 elbuf_tab(ng)%GBUF%EPGPINCHZZ = zero
472
473 CALL my_alloc(elbuf_tab(ng)%GBUF%STRPG,nel*gbuf%G_STRPG)
474 elbuf_tab(ng)%GBUF%STRPG = zero
475 CALL my_alloc(elbuf_tab(ng)%GBUF%STRWPG
476 elbuf_tab(ng)%GBUF%STRWPG = zero
477 CALL my_alloc(elbuf_tab(ng)%GBUF%FORPG_G,nel*gbuf%G_FORPG_G)
478 elbuf_tab(ng)%GBUF%FORPG_G = zero
479 ENDIF
480
481
482
483 IF (npttot == 1) THEN
484
485
486 elbuf_tab(ng)%GBUF%BFRAC => lbuf%BFRAC
487 elbuf_tab(ng)%GBUF%OFF => lbuf%OFF
488 elbuf_tab(ng)%GBUF%EINT => lbuf%EINT
489 elbuf_tab(ng)%GBUF%EINS => lbuf%EINS
490 elbuf_tab(ng)%GBUF%RHO => lbuf%RHO
491 elbuf_tab(ng)%GBUF%QVIS => lbuf%QVIS
492 elbuf_tab(ng)%GBUF%DELTAX => lbuf%DELTAX
493 elbuf_tab(ng)%GBUF%VOL => lbuf%VOL
494 elbuf_tab(ng)%GBUF%EPSD => lbuf%EPSD
495 elbuf_tab(ng)%GBUF%EPSQ => lbuf%EPSQ
496 elbuf_tab(ng)%GBUF%PLA => lbuf%PLA
497 elbuf_tab(ng)%GBUF%WPLA => lbuf%WPLA
498 elbuf_tab(ng)%GBUF%TEMP => lbuf%TEMP
499 elbuf_tab(ng)%GBUF%TB => lbuf%TB
500 elbuf_tab(ng)%GBUF%RK => lbuf%RK
501 elbuf_tab(ng)%GBUF%RE => lbuf%RE
502 elbuf_tab(ng)%GBUF%SIG => lbuf%SIG
503 elbuf_tab(ng)%GBUF%FORTH => lbuf%FORTH
504 elbuf_tab(ng)%GBUF%EINTTH => lbuf%EINTTH
505 elbuf_tab(ng)%GBUF%SEQ => lbuf%SEQ
506 elbuf_tab(ng)%GBUF%ABURN => lbuf%ABURN
507 elbuf_tab(ng)%GBUF%MU => lbuf%MU
508 ELSE
509 CALL my_alloc(elbuf_tab(ng)%GBUF%BFRAC,nel*gbuf%G_BFRAC)
510 elbuf_tab(ng)%GBUF%BFRAC = zero
511 CALL my_alloc(elbuf_tab(ng)%GBUF%OFF,nel*gbuf%G_OFF)
512 elbuf_tab(ng)%GBUF%OFF = one
513 CALL my_alloc(elbuf_tab(ng)%GBUF%EINT,nel*gbuf%G_EINT)
514 elbuf_tab(ng)%GBUF%EINT = zero
515 CALL my_alloc(elbuf_tab(ng)%GBUF%EINS,nel*gbuf%G_EINS)
516 elbuf_tab(ng)%GBUF%EINS = zero
517 CALL my_alloc(elbuf_tab(ng)%GBUF%RHO,nel*gbuf%G_RHO)
518 elbuf_tab(ng)%GBUF%RHO = zero
519 CALL my_alloc(elbuf_tab(ng)%GBUF%QVIS,nel*gbuf%G_QVIS)
520 elbuf_tab(ng)%GBUF%QVIS = zero
521 CALL my_alloc(elbuf_tab(ng)%GBUF%DELTAX,nel*gbuf%G_DELTAX)
522 elbuf_tab(ng)%GBUF%DELTAX = zero
523 CALL my_alloc(elbuf_tab(ng)%GBUF%VOL,nel*gbuf%G_VOL)
524 elbuf_tab(ng)%GBUF%VOL = zero
525 CALL my_alloc(elbuf_tab(ng)%GBUF%EPSD,nel*gbuf%G_EPSD)
526 elbuf_tab(ng)%GBUF%EPSD = zero
527 CALL my_alloc(elbuf_tab(ng)%GBUF%EPSQ,nel*gbuf%G_EPSQ)
528 elbuf_tab(ng)%GBUF%EPSQ = zero
529 CALL my_alloc(elbuf_tab(ng)%GBUF%PLA,nel*gbuf%G_PLA)
530 elbuf_tab(ng)%GBUF%PLA = zero
531 CALL my_alloc(elbuf_tab(ng)%GBUF%WPLA,nel*gbuf%G_WPLA)
532 elbuf_tab(ng)%GBUF%WPLA = zero
533 CALL my_alloc(elbuf_tab(ng)%GBUF%TEMP,nel*gbuf%G_TEMP)
534 elbuf_tab(ng)%GBUF%TEMP = zero
535 CALL my_alloc(elbuf_tab(ng)%GBUF%TB
536 elbuf_tab(ng)%GBUF%TB = -ep21
537 CALL my_alloc
538 elbuf_tab(ng)%GBUF%RK = zero
539 CALL my_alloc(elbuf_tab(ng)%GBUF%RE,nel
540 elbuf_tab(ng)%GBUF%RE = zero
541 CALL my_alloc(elbuf_tab(ng)%GBUF%SIG,nel*gbuf%G_SIG)
542 elbuf_tab(ng)%GBUF%SIG = zero
543 CALL my_alloc(elbuf_tab(ng)%GBUF%FORTH,nel*gbuf%G_FORTH)
544 elbuf_tab(ng)%GBUF%FORTH = zero
545 CALL my_alloc(elbuf_tab(ng)%GBUF%EINTTH,nel*gbuf%G_EINTTH)
546 elbuf_tab(ng)%GBUF%EINTTH = zero
547 CALL my_alloc(elbuf_tab(ng)%GBUF%SEQ,nel*gbuf%G_SEQ)
548 elbuf_tab(ng)%GBUF%SEQ = zero
549 CALL my_alloc(elbuf_tab(ng)%GBUF%ABURN,nel*gbuf%G_ABURN)
550 elbuf_tab(ng)%GBUF%ABURN = zero
551 CALL my_alloc(elbuf_tab(ng)%GBUF%MU,nel*gbuf%G_MU)
552 elbuf_tab(ng)%GBUF%MU = zero
553 ENDIF
554
555 ALLOCATE(elbuf_tab(ng)%GBUF%FILL(nel*gbuf%G_FILL),stat=stat)
556 elbuf_tab(ng)%GBUF%FILL = one
557
558
559
560
561 IF(igtyp == 3 .and. ity == 5) THEN
562 ALLOCATE (gbuf%DMGSCL(nel*gbuf%G_DMGSCL) ,stat=stat)
563 gbuf%DMGSCL = one
564 ENDIF
565 ALLOCATE (gbuf%AREA(nel*gbuf%G_AREA) ,stat=stat)
566 gbuf%AREA = zero
567 ALLOCATE (gbuf%SKEW(nel*gbuf%G_SKEW) ,stat=stat)
568 gbuf%SKEW = zero
569 ALLOCATE (gbuf%LENGTH(nel*gbuf%G_LENGTH) ,stat=stat)
570 gbuf%LENGTH = zero
571 ALLOCATE (gbuf%TOTDEPL(nel*gbuf%G_TOTDEPL) ,stat=stat)
572 gbuf%TOTDEPL = zero
573 ALLOCATE (gbuf%TOTROT(nel*gbuf%G_TOTROT) ,stat=stat
574 gbuf%TOTROT = zero
575 ALLOCATE (gbuf%FOREP(nel*gbuf%G_FOREP) ,stat=stat)
576 gbuf%FOREP = zero
577 ALLOCATE (gbuf%MOMEP(nel*gbuf%G_MOMEP) ,stat=stat)
578 gbuf%MOMEP = zero
579 ALLOCATE (gbuf%DEP_IN_TENS
580 gbuf%DEP_IN_TENS = zero
581 ALLOCATE (gbuf%DEP_IN_COMP(nel*gbuf%G_DEP_IN_COMP) ,stat=stat)
582 gbuf%DEP_IN_COMP = zero
583 ALLOCATE (gbuf%ROT_IN_TENS(nel*gbuf%G_ROT_IN_TENS) ,stat=stat)
584 gbuf%ROT_IN_TENS = zero
585 ALLOCATE (gbuf%ROT_IN_COMP(nel*gbuf%G_ROT_IN_COMP) ,stat=stat)
586 gbuf%ROT_IN_COMP = zero
587 ALLOCATE (gbuf%POSX(nel*gbuf%G_POSX) ,stat=stat)
588 gbuf%POSX = zero
589 ALLOCATE (gbuf%POSY(nel*gbuf%G_POSY) ,stat=stat)
590 gbuf%POSY = zero
591 ALLOCATE (gbuf%POSZ(nel*gbuf%G_POSZ)
592 gbuf%POSZ = zero
593 ALLOCATE (gbuf%POSXX(nel*gbuf%G_POSXX)
594 gbuf%POSXX = zero
595 ALLOCATE (gbuf%POSYY(nel*gbuf%G_POSYY)
596 gbuf%POSYY = zero
597 ALLOCATE (gbuf%POSZZ(nel*gbuf%G_POSZZ) ,stat=stat)
598 gbuf%POSZZ = zero
599 ALLOCATE (gbuf%YIELD(nel*gbuf%G_YIELD) ,stat=stat)
600 gbuf%YIELD = zero
601 ALLOCATE (gbuf%LENGTH_ERR(nel*gbuf%G_LENGTH_ERR) ,stat=stat)
602 gbuf%LENGTH_ERR = zero
603 ALLOCATE (gbuf%DV(nel*gbuf%G_DV) ,stat=stat)
604 gbuf%DV = zero
605 ALLOCATE (gbuf%DFS(nel*gbuf%G_DFS) ,stat=stat)
606 gbuf%DFS = zero
607 ALLOCATE (gbuf%SKEW_ERR(nel*gbuf%G_SKEW_ERR) ,stat=stat)
608 gbuf%SKEW_ERR = zero
609 ALLOCATE (gbuf%E6(nel*gbuf%G_E6) ,stat=stat)
610 gbuf%E6 = zero
611 ALLOCATE (gbuf%RUPTCRIT(nel*gbuf%G_RUPTCRIT) ,stat=stat)
612 gbuf%RUPTCRIT = zero
613 ALLOCATE (gbuf%MASS(nel*gbuf%G_MASS) ,stat=stat)
614 gbuf%MASS = zero
615 ALLOCATE (gbuf%V_REPCVT(nel*gbuf%G_V_REPCVT) ,stat=stat)
616 gbuf%V_REPCVT = zero
617 ALLOCATE (gbuf%VR_REPCVT(nel*gbuf%G_VR_REPCVT) ,stat=stat)
618 gbuf%VR_REPCVT = zero
619 ALLOCATE (gbuf%VAR(nel*gbuf%G_NUVAR) ,stat=stat)
620 gbuf%VAR = zero
621 ALLOCATE (gbuf%VARN(nel*gbuf%G_NUVARN) ,stat=stat)
622 gbuf%VARN = zero
623 ALLOCATE (gbuf%DEFINI(nel*gbuf%G_DEFINI)
624 gbuf%DEFINI = zero
625 ALLOCATE (gbuf%FORINI(nel*gbuf%G_FORINI) ,stat=stat)
626 gbuf%FORINI = zero
627 ALLOCATE (gbuf%INIFRIC(nel*gbuf%G_INIFRIC) ,stat=stat)
628 gbuf%INIFRIC = zero
629
630 ALLOCATE (gbuf%DT_PITER(nel*gbuf%G_DT_PITER) ,stat=stat)
631 gbuf%DT_PITER = zero
632 ALLOCATE (gbuf%IDT_TSH(nel*gbuf%G_IDT_TSH) ,stat=stat)
633 gbuf%IDT_TSH = 1
634
635 IF (npg == 1) THEN
636 elbuf_tab(ng)%GBUF%TEMPG => gbuf%TEMP
637 ELSEIF (npg > 1) THEN
638 CALL my_alloc(elbuf_tab(ng)%GBUF%TEMPG,nel*gbuf%G_TEMPG)
639 elbuf_tab(ng)%GBUF%TEMPG = zero
640 ENDIF
641
642 ALLOCATE (gbuf%SKEW_ID(nel*gbuf%G_SKEW_ID) ,stat=stat)
643 gbuf%SKEW_ID = 0
644 ALLOCATE (gbuf%YIELD_IN_COMP(nel*gbuf%G_YIELD_IN_COMP) ,stat=stat)
645 gbuf%YIELD_IN_COMP = zero
646 ALLOCATE (gbuf%XXOLD_IN_COMP(nel*gbuf%G_XXOLD_IN_COMP) ,stat=stat)
647 gbuf%XXOLD_IN_COMP = zero
648
649
650
651 ALLOCATE (gbuf%SLIPRING_ID(nel*gbuf%G_SLIPRING_ID) ,stat=stat)
652 gbuf%SLIPRING_ID = 0
653 ALLOCATE (gbuf%SLIPRING_FRAM_ID(nel*gbuf%G_SLIPRING_FRAM_ID) ,stat=stat)
654 gbuf%SLIPRING_FRAM_ID = 0
655 ALLOCATE (gbuf%SLIPRING_STRAND(nel*gbuf%G_SLIPRING_STRAND) ,stat=stat)
656 gbuf%SLIPRING_STRAND = 0
657 ALLOCATE (gbuf%RETRACTOR_ID(nel*gbuf%G_RETRACTOR_ID) ,stat=stat)
658 gbuf%RETRACTOR_ID = 0
659 ALLOCATE (gbuf%RINGSLIP(nel*gbuf%G_RINGSLIP) ,stat=stat)
660 gbuf%RINGSLIP = zero
661 ALLOCATE (gbuf%ADD_NODE(nel*gbuf%G_ADD_NODE) ,stat=stat)
662 gbuf%ADD_NODE = 0
663 ALLOCATE (gbuf%UPDATE(nel*gbuf%G_UPDATE) ,stat=stat)
664 gbuf%UPDATE = 0
665 ALLOCATE (gbuf%FRAM_FACTOR(nel*gbuf%G_FRAM_FACTOR) ,stat=stat)
666 gbuf%FRAM_FACTOR = zero
667 ALLOCATE (gbuf%INTVAR(nel*gbuf%G_INTVAR) ,stat=stat)
668 gbuf%INTVAR = zero
669
670
671
672 ALLOCATE (gbuf%TM_YIELD(nel*gbuf%G_TM_YIELD) ,stat=stat)
673 gbuf%TM_YIELD = zero
674 ALLOCATE (gbuf%TM_SEQ(nel*gbuf%G_TM_SEQ) ,stat=stat
675 gbuf%TM_SEQ = zero
676 ALLOCATE (gbuf%TM_EINT(nel*gbuf%G_TM_EINT) ,stat=stat)
677 gbuf%TM_EINT = zero
678 ALLOCATE (gbuf%TM_DMG(nel*gbuf%G_TM_DMG) ,stat=stat
679 gbuf%TM_DMG = zero
680 ALLOCATE (gbuf%TM_SIG1(nel*gbuf%G_TM_SIG) ,stat=stat)
681 gbuf%TM_SIG1 = zero
682 ALLOCATE (gbuf%TM_STRA1(nel*gbuf%G_TM_STRA) ,stat
683 gbuf%TM_STRA1 = zero
684 ALLOCATE (gbuf%TM_SIG3(nel*gbuf%G_TM_SIG) ,stat=stat)
685 gbuf%TM_SIG3 = zero
686 ALLOCATE (gbuf%TM_STRA3(nel*gbuf%G_TM_STRA
687 gbuf%TM_STRA3 = zero
688
689 IF (stat /= 0) THEN
690 CALL ancmsg(msgid=727,msgtype
'ELEMENT BUFFER')
691 ENDIF
692
693
694
695 RETURN
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)