40 1 ITENS, INVERT, EL2FA, NBF,
41 2 TENS, EPSDOT, IADP, NBF_L,
42 3 NBPART,IADG, X, IXC,MAT_PARAM,
43 4 IGEO, IXTG, NBF_PXFEMG, IPM ,STACK)
55#include "implicit_f.inc"
68 INTEGER IPARG(NPARG,*),ITENS, INVERT(*),
69 . EL2FA(*),IXC(NIXC,*), IGEO(NPROPGI,*),
70 . NBF,IADP(*),NBF_L,NBPART,IADG(NSPMD,*),
71 . IXTG(NIXTG,*),NEL_PLY,IPLY, NBF_PXFEMG,
75 . tens(3,*),epsdot(6,*), x(3,*)
76 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
77 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
78 TYPE (STACK_PLY) :: STACK
84 . off, fac, a1, a2, a3, thk, sige(mvsiz,5)
86 INTEGER I, NG, NEL, NFT, IAD, ITY, LFT, NPT, IR,IS,IPT,
87 . iadd, n, j, llt, mlw, istrain,nptr
88 . ipid, i1, i2, iad2, ns1, ns2 , ialel, istre,
89 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nni,n0,
90 . ii, ii_l, kk ,inc,ihbe,len ,irep
92 INTEGER IE,,IP,JPID,IPPID,IPLY0,IFLAG,ION,NPG,K,
93 . ELC,PLYELEMS(NUMELC),PLYS,IFAILURE,IVISC,NUVARV,
94 . MAT(MVSIZ),PID(),IGTYP,IADR,MATLY,IPMAT,
95 . IIGEO,IADI,,IPMAT_IPLY
96 REAL,
DIMENSION(:,:),
ALLOCATABLE:: WA
97 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
98 TYPE() ,
POINTER :: GBUF
99 TYPE(L_BUFEL_) ,
POINTER :: LBUF
101 CALL my_alloc(wa,3,nbf_l)
143 ifailure = iparg(43,ng)
144 istrain = iparg(44,ng)
145 ishplyxfem = iparg(50,ng)
146 isubstack = iparg(71,ng)
163 IF(ity==3.OR.ity==7.AND.ishplyxfem > 0)
THEN
164 gbuf => elbuf_tab(ng)%GBUF
165 nptr = elbuf_tab(ng)%NPTR
166 npts = elbuf_tab(ng)%NPTS
167 nptt = elbuf_tab(ng)%NPTT
168 nlay = elbuf_tab(ng)%NLAY
194 IF(ilayer > 0) iflag = ilayer
196 IF(iflag == 0)
GO TO 490
218 ELSEIF(mlw==2.OR.mlw==19.OR.
220 . mlw==22.OR.mlw==25.OR.
221 . mlw==27.OR.mlw==32.OR.
225 ELSEIF(mlw==3.OR.mlw==23)
THEN
235 ELSEIF(mlw==2.OR.mlw==19.OR.
237 . mlw==22.OR.mlw==25.OR.
238 . mlw==27.OR.mlw==32.OR.
242 ELSEIF(mlw==3.OR.mlw==23)
THEN
246 ELSEIF(itens>=101.AND.itens<=200)
THEN
249 IF(mlw==1.OR.mlw==3.OR.mlw==23)
THEN
252 ELSEIF(mlw==2.OR.mlw==19.OR.
254 . mlw==22.OR.mlw==25.OR.
255 . mlw==27.OR.mlw==32.OR.
257 ipt =
min(npt,itens-100)
260 IF(ipt == iply ) ion = 1
309 ELSEIF(itens>=201.AND.itens<=300)
THEN
313 ipt =
min(npt,itens - 200)
314 IF(ipt == iply ) ion = 1
315 IF(istrain==1.AND.npt/=0)
THEN
318 a2 = half*(((2*ilayer-one)/npt)-one)
326 ELSEIF(itens==91)
THEN
330 ELSEIF(itens==92)
THEN
334 ELSEIF(itens==93)
THEN
338 ELSEIF(itens==94)
THEN
342 ELSEIF(itens>=301.AND.itens<=400)
THEN
343 ipt =
min(npt,itens - 300)
344 IF(ipt == iply ) ion = 1
349 a2 = half*(((2*ilayer-one)/npt)-one)
368 IF (itens>=101.AND.itens<=200
369 . .AND.(mlw==25.OR.mlw==15).AND.irep==1)
THEN
388 ipmat_iply = ipmat + npt
394 matly = stack%IGEO(ipmat+n,isubstack)
395 IF (mat_param(matly)%IVISC > 0)
THEN
397 nuvarv =
max(nuvarv, mat_param(matly)%VISC%NUVAR)
404 CALL sigrota(lft ,llt ,nft ,ilayer ,nel ,
405 2 ns1 ,x ,ixc ,elbuf_tab(ng),
406 3 sige ,ity ,ixtg ,ihbe ,istrain ,
417 tens(1,el2fa(nel_ply + ie)) = r4(1)
418 tens(2,el2fa(nel_ply + ie)) = r4(2)
419 tens(3,el2fa(nel_ply + ie)) = r4(3)
428 tens(1,el2fa(nel_ply + ie)) = zero
429 tens(2,el2fa(nel_ply + ie)) = zero
430 tens(3,el2fa(nel_ply + ie)) = zero
435 ELSEIF (itens>=101.AND.itens<=200
436 . .AND.mlw==25.AND.irep==0)
THEN
450 lbuf => elbuf_tab(ng)%BUFLY(ilayer)%LBUF(ir,is,1)
452 sige(i,j) = sige(i,j) + lbuf%SIG(jj(j)+i)/npg
468 tens(1,el2fa(nel_ply + ie)) = r4(1)
469 tens(2,el2fa(nel_ply + ie)) = r4(2)
470 tens(3,el2fa(nel_ply + ie)) = r4(3)
480 tens(1,el2fa(nel_ply + ie)) = zero
481 tens(2,el2fa(nel_ply + ie)) = zero
482 tens(3,el2fa(nel_ply + ie)) = zero
493 r4(j) = a1 * gbuf%FOR(jj(j)+i) + a2 * gbuf%MOM(jj(j)+i)
497 tens(2,el2fa(nel_ply + ie)) = r4(2)
498 tens(3,el2fa(nel_ply + ie)) = r4(3)
502 ELSEIF (istre == 0 .AND. gbuf%G_STRA > 0)
THEN
513 r4(j) = a1*gbuf%STRA(jj(j)+i)+a2*gbuf%STRA(jj(j)+i)*thk
517 r4(j) = gbuf%STRA(jj(j)+i)
522 tens(1,el2fa(nel_ply + ie)) = r4(1)
523 tens(2,el2fa(nel_ply + ie)) = r4
524 tens(3,el2fa(nel_ply + ie)) = r4(3)
538 r4(j) = a1*epsdot(j,n+n0) + a2*epsdot(j+3,n+n0)*thk
542 r4(j) = epsdot(j+3,n+n0)
547 tens(1,el2fa(nel_ply + ie)) = r4(1)
548 tens(2,el2fa(nel_ply + ie)) = r4(2)
549 tens(3,el2fa(nel_ply + ie)) = r4(3)
561 n = el2fa(nel_ply + i)
569 n = el2fa(nel_ply + i)
570 wa(1,i+nel_ply) = tens(1,n)
571 wa(2,i+nel_ply) = tens(2,n)
572 wa(3,i+nel_ply) = tens(3,n)
577 nel_ply = nel_ply +
plyshell(iply)%PLYNUMSHELL