34 . ELBUF_TAB ,IGEO ,IPARG , IXS ,IXC ,IXTG ,
35 . FLAG_XFEM ,IXT ,IXP ,IXR ,KXX )
42 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
47#include "implicit_f.inc"
56#include "tablen_c.inc"
60 INTEGER IPARG(NPARG,NGROUP),IGEO(NPROPGI,NUMGEO),IXS(NIXS,NUMELS),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),FLAG_XFEM,
61 . IXT(NIXT,NUMELT),IXP(NIXP,NUMELP),IXR(NIXR,NUMELR),KXX(NIXX,*)
62 TYPE(elbuf_struct_),
TARGET ,
DIMENSION(NGROUP) :: ELBUF_TAB
66 INTEGER I,J,K,IL,IR,IS,IT,NG,BUFLEN,IRUPT,IPID,IMID,IPRT,
67 . NEL,NPT,NPG,MLW,ISORTH,ISRATE,ISROT,IREP,ISVIS,NLAY,
68 . istra,ifail,nfail,ngfail,ieos,ixfem,nptr,npts,nptt,ishplyxfem,
69 . nft,nft0,kfts,ity,jale,off,ismstr,icpre,nsg,icnod,isnod,jeul,
70 . jtur,jthe,jlag,irs,ire,icstr,nvc,jmult,iadm1,iadm2,iadm3,
71 . mmat1,mmat2,mmat3,jhbe,jivf,jpor,ipla,proc,jclos,codconv,
72 . iint,jcvt,icsen,ilev,iexpan,igre,jsms,maxflay,ivisc,law_vis,
73 . nuvarm,nuvarv,igtyp,tshell,tsh_ort,lintloc,
74 . npar_lay,npar_tab,npar_lbuf,nintlay,limat,
75 . lifail,lloc,lfail,lvisc,lmat,lporo,leos,nctrl,
77 . ipmat,nuvarn,law,iboltp,inloc
78 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IMAT
79 TYPE(ELBUF_STRUCT_),
POINTER :: ELBUF
80 TYPE(buf_lay_) ,
POINTER :: BUFLY
81 TYPE(buf_intlay_) ,
POINTER :: INTLAY
82 TYPE(g_bufel_) ,
POINTER :: GBUF
83 TYPE(l_bufel_) ,
POINTER :: LBUF
84 TYPE(buf_intloc_) ,
POINTER :: ILBUF
85 TYPE(fail_loc_) ,
POINTER :: FLOC
124 codconv = iparg(34,ng)
130 israte = iparg(40,ng)
132 isorth = iparg(42,ng)
137 iexpan = iparg(49,ng)
138 ishplyxfem = iparg(50,ng)
152 isubstack = iparg(71,ng)
153 iboltp = iparg(72,ng)
173 IF (ixfem == 0 .AND. flag_xfem == 1) cycle
175 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR. ity == 101 )
THEN
179 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22 .OR. isnod == 16) tshell = 1
180 IF (igtyp==21 .OR. igtyp==22) tsh_ort = 1
185 ELSEIF (npt == 1)
THEN
198 ELSEIF (tshell == 1)
THEN
200 nptt = mod(npt/10,10)
207 ELSEIF (jhbe == 14)
THEN
212 IF (tsh_ort == 0)
THEN
215 ELSEIF (icstr == 1)
THEN
220 ELSEIF (icstr == 100)
THEN
233 ELSEIF (jhbe==16)
THEN
235 npts = mod(npt/10,10)
248 IF (jhbe == 16 .AND. isnod == 20)
THEN
250 npts = mod(npt/10,10)
252 ELSEIF (jhbe == 14)
THEN
254 nptt = mod(abs(npt)/10,10)
255 nptr = mod(abs(npt),10)
256 ELSEIF (jhbe == 12)
THEN
261 ELSEIF (jhbe == 17)
THEN
270 IF (n2d > 0 .AND. (jhbe == 17.OR.jhbe == 22))
THEN
278 CALL deallocate_one_element_group(elbuf_tab,nlay,nptr,npts,nptt,nintlay,nel,npt,ng,ngroup,ity,igtyp)
281 nuvarm = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
282 nuvarv = elbuf_tab(ng)%BUFLY(il)%NVAR_VISC
283 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
287 lmat = lmat + nuvarm*nel
288 lvisc = lvisc + nuvarv*nel
290 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
291 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
292 IF(
ASSOCIATED(floc%DAM))
DEALLOCATE(floc%DAM)
293 IF(
ASSOCIATED(floc%DAMMX))
DEALLOCATE(floc%DAMMX)
294 IF(
ASSOCIATED(floc%DAMINI))
DEALLOCATE(floc%DAMINI)
295 IF(
ASSOCIATED(floc%TDEL))
DEALLOCATE(floc%TDEL)
296 IFASSOCIATED(floc%INDX))
DEALLOCATE(floc%INDX)
297 IF(
ASSOCIATED(floc%OFF))
DEALLOCATE(floc%OFF)
299 IF(
ASSOCIATEDDEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR)
300 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR)
301 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC)
302 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VAR)
303 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VARTMP))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VARTMP)
310 bufly => elbuf_tab(ng)%BUFLY(il)
311 IF(
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%LBUF)
312 IF(
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
313 IF(
ASSOCIATED(bufly%FAIL))
DEALLOCATE(bufly%FAIL)
314 IF(
ASSOCIATED(bufly%PROP))
DEALLOCATE(bufly%PROP)
315 IF(
ASSOCIATED(bufly%EOS))
DEALLOCATE(bufly%EOS)
316 IF(
ASSOCIATED(bufly%VISC))
DEALLOCATE(bufly%VISC)
317 IF(
ASSOCIATED(bufly%PORO))
DEALLOCATE(bufly%PORO)
320 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY))
DEALLOCATE(elbuf_tab(ng)%INTLAY)
321 IF(
ASSOCIATED(elbuf_tab
DEALLOCATE(elbuf_tab(ng)%BUFLY)
324 ELSEIF (ity == 3 .OR. ity == 7)
THEN
329 ELSEIF (ity == 7)
THEN
335 IF (ity == 3 .and. jhbe == 11)
THEN
338 ELSEIF (ity==7 .and. jhbe == 30)
THEN
345 IF (igtyp == 10 .or. igtyp == 11 .or. igtyp == 16 .or. igtyp == 17 .or. igtyp == 51 .or. igtyp == 52)
THEN
352 IF (igtyp == 17 .and. ishplyxfem == 1) nintlay = nlay-1
353 IF (ity == 7 .AND. mlw == 151)
THEN
359 IF (igtyp == 51 .OR. igtyp == 52)
THEN
367 CALL deallocate_one_element_group(elbuf_tab,nlay,nptr,npts,nptt,nintlay,nel,npt,ng,ngroup,ity,igtyp)
370 nuvarm = elbuf_tab(ng)%INTLAY(il)%NVAR_MAT
371 nfail = elbuf_tab(ng)%INTLAY(il)%NFAIL
376 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
377 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
380 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY(il)%MAT(ir,is)%VAR))
DEALLOCATE(elbuf_tab(ng)%INTLAY(il)%MAT(ir,is)%VAR)
381 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY(il)%FAIL(ir,is)%FLOC))
DEALLOCATE(elbuf_tab(ng)%INTLAY(il)%FAIL(ir,is)%FLOC)
387 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
388 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
393 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
394 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
395 IF(
ASSOCIATED(floc%DAM))
DEALLOCATE(floc%DAM)
396 IF(
ASSOCIATED(floc%DAMMX))
DEALLOCATE(floc%DAMMX)
397 IF(
ASSOCIATED(floc%DAMINI))
DEALLOCATE(floc%DAMINI)
398 IF(
ASSOCIATED(floc%TDEL))
DEALLOCATE(floc%TDEL)
399 IF(
ASSOCIATED(floc%INDX))
DEALLOCATE(floc%INDX)
400 IF(
ASSOCIATED(floc%OFF))
DEALLOCATE(floc%OFF)
402 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR)
403 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR)
404 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC))
DEALLOCATE
411 intlay => elbuf_tab(ng)%INTLAY(i)
412 IF(
ASSOCIATED(intlay%ILBUF))
DEALLOCATE(intlay%ILBUF)
413 IF(
ASSOCIATED(intlay%MAT))
DEALLOCATE(intlay%MAT)
414 IF(
ASSOCIATED(intlay%FAIL))
DEALLOCATE(intlay%FAIL)
417 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY))
DEALLOCATE(elbuf_tab(ng)%INTLAY)
420 bufly => elbuf_tab(ng)%BUFLY(i)
422 IF(
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%LBUF)
423 IF(
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
424 IF(
ASSOCIATED(bufly%FAIL))
DEALLOCATE(bufly%FAIL)
425 IF(
ASSOCIATED(bufly%PROP))
DEALLOCATE(bufly%PROP)
426 IF(
ASSOCIATED(bufly%EOS))
DEALLOCATE(bufly%EOS)
427 IF(
ASSOCIATED(bufly%VISC))
DEALLOCATE(bufly%VISC)
428 IF(
ASSOCIATED(bufly%PORO))
DEALLOCATE(bufly%PORO)
431 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)
434 IF ((inloc>0).AND.(nptt>1))
THEN
438 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%MASSTH))
439 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%MASSTH)
440 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%UNLTH))
441 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%UNLTH)
442 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%VNLTH))
443 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%VNLTH)
444 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%FNLTH))
445 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%FNLTH)
448 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC))
DEALLOCATE(elbuf_tab(ng)%NLOC)
453 ELSEIF (ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100)
THEN
458 ELSEIF (ity == 5)
THEN
461 ELSEIF (ity == 6)
THEN
463 ELSEIF (ity == 100)
THEN
469 igtyp = igeo(11,ipid)
472 gbuf => elbuf_tab(ng)%GBUF
475 . nel ,npt ,ng ,ngroup,ity, igtyp)
482 nuvarm = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
483 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
488 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it
489 .
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir
496 bufly => elbuf_tab(ng)%BUFLY(il)
498 IF (
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%MAT)
499 IF (
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
502 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)
506 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)