41 . IXC , IXTG , MASS ,PM ,EL2FA,
42 . NBF , IADP , NBF_L,EHOUR,ANIM ,
43 . NBPART,IADG , IPM ,IGEO ,THKE ,
44 . ERR_THK_SH4,ERR_THK_SH3,MAT_PARAM,
45 . NBF_PXFEMG ,X, STACK)
58#include "implicit_f.inc"
62#include "vect01_c.inc"
72 INTEGER IPARG(NPARG,*),IXC(NIXC,*),IXTG(NIXTG,*),EL2FA(*),
73 . IFUNC,NBF,NBF_L, NBPART,NBF_PXFEMG,
74 . IADP(*),IADG(NSPMD,*),IPM(NPROPMI,*),
78 . func(*), mass(*) , geo(npropg,*),
79 . ehour(*),anim(*),pm(npropm,*),thke(*),
80 . err_thk_sh4(*), err_thk_sh3(*), x(3,*)
81 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
82 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
83 TYPE (STACK_PLY) :: STACK
90 . off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE,
91 . a1,b1,b2,b3,yeq,f1,m1,m2,m3, fac, dam1(mvsiz),dam2(mvsiz),
92 . wpla(mvsiz), dmax(mvsiz),wpmax(mvsiz),
93 . fail(mvsiz),sige(mvsiz,5)
94 INTEGER I, NG, NEL, ISS, ISC,N, J, MLW, NUVAR, IUS,
95 . ISTRAIN,NN, K1, K2,JTURB,MT,IMID, IALEL,IPID,
96 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,NF,
98 . OFFSET,K,II,II_L,INC,KK,IHBE,
99 . nptm,npg, nbvu, i1, mpt, nel5, nel8,
100 . ipt,buf,nptr,npts,nptt,nlay,ir,is,ptf,lenf,il,
101 . iadr,ipmat,pid(mvsiz),mat(mvsiz),matly(mvsiz*100),
102 . nel_ply,ilayer,iflag,jj(5)
103 INTEGER IE,ISHPLYXFEM,IP,JPID,IPPID,IPLY0,ILAST,ION,NUVARV,
104 . IVISC,IPMAT_IPLY,NUVARD,MAT_IPLY,
105 . MATPLY,LL,IPLYC,I3,I2
106 INTEGER PLYS,IPLY,PLYELEMS(NUMELC),,NS1,MATL,
107 . IIGEO,IADI,ISUBSTACK
109 TYPE(G_BUFEL_) ,
POINTER :: GBUF
110 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
111 TYPE(l_bufel_) ,
POINTER :: LBUF
112 TYPE(BUF_INTLAY_) ,
POINTER :: INTLAY
113 TYPE(buf_intloc_) ,
POINTER :: ILBUF
114 TYPE(buf_fail_) ,
POINTER :: FBUF
116 .
DIMENSION(:),
POINTER :: uvar
117 REAL,
DIMENSION(:),
ALLOCATABLE:: WAL
119 CALL my_alloc(wal,nbf_l)
144 2 mlw ,nel ,nft ,iad ,ity ,
147 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
148 6 irep ,iint ,igtyp ,israt ,isrot ,
149 7 icsen ,isorth ,isorthg ,ifailure,jsms)
150 DO offset = 0,nel-1,nvsiz
151 nft = iparg(3,ng) + offset
153 llt =
min(nvsiz,nel-offset)
154 ishplyxfem = iparg(50,ng)
155 isubstack = iparg(71,ng)
159 IF (ishplyxfem > 0 .AND.(ity == 3.OR.ity == 7))
THEN
160 gbuf => elbuf_tab(ng)%GBUF
164 nptr = elbuf_tab(ng)%NPTR
165 npts = elbuf_tab(ng)%NPTS
166 nptt = elbuf_tab(ng)%NPTT
167 nlay = elbuf_tab(ng)%NLAY
168 nintlay = elbuf_tab(ng)%NINTLAY
194 IF (ilayer > 0) iflag = 1
197 IF (iflag == 0)
GO TO 900
221 bufly => elbuf_tab(ng)%BUFLY(ilayer)
222 lbuf => elbuf_tab(ng)%BUFLY(ilayer)%LBUF(1,1,1)
225 IF (npg > 1 .and. bufly%LY_PLAPT > 0)
THEN
226 evar(i) = abs(bufly%PLAPT(i))
227 ELSEIF (npg == 1 .and. bufly%L_PLA > 0)
THEN
228 evar(i) = abs(lbuf%PLA(i))
232 ELSEIF (ifunc == 3)
THEN
239 ELSEIF(ifunc == 5)
THEN
245 ELSEIF(ifunc == 7)
THEN
255 bufly => elbuf_tab(ng)%BUFLY(ilayer)
258 lbuf => bufly%LBUF(ir,is,1)
259 s1 = s1 + lbuf%SIG(i )/npg
260 s2 = s2 + lbuf%SIG(nel + i)/npg
261 s12= s12 + lbuf%SIG(2*nel + i)/npg
264 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
265 evar(i) = sqrt(vonm2)
269 ELSEIF (ifunc == 11)
THEN
290 ELSEIF(ifunc == 12)
THEN
309 ELSEIF(ifunc == 13)
THEN
311 IF(mlw == 25.OR.mlw == 15)
THEN
319 ELSEIF (ifunc>=14.AND.ifunc<=15)
THEN
325 IF (mlw == 25.AND. irep == 1)
THEN
350 matl = stack%IGEO(ipmat+n,isubstack)
351 IF (mat_param(matl)%IVISC > 0 ) ivisc = 1
357 CALL sigrota(lft ,llt ,nft ,ilayer ,nel ,
358 2 ns1 ,x ,ixc ,elbuf_tab(ng) ,
359 3 sige ,ity ,ixtg ,ihbe ,istrain ,
362 evar(i) = sige(i,ifunc - 13)
364 ELSEIF (mlw == 25 .AND. irep == 0)
THEN
367 lenf = nel*gbuf%G_FORPG/npg
377 evar(i) = evar(i)+gbuf%FORPG(ptf+jj
388 evar(i) = evar(i)+gbuf%FORPG(jj(ius)+i)/npg
397 evar(i) = gbuf%FORPG(jj(ius)+i)
403 ELSEIF(ifunc>=17.AND.ifunc<=19)
THEN
410 IF (mlw == 25.AND. irep == 1)
THEN
435 matl = stack%IGEO(ipmat+n,isubstack)
436 IF (mat_param(matl)%IVISC > 0 ) ivisc = 1
443 CALL sigrota(lft ,llt ,nft ,ilayer ,nel ,
444 2 ns1 ,x ,ixc ,elbuf_tab(ng) ,
445 3 sige ,ity ,ixtg ,ihbe ,istrain
448 evar(i) = sige(i,ifunc - 14)
450 ELSEIF (mlw == 25 .AND. irep == 0)
THEN
475 ELSEIF(ifunc == 26)
THEN
479 ELSEIF(ifunc == 2155)
THEN
490 ELSEIF(ifunc>=20.AND.ifunc<=24)
THEN
496 . (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33))
THEN
499 IF (ity == 3.AND.ihbe == 11)
THEN
504 IF (ity == 7.AND.ihbe == 11)
THEN
515 igtyp = nint(geo(12,ixtg(6,nft+1)))
517 igtyp = nint(geo(12,ixc(6,nft+1)))
532 nuvar = elbuf_tab(ng)%BUFLY(ipt)%NVAR_MAT
536 uvar=>elbuf_tab(ng)%BUFLY(ipt)%MAT(ir,is,1)%VAR
537 evar(i) = evar(i) + uvar(i1 + i)*fac
544 ELSEIF (mlw == 29 .OR. mlw == 30.OR.
545 . mlw == 31.OR.mlw>=33)
THEN
550 IF (ipm(8,ixc(1,n))>ius)
THEN
555 ELSEIF(ifunc>=27.AND.ifunc<=39)
THEN
557 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33)
THEN
566 nuvar = elbuf_tab(ng)%BUFLY(ipt)%NVAR_MAT
571 uvar=>elbuf_tab(ng)%BUFLY(ipt)%MAT(ir,is,1)%VAR
572 evar(i) = evar(i) + uvar(i1 + i)*fac
581 ELSEIF((ifunc>=40.AND.ifunc<=2039).OR.
582 . (ifunc>=2240.AND.ifunc<=10139))
THEN
584 IF (ifunc>=40.AND.ifunc<=2039)
THEN
585 ius = (ifunc - 39)/100
587 ELSEIF (ifunc>=2240.AND.ifunc<=10139)
THEN
588 ius = ((ifunc - 2239)/100) +20
589 ipt = mod((ifunc - 2239), 100)
602 IF (mlw == 29.OR.mlw == 30.OR.mlw == 31.OR.mlw>=33)
THEN
605 IF (ity == 3.AND.ihbe == 11)
THEN
610 IF (ity == 7.AND.ihbe == 11)
THEN
619 nuvar =
max(nuvar,ipm(8,ixtg(1,nft+1)))
621 nuvar =
max(nuvar,ipm(8,ixc(1,nft+1)))
623 IF (nuvar>=ius.AND.npt>=ipt)
THEN
631 uvar=>elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,ipt)%VAR
632 evar(i) = evar(i) + uvar(i1 + i)*fac
641 ELSEIF (ifunc == 10240 .OR. ifunc == 10669)
THEN
645 IF (ifunc == 10240 )
THEN
650 IF(ilayer /= 0.AND. ilayer <= elbuf_tab(ng)%NINTLAY)
651 . nfail = elbuf_tab(ng)%INTLAY(ilayer)%NFAIL
652 IF (ilayer > 0 .AND. ilayer <= elbuf_tab(ng)%NINTLAY .AND. nfail > 0)
THEN
653 nuvar = elbuf_tab(ng)%INTLAY(ilayer)%FAIL(1,1)%FLOC(1)%NVAR
658 fbuf => elbuf_tab(ng)%INTLAY(ilayer)%FAIL(ir,is)
659 evar(i) =
min(evar(i), fbuf%FLOC(1)%VAR(i))
665 ELSEIF (ifunc == 10669 )
THEN
670 IF(ilayer /= 0.AND. ilayer <= elbuf_tab(ng)%NINTLAY)
671 . nfail = elbuf_tab(ng)%INTLAY(ilayer)%NFAIL
672 IF (ilayer > 0 .AND. ilayer <= elbuf_tab(ng)%NINTLAY .AND. nfail > 0)
THEN
673 nuvar = elbuf_tab(ng)%INTLAY(ilayer)%FAIL(1,1)%FLOC(1)%NVAR
677 fbuf => elbuf_tab(ng)%INTLAY(ilayer)%FAIL(ir,is)
678 evar(i) =
max(evar(i), fbuf%FLOC(1)%VAR(i))
687 ELSEIF((ifunc>=10241.AND.ifunc<=10243))
THEN
695 IF (ilayer > 0 .and. ilayer <= elbuf_tab(ng)%NINTLAY)
THEN
698 ilbuf => elbuf_tab(ng)%INTLAY(ilayer)%ILBUF(ir,is)
699 evar(i) = evar(i) + ilbuf%SIG(nel*(ll-1) + i) / npg
706 ELSEIF((ifunc>=10244.AND.ifunc<=10246))
THEN
714 IF(ilayer > 0 .and. ilayer <= elbuf_tab(ng)%NINTLAY)
THEN
717 ilbuf => elbuf_tab(ng)%INTLAY(ilayer)%ILBUF(ir,is)
718 evar(i) = evar(i) + ilbuf%EPS((i-1)*3 + ll) / npg
725 ELSEIF(ifunc == 10247)
THEN
731 IF(ilayer > 0 .and. ilayer <= elbuf_tab(ng)%NINTLAY)
THEN
732 evar(i) = elbuf_tab(ng)%INTLAY(ilayer)%EINT(i)
737 ELSEIF (ifunc == 2040)
THEN
746 bufly => elbuf_tab(ng)%BUFLY(il)
747 IF (bufly%L_PLA > 0)
THEN
749 evar(i) = abs(bufly%LBUF(1,1,ipt)%PLA(i))
757 ELSEIFTHEN ! epsp/lower
759 bufly => elbuf_tab(ng)%BUFLY(1)
760 IF (bufly%L_PLA > 0)
THEN
766 ELSEIF(ifunc>=2042.AND.ifunc<=2141)
THEN
769 ipt = mod((ifunc - 2041), 100)
770 IF(ipt == 0)ipt = 100
780 ELSE IF(npt == 0)
THEN
788 ELSE IF(ifunc == 2142)
THEN
842 IF(ifailure == 0 .OR.(ifailure /=0 .AND.ifaila ==1))
THEN
847 ELSEIF(off > zero)
THEN
857 ELSE IF(ifunc == 2156)
THEN
861 IF(mlw == 0 .OR. mlw == 13)
THEN
868 func(el2fa(nel_ply + ie)) = zero
872 ELSEIF(ifunc == 3)
THEN
882 func(el2fa(nel_ply + ie)) = zero
891 func(el2fa(nel_ply + ie)) = zero
895 ELSEIF(ifunc == 25.AND.ity == 3)
THEN
904 func(el2fa(nel_ply + ie)) = zero
917 func(el2fa(nel_ply + ie)) = evar(i)
932 ilast =
max(nel_ply,1)
934 n = el2fa(nel_ply + i)
940 n = el2fa(nel_ply + i)
941 wal(i+nel_ply) = func(n)
946 nel_ply = nel_ply +
plyshell(iply)%PLYNUMSHELL
subroutine resol(timers, element, nodes, coupling, af, iaf, iskwn, neth, ipart, nom_opt, kxx, ixx, ixtg, ixs, ixq, ixt, ixp, ixr, ifill, mat_elem, ims, npc, ibcl, ibfv, idum, las, laccelm, nnlink, lnlink, iparg, dd_iad, igrv, iexlnk, kinet, ipari, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, nodpor, monvol, ilink, llink, linale, neflsw, nnflsw, icut, cluster, itask, inoise, thke, damp, pm, skews, geo, eani, bufmat, bufgeo, bufsf, w, veul, fill, dfill, alph, wb, dsave, asave, msnf, tf, forc, vel, fsav, fzero, xlas, accelm, agrv, fr_wave, failwave, parts0, elbuf, rwbuf, sensors, rwsav, rby, rivet, secbuf, volmon, lambda, wa, fv, partsav, uwa, val2, phi, segvar, r, crflsw, flsw, fani, xcut, anin, tani, secfcum, bufnois, idata, rdata, iframe, kxsp, ixsp, nod2sp, ispsym, ispcond, xframe, spbuf, xspsym, vspsym, pv, fsavd, ibvel, lbvel, wasph, w16, isphio, lprtsph, lonfsph, vsphio, fbvel, lagbuf, ibcslag, iactiv, dampr, gjbufi, gjbufr, rbmpc, ibmpc, sphveln, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, npsegcom, lsegcom, nporgeo, ixtg1, npbyl, lpbyl, rbyl, igeo, ipm, madprt, madsh4, madsh3, madsol, madnod, madfail, iad_rby, fr_rby, fr_wall, iad_rby2, fr_rby2, iad_i2m, fr_i2m, addcni2, procni2, iadi2, fr_mv, iadmv2, fr_ll, fr_rl, iadcj, fr_cj, fr_sec, iad_sec, iad_cut, fr_cut, rg_cut, newfront, fr_mad, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, eigipm, eigibuf, eigrpm, lnodpor, fr_i18, graphe, iflow, rflow, lgrav, dd_r2r, fasolfr, fr_lagf, llagf, lprw, icontact, rcontact, sh4tree, sh3tree, ipadmesh, padmesh, msc, mstg, inc, intg, ptg, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, acontact, pcontact, factiv, sh4trim, sh3trim, mscnd, incnd, ibfflux, fbfflux, rbym, irbym, lnrbym, icodrbym, ibcv, fconv, ibftemp, fbftemp, iad_rbym, fr_rbym, weight_rm, ms_ply, zi_ply, inod_pxfem, iel_pxfem, iadc_pxfem, adsky_pxfem, icode_ply, icodt_ply, iskew_ply, admsms, madclnod, nom_sect, mcpc, mcptg, dmelc, dmeltg, mssa, dmels, mstr, dmeltr, msp, dmelp, msrt, dmelrt, ibcr, fradia, res_sms, table, irbe2, lrbe2, iad_rbe2, fr_rbe2, phie, msf, procne_pxfem, iadsdp_pxfem, iadrcp_pxfem, icfield, lcfield, cfield, msz2, diag_sms, iloadp, lloadp, loadp, inod_crk, iel_crk, iadc_crk, adsky_crk, cne_crk, procne_crk, iadsdp_crk, iadrcp_crk, ibufssg_io, ibc_ply, dmint2, ibordnode, elbuf_tab, por, nodedge, iad_edge, fr_edge, fr_nbedge, crknodiad, lgauge, gauge, igaup, ngaup, nodlevxf, dd_r2r_elem, nodglobxfe, sph2sol, sol2sph, irst, dmsph, wagap, xfem_tab, elcutc, nodenr, kxfenod2elc, enrtag, rthbu f, kxig3d, ixig3d, knot, wige, wsmcomp, stack, cputime_mp_glob, cputime_mp, tab_ump, poin_ump, sol2sph_typ, irunn_bis, addcsrect, iad_frnor, fr_nor, procnor, iad_fredg, fr_edg, drape_sh4n, drape_sh3n, tab_mat, nativ0_sms, multi_fvm, segquadfr, ms_2d, h3d_data, subsets, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, forneqs, nloc_dmg, iskwp_l, knotlocpc, knotlocel, pinch_data, tag_skins6, ale_connectivity, xcell, xface, ne_nercvois, ne_nesdvois, ne_lercvois, ne_lesdvois, ibcscyc, lbcscyc, t_monvol, id_global_vois, face_vois, dynain_data, fcont_max, ebcs_tab, diffusion, kloadpinter, loadpinter, dgaploadint, drapeg, user_windows, output, interfaces, dt, loads, python, dpl0cld, vel0cld, ndamp_vrel, id_damp_vrel, fr_damp_vrel, ndamp_vrel_rbyg, names_and_titles, unitab, liflow, lrflow, glob_therm, pblast, rbe3)