34 . ELBUF_TAB ,IGEO ,IPARG , IXS ,IXC ,IXTG ,
35 . FLAG_XFEM ,IXT ,IXP ,IXR ,KXX )
46#include "implicit_f.inc"
55#include "tablen_c.inc"
59 INTEGER IPARG(NPARG,NGROUP),(NPROPGI,NUMGEO),IXS(NIXS,NUMELS),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),FLAG_XFEM,
60 . IXT(NIXT,NUMELT),IXP(NIXP,NUMELP),IXR(,NUMELR),KXX(NIXX,*)
61 TYPE(elbuf_struct_),
TARGET ,
DIMENSION(NGROUP) :: ELBUF_TAB
65 INTEGER I,J,K,IL,IR,IS,IT,NG,BUFLEN,IRUPT,IPID,IMID,IPRT,
66 . NEL,NPT,NPG,MLW,ISORTH,ISRATE,ISROT,IREP,ISVIS,NLAY,
67 . istra,ifail,nfail,ngfail,ieos,ixfem,nptr,npts,nptt,ishplyxfem,
68 . nft,nft0,kfts,ity,jale,off,ismstr,icpre,nsg,icnod,isnod,jeul,
69 . jtur,jthe,jlag,irs,ire,icstr,nvc,jmult,iadm1,iadm2,iadm3,
70 . mmat1,mmat2,mmat3,jhbe,jivf,jpor,ipla,proc,jclos,codconv,
71 . iint,jcvt,icsen,ilev,iexpan,igre,jsms,maxflay,ivisc,law_vis,
72 . nuvarm,nuvarv,igtyp,tshell,tsh_ort,lintloc,
73 . npar_lay,npar_tab,npar_lbuf,nintlay,limat,
74 . lifail,lloc,lfail,lvisc,lmat,lporo,leos,nctrl,
76 . ipmat,nuvarn,law,iboltp,inloc
77 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: IMAT
78 TYPE(ELBUF_STRUCT_),
POINTER :: ELBUF
79 TYPE(buf_lay_) ,
POINTER :: BUFLY
80 TYPE(buf_intlay_) ,
POINTER :: INTLAY
81 TYPE(g_bufel_) ,
POINTER :: GBUF
82 TYPE(l_bufel_) ,
POINTER :: LBUF
83 TYPE(buf_intloc_) ,
POINTER :: ILBUF
84 TYPE(fail_loc_) ,
POINTER ::
123 codconv = iparg(34,ng)
129 israte = iparg(40,ng)
131 isorth = iparg(42,ng)
136 iexpan = iparg(49,ng)
137 ishplyxfem = iparg(50,ng)
151 isubstack = iparg(71,ng)
152 iboltp = iparg(72,ng)
172 IF (ixfem == 0 .AND. flag_xfem == 1) cycle
174 IF (ity == 1 .OR. ity == 2 .OR. ity == 51 .OR. ity == 101 )
THEN
178 IF (igtyp==20 .OR. igtyp==21 .OR. igtyp==22 .OR. isnod == 16) tshell = 1
179 IF (igtyp==21 .OR. igtyp==22) tsh_ort = 1
184 ELSEIF (npt == 1)
THEN
197 ELSEIF (tshell == 1)
THEN
199 nptt = mod(npt/10,10)
206 ELSEIF (jhbe == 14)
THEN
211 IF (tsh_ort == 0)
THEN
214 ELSEIF (icstr == 1)
THEN
219 ELSEIF (icstr == 100)
THEN
232 ELSEIF (jhbe==16)
THEN
234 npts = mod(npt/10,10)
247 IF (jhbe == 16 .AND. isnod == 20)
THEN
249 npts = mod(npt/10,10)
251 ELSEIF (jhbe == 14)
THEN
253 nptt = mod(abs(npt)/10,10)
254 nptr = mod(abs(npt),10)
255 ELSEIF (jhbe == 12)
THEN
260 ELSEIF (jhbe == 17)
THEN
269 IF (n2d > 0 .AND. (jhbe == 17.OR.jhbe == 22))
THEN
277 CALL deallocate_one_element_group(elbuf_tab,nlay,nptr,npts,nptt,nintlay,nel,npt,ng,ngroup,ity,igtyp)
280 nuvarm = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
281 nuvarv = elbuf_tab(ng)%BUFLY(il)%NVAR_VISC
282 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
286 lmat = lmat + nuvarm*nel
287 lvisc = lvisc + nuvarv*nel
289 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
290 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
291 IF(
ASSOCIATED(floc%DAM))
DEALLOCATE(floc%DAM)
292 IF(
ASSOCIATED(floc%DAMMX))
DEALLOCATE(floc%DAMMX)
293 IF(
ASSOCIATED(floc%DAMINI))
DEALLOCATE(floc%DAMINI)
294 IF(
ASSOCIATED(floc%TDEL))
DEALLOCATE(floc%TDEL)
295 IF(
ASSOCIATED(floc%INDX))
DEALLOCATE(floc%INDX)
296 IF(
ASSOCIATED(floc%OFF))
DEALLOCATE(floc%OFF)
298 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR)
299 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng
300 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC)
301 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VAR)
302 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VARTMP))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%EOS(ir,is,it)%VARTMP)
309 bufly => elbuf_tab(ng)%BUFLY(il)
310 IF(
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%LBUF)
311 IF(
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
312 IF(
ASSOCIATED(bufly%FAIL))
DEALLOCATE(bufly%FAIL)
313 IF(
ASSOCIATED(bufly%PROP))
DEALLOCATE(bufly%PROP)
314 IF(
ASSOCIATED(bufly%EOS))
DEALLOCATE(bufly%EOS)
315 IF(
ASSOCIATED(bufly%VISC))
DEALLOCATE(bufly%VISC)
316 IF(
ASSOCIATED(bufly%PORO))
DEALLOCATE(bufly%PORO)
319 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY))
DEALLOCATE(elbuf_tab(ng)%INTLAY)
320 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)
323 ELSEIF (ity == 3 .OR. ity == 7)
THEN
328 ELSEIF (ity == 7)
THEN
334 IF (ity == 3 .and. jhbe == 11)
THEN
337 ELSEIF (ity==7 .and. jhbe == 30)
THEN
344 IF (igtyp == 10 .or. igtyp == 11 .or. igtyp == 16 .or. igtyp == 17 .or. igtyp == 51 .or. igtyp
THEN
351 IF (igtyp == 17 .and. ishplyxfem ==
352 IF (ity == 7 .AND. mlw == 151)
THEN
358 IF (igtyp == 51 .OR. igtyp == 52)
THEN
369 nuvarm = elbuf_tab(ng)%INTLAY(il)%NVAR_MAT
370 nfail = elbuf_tab(ng)%INTLAY(il)%NFAIL
375 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
376 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
379 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY(il)%MAT(ir,is)%VAR))
DEALLOCATE(elbuf_tab(ng)%INTLAY(il)%MAT(ir
380 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY(il)%FAIL(ir,is)%FLOC))
DEALLOCATE(elbuf_tab(ng)%INTLAY(il)%FAIL(ir,is)%FLOC)
386 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
387 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
392 floc=>elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC(j)
393 IF(
ASSOCIATED(floc%VAR))
DEALLOCATE(floc%VAR)
394 IF(
ASSOCIATED(floc%DAM))
DEALLOCATE(floc%DAM)
395 IF(
ASSOCIATED(floc%DAMMX))
DEALLOCATE(floc%DAMMX)
396 IF(
ASSOCIATED(floc%DAMINI))
DEALLOCATE(floc%DAMINI)
397 IF(
ASSOCIATED(floc%TDEL))
DEALLOCATE(floc%TDEL)
398 IF(
ASSOCIATED(floc%INDX))
DEALLOCATE(floc%INDX)
399 IF(
ASSOCIATED(floc%OFF))
DEALLOCATE(floc%OFF)
401 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR)
402 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%VISC(ir,is,it)%VAR)
403 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)%FLOC))
DEALLOCATE(elbuf_tab(ng)%BUFLY(il
410 intlay => elbuf_tab(ng)%INTLAY(i)
411 IF(
ASSOCIATED(intlay%ILBUF))
DEALLOCATE(intlay%ILBUF)
412 IF(
ASSOCIATED(intlay%MAT))
DEALLOCATE(intlay%MAT)
413 IF(
ASSOCIATED(intlay%FAIL))
DEALLOCATE(intlay%FAIL)
416 IF(
ASSOCIATED(elbuf_tab(ng)%INTLAY))
DEALLOCATE(elbuf_tab(ng)%INTLAY)
419 bufly => elbuf_tab(ng)%BUFLY(i)
421 IF(
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%LBUF)
422 IF(
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
423 IF(
ASSOCIATED(bufly%FAIL))
DEALLOCATE(bufly%FAIL)
424 IF(
ASSOCIATED(bufly%PROP))
DEALLOCATE(bufly%PROP)
425 IF(
ASSOCIATED(bufly%EOS))
DEALLOCATE(bufly%EOS)
426 IF(
ASSOCIATED(bufly%VISC))
DEALLOCATE(bufly%VISC)
427 IF(
ASSOCIATED(bufly%PORO))
DEALLOCATE(bufly%PORO)
430 IF(
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)
433 IF ((inloc>0).AND.(nptt>1))
THEN
437 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%MASSTH))
438 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%MASSTH)
439 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%UNLTH))
440 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%UNLTH)
441 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%VNLTH))
442 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%VNLTH)
443 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC(ir,is)%FNLTH))
444 *
DEALLOCATE(elbuf_tab(ng)%NLOC(ir,is)%FNLTH)
447 IF(
ASSOCIATED(elbuf_tab(ng)%NLOC))
DEALLOCATE(elbuf_tab(ng)%NLOC)
452 ELSEIF (ity == 4 .OR. ity == 5 .OR. ity == 6 .OR. ity == 100)
THEN
457 ELSEIF (ity == 5)
THEN
460 ELSEIF (ity == 6)
THEN
462 ELSEIF (ity == 100)
THEN
468 igtyp = igeo(11,ipid)
471 gbuf => elbuf_tab(ng)%GBUF
474 . nel ,npt ,ng ,ngroup,ity, igtyp
481 nuvarm = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
482 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
487 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR))
488 .
DEALLOCATE(elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR)
495 bufly => elbuf_tab(ng)%BUFLY(il)
497 IF (
ASSOCIATED(bufly%LBUF))
DEALLOCATE(bufly%MAT)
498 IF (
ASSOCIATED(bufly%MAT))
DEALLOCATE(bufly%MAT)
501 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY)
DEALLOCATE
505 IF (
ASSOCIATED(elbuf_tab(ng)%BUFLY))
DEALLOCATE(elbuf_tab(ng)%BUFLY)