100 1 ELBUF_STR, JFT, JLT, NFT,
101 2 NPT, IPARI, MTN, IPRI,
102 3 ITHK, NELTST, ITYPTST, ITAB,
103 4 MAT_ELEM, ISTRAIN, IPLA, TT,
104 5 DT1, DT2T, PM, GEO,
105 6 PARTSAV, IXC, FAILWAVE, BUFMAT,
108 9 F, M, STIFN, STIFR,
109 A FSKY, TANI, OFFSET, EANI,
110 B INDXOF, IPARTC, THKE, NVC,
111 C IOFC, IHBE, F11, F12,
112 D F13, F14, F21, F22,
113 E F23, F24, F31, F32,
114 F F33, F34, M11, M12,
115 G M13, M14, M21, M22,
116 H M23, M24, M31, M32,
117 I M33, M34, KFTS, ISMSTR,
118 J IGEO, GROUP_PARAM, IPM, IFAILURE,
119 K ITASK, JTHE, TEMP, FTHE,
120 L FTHESKY, IEXPAN, ISHPLYXFEM, MS,
121 M IN, MS_PLY, ZI_PLY, INOD_PXFEM,
122 N IEL_PXFEM, IADC_PXFEM, GRESAV, GRTH,
123 O IGRTH, MSC, DMELC, JSMS,
124 P TABLE, IPARG, SENSORS, MSZ2,
125 Q CONDN, CONDNSKY, ISUBSTACK, STACK,
126 R DRAPE_SH4N, NEL, NLOC_DMG, VPINCH,
127 S FPINCH, STIFPINCH, INDX_DRAPE, IGRE,
128 T JTUR, DT , NCYCLE, SNPC,
129 Y STF , GLOB_THERM , NXLAYMAX, IDEL7NOK,
130 U USERL_AVAIL, MAXFUNC, SBUFMAT,IPART ,LIPART1 )
147 use element_mod ,
only : nixc
151#include "implicit_f.inc"
155#include "mvsiz_p.inc"
159#include "scr14_c.inc"
160#include "scr18_c.inc"
161#include "parit_c.inc"
162#include "param_c.inc"
163#include "timeri_c.inc"
164#include "com04_c.inc"
168 TYPE(timer_),
INTENT(INOUT) :: TIMERS
169 INTEGER,
INTENT(IN) :: USERL_AVAIL
170 INTEGER,
INTENT(IN) :: MAXFUNC
171 INTEGER,
INTENT(INOUT) :: IDEL7NOK
172 INTEGER,
INTENT(IN) :: SBUFMAT
173 INTEGER,
INTENT(IN) :: STF
174 INTEGER,
INTENT(IN) :: SNPC
175 INTEGER,
INTENT(IN) :: NXLAYMAX
176 INTEGER,
INTENT(IN) :: IGRE,JTUR,NCYCLE
177 INTEGER JFT,JLT,NFT,NPT,MTN,IPRI,ITHK,NELTST,
178 . ityptst ,istrain,ipla ,offset,nvc,
179 . iofc ,ihbe ,kfts,ismstr,ifailure,
180 . iexpan, ishplyxfem,itask,jthe,ibid,jsms,isubstack,nel
181 INTEGER IXC(NIXC,*), IADC(4,*), IPARTC(*), NPF(*),IGEO(NPROPGI,*),
182 . IPM(*),INDXOF(MVSIZ),INOD_PXFEM(*),IEL_PXFEM(*),ITAB(*),
183 . IADC_PXFEM(4,*),GRTH(*),IGRTH(*),IPARG(*),IPARI(NPARI,*),
184 . INDX_DRAPE(SCDRAPE)
187 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ), F14(MVSIZ),
188 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ), F24(MVSIZ),
189 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ), F34(MVSIZ),
190 . M11(MVSIZ), (MVSIZ), M13(MVSIZ), M14(MVSIZ),
191 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ), M24(MVSIZ),
192 . M31(MVSIZ), (MVSIZ), M33(MVSIZ), M34(MVSIZ),
193 . TF(*), PM(NPROPM,*),GEO(NPROPG,*),PARTSAV(*),
194 . BUFMAT(*), X(3,*), D(*), DR(*),
195 . V(3,*),VR(3,*),F(3,*),M(3,*),STIFN(*),
196 . (*),FSKY(*),TANI(6,*),EANI(*),THKE(*),TEMP(*),
197 . FTHE(*),FTHESKY(*),IN(*),MS(*),MS_PLY(*), ZI_PLY(*),
198 . GRESAV(*), MSC(*), DMELC(*),MSZ2(*),
199 . condn(*),condnsky(*),
200 . fpinch(3,*),stifpinch(*),vpinch(3,*)
204 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
205 TYPE (STACK_PLY) :: STACK
206 TYPE (FAILWAVE_STR_) :: FAILWAVE
207 TYPE (GROUP_PARAM_) :: GROUP_PARAM
208 TYPE (NLOCAL_STR_),
TARGET :: NLOC_DMG
209 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE)
210 TYPE (MAT_ELEM_),
INTENT(INOUT) :: MAT_ELEM
211 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
212 TYPE () ,
INTENT(IN) :: DT
213 type (glob_therm_) ,
intent(inout) :: glob_therm
214 integer,
intent(in) :: LIPART1
215 INTEGER,
DIMENSION(LIPART1, NPART),
INTENT(IN) :: IPART
221 . I,J,JG,IR,IS,IT,NPTR,NPTS,NPTT,NLAY,MX,
222 . NPLAT,IDRIL,LENF,LENM,LENS,NNOD,
223 . NG,NPG,PT1,PT2,PT3,PT4,PTF,PTM,PTS,L_DIRA,L_DIRB,
224 . IPPID,JPID,IPTHK,IPPOS,IPMAT,IPMAT_IPLY,MATLY,IFAILWAVE,
225 . J1,J2 ,IPANG,IGTYP,IGMAT,ILAY,NPTTOT,IREP,KK(5),
226 . LENFPINCH,LENMPINCH,LENEPINCHXZ,,LENEPINCHZZ,
227 . PTFP,PTMP,PTEPXZ,PTEPYZ,PTEPZZ,NPINCH,IDRAPE,ACTIFXFEM,
228 . SEDRAPE,NUMEL_DRAPE
229 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),MAT_IPLY(MVSIZ,NPT),
230 . IPLAT(MVSIZ),ISTACK(MVSIZ,NPT),FWAVE_EL(NEL)
234 . rxyz(mvsiz,2*nnod),
235 . vcore(mvsiz,3*nnod),vxyz(mvsiz,3*nnod),off(mvsiz),
236 . vqn(mvsiz,9*nnod),vqg(mvsiz,9*nnod),vnrm(mvsiz,3*nnod),
237 . bm(mvsiz,9*nnod),bmf(mvsiz,9*nnod),bf(mvsiz,6*nnod),
238 . bc(mvsiz,10*nnod),vq(mvsiz,9),vjfi(mvsiz,6,4),
239 . tc(mvsiz,4),jac(mvsiz,npg),hx(mvsiz,npg),hy(mvsiz,npg),
240 . veta(4,npg),vksi(4,npg),vf(mvsiz,12),vm(mvsiz,8),
241 . vastn(mvsiz,4*nnod),
area(mvsiz),
242 . lc(mvsiz),vdef(mvsiz,8),cdet(mvsiz),thk2(mvsiz),
243 . exx(mvsiz) ,eyy(mvsiz) ,exy(mvsiz) ,exz(mvsiz) ,eyz(mvsiz),
244 . kxx(mvsiz) ,kyy(mvsiz) ,kxy(mvsiz) ,sigy(mvsiz),
245 . dt1c(mvsiz),ssp(mvsiz) ,viscmx(mvsiz),rho(mvsiz) ,
246 . nu(mvsiz) ,g(mvsiz) ,a11(mvsiz) ,a12(mvsiz) ,vol0(mvsiz),
248 . gs(mvsiz) ,alpe(mvsiz),ym(mvsiz) ,bid,zcfac(mvsiz,2),
249 . x13(mvsiz) ,y13(mvsiz), x24(mvsiz) ,amu(mvsiz),
250 . dd(mvsiz,6),volg(mvsiz),y24(mvsiz),facn(mvsiz,2),die(mvsiz),
251 . tempel(mvsiz),them(mvsiz,4),
252 . zl(mvsiz),ply_f(mvsiz,5, npt), ply_vxyz(mvsiz,3*nnod,npt),
253 . fly11(mvsiz, npt), fly21(mvsiz, npt), fly31(mvsiz, npt),
254 . fly12(mvsiz, npt), fly22(mvsiz, npt), fly32(mvsiz, npt),
255 . fly13(mvsiz, npt), fly23(mvsiz, npt), fly33(mvsiz, npt),
256 . fly14(mvsiz, npt), fly24(mvsiz, npt), fly34(mvsiz, npt),
257 . ply_exx(mvsiz,npt), ply_eyy(mvsiz,npt), ply_exy(mvsiz,npt),
258 . ply_ezx(mvsiz,npt), ply_eyz(mvsiz,npt), ply_fn(mvsiz,12,npt),
259 . thkly(mvsiz,npt),posly(mvsiz,npt),
260 . del_ply(mvsiz,12,npt),th_iply(mvsiz,npt),
261 . sig_iply(mvsiz,3,npt),vni(4,4),
262 . vfi(mvsiz,12,npt),delg_ply(mvsiz,3,npt),
263 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
264 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
265 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
266 . a11_ply(mvsiz,npt),a11_iply(mvsiz,npt),sti_ply(mvsiz,npt),
267 . offi(mvsiz,npt),rlz(mvsiz,nnod),vrlz(mvsiz),
268 . bm0rz(mvsiz,4,nnod),bmkrz(mvsiz,4,nnod),bmerz(mvsiz,4,nnod),
269 . bmrz(mvsiz,3,nnod),brz(mvsiz,4,nnod),krz(mvsiz),
270 . vmz(mvsiz,nnod),ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
271 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
272 . conde(mvsiz),a11r(mvsiz),
273 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
274 . xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),
275 . vdefpinch(mvsiz,3), vpinchxyz(mvsiz,nnod), bcp(mvsiz,2*nnod),
276 . bp(mvsiz,nnod), tnpg(mvsiz,nnod,npg), vfpinch(mvsiz,4), facp(mvsiz),
277 . e, anu, a11pinch, fp(mvsiz,3,4),
278 . vpincht1(mvsiz,nnod),vpincht2(mvsiz,nnod),dbetadxy(mvsiz,3),
279 . bpinchdamp(mvsiz,8),vfpinchdampx(mvsiz,4),vfpinchdampy(mvsiz,4),
280 . ezzavg(mvsiz),areapinch(mvsiz),zla(mvsiz)
282 . NPLATT,PTW ,LENW,PTT,IPOUT,IMAT
283 INTEGER IPLATT(MVSIZ)
285 . VCORET(MVSIZ,3*NNOD),BMT(MVSIZ,9*NNOD),VQGT(,9*NNOD),
286 . VJFIT(MVSIZ,6,4),JACT(MVSIZ,NPG),HXT(MVSIZ,NPG),HYT(MVSIZ,NPG),
287 . AREAT(MVSIZ),X13T(MVSIZ) ,Y13T(MVSIZ), X24T(MVSIZ),Y24T(MVSIZ),
288 . BM0RZT(MVSIZ,4,NNOD),BMKRZT(MVSIZ,4,NNOD),BMERZT(MVSIZ,4,NNOD),
289 . BMRZT(MVSIZ,4,NNOD),F_DEF(MVSIZ,8,NPG),
290 . X1G(MVSIZ), X2G(MVSIZ), X3G(MVSIZ), X4G(MVSIZ),
291 . Y1G(MVSIZ), Y2G(MVSIZ), Y3G(MVSIZ), Y4G(MVSIZ),
292 . Z1G(MVSIZ), Z2G(MVSIZ), Z3G(MVSIZ), Z4G(MVSIZ),
293 . VRL1(MVSIZ,3),VRL2(MVSIZ,3),VRL3(MVSIZ,3),VRL4(MVSIZ,3),
294 . UXYZ(MVSIZ,12),AXYZ(MVSIZ,4),WXY(MVSIZ),XLCORE(MVSIZ,2*(NNOD-1))
295 my_real ,
DIMENSION(NEL) :: ZOFFSET
296! variables for heat transfer
297 my_real,
dimension(mvsiz) :: fheat
298 my_real,
dimension(mvsiz) :: epsd_pg,epsd_glob
299 my_real,
dimension(mvsiz) :: ssp_eq,ssp_max
300 my_real :: dtinv,asrate,eps_m2,eps_k2
303 INTEGER,
DIMENSION(NEL) :: OFFLY
304 my_real,
DIMENSION(:) ,
POINTER :: DIR_A, DIR_B, DADV
305 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIR1_CRK,DIR2_CRK,DIRA,DIRB
309 INTEGER :: NDDL, NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ)
312DIMENSION(:,:),
ALLOCATABLE :: var_reg
316 TYPE(g_bufel_) ,
POINTER :: GBUF
318 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
319 TYPE(PINCH_LOCAL_STRUCT_) :: PINCH_LOCAL
321 INTEGER SDIR_B ! Size of DIR_B
326 gbuf => elbuf_str%GBUF
327 idrape = elbuf_str%IDRAPE
333 actifxfem = iparg(70)
336 numel_drape = numelc_drape
342 nlay = elbuf_str%NLAY
343 nptr = elbuf_str%NPTR
344 npts = elbuf_str%NPTS
360 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
362 IF (npt == 0) npttot = npt
367 ALLOCATE(var_reg(nel,nddl))
373 ifailwave = iparg(79)
374 IF (ifailwave > 0)
THEN
376 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
379 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
384 . nel ,ixc ,itab ,ngl ,offly )
387 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
388 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
389 igtyp = igeo(11,pid(1))
390 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
391 ALLOCATE(dira(npttot*nel*l_dira))
392 ALLOCATE(dirb(npttot*nel*l_dirb))
395 IF (l_dira == 0)
THEN
397 ELSEIF (irep == 0)
THEN
400 nptt = elbuf_str%BUFLY(ilay)%NPTT
403 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
404 j1 = 1+(j-1)*l_dira*nel
406 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
408 npttot = npttot + nptt
411 sdir_a = npttot*nel*l_dira
412 sdir_b = npttot*nel*l_dirb
413 dir_a => dira(1:npttot*nel*l_dira)
414 dir_b => dirb(1:npttot*nel*l_dirb)
416 sdir_a=nlay*nel*l_dira
417 sdir_b=nlay*nel*l_dirb
418 ALLOCATE(dira(nlay*nel*l_dira))
419 ALLOCATE(dirb(nlay*nel*l_dirb))
422 IF (l_dira == 0)
THEN
424 ELSEIF (irep == 0)
THEN
426 j1 = 1+(j-1)*l_dira*nel
428 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
431 sdir_a=nlay*nel*l_dira
432 sdir_b=nlay*nel*l_dirb
433 dir_a => dira(1:nlay*nel*l_dira)
434 dir_b => dirb(1:nlay*nel*l_dirb)
437 ALLOCATE(dir1_crk(0))
438 ALLOCATE(dir2_crk(0))
450 vfpinchdampx(i,j) = zero
451 vfpinchdampy(i,j) = zero
459 igtyp = igeo(11,ixc(6,1))
460 igmat = igeo(98 ,ixc(6,1))
471 ALLOCATE(pinch_local%EPINCHXZ(mvsiz
472 ALLOCATE(pinch_local%EPINCHYZ(mvsiz))
473 ALLOCATE(pinch_local%EPINCHZZ(mvsiz))
480 CALL cbacoor(elbuf_str ,jft,jlt,x,v,
481 . vr,ixc,pm,gbuf%OFF,lc,
482 1
area,vxyz, rxyz,vcore,jac,hx,hy,vksi,veta,
483 2 vqn,vqg,vq,vjfi,vnrm,vastn,nplat,iplat,
484 3 x13 ,x24 ,y13,y24,off, dd,nlay,
485 4 irep,npttot,ismstr,nel ,idril ,
486 5 gbuf%SMSTR,dir_a,dir_b,facn,zl,
487 6 r11 ,r12 ,r13 ,r21 ,r22 ,r23 ,
488 7 r31 ,r32 ,r33 ,inod_pxfem ,rlz ,
489 8 thke ,ishplyxfem ,ux1 ,ux2 ,ux3 ,
490 9 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
491 a vl1 ,vl2 ,vl3 ,vl4 ,xl2 ,
492 b xl3 ,xl4 ,yl2 ,yl3 ,yl4 ,xlcore,npinch)
494 CALL cncoef3(jft ,jlt ,pm ,mat ,geo ,
495 2 pid ,off ,
area ,shf ,thk0 ,
497 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
498 5 rho ,volg ,gs ,mtn ,ithk ,
499 6 npttot ,dt1c ,dt1 ,ihbe ,amu ,
500 7 krz ,igeo ,a11r ,isubstack, stack%PM,
505 1 tnpg ,vpinchxyz ,vpinch ,
506 2 vq ,vqn ,ixc ,jft ,jlt ,
507 3 nplat ,iplat ,gbuf%THK ,dt1c ,
512 ezzavg(i) = fourth*(vpinchxyz(i,1)+vpinchxyz(i,2)+vpinchxyz(i,3)+vpinchxyz(i,4))*dt1c(i)
513 areapinch(i) =
area(i)
517 IF(ishplyxfem > 0)
THEN
520 ply_fn(i,1:12,j) = zero
527 ipmat_iply = ipmat + npt
533 thkly(i,j) = stack%GEO(ipthk + j ,isubstack)*thk0(i)
534 matly = stack%IGEO(ipmat + j ,isubstack)
535 jpid = stack%IGEO(ippid + j, isubstack)
536 istack(i,j) = igeo(102 ,jpid)
537 posly(i,j) = stack%GEO(ippos + j ,isubstack)*thk0(i)
538 a11_ply(i,j) = pm(24,matly)
543 th_iply(i,j) = half*(thkly(i,j) + thkly(i,j +1 ))
544 mat_iply(i,j) = stack%IGEO(ipmat_iply + j ,isubstack)
548 CALL cbavit_ply(jft,jlt,ixc,gbuf%OFF,off,nplat,iplat,npt,
549 1 vcore,dd,zl,vq , ply_vxyz,x13 ,x24 ,
550 2 y13,y24,
area ,inod_pxfem ,del_ply,vni,istack,vr)
556 2 y13 ,y24 ,bm0rz,bmkrz,bmerz,
557 3 vcore,nplat,iplat,ismstr)
565 CALL cbadefsh(jft,jlt,x13,x24,y13,y24,bm,vdef,vxyz,nplat,iplat)
567 . vdef ,gbuf%FOR ,gbuf%EINT ,dt1 ,nel )
571 .
CALL cbadefsh_ply(jft,jlt,npt,nplat,iplat,x13,x24,y13,y24,
572 . ply_vxyz,dt1c ,ply_exy)
574 lenf = nel*gbuf%G_FORPG/npg
575 lenm = nel*gbuf%G_MOMPG/npg
578 lenfpinch = nel*gbuf%G_FORPGPINCH/npg
579 lenmpinch = nel*gbuf%G_MOMPGPINCH/npg
580 lenepinchxz = nel*gbuf%G_EPGPINCHXZ/npg
581 lenepinchyz = nel*gbuf%G_EPGPINCHYZ/npg
582 lenepinchzz = nel*gbuf%G_EPGPINCHZZ/npg
585 lens = nel*gbuf%G_STRPG/npg
586 lenw = nel*gbuf%G_STRWPG/npg
588 IF (ismstr == 10 )
THEN
590 CALL cbacoort(elbuf_str,jft,jlt,x,v,
591 . vr,dr,ixc,pm,gbuf%OFF,areat,
592 1 uxyz, axyz,vcoret,jact,hxt,
593 2 hyt,vq,vqgt,vjfit,nplatt,iplatt,
594 3 x13t ,x24t ,y13t,y24t,npttot ,
595 4 gbuf%SMSTR , idril ,xlcore,zl,vqn,nel)
598 CALL cbaderirz(jft ,jlt ,areat,x13t,x24t ,
599 2 y13t ,y24t ,bm0rzt,bmkrzt,bmerzt,
600 3 vcoret,nplatt,iplatt,ismstr)
607 ng = nptr*(is-1) + ir
614 vol0(i) = thk0(i)*cdet(i)
620 CALL cbaderirzt(jft,jlt,ng,bm0rzt,bmkrzt,bmerzt,bmrzt)
623 IF (npttot == 1)
THEN
624 CALL cbadeft1(jft,jlt,ng,vcoret,uxyz,f_def(1,1,ng),
625 1 hxt,hyt,bmt,nplatt,iplatt,idril,
628 CALL cbaderit1(jft,jlt,ng,vcoret,vqgt,vjfit,
629 2 hxt,hyt,veta,vksi,bmt,nplatt,iplatt,
631 CALL cbadeft(jft,jlt,uxyz,axyz,f_def(1,1,ng),
632 2 bmt,nplatt,iplatt,idril,bmrzt )
639 IF (npttot == 1 .AND. mtn==58)
THEN
640 zla(jft:jlt)= zl(jft:jlt)*zl(jft:jlt)/
area(jft:jlt)
641 CALL cbal58warp(elbuf_str,nel,x,ixc,r13,r23,r33,gbuf%OFF,zla )
646 epsd_glob(1:nel) = zero
650 ng = nptr*(is-1) + ir
659 vol0(i) = thk0(i)*cdet(i)
661 IF(ishplyxfem > 0)
THEN
671 IF (npttot == 1)
THEN
672 CALL cbadef1(jft,jlt,ng,vcore,vxyz,vdef,
673 1 hx,hy,bm,nplat,iplat,idril)
676 CALL cbadef(jft,jlt,ng,vcore,
area,cdet,vqn,vqg,vjfi,
677 1 vxyz,rxyz,vdef,vnrm,vastn,
678 2 hx,hy,veta,vksi,bm,bmf,bf,bc,tc,nplat,iplat,
682 2 bm,bmf,bf,nplat,iplat,
687 1 vxyz ,bm0rz,bmkrz,bmerz ,vrlz ,
688 2 bmrz ,brz ,bm ,nplat ,iplat,
694 1 jft ,jlt ,ng ,vqg ,vdef ,
695 2 veta ,vksi ,tc ,nplat ,iplat ,
696 3 bcp ,bp ,vpinchxyz ,vdefpinch ,tnpg,
697 4 dbetadxy ,vpincht1 ,vpincht2 ,bpinchdamp)
703 CALL cbastra3(gbuf%STRA,gbuf%STRPG(pts),
705 2 exx, eyy, exy, exz, eyz,
706 3 kxx, kyy, kxy, dt1c, tani,
707 4 iepsdot, istrain,ux1 ,ux2 ,ux3 ,
708 6 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
709 7 x13, x24, y13, y24, bm ,
710 8 ismstr ,mtn ,nplat,iplat,idril,
711 9 wxy ,f_def(1,1,ng),gbuf%STRWPG(ptw),nel
714 CALL cbaener(gbuf%FORPG(ptf),gbuf%EINT,jft ,jlt ,off ,
718 IF (ishplyxfem > 0 )
THEN
722 delg_ply(i,1,j) = del_ply(i,1 + jg ,j)
723 delg_ply(i,2,j) = del_ply(i,2 + jg ,j)
724 delg_ply(i,3,j) = del_ply(i,3 + jg ,j)
728 CALL cbadef_ply(jft,jlt,ng,npt,nplat,iplat, vqg,
729 . ply_vxyz,veta,vksi,bm,bc,tc,dt1c,
730 . ply_exx, ply_eyy, ply_eyz, ply_ezx )
735 ng = nptr*(is-1) + ir
736 ptfp = (ng-1)*lenfpinch + 1
737 ptmp = (ng-1)*lenmpinch + 1
738 ptepxz = (ng-1)*lenepinchxz + 1
739 ptepyz = (ng-1)*lenepinchyz + 1
740 ptepzz = (ng-1)*lenepinchzz + 1
743 1 jft ,jlt ,nplat ,iplat ,
744 2 vdefpinch ,pinch_local%EPINCHXZ ,
745 3 pinch_local%EPINCHYZ ,pinch_local%EPINCHZZ,
747 5 gbuf%EPGPINCHXZ(ptepxz),
748 6 gbuf%EPGPINCHYZ(ptepyz),
749 7 gbuf%EPGPINCHZZ(ptepzz) )
753! global element strain rate(shell energy equivalent) - by gauss points
759 dtinv = dt1 /
max(dt1**2,em20)
760#include "vectorize.inc"
762 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
763 . * one_over_9*gbuf%thk(i)**2
764 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
765 epsd_pg(i) = sqrt(eps_k2 + eps_m2
766 epsd_glob(i) = epsd_glob(i) + epsd_pg(i) / npg
770 CALL cbatempel(jft ,jlt ,ng ,ixc ,temp ,tempel)
774 CALL cbavarnl(jft ,jlt ,ng ,ixc ,nloc_dmg
775 . var_reg ,nddl ,nc1 ,nc2 ,nc3 ,
781 IF ((itask==0).AND.(imon_mat == 1))
CALL startime(timers,35)
785 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
786 2 nel ,mtn ,ipla ,ithk ,group_param,
787 3 pm ,geo ,npf ,tf ,bufmat ,
788 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
789 5 cdet ,exx ,eyy ,exy ,exz ,
790 6 eyz ,kxx ,kyy ,kxy ,nu ,
791 7 off ,thk0 ,mat ,pid ,
792 8 gbuf%FORPG(ptf),gbuf%MOMPG(ptm) ,gbuf%STRPG(pts),failwave,fwave_el,
793 9 gbuf%THK ,gbuf%EINT ,iofc ,
794 a g ,a11 ,a12 ,vol0 ,indxof ,
795 b ngl ,zcfac ,shf ,gs
797 d dir_a ,dir_b ,igeo ,
798 e ipm ,ifailure ,npg ,
799 f tempel ,die ,jthe ,iexpan ,gbuf%TEMPG(ptt
800 g ishplyxfem,ply_exx ,
801 h ply_eyy ,ply_exy ,ply_ezx ,ply_eyz ,ply_f ,
802 i delg_ply ,th_iply ,sig_iply ,r11 ,r12 ,
803 j r13 ,r21 ,r22 ,r23 ,r31 ,
804 k r32 ,r33 ,ng ,table ,ibid
805 l offi ,a11_iply ,ibid ,
806 m dir1_crk ,dir2_crk ,lc ,
807 n ismstr ,ir ,is ,nlay ,npt ,
808 o ibid ,ibid ,isubstack ,stack ,
809 p f_def(1,1,ng),itask ,drape_sh4n ,var_reg(1,1),
810 q pinch_local , gbuf%FORPGPINCH(ptfp), gbuf%MOMPGPINCH(ptmp),ezzavg ,
812 ssp_eq(jft:jlt) = ssp(jft:jlt)
815 1 elbuf_str ,jft ,jlt ,nft ,iparg
816 2 nel ,mtn ,ipla ,ithk
817 3 pm ,geo ,npf ,tf ,bufmat ,
818 4 ssp ,rho ,viscmx ,dt1c ,sigy
819 5 cdet ,exx ,eyy ,exy
820 6 eyz ,kxx ,kyy ,kxy ,nu ,
821 7 off ,thk0 ,mat ,pid ,mat_elem ,
822 8 gbuf%FORPG(ptf),gbuf%MOMPG(ptm) ,gbuf%STRPG(pts),failwave
823 9 gbuf%THK ,gbuf%EINT ,iofc ,
824 a g ,a11 ,a12 ,vol0 ,indxof ,
825 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
827 d dir_a ,dir_b ,igeo ,
828 e ipm ,ifailure ,npg ,fheat ,
829 f tempel ,die ,jthe ,iexpan ,gbuf%TEMPG(ptt) ,
830 g ishplyxfem,ply_exx ,
831 h ply_eyy ,ply_exy ,ply_ezx ,ply_eyz ,ply_f ,
832 i delg_ply ,th_iply ,sig_iply ,r11 ,r12 ,
833 j r13 ,r21 ,r22 ,r23 ,r31 ,
834 k r32 ,r33 ,ng ,table ,ibid ,
835 l offi ,sensors ,a11_iply ,ibid ,
836 m dir1_crk ,dir2_crk ,lc ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
838 o ibid ,ibid ,isubstack ,stack ,
839 p f_def(1,1,ng),itask ,drape_sh4n,var_reg(1,1),nloc_dmg ,
840 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
841 q ncycle ,snpc ,stf ,nxlaymax, idel7nok ,
842 s userl_avail ,maxfunc ,npttot ,sbufmat, sdir_a ,
843 t sdir_b ,gbuf%FORPG_G(ptf) ,ssp_eq,
844 x ipart ,lipart1 ,ipartc )
846 ssp_max(jft:jlt) =
max(ssp_max(jft:jlt),ssp_eq(jft:jlt))
848 IF ((itask==0).AND.(imon_mat == 1))
CALL stoptime(timers,35)
851 CALL cbaener(gbuf%FORPG(ptf),gbuf%EINT,jft ,jlt ,off ,
860 gbuf%THK(i) = gbuf%THK(i) - three_over_4*(gbuf%THK(i)-thk0(i))
861 thk0(i) = gbuf%THK(i)
868 CALL cbavisc(jft ,jlt ,vdef ,amu ,off ,
869 2 shf ,nu ,rho ,ssp ,cdet,
870 3 thk0 ,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),npttot,mtn ,
871 4 ipartc ,partsav ,dt1 ,nel )
875 IF (npttot == 1)
THEN
876 CALL cbafori1(jft ,jlt ,gbuf%FORPG(ptf),bm ,vf ,
877 . nplat ,iplat ,vol0 ,nel )
879 CALL cbafori(jft ,jlt ,ng ,cdet ,thk0,
880 2 thk2 ,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),nel ,bm ,
881 3 bmf ,bf ,bc ,tc ,vf ,
882 4 vm ,nplat ,iplat ,vol0 )
886 CALL cbaforrz(jft ,jlt ,vol0 ,gbuf%FORPG(ptf),gbuf%HOURG,
887 2 vf ,vmz ,bm ,bmrz ,brz ,
888 3 krz ,vrlz ,gbuf%EINT,off ,dt1c ,
889 4 nplat,iplat,ng ,nel)
894 1 vol0, ply_f,bm,bc,tc,sig_iply,vni,
area,
899 1 jft ,jlt ,ng ,nel ,nplat ,iplat ,
900 2 cdet ,thk0 ,thk2 ,vol0 ,
901 3 gbuf%FORPGPINCH(ptfp) , gbuf%MOMPGPINCH(ptmp),
902 4 bcp ,bp ,vfpinch ,dbetadxy,
903 5 rho ,lc ,ssp ,bpinchdamp,
904 6 vfpinchdampx ,vfpinchdampy)
911 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1)
THEN
912 CALL cbatherm(jft ,jlt ,pm(1,mat(1)) ,thk0 ,ixc ,
913 . bm ,
area ,dt1c(1) ,temp ,tempel,fheat ,
914 . nplat ,iplat,them ,glob_therm%THEACCFACT)
916 CALL cbatherm(jft ,jlt ,pm(1,mat(1)) ,thk0 ,ixc ,
917 . bm ,
area ,dt1c(1) ,temp ,tempel,die ,
918 . nplat ,iplat,them ,glob_therm%THEACCFACT)
926 1 nloc_dmg, var_reg(1,1), thk0, nel,
927 2 gbuf%OFF,
area, nc1, nc2,
928 3 nc3, nc4, elbuf_str%NLOC(ir,is), ixc(1,jft),
929 4 nddl, itask, ng, jft,
930 5 jlt, x13, y13, x24,
931 6 y24, dt2t, gbuf%THK_I, gbuf%AREA,
942 gbuf%epsd(1:nel) = asrate * epsd_glob(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
947 1 jft ,jlt ,nplat ,iplat ,
948 2 dt1c ,gbuf%THK ,thk0 ,ezzpg)
964 gbuf%FOR(kk(j)+i) = fourth*(gbuf%FORPG(pt1+kk(j)+i)
965 . + gbuf%FORPG(pt2+kk(j)+i)
966 . + gbuf%FORPG(pt3+kk(j)+i)
967 . + gbuf%FORPG(pt4+kk(j)+i))
976 gbuf%MOM(kk(j)+i) = fourth*(gbuf%MOMPG(pt1+kk(j)+i)
977 . + gbuf%MOMPG(pt2+kk(j)+i)
978 . + gbuf%MOMPG(pt3+kk(j)+i)
979 . + gbuf%MOMPG(pt4+kk(j)+i))
985 CALL cbaforct(jft ,jlt ,volg ,x13 ,x24 ,
986 2 y13 ,y24 ,gbuf%FOR,vf ,nplat,
990 . vdef ,gbuf%FOR ,gbuf%EINT
993 IF (npttot == 1)
THEN
995 2 amu, off,rho ,ssp ,
area,thk0 ,
997 4 ipartc,partsav,kfts)
1003 1 jft ,jlt ,vqn ,vq ,vf ,
1004 2 vm ,nplat ,iplat ,
1005 3 f11 ,f12 ,f13 ,f14 ,f21 ,
1006 4 f22 ,f23 ,f24 ,f31 ,f32 ,
1007 5 f33 ,f34 ,m11 ,m12 ,m13 ,
1008 6 m14 ,m21 ,m22 ,m23 ,m24 ,
1009 7 m31 ,m32 ,m33 ,m34 ,vcore ,
1010 8 dd ,vmz ,idril ,off
1012 1 jft ,jlt ,npt ,nplat ,iplat ,vqn,
1013 2 vq ,ply_fn ,vfi ,vcore ,dd ,
1014 6 fly11 ,fly12 ,fly13 ,fly14 ,fly21 ,
1015 7 fly22 ,fly23 ,fly24 ,fly31 ,fly32 ,
1016 8 fly33 ,fly34 ,off)
1017 IF (npinch > 0)
THEN
1019 1 jft ,jlt ,vqn ,vq ,vfpinch,
1020 2 nplat ,iplat ,fp ,vcore ,dd ,thk0,
1021 3 vfpinchdampx,vfpinchdampy)
1030 2 ixc, gbuf%THK, gbuf%EINT, partsav,
1031 3
area, mat, ipartc, x,
1032 4 vr, bid, bid, bid,
1033 5 thk2, ipout, off, nft,
1034 6 gresav, grth, igrth, vl1,
1035 7 vl2, vl3, vl4, vrl1,
1036 8 vrl2, vrl3, vrl4, x1g,
1037 9 x2g, x3g, x4g, y1g,
1038 a y2g, y3g, y4g, z1g,
1039 b z2g, z3g, z4g, ibid,
1040 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
1042 e gbuf%G_WPLA, gbuf%WPLA )
1052 a11pinch = e / (one-two
1053 ELSEIF(mtn == 91)
THEN
1057 a11pinch = e / (one-two*anu)
1061 1 jft ,jlt ,off , dt2t ,amu ,
1062 2 neltst ,ityptst,sti , stir ,gbuf%OFF
1063 3 ssp ,viscmx ,rho , volg ,thk0,thk2,
1064 4 a11 ,lc ,alpe , ngl ,ismstr,
1065 5 iofc ,nnod ,
area , g ,shf ,
1066 6 msc ,dmelc ,jsms , bid ,igtyp ,
1067 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT, a11pinch)
1072 1 jft ,jlt ,off , dt2t ,amu ,
1073 2 neltst ,ityptst,sti , stir ,gbuf%OFF,
1074 3 ssp ,viscmx ,rho , volg ,thk0,thk2,
1075 4 a11 ,lc ,alpe , ngl ,ismstr
1076 5 iofc ,nnod ,
area , g ,shf ,
1077 6 msc ,dmelc ,jsms , bid ,igtyp
1078 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
1079 8 pm ,mat(jft) , nel ,zoffset ,ssp_max)
1085 IF (jthe > 0.AND. glob_therm%IDT_THERM == 1)
THEN
1087 . jtur ,tempel ,vol0 ,rho ,
1088 . lc ,off ,conde ,gbuf%re ,gbuf%rk )
1091 IF(ishplyxfem > 0)
THEN
1093 . jft ,jlt ,npt,off , lc
1094 . th_iply ,a11_ply ,a11_iply,sti_ply , offi,viscmx)
1100 CALL dtcba_reg(nloc_dmg,thk0 ,nel ,gbuf%OFF,
1101 . lc ,ixc(1,jft) ,nddl ,dt2t )
1107 CALL cupdt3f(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 9 partsav,mat ,ipartc,glob_therm%NODADT_THERM)
1116 ELSEIF(iparit == 0)
THEN
1117 CALL cupdtn3(jft ,jlt ,f ,m ,nvc ,
1118 2 gbuf%OFF,off ,sti ,stir,stifn,
1119 3 stifr ,ixc ,pm ,
area ,gbuf%THK,
1120 4 f11 ,f12 ,f13 ,f14 ,f21 ,
1121 5 f22 ,f23 ,f24 ,f31 ,f32 ,
1122 6 f33 ,f34 ,m11 ,m12 ,m13 ,
1123 7 m14 ,m21 ,m22 ,m23 ,m24 ,
1124 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
1125 a partsav,mat ,ipartc ,facn ,jthe,
1126 b them , fthe ,condn ,conde,glob_therm%NODADT_THERM)
1130 1 jft ,jlt ,nvc ,ixc ,
1131 2 fp ,fpinch ,sti ,stifpinch ,facp )
1135 CALL cupdtn3p(jft ,jlt ,gbuf%OFF,off ,sti,
1136 2 stir ,fsky ,fsky ,iadc ,
1137 4 f11 ,f12 ,f13 ,f14 ,f21,
1138 5 f22 ,f23 ,f24 ,f31 ,f32,
1139 6 f33 ,f34 ,m11 ,m12 ,m13,
1140 7 m14 ,m21 ,m22 ,m23 ,m24,
1141 8 m31 ,m32 ,m33 ,m34 ,ixc,
1142 a gbuf%EINT,partsav,mat,ipartc,pm ,
1143 b
area ,gbuf%THK,facn ,jthe,them ,
1144 c fthesky,condnsky,conde,glob_therm%NODADT_THERM )
1147 IF(ishplyxfem > 0)
THEN
1149 1 jft, jlt, nvc, gbuf%OFF,
1150 2 off, iadc_pxfem,iel_pxfem, inod_pxfem,
1151 3 ixc, ms, in, ms_ply,
1152 4 zi_ply, istack, posly, fly11,
1153 5 fly12, fly13, fly14, fly21,
1154 6 fly22, fly23, fly24, fly31,
1155 7 fly32, fly33, fly34, facn,
1156 8 sti_ply, msz2, nft, npt)
1159 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1160 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1161 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)
1164 DEALLOCATE(pinch_local%EPINCHXZ)
1165 DEALLOCATE(pinch_local%EPINCHYZ)
1166 DEALLOCATE(pinch_local%EPINCHZZ)