99 1 ELBUF_STR, JFT, JLT, NFT,
100 2 NPT, IPARI, MTN, IPRI,
101 3 ITHK, NELTST, ITYPTST, ITAB,
102 4 MAT_ELEM, ISTRAIN, IPLA, TT,
103 5 DT1, DT2T, PM, GEO,
104 6 PARTSAV, IXC, FAILWAVE, BUFMAT,
107 9 F, M, STIFN, STIFR,
108 A FSKY, TANI, OFFSET, EANI,
109 B INDXOF, IPARTC, THKE, NVC,
110 C IOFC, IHBE, F11, F12,
111 D F13, F14, F21, F22,
112 E F23, F24, F31, F32,
113 F F33, F34, M11, M12,
114 G M13, M14, M21, M22,
115 H M23, M24, M31, M32,
116 I M33, M34, KFTS, ISMSTR,
117 J IGEO, GROUP_PARAM, IPM, IFAILURE,
118 K ITASK, JTHE, TEMP, FTHE,
119 L FTHESKY, IEXPAN, ISHPLYXFEM, MS,
120 M IN, MS_PLY, ZI_PLY, INOD_PXFEM,
121 N IEL_PXFEM, IADC_PXFEM, GRESAV, GRTH,
122 O IGRTH, MSC, DMELC, JSMS,
123 P TABLE, IPARG, SENSORS, MSZ2,
124 Q CONDN, CONDNSKY, ISUBSTACK, STACK,
125 R DRAPE_SH4N, NEL, NLOC_DMG, VPINCH,
126 S FPINCH, STIFPINCH, INDX_DRAPE, IGRE,
127 T JTUR, DT , NCYCLE, SNPC,
128 Y STF , GLOB_THERM , NXLAYMAX, IDEL7NOK,
129 U USERL_AVAIL, MAXFUNC, SBUFMAT)
149#include "implicit_f.inc"
153#include "mvsiz_p.inc"
157#include "scr14_c.inc"
158#include "scr18_c.inc"
159#include "parit_c.inc"
160#include "param_c.inc"
161#include "timeri_c.inc"
162#include "com04_c.inc"
166 TYPE(timer_),
INTENT(INOUT) :: TIMERS
167 INTEGER,
INTENT(IN) :: USERL_AVAIL
168 INTEGER,
INTENT(IN) :: MAXFUNC
169 INTEGER,
INTENT(INOUT) :: IDEL7NOK
170 INTEGER,
INTENT(IN) :: SBUFMAT
171 INTEGER,
INTENT(IN) :: STF
172 INTEGER,
INTENT(IN) :: SNPC
173 INTEGER,
INTENT(IN) :: NXLAYMAX
174 INTEGER,
INTENT(IN) :: IGRE,JTUR,NCYCLE
175 INTEGER JFT,JLT,NFT,NPT,MTN,IPRI,ITHK,NELTST,
176 . ityptst ,istrain,ipla ,offset,nvc,
177 . iofc ,ihbe ,kfts,ismstr,ifailure,
178 . iexpan, ishplyxfem,itask,jthe,ibid,jsms,isubstack,nel
179 INTEGER IXC(NIXC,*), IADC(4,*), IPARTC(*), NPF(*),IGEO(NPROPGI,*),
180 . IPM(*),INDXOF(MVSIZ),INOD_PXFEM(*),IEL_PXFEM(*),ITAB(*),
181 . IADC_PXFEM(4,*),GRTH(*),IGRTH(*),IPARG(*),IPARI(NPARI,*),
182 . INDX_DRAPE(SCDRAPE)
185 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ), F14(MVSIZ),
186 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ), F24(MVSIZ),
187 . (MVSIZ), F32(MVSIZ), F33(), F34(MVSIZ),
188 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ), M14(MVSIZ),
189 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ), M24(MVSIZ),
190 . M31(MVSIZ), M32(MVSIZ), M33(MVSIZ), M34(MVSIZ),
191 . TF(*), PM(NPROPM,*),GEO(NPROPG,*),PARTSAV(*),
192 . BUFMAT(*), X(3,*), D(*), DR(*),
193 . V(3,*),VR(3,*),F(3,*),M(3,*),STIFN(*),
194 . STIFR(*),FSKY(*),TANI(6,*),EANI(*),THKE(*),TEMP(*),
195 . FTHE(*),FTHESKY(*),IN(*),MS(*),MS_PLY(*), ZI_PLY(*),
196 . GRESAV(*), MSC(*), DMELC(*),MSZ2(*),
197 . condn(*),condnsky(*),
198 . fpinch(3,*),stifpinch(*),vpinch(3,*)
202 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
203 TYPE (STACK_PLY) :: STACK
204 TYPE (FAILWAVE_STR_) :: FAILWAVE
205 TYPE (GROUP_PARAM_) :: GROUP_PARAM
206 TYPE (NLOCAL_STR_),
TARGET :: NLOC_DMG
207 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE)
208 TYPE (MAT_ELEM_),
INTENT(INOUT) :: MAT_ELEM
209 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
210 TYPE (DT_) ,
INTENT(IN) :: DT
211 type (glob_therm_) ,
intent(inout) :: glob_therm
216 . I,II,J,JJ,JG,IR,IS,IT,IPT,NPTR,NPTS,NPTT,NLAY,MX,
217 . NPLAT,IDRIL,LENE,LENF,LENM,LENS,NNOD,N1,N2,N3,N4,
218 . NG,NPG,PT1,PT2,PT3,PT4,PTF,PTM,PTE,PTS,L_DIRA,L_DIRB,
219 . IPPID,JPID,IPTHK,IPPOS,IPMAT,IPMAT_IPLY,MATLY,IFAILWAVE,
220 . J1,J2,IIGEO,IADI ,IADR,IPANG,IGTYP,IGMAT,ILAY,NPTTOT,IREP,KK(5),K,
221 . LENFPINCH,,LENEPINCHXZ,LENEPINCHYZ,LENEPINCHZZ,
222 . PTFP,PTMP,PTEPXZ,PTEPYZ,PTEPZZ,MT,NPINCH,IDRAPE,ACTIFXFEM,
223 . SEDRAPE,NUMEL_DRAPE
224 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),MAT_IPLY(MVSIZ,NPT),
225 . IPLAT(MVSIZ),ISTACK(MVSIZ,NPT),FWAVE_EL(NEL)
229 . rxyz(mvsiz,2*nnod),
230 . vcore(mvsiz,3*nnod),vxyz(mvsiz,3*nnod),off(mvsiz),
231 . vqn(mvsiz,9*nnod),vqg(mvsiz,9*nnod),vnrm(mvsiz,3*nnod),
232 . bm(mvsiz,9*nnod),bmf(mvsiz,9*nnod),bf(mvsiz,6*nnod),
233 . bc(mvsiz,10*nnod),vq(mvsiz,9),vjfi(mvsiz,6,4),
234 . tc(mvsiz,4),jac(mvsiz,npg),hx(mvsiz,npg),hy(mvsiz,npg),
235 . veta(4,npg),vksi(4,npg),vf(mvsiz,12),vm(mvsiz,8),
236 . vastn(mvsiz,4*nnod),
area(mvsiz),
237 . lc(mvsiz),vdef(mvsiz,8),cdet(mvsiz),thk2(mvsiz),
238 . exx(mvsiz) ,eyy(mvsiz) ,exy(mvsiz) ,exz(mvsiz) ,eyz(mvsiz),
239 . kxx(mvsiz) ,kyy(mvsiz) ,kxy(mvsiz) ,sigy(mvsiz),
240 . dt1c(mvsiz),ssp(mvsiz) ,viscmx(mvsiz),rho(mvsiz) ,
241 . nu(mvsiz) ,g(mvsiz) ,a11(mvsiz) ,a12(mvsiz) ,vol0(mvsiz),
242 . thk0(mvsiz),sti(mvsiz) ,stir(mvsiz) ,shf(mvsiz) ,
243 . gs(mvsiz) ,alpe(mvsiz),ym(mvsiz) ,bid,zcfac(mvsiz,2),
244 . x13(mvsiz) ,y13(mvsiz), x24(mvsiz) ,amu(mvsiz),
245 . dd(mvsiz,6),volg(mvsiz),y24(mvsiz),facn(mvsiz,2),die(mvsiz),
246 . tempel(mvsiz),them(mvsiz,4),
247 . zl(mvsiz),ply_f(mvsiz,5, npt), ply_vxyz
249 . fly12(mvsiz, npt), fly22(mvsiz, npt), fly32(mvsiz, npt),
250 . fly13(mvsiz, npt), fly23(mvsiz, npt), fly33(mvsiz, npt),
251 . fly14(mvsiz, npt), fly24(mvsiz, npt), fly34(mvsiz, npt),
252 . ply_exx(mvsiz,npt), ply_eyy(mvsiz,npt), ply_exy(mvsiz,npt),
253 . ply_ezx(mvsiz,npt), ply_eyz(mvsiz,npt), ply_fn(mvsiz,12,npt),
254 . thkly(mvsiz,npt),vol0_ly(mvsiz,npt),posly(mvsiz,npt),
255 . del_ply(mvsiz,12,npt),th_iply(mvsiz,npt),
256 . sig_iply(mvsiz,3,npt),vni(4,4),
257 . vfi(mvsiz,12,npt),delg_ply(mvsiz,3,npt),amom(mvsiz,3,4),
259 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
260 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
261 . a11_ply(mvsiz,npt),a11_iply(mvsiz,npt),sti_ply(mvsiz,npt),
262 . offi(mvsiz,npt),rlz(mvsiz,nnod),vrlz(mvsiz),
263 . bm0rz(mvsiz,4,nnod),bmkrz(mvsiz,4,nnod),bmerz(mvsiz,4,nnod),
264 . bmrz(mvsiz,3,nnod),brz(mvsiz,4,nnod),krz(mvsiz),
265 . vmz(mvsiz,nnod),ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
266 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
267 . conde(mvsiz),a11r(mvsiz),
268 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
269 . xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),
270 . vdefpinch(mvsiz,3), vpinchxyz(mvsiz,nnod), bcp(mvsiz,2*nnod),
271 . bp(mvsiz,nnod), tnpg(mvsiz,nnod,npg), vfpinch(mvsiz,4), facp(mvsiz),
272 . e, anu, a11pinch, fp(mvsiz,3,4),
273 . vpincht1(mvsiz,nnod),vpincht2(mvsiz,nnod),dbetadxy(mvsiz,3),
274 . bpinchdamp(mvsiz,8),vfpinchdampx(mvsiz,4),vfpinchdampy(mvsiz,4),
275 . ezzavg(mvsiz),areapinch(mvsiz),zla(mvsiz)
277 . NPLATT,PTW ,LENW,PTT,IPOUT,IMAT
278 INTEGER IPLATT(MVSIZ)
280 . VCORET(MVSIZ,3*NNOD),BMT(MVSIZ,9*NNOD),VQGT(MVSIZ,9*NNOD),
281 . VJFIT(MVSIZ,6,4),JACT(MVSIZ,NPG),HXT(MVSIZ,NPG),HYT(MVSIZ,NPG),
282 . AREAT(MVSIZ),X13T(MVSIZ) ,Y13T(MVSIZ), X24T(MVSIZ),Y24T(MVSIZ),
283 . BM0RZT(MVSIZ,4,NNOD),BMKRZT(MVSIZ,4,NNOD),BMERZT(MVSIZ,4,NNOD),
284 . BMRZT(MVSIZ,4,NNOD),F_DEF(MVSIZ,8,NPG),
285 . X1G(MVSIZ), X2G(MVSIZ), X3G(MVSIZ), X4G(MVSIZ),
286 . Y1G(MVSIZ), Y2G(MVSIZ), Y3G(MVSIZ), Y4G(MVSIZ),
287 . Z1G(MVSIZ), Z2G(), Z3G(MVSIZ), Z4G(MVSIZ),
288 . VRL1(MVSIZ,3),VRL2(MVSIZ,3),VRL3(MVSIZ,3),VRL4(MVSIZ,3),
289 . UXYZ(MVSIZ,12),AXYZ(MVSIZ,4),WXY(MVSIZ),XLCORE(MVSIZ,2*(NNOD-1))
290 my_real ,
DIMENSION(NEL) :: ZOFFSET
292 my_real,
dimension(mvsiz) :: fheat
293 my_real,
dimension(mvsiz) :: epsd_pg,epsd_glob
294 my_real :: dtinv,asrate,eps_m2,eps_k2
297 INTEGER,
DIMENSION(NEL) :: OFFLY
298 my_real,
DIMENSION(:) ,
POINTER :: DIR_A, DIR_B,CRKDIR,DADV
299 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIR1_CRK,DIR2_CRK,DIRA,DIRB
303 INTEGER :: NDDL, NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
306 .
DIMENSION(:,:),
ALLOCATABLE :: VAR_REG
308 TYPE(buf_lay_) ,
POINTER :: BUFLY
309 TYPE(l_bufel_) ,
POINTER :: LBUF1,LBUF2,LBUF3,LBUF4
310 TYPE(g_bufel_) ,
POINTER :: GBUF
311 TYPE(L_BUFEL_) ,
POINTER :: LBUF
312 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
313 TYPE(PINCH_LOCAL_STRUCT_) :: PINCH_LOCAL
320 gbuf => elbuf_str%GBUF
321 idrape = elbuf_str%IDRAPE
327 actifxfem = iparg(70)
330 numel_drape = numelc_drape
336 nlay = elbuf_str%NLAY
337 nptr = elbuf_str%NPTR
338 npts = elbuf_str%NPTS
354 npttot = npttot + elbuf_str%BUFLY(ilay
356 IF (npt == 0) npttot = npt
361 ALLOCATE(var_reg(nel,nddl))
367 ifailwave = iparg(79)
368 IF (ifailwave > 0)
THEN
370 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
373 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
378 . nel ,ixc ,itab ,ngl ,offly )
381 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
382 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
383 igtyp = igeo(11,pid(1))
384 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
385 ALLOCATE(dira(npttot*nel*l_dira))
386 ALLOCATE(dirb(npttot*nel*l_dirb))
389 IF (l_dira == 0)
THEN
391 ELSEIF (irep == 0)
THEN
394 nptt = elbuf_str%BUFLY(ilay)%NPTT
397 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
398 j1 = 1+(j-1)*l_dira*nel
400 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
402 npttot = npttot + nptt
405 sdir_a = npttot*nel*l_dira
406 sdir_b = npttot*nel*l_dirb
407 dir_a => dira(1:npttot*nel*l_dira)
408 dir_b => dirb(1:npttot*nel*l_dirb)
410 sdir_a=nlay*nel*l_dira
411 sdir_b=nlay*nel*l_dirb
412 ALLOCATE(dira(nlay*nel*l_dira))
413 ALLOCATE(dirb(nlay*nel*l_dirb))
416 IF (l_dira == 0)
THEN
418 ELSEIF (irep == 0)
THEN
420 j1 = 1+(j-1)*l_dira*nel
422 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
425 sdir_a=nlay*nel*l_dira
426 sdir_b=nlay*nel*l_dirb
427 dir_a => dira(1:nlay*nel*l_dira)
428 dir_b => dirb(1:nlay*nel*l_dirb
431 ALLOCATE(dir1_crk(0))
432 ALLOCATE(dir2_crk(0))
444 vfpinchdampx(i,j) = zero
445 vfpinchdampy(i,j) = zero
453 igtyp = igeo(11,ixc(6,1))
454 igmat = igeo(98 ,ixc(6,1))
465 ALLOCATE(pinch_local%EPINCHXZ(mvsiz))
466 ALLOCATE(pinch_local%EPINCHYZ(mvsiz))
467 ALLOCATE(pinch_local%EPINCHZZ(mvsiz))
473 CALL cbacoor(elbuf_str ,jft,jlt,x,v,
474 . vr,ixc,pm,gbuf%OFF,lc,
475 1
area,vxyz, rxyz,vcore,jac,hx,hy,vksi,veta,
476 2 vqn,vqg,vq,vjfi,vnrm,vastn,nplat,iplat,
477 3 x13 ,x24 ,y13,y24,off, dd,nlay,
478 4 irep,npttot,ismstr,nel ,idril ,
479 5 gbuf%SMSTR,dir_a,dir_b,facn,zl,
480 6 r11 ,r12 ,r13 ,r21 ,r22 ,r23 ,
481 7 r31 ,r32 ,r33 ,inod_pxfem ,rlz ,
482 8 thke ,ishplyxfem ,ux1 ,ux2 ,ux3 ,
483 9 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
484 a vl1 ,vl2 ,vl3 ,vl4 ,xl2 ,
485 b xl3 ,xl4 ,yl2 ,yl3 ,yl4 ,xlcore,npinch)
487 CALL cncoef3(jft ,jlt ,pm ,mat ,geo ,
488 2 pid ,off ,
area ,shf ,thk0 ,
490 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
491 5 rho ,volg ,gs ,mtn ,ithk ,
493 7 krz ,igeo ,a11r ,isubstack, stack%PM,
498 1 tnpg ,vpinchxyz ,vpinch ,
499 2 vq ,vqn ,ixc ,jft ,jlt ,
500 3 nplat ,iplat ,gbuf%THK ,dt1c ,
505 ezzavg(i) = fourth*(vpinchxyz(i,1)+vpinchxyz(i,2)+vpinchxyz(i,3)+vpinchxyz(i,4))*dt1c(i)
506 areapinch(i) =
area(i)
510 IF(ishplyxfem > 0)
THEN
513 ply_fn(i,1:12,j) = zero
520 ipmat_iply = ipmat + npt
526 thkly(i,j) = stack%GEO(ipthk + j ,isubstack)*thk0(i)
527 matly = stack%IGEO(ipmat + j ,isubstack)
528 jpid = stack%IGEO(ippid + j, isubstack)
529 istack(i,j) = igeo(102 ,jpid)
530 posly(i,j) = stack%GEO(ippos + j ,isubstack)*thk0(i)
531 a11_ply(i,j) = pm(24,matly)
536 th_iply(i,j) = half*(thkly(i,j) + thkly(i,j +1 ))
537 mat_iply(i,j) = stack%IGEO(ipmat_iply + j ,isubstack)
541 CALL cbavit_ply(jft,jlt,ixc,gbuf%OFF,off,nplat,iplat,npt,
542 1 vcore,dd,zl,vq , ply_vxyz,x13 ,x24 ,
543 2 y13,y24,
area ,inod_pxfem ,del_ply,vni,istack,vr)
549 2 y13 ,y24 ,bm0rz,bmkrz,bmerz,
550 3 vcore,nplat,iplat,ismstr)
558 CALL cbadefsh(jft,jlt,x13,x24,y13,y24,bm,vdef,vxyz,nplat,iplat)
560 . vdef ,gbuf%FOR ,gbuf%EINT ,dt1 ,nel )
564 .
CALL cbadefsh_ply(jft,jlt,npt,nplat,iplat,x13,x24,y13,y24,
565 . ply_vxyz,dt1c ,ply_exy)
567 lenf = nel*gbuf%G_FORPG/npg
568 lenm = nel*gbuf%G_MOMPG/npg
571 lenfpinch = nel*gbuf%G_FORPGPINCH/npg
572 lenmpinch = nel*gbuf%G_MOMPGPINCH/npg
573 lenepinchxz = nel*gbuf%G_EPGPINCHXZ/npg
574 lenepinchyz = nel*gbuf%G_EPGPINCHYZ/npg
575 lenepinchzz = nel*gbuf%G_EPGPINCHZZ/npg
578 lens = nel*gbuf%G_STRPG/npg
579 lenw = nel*gbuf%G_STRWPG/npg
581 IF (ismstr == 10 )
THEN
583 CALL cbacoort(elbuf_str,jft,jlt,x,v,
584 . vr,dr,ixc,pm,gbuf%OFF,areat,
585 1 uxyz, axyz,vcoret,jact,hxt,
586 2 hyt,vq,vqgt,vjfit,nplatt,iplatt,
587 3 x13t ,x24t ,y13t,y24t,npttot ,
588 4 gbuf%SMSTR , idril ,xlcore,zl,vqn,nel)
591 CALL cbaderirz(jft ,jlt ,areat,x13t,x24t ,
592 2 y13t ,y24t ,bm0rzt,bmkrzt,bmerzt,
593 3 vcoret,nplatt,iplatt,ismstr)
600 ng = nptr*(is-1) + ir
607 vol0(i) = thk0(i)*cdet(i)
613 CALL cbaderirzt(jft,jlt,ng,bm0rzt,bmkrzt,bmerzt,bmrzt)
616 IF (npttot == 1)
THEN
617 CALL cbadeft1(jft,jlt,ng,vcoret,uxyz,f_def(1,1,ng),
618 1 hxt,hyt,bmt,nplatt,iplatt,idril,
621 CALL cbaderit1(jft,jlt,ng,vcoret,vqgt,vjfit,
622 2 hxt,hyt,veta,vksi,bmt,nplatt,iplatt,
624 CALL cbadeft(jft,jlt,uxyz,axyz,f_def(1,1,ng),
625 2 bmt,nplatt,iplatt,idril,bmrzt )
630 END IF ! ismstr == 10
632 IF (npttot == 1 .AND. mtn==58)
THEN
633 zla(jft:jlt)= zl(jft:jlt)*zl(jft:jlt)/
area(jft:jlt)
634 CALL cbal58warp(elbuf_str,nel,x,ixc,r13,r23,r33,gbuf%OFF,zla )
638!---------------------------------------------------------------------
639 epsd_glob(1:nel) = zero
643 ng = nptr*(is-1) + ir
652 vol0(i) = thk0(i)*cdet(i)
654 IF(ishplyxfem > 0)
THEN
664 IF (npttot == 1)
THEN
665 CALL cbadef1(jft,jlt,ng,vcore,vxyz,vdef,
666 1 hx,hy,bm,nplat,iplat,idril)
669 CALL cbadef(jft,jlt,ng,vcore,
area,cdet,vqn,vqg,vjfi,
670 1 vxyz,rxyz,vdef,vnrm,vastn,
671 2 hx,hy,veta,vksi,bm,bmf,bf,bc,tc,nplat,iplat,
675 2 bm,bmf,bf,nplat,iplat,
680 1 vxyz ,bm0rz,bmkrz,bmerz ,vrlz ,
681 2 bmrz ,brz ,bm ,nplat ,iplat,
687 1 jft ,jlt ,ng ,vqg ,vdef ,
688 2 veta ,vksi ,tc ,nplat ,iplat ,
689 3 bcp ,bp ,vpinchxyz ,vdefpinch ,tnpg,
690 4 dbetadxy ,vpincht1 ,vpincht2 ,bpinchdamp)
696 CALL cbastra3(gbuf%STRA,gbuf%STRPG(pts),
697 1 jft, jlt, nft, npg,vdef,
698 2 exx, eyy, exy, exz, eyz,
699 3 kxx, kyy, kxy, dt1c, tani,
700 4 iepsdot, istrain,ux1 ,ux2 ,ux3 ,
701 6 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
702 7 x13, x24, y13, y24, bm ,
703 8 ismstr ,mtn ,nplat,iplat,idril,
704 9 wxy ,f_def(1,1,ng),gbuf%STRWPG(ptw),nel)
707 CALL cbaener(gbuf%FORPG(ptf),gbuf%EINT,jft ,jlt ,off ,
711 IF (ishplyxfem > 0 )
THEN
715 delg_ply(i,1,j) = del_ply(i,1 + jg ,j)
716 delg_ply(i,2,j) = del_ply(i,2 + jg ,j)
717 delg_ply(i,3,j) = del_ply(i,3 + jg ,j)
721 CALL cbadef_ply(jft,jlt,ng,npt,nplat,iplat, vqg,
722 . ply_vxyz,veta,vksi,bm,bc
723 . ply_exx, ply_eyy, ply_eyz, ply_ezx )
728 ng = nptr*(is-1) + ir
729 ptfp = (ng-1)*lenfpinch + 1
730 ptmp = (ng-1)*lenmpinch + 1
731 ptepxz = (ng-1)*lenepinchxz + 1
732 ptepyz = (ng-1)*lenepinchyz + 1
733 ptepzz = (ng-1)*lenepinchzz + 1
736 1 jft ,jlt ,nplat ,iplat ,
737 2 vdefpinch ,pinch_local%EPINCHXZ ,
738 3 pinch_local%EPINCHYZ ,pinch_local%EPINCHZZ,
740 5 gbuf%EPGPINCHXZ(ptepxz),
741 6 gbuf%EPGPINCHYZ(ptepyz),
742 7 gbuf%EPGPINCHZZ(ptepzz) )
752 dtinv = dt1 /
max(dt1**2,em20)
753#include "vectorize.inc"
755 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
756 . * one_over_9*gbuf%thk(i)**2
757 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
758 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
759 epsd_glob(i) = epsd_glob(i) + epsd_pg(i) / npg
761!-------------------------------------------------------------------------------
763 CALL cbatempel(jft ,jlt ,ng ,ixc ,temp ,tempel)
767 CALL cbavarnl(jft ,jlt ,ng ,ixc ,nloc_dmg ,
768 . var_reg ,nddl ,nc1 ,nc2 ,nc3 ,
774 IF ((itask==0).AND.(imon_mat == 1))
CALL startime(timers,35)
778 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
779 2 nel ,mtn ,ipla ,ithk ,group_param,
780 3 pm ,geo ,npf ,tf ,bufmat ,
781 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
782 5 cdet ,exx ,eyy ,exy ,exz ,
783 6 eyz ,kxx ,kyy ,kxy ,nu ,
784 7 off ,thk0 ,mat ,pid ,
785 8 gbuf%FORPG(ptf),gbuf%MOMPG(ptm) ,gbuf%STRPG(pts),failwave,fwave_el,
786 9 gbuf%THK ,gbuf%EINT ,iofc ,
787 a g ,a11 ,a12 ,vol0 ,indxof ,
788 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
790 d dir_a ,dir_b ,igeo ,
791 e ipm ,ifailure ,npg ,
793 g ishplyxfem,ply_exx ,
794 h ply_eyy ,ply_exy ,ply_ezx ,ply_eyz ,ply_f ,
795 i delg_ply ,th_iply ,sig_iply ,r11 ,r12 ,
796 j r13 ,r21 ,r22 ,r23 ,r31 ,
797 k r32 ,r33 ,ng ,table ,ibid ,
798 l offi ,a11_iply ,ibid ,
799 m dir1_crk ,dir2_crk ,lc ,
800 n ismstr ,ir ,is ,nlay ,npt ,
801 o ibid ,ibid ,isubstack ,stack ,
802 p f_def(1,1,ng),itask ,drape_sh4n ,var_reg(1,1),
803 q pinch_local , gbuf%FORPGPINCH(ptfp), gbuf%MOMPGPINCH(ptmp),ezzavg ,
807 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
808 2 nel ,mtn ,ipla ,ithk ,group_param,
809 3 pm ,geo ,npf ,tf ,bufmat ,
810 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
811 5 cdet ,exx ,eyy ,exy ,exz ,
812 6 eyz ,kxx ,kyy ,kxy ,nu ,
813 7 off ,thk0 ,mat ,pid ,mat_elem ,
814 8 gbuf%FORPG(ptf),gbuf%MOMPG(ptm) ,gbuf%STRPG(pts),failwave,fwave_el,
815 9 gbuf%THK ,gbuf%EINT ,iofc ,
816 a g ,a11 ,a12 ,vol0 ,indxof ,
817 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
819 d dir_a ,dir_b ,igeo ,
820 e ipm ,ifailure ,npg ,fheat ,
821 f tempel ,die ,jthe ,iexpan ,gbuf%TEMPG(ptt) ,
822 g ishplyxfem,ply_exx ,
823 h ply_eyy ,ply_exy ,ply_ezx ,ply_eyz ,ply_f ,
824 i delg_ply ,th_iply ,sig_iply ,r11 ,r12 ,
825 j r13 ,r21 ,r22 ,r23 ,r31 ,
826 k r32 ,r33 ,ng ,table ,ibid ,
827 l offi ,sensors ,a11_iply ,ibid ,
828 m dir1_crk ,dir2_crk ,lc ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
829 n ismstr ,ir ,is ,nlay ,npt ,
830 o ibid ,ibid ,isubstack ,stack ,
831 p f_def(1,1,ng),itask ,drape_sh4n,var_reg(1,1),nloc_dmg ,
832 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
833 q ncycle ,snpc ,stf ,nxlaymax, idel7nok ,
834 s userl_avail ,maxfunc ,npttot ,sbufmat, sdir_a ,
835 t sdir_b ,gbuf%FORPG_G(ptf))
838 IF ((itask==0).AND.(imon_mat == 1))
CALL stoptime(timers,35)
841 CALL cbaener(gbuf%FORPG(ptf),gbuf%EINT,jft ,jlt ,off ,
850 gbuf%THK(i) = gbuf%THK(i) - three_over_4*(gbuf%THK(i)-thk0(i))
851 thk0(i) = gbuf%THK(i)
858 CALL cbavisc(jft ,jlt ,vdef ,amu ,off ,
859 2 shf ,nu ,rho ,ssp ,cdet,
860 3 thk0 ,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),npttot,mtn ,
861 4 ipartc ,partsav ,dt1 ,nel )
865 IF (npttot == 1)
THEN
866 CALL cbafori1(jft ,jlt ,gbuf%FORPG(ptf),bm ,vf ,
867 . nplat ,iplat ,vol0 ,nel )
869 CALL cbafori(jft ,jlt ,ng ,cdet ,thk0,
870 2 thk2 ,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),nel ,bm ,
871 3 bmf ,bf ,bc ,tc ,vf ,
872 4 vm ,nplat ,iplat ,vol0 )
876 CALL cbaforrz(jft ,jlt ,vol0 ,gbuf%FORPG(ptf),gbuf%HOURG,
877 2 vf ,vmz ,bm ,bmrz ,brz ,
878 3 krz ,vrlz ,gbuf%EINT,off ,dt1c ,
879 4 nplat,iplat,ng ,nel)
883 .
CALL cbafint_ply(jft,jlt,npt,ng,nplat,iplat,cdet,thkly,thk2,
884 1 vol0, ply_f,bm,bc,tc,sig_iply,vni,
area,
889 1 jft ,jlt ,ng ,nel ,nplat ,iplat ,
890 2 cdet ,thk0 ,thk2 ,vol0 ,
891 3 gbuf%FORPGPINCH(ptfp) , gbuf%MOMPGPINCH(ptmp),
892 4 bcp ,bp ,vfpinch ,dbetadxy,
893 5 rho ,lc ,ssp ,bpinchdamp,
894 6 vfpinchdampx ,vfpinchdampy)
901 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1)
THEN
902 CALL cbatherm(jft ,jlt ,pm(1,mat(1)) ,thk0 ,ixc ,
903 . bm ,
area ,dt1c(1) ,temp ,tempel,fheat ,
904 . nplat ,iplat,them ,glob_therm%THEACCFACT)
906 CALL cbatherm(jft ,jlt ,pm(1,mat(1)) ,thk0 ,ixc ,
907 . bm ,
area ,dt1c(1) ,temp ,tempel,die ,
908 . nplat ,iplat,them ,glob_therm%THEACCFACT)
916 1 nloc_dmg, var_reg(1,1), thk0, nel,
917 2 gbuf%OFF,
area, nc1, nc2,
918 3 nc3, nc4, elbuf_str%NLOC(ir,is), ixc(1,jft),
919 4 nddl, itask, ng, jft,
920 5 jlt, x13, y13, x24,
921 6 y24, dt2t, gbuf%THK_I, gbuf%AREA,
932 gbuf%epsd(1:nel) = asrate * epsd_glob(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
937 1 jft ,jlt ,nplat ,iplat ,
938 2 dt1c ,gbuf%THK ,thk0 ,ezzpg)
954 gbuf%FOR(kk(j)+i) = fourth*(gbuf%FORPG(pt1+kk(j)+i)
955 . + gbuf%FORPG(pt2+kk(j)+i)
956 . + gbuf%FORPG(pt3+kk(j)+i)
966 gbuf%MOM(kk(j)+i) = fourth*(gbuf%MOMPG(pt1+kk(j)+i)
967 . + gbuf%MOMPG(pt2+kk(j)+i)
968 . + gbuf%MOMPG(pt3+kk(j)+i)
969 . + gbuf%MOMPG(pt4+kk(j)+i))
975 CALL cbaforct(jft ,jlt ,volg ,x13 ,x24 ,
976 2 y13 ,y24 ,gbuf%FOR,vf ,nplat,
980 . vdef ,gbuf%FOR ,gbuf%EINT ,dt1 ,nel )
983 IF (npttot == 1)
THEN
985 2 amu, off,rho ,ssp ,
area,thk0 ,
987 4 ipartc,partsav,kfts)
993 1 jft ,jlt ,vqn ,vq ,vf ,
995 3 f11 ,f12 ,f13 ,f14 ,f21 ,
996 4 f22 ,f23 ,f24 ,f31 ,f32 ,
997 5 f33 ,f34 ,m11 ,m12 ,m13 ,
998 6 m14 ,m21 ,m22 ,m23 ,m24 ,
999 7 m31 ,m32 ,m33 ,m34 ,vcore ,
1000 8 dd ,vmz ,idril ,off )
1002 1 jft ,jlt ,npt ,nplat ,iplat ,vqn,
1003 2 vq ,ply_fn ,vfi ,vcore ,dd ,
1004 6 fly11 ,fly12 ,fly13 ,fly14 ,fly21 ,
1005 7 fly22 ,fly23 ,fly24 ,fly31 ,fly32 ,
1006 8 fly33 ,fly34 ,off)
1007 IF (npinch > 0)
THEN
1009 1 jft ,jlt ,vqn ,vq ,vfpinch,
1010 2 nplat ,iplat ,fp ,vcore ,dd ,thk0,
1011 3 vfpinchdampx,vfpinchdampy)
1020 2 ixc, gbuf%THK, gbuf%EINT, partsav,
1021 3
area, mat, ipartc, x,
1022 4 vr, bid, bid, bid,
1023 5 thk2, ipout, off, nft,
1024 6 gresav, grth, igrth, vl1,
1025 7 vl2, vl3, vl4, vrl1,
1026 8 vrl2, vrl3, vrl4, x1g,
1027 9 x2g, x3g, x4g, y1g,
1028 a y2g, y3g, y4g, z1g,
1029 b z2g, z3g, z4g, ibid,
1030 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
1031 d actifxfem, igre, sensors, nel,
1032 e gbuf%G_WPLA, gbuf%WPLA )
1042 a11pinch = e / (one-two*anu)
1043 ELSEIF(mtn == 91)
THEN
1047 a11pinch = e / (one-two*anu)
1051 1 jft ,jlt ,off , dt2t ,amu ,
1052 2 neltst ,ityptst,sti , stir ,gbuf%OFF,
1053 3 ssp ,viscmx ,rho , volg ,thk0,thk2,
1054 4 a11 ,lc ,alpe , ngl ,ismstr,
1055 5 iofc ,nnod ,
area , g ,shf ,
1056 6 msc ,dmelc ,jsms , bid ,igtyp ,
1057 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT, a11pinch)
1062 1 jft ,jlt ,off , dt2t ,amu ,
1063 2 neltst ,ityptst,sti , stir ,gbuf%OFF,
1064 3 ssp ,viscmx ,rho , volg ,thk0,thk2,
1065 4 a11 ,lc ,alpe , ngl ,ismstr,
1066 5 iofc ,nnod ,
area , g ,shf ,
1067 6 msc ,dmelc ,jsms , bid ,igtyp ,
1069 8 pm ,mat(jft) , nel ,zoffset)
1075 IF (jthe > 0.AND. glob_therm%IDT_THERM == 1)
THEN
1076 call dttherm(nel ,pm(1,mat(1)) ,npropm ,glob_therm ,
1077 . jtur ,tempel ,vol0 ,rho ,
1078 . lc ,off ,conde ,gbuf%re ,gbuf%rk )
1081 IF(ishplyxfem > 0)
THEN
1083 . jft ,jlt ,npt,off , lc ,
area ,thkly
1084 . th_iply ,a11_ply ,a11_iply,sti_ply , offi,viscmx)
1090 CALL dtcba_reg(nloc_dmg,thk0 ,nel ,gbuf%OFF,
1091 . lc ,ixc(1,jft) ,nddl ,dt2t )
1097 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
1098 2 gbuf%OFF,off ,sti ,stir,stifn,
1099 3 stifr ,ixc ,pm ,
area ,gbuf%THK,
1100 4 f11 ,f12 ,f13 ,f14 ,f21 ,
1101 5 f22 ,f23 ,f24 ,f31 ,f32 ,
1102 6 f33 ,f34 ,m11 ,m12 ,m13 ,
1103 7 m14 ,m21 ,m22 ,m23 ,m24 ,
1104 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
1105 9 partsav,mat ,ipartc,glob_therm%NODADT_THERM)
1106 ELSEIF(iparit == 0)
THEN
1107 CALL cupdtn3(jft ,jlt ,f ,m ,nvc ,
1108 2 gbuf%OFF,off ,sti ,stir,stifn,
1109 3 stifr ,ixc ,pm ,
area ,gbuf%THK,
1110 4 f11 ,f12 ,f13 ,f14 ,f21 ,
1111 5 f22 ,f23 ,f24 ,f31 ,f32 ,
1112 6 f33 ,f34 ,m11 ,m12 ,m13 ,
1113 7 m14 ,m21 ,m22 ,m23 ,m24 ,
1114 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
1115 a partsav,mat ,ipartc ,facn ,jthe,
1116 b them , fthe ,condn ,conde,glob_therm%NODADT_THERM)
1120 1 jft ,jlt ,nvc ,ixc ,
1121 2 fp ,fpinch ,sti ,stifpinch ,facp )
1125 CALL cupdtn3p(jft ,jlt ,gbuf%OFF,off ,sti,
1126 2 stir ,fsky ,fsky ,iadc ,
1127 4 f11 ,f12 ,f13 ,f14 ,f21,
1128 5 f22 ,f23 ,f24 ,f31 ,f32,
1129 6 f33 ,f34 ,m11 ,m12 ,m13,
1130 7 m14 ,m21 ,m22 ,m23 ,m24,
1131 8 m31 ,m32 ,m33 ,m34 ,ixc,
1132 a gbuf%EINT,partsav,mat,ipartc,pm ,
1133 b
area ,gbuf%THK,facn ,jthe,them ,
1134 c fthesky,condnsky,conde,glob_therm%NODADT_THERM )
1137 IF(ishplyxfem > 0)
THEN
1139 1 jft, jlt, nvc, gbuf%OFF,
1140 2 off, iadc_pxfem,iel_pxfem, inod_pxfem,
1142 4 zi_ply, istack, posly, fly11,
1143 5 fly12, fly13, fly14, fly21,
1144 6 fly22, fly23, fly24, fly31,
1145 7 fly32, fly33, fly34, facn,
1146 8 sti_ply, msz2, nft, npt)
1149 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1150 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1151 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)
1154 DEALLOCATE(pinch_local%EPINCHXZ)
1155 DEALLOCATE(pinch_local%EPINCHYZ)
1156 DEALLOCATE(pinch_local%EPINCHZZ)