83 1 ELBUF_STR, JFT, JLT, PM,
85 3 V, VR, FAILWAVE, NVC,
87 5 BUFMAT, PARTSAV, DT2T, NELTST,
88 6 ITYPTST, STIFN, STIFR, FSKY,
90 8 TANI, OFFSET, EANI, F11,
96 E M32, M33, M34, INDXOF,
97 F IPARTC, THKE, GROUP_PARAM, MAT_ELEM,
98 G NEL, ISTRAIN, IHBE, ITHK,
99 H IOFC, IPLA, NFT, ISMSTR,
100 I NPT, KFTS, FZERO, IGEO,
101 J IPM, IFAILURE, ITASK, JTHE,
102 K TEMP, FTHE, FTHESKY, IEXPAN,
103 L GRESAV, GRTH, XEDGE4N, IGRTH,
104 M MSC, DMELC, JSMS, TABLE,
105 N IPARG, IXFEM, KNOD2ELC, SENSORS,
106 O ELCUTC, INOD_CRK, IEL_CRK, IBORDNODE,
107 P NODENR, IADC_CRK, NODEDGE, CRKNODIAD,
108 Q CONDN, CONDNSKY, STACK, ISUBSTACK,
109 R XFEM_STR, IG, CRKEDGE, DRAPE_SH4N, IPRI,
110 S NLOC_DMG, INDX_DRAPE, IGRE, JTUR,
111 T OUTPUT, DT, SNPC, STF ,
112 T GLOB_THERM, USERL_AVAIL, MAXFUNC, SBUFMAT ,IPART )
130 use element_mod ,
only : nixc
134#include "implicit_f.inc"
138#include "mvsiz_p.inc"
142#include "com01_c.inc"
143#include "com04_c.inc"
144#include "scr02_c.inc"
145#include "scr17_c.inc"
146#include "scr18_c.inc"
147#include "param_c.inc"
148#include "com_xfem1.inc"
149#include "parit_c.inc"
150#include "timeri_c.inc"
154 TYPE(timer_),
INTENT(INOUT) :: TIMERS
155 INTEGER,
INTENT(IN) :: USERL_AVAIL
156 INTEGER,
INTENT(IN) :: MAXFUNC
157 INTEGER,
INTENT(IN) :: SBUFMAT
158 INTEGER,
INTENT(IN) :: STF
159 INTEGER,
INTENT(IN) :: SNPC
160 INTEGER,
INTENT(IN) :: JTUR
161 INTEGER,
INTENT(IN) :: IGRE
162 INTEGER,
INTENT(IN) :: IG
163 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
164 . NEL,ISTRAIN,IHBE,ITASK,JTHE,JSMS,
165 . ITHK,IOFC,IPLA,NFT,ISMSTR,NPT,KFTS,IFAILURE,IEXPAN,
167 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(),IPARTC(*),
168 . IGEO(NPROPGI,*),IPM(NPROPMI,*),XEDGE4N(4,*),ITAB(*),
169 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,KNOD2ELC(*),
170 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),IBORDNODE(*),
171 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
173 . F11(MVSIZ),F12(MVSIZ),F13(MVSIZ),F14(MVSIZ),
174 . F21(MVSIZ),F22(MVSIZ),F23(MVSIZ),F24(MVSIZ),
175 . F31(MVSIZ),F32(MVSIZ),F33(MVSIZ),F34(MVSIZ),
176 . M11(MVSIZ),M12(MVSIZ),M13(MVSIZ),M14(MVSIZ),
177 . M21(MVSIZ),M22(MVSIZ),M23(MVSIZ),M24(MVSIZ),
178 . M31(MVSIZ),M32(MVSIZ),M33(MVSIZ),M34(MVSIZ),
179 . PM(NPROPM,*),X(*),F(*),M(*),V(*),VR(*),
180 . GEO(NPROPG,*),TF(*), BUFMAT(*),PARTSAV(*),STIFN(*),STIFR(*),
181 . FSKY(*),D(*),DR(*),TANI(6,*),EANI(*), THKE(*),DT2T,
182 . FZERO(3,4,*),TEMP(*), FTHE(*),FTHESKY(*),GRESAV(*),
183 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
185 TYPE (TTABLE) TABLE(*)
186 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
187 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP,NXEL) :: XFEM_STR
188 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
189 TYPE (FAILWAVE_STR_) :: FAILWAVE
190 TYPE (NLOCAL_STR_),
TARGET :: NLOC_DMG
191 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
192 TYPE (OUTPUT_) ,
INTENT(INOUT) :: OUTPUT
193 TYPE (SENSORS_) ,
INTENT(INOUT) ::
194 TYPE () ,
INTENT(INOUT) :: MAT_ELEM
195 TYPE (GROUP_PARAM_),
INTENT(IN) :: GROUP_PARAM
196 TYPE (DT_),
INTENT(IN) :: DT
197 type (glob_therm_) ,
intent(inout) :: glob_therm
199 INTEGER,
DIMENSION(LIPART1,NPART),
INTENT(IN) :: IPART
203 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL)
204,J,IGTYP,,,NPG,ILAY,NLAY,IXEL,IXLAY,NXLAY,
205 . IBID,NG,IR,IS,,L_DIRB,J1,J2,IGMAT,NPTTOT,IREP,IFAILWAVE
212), VY2(MVSIZ), VY3(MVSIZ), VY4(MVSIZ),
213 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ), VZ4(MVSIZ),
216 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
217 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
218 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
219 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
220 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz),e3z(mvsiz)
222 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz),eyz(mvsiz),
223 . kxx(mvsiz), kyy(mvsiz
224 . px2(mvsiz), py1(mvsiz), py2(mvsiz), thk0(mvsiz),
226 . g(mvsiz) , ym(mvsiz) , a11(mvsiz), a12(mvsiz),
227 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
228 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
230 . aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),vhy(mvsiz)
232 . h1(mvsiz), h2(mvsiz), h3(mvsiz), vol0(mvsiz),vol00(mvsiz),
233 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
234 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
235 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
236 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
237 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
238 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
239 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
240 . zcfac(mvsiz,2),gs(mvsiz),
241 . srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),a_i(mvsiz),
242 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),bid,
243 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
244 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
246 . dtcsub(mvsiz),conde(mvsiz),a11r(mvsiz)
249 . areat(mvsiz),px1t(mvsiz),px2t(mvsiz),py1t(mvsiz),py2t(mvsiz),
250 . f_def(mvsiz,8), u13x(mvsiz),u24x(mvsiz),u13y(mvsiz),u24y(mvsiz),
253 INTEGER,
DIMENSION(NEL) :: OFFLY
254 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELCRKINI
255 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
256 my_real,
DIMENSION(:) ,
POINTER :: DIR_A, DIR_B,CRKDIR,CRKLEN,DADV
258 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
259 my_real,
dimension(nel) :: epsd_pg
260 my_real,
dimension(mvsiz) :: fheat
261 my_real,
dimension(mvsiz) :: ssp_eq
264 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
265 . IPOS(4), L_NLOC, INLOC
266 my_real,
DIMENSION(:,:),
ALLOCATABLE ::
267 my_real,
DIMENSION(:),
POINTER :: DNL
270 TYPE(G_BUFEL_) ,
POINTER :: GBUF
272 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
273 TYPE (STACK_PLY) :: STACK
277 GBUF => elbuf_str%GBUF
278 idrape = elbuf_str%IDRAPE
283 nlay = elbuf_str%NLAY
299 actifxfem = iparg(70)
303 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
308 ALLOCATE(var_reg(nel,nddl))
310 IF (npt == 0) npttot = npt
314 ifailwave = iparg(79)
315 IF (ifailwave > 0)
THEN
317 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
320 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
325 . nel ,ixc ,itab ,ngl ,offly )
328 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
329 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
330 igtyp= igeo(11,ixc(6,1))
331 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52) )
THEN
332 ALLOCATE(dira(npttot*nel*l_dira))
333 ALLOCATE(dirb(npttot*nel*l_dirb))
334 IF (l_dira == 0)
THEN
336 ELSEIF (irep == 0)
THEN
339 nptt = elbuf_str%BUFLY(ilay)%NPTT
342 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
343 j1 = 1+(j-1)*l_dira*nel
345 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
347 npttot = npttot + nptt
350 sdir_a=npttot*nel*l_dira
351 sdir_b=npttot*nel*l_dirb
352 dir_a => dira(1:npttot*nel*l_dira)
353 dir_b => dirb(1:npttot*nel*l_dirb)
355 sdir_a=nlay*nel*l_dira
356 sdir_b=nlay*nel*l_dirb
357 ALLOCATE(dira(nlay*nel*l_dira))
358 ALLOCATE(dirb(nlay*nel*l_dirb))
361 IF (l_dira == 0)
THEN
363 ELSEIF (irep == 0)
THEN
365 j1 = 1+(j-1)*l_dira*nel
367 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
370 sdir_a=nlay*nel*l_dira
371 sdir_b=nlay*nel*l_dirb
372 dir_a => dira(1:nlay*nel*l_dira)
373 dir_b => dirb(1:nlay*nel*l_dirb)
379 ALLOCATE(elcrkini(nxlaymax*nel))
380 ALLOCATE(dir1_crk(nxlaymax*nel))
381 ALLOCATE(dir2_crk(nxlaymax*nel))
385 IF (nlevset > 0)
THEN
386 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
387 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
390 ALLOCATE(elcrkini(0))
391 ALLOCATE(dir1_crk(0))
392 ALLOCATE(dir2_crk(0))
398 CALL ccoor3(jft ,jlt ,x ,ixc ,geo ,gbuf%OFF,
399 2 off ,sigy ,pid ,v ,vr ,vl1,vl2,vl3,vl4,
400 3 vrl1,vrl2,vrl3,vrl4,mat,dt1c,thke ,thk0 ,ngl,
401 4 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
402 5 y3g ,y4g ,z1g ,z2g ,z3g ,z4g )
404 icsen= igeo(3,pid(1))
405 igtyp= igeo(11,pid(1))
407 igmat= igeo(98,pid(1))
409 IF (ishfram == 1)
THEN
411 CALL cevec3(elbuf_str ,dir_a,dir_b,
412 1 jft ,jlt ,x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,y3g ,y4g ,
413 2 z1g ,z2g ,z3g ,z4g ,e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
414 3 e3x ,e3y ,e3z ,irep,nlay,nel)
417 CALL cnvec3(elbuf_str ,dir_a ,dir_b ,
418 1 jft ,jlt ,irep ,igtyp ,nlay ,
419 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
420 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
421 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
422 5 e3x ,e3y ,e3z ,nel )
427 1 jft, jlt, gbuf%SMSTR,gbuf%OFF,
428 2 sti, stir,
area, px1,
432 6 x3g, x4g, y1g, y2g,
433 7 y3g, y4g, z1g, z2g,
434 8 z3g, z4g, e1x, e1y,
435 9 e1z, e2x, e2y, e2z,
436 a e3x, e3y, e3z, vhx,
437 b vhy, a_i, ux1, ux2,
438 c ux3, ux4, uy1, uy2,
439 d uy3, uy4, nel, ismstr)
441 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir ,
442 2 gbuf%SMSTR,px1 ,px2 ,py1 ,py2 ,
443 3 ixc ,
area ,x2 ,x3 ,x4 ,
444 4 y2 ,y3 ,y4 ,z2 ,thk0 ,
448 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
449 2 pid ,off ,
area ,sti ,stir ,
450 3 shf ,thk0 ,thk02 ,nu ,
451 4 g ,ym ,a11 ,a12 ,gbuf%THK,
452 5 ssp ,rho ,h1 ,h2 ,h3 ,
453 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
454 7 ithk ,ismstr ,npttot ,kfts ,
455 8 srh1 ,srh2 ,srh3 ,igeo ,
456 9 a11r ,isubstack ,stack%PM )
458 IF ((ismstr /= 3 .AND. idt1sh == 0) .OR.
459 . idtmin(3) /= 0 .OR. igtyp == 16 .OR. glob_therm%IDT_THERM == 1)
THEN
462 2 x2 ,x3 ,x4 ,y2 ,y3 ,
463 3 y4 ,aldt ,mat ,geo ,pid ,
466 CALL cdefo3(jft ,jlt,vl1,vl2,vl3,vl4,dt1c,px1 ,px2 ,py1,py2,
area,
467 2 exx ,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2
468 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
469 4 vz1 ,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
471 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1
472 1 ,px2 ,py1 ,py2 ,
area,
473 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
474 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
475 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
477 IF (ismstr == 10 )
THEN
478 CALL ccoort3(jft ,jlt ,x ,ixc ,gbuf%OFF ,
479 1 dr ,px1t ,px2t ,py1t ,py2t ,
480 2 e1x ,e1y ,e1z ,e2x ,e2y ,
481 3 e2z ,e3x ,e3y ,e3z ,areat ,
482 4 u13x ,u24x ,u13y ,u24y ,gbuf%SMSTR ,
485 CALL cdefot3(jft ,jlt ,px1t ,px2t ,py1t ,
486 2 py2t ,u13x ,u24x ,u13y ,u24y ,
490 2 exx ,eyy ,exy ,exz ,eyz ,
491 3 kxx ,kyy ,kxy ,dt1c ,tani ,
492 4 gbuf%FOR,gbuf%MOM ,ismstr ,mtn ,
493 6 ihbe ,nft ,istrain ,ux1 ,ux2 ,
494 7 ux3 ,ux4 ,uy1 ,uy2 ,uy3 ,
495 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
496 9 wxy ,gbuf%STRW ,f_def ,nel )
500 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
506 l_nloc = nloc_dmg%L_NLOC
507 dnl => nloc_dmg%DNL(1:l_nloc)
515#include "vectorize.inc"
517 inod(1) = nloc_dmg%IDXI(nc1(i))
518 inod(2) = nloc_dmg%IDXI(nc2(i))
519 inod(3) = nloc_dmg%IDXI(nc3(i))
520 inod(4) = nloc_dmg%IDXI(nc4(i))
521 ipos(1) = nloc_dmg%POSI(inod(1))
522 ipos(2) = nloc_dmg%POSI(inod(2))
523 ipos(3) = nloc_dmg%POSI(inod(3))
524 ipos(4) = nloc_dmg%POSI(inod(4))
525 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
526 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
538 dtinv = dt1 /
max(dt1**2,em20)
540#include "vectorize.inc"
542 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
543 . * one_over_9*gbuf%thk(i)**2
544 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
545 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
547 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
549 IF ((imon_mat==1).AND. itask == 0)
CALL startime(timers,35)
552 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
553 2 nel ,mtn ,ipla ,ithk ,group_param,
554 3 pm ,geo ,npf ,tf ,bufmat ,
555 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
556 5
area ,exx ,eyy ,exy ,exz ,
557 6 eyz ,kxx ,kyy ,kxy ,nu ,
558 7 off ,thk0 ,mat ,pid ,mat_elem ,
559 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
560 9 gbuf%THK ,gbuf%EINT ,iofc ,
561 a g ,a11 ,a12 ,vol0 ,indxof ,
562 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
564 d dir_a ,dir_b ,igeo ,
568 h bid ,bid ,bid ,bid ,bid ,
569 i bid ,bid ,bid ,e1x ,e1y ,
570 j e1z ,e2x ,e2y ,e2z ,e3x ,
571 k e3y ,e3z ,ng ,table ,ixfem ,
572 l bid ,sensors ,bid ,elcrkini ,
573 m dir1_crk ,dir2_crk ,aldt
574 n ismstr ,ir ,is ,nlay ,npt ,
575 o ixlay ,ixel ,isubstack ,stack ,
576 p f_def ,itask ,drape_sh4n ,var_reg
577 r indx_drape ,thke ,sedrape ,numel_drape ,dt
578 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
579 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
580 t sdir_b ,gbuf%FOR_G ,ssp_eq ,
581 x ipart ,lipart1 ,ipartc )
583 IF ((imon_mat==1).AND. itask == 0)
CALL stoptime(timers,35)
588 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
590 IF (nodadt /= 0 .AND. mtn ==58 )
591 .
CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt ,1 )
593 IF (iabs(npttot) == 1)
THEN
594 CALL mhvis3(jft ,jlt ,pm ,gbuf%THK,gbuf%HOURG,
595 2 off ,px1 ,px2 ,py1 ,py2 ,
596 3 ixc ,dt1c ,ssp ,rho ,sti ,
597 4 eani ,geo ,pid ,stir ,mat ,
598 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
599 6 ihbe ,nft ,ismstr ,rx1 ,
600 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
601 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
602 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
603 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
604 b b12 ,b13 ,b14 ,b21 ,b22 ,
605 c b23 ,b24 ,
area ,ym ,nu ,
606 d vhx ,vhy ,h11 ,h12 ,h13 ,
607 e h14 ,h21 ,h22 ,h23 ,h24 ,
608 f h31 ,h32 ,h33 ,h34 ,h1 ,
609 g h2 ,igeo ,nel ,mtn ,a11 )
610 ELSEIF(ihbe == 2)
THEN
611 CALL chsti3(jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,
612 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c,
613 3 ssp ,rho ,sti ,z2 ,eani ,stir,
614 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
615 5 h1 ,h2 ,h3 ,ym ,nu , alpe ,
616 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
618 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
619 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
620 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
622 c ihbe ,nft ,ismstr,srh3,igtyp ,
626 2 jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,px2 ,py1 ,py2 ,
627 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3
628 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3
629 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
630 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
631 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
632 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
633 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
635 b ihbe ,nft ,ismstr,kfts ,
636 c srh1, srh2, srh3 ,igtyp ,
646 2 ixc, gbuf%THK, gbuf%EINT, partsav,
647 3
area, mat, ipartc, x,
648 4 vr, vol0, vol00, thk0,
649 5 thk02, 1, off, nft,
650 6 gresav, grth, igrth, vl1,
651 7 vl2, vl3, vl4, vrl1,
652 8 vrl2, vrl3, vrl4, x1g,
653 9 x2g, x3g, x4g, y1g,
654 a y2g, y3g, y4g, z1g,
655 b z2g, z3g, z4g, ibid,
656 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
657 d actifxfem, igre, sensors, nel,
658 e gbuf%G_WPLA,gbuf%WPLA )
663 IF (ismstr /= 3.AND.(nodadt == 0.OR.idtmin(3) /= 0))
THEN
664 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
665 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
666 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
667 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
668 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
669 6 indxof ,ngl ,ismstr ,iofc ,msc ,
670 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
675 CALL cfint3(jft ,jlt ,gbuf%FOR,gbuf%MOM,thk0 ,thk02 ,
676 2 px1 ,px2 ,py1 ,py2 ,
area ,z2 ,
677 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
678 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
679 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
680 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
681 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
682 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
683 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
684 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
685 b e3x ,e3y ,e3z ,ihbe ,npttot ,fzero )
691 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1)
THEN
692 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
693 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
696 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
697 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
698 . temp ,tempel,die , them ,glob_therm%THEACCFACT)
705 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1)
THEN
706 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
707 . jtur ,tempel ,vol0 ,rho ,
708 . aldt ,off ,conde ,gbuf%re
716 1 nloc_dmg, var_reg, gbuf%THK, nel,
717 2 off,
area, nc1, nc2,
718 3 nc3, nc4, px1, py1,
719 4 px2, py2, elbuf_str%NLOC(1,1),
720 5 ixc(1,jft), nddl, itask, dt2t,
721 6 aldt, gbuf%THK_I, gbuf%AREA, nft
724 IF (iparit == 3)
THEN
725 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
726 2 gbuf%OFF,off ,sti ,stir ,stifn ,
727 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
728 4 f11 ,f12 ,f13 ,f14 ,f21 ,
729 5 f22 ,f23 ,f24 ,f31 ,f32 ,
730 6 f33 ,f34 ,m11 ,m12 ,m13 ,
731 7 m14 ,m21 ,m22 ,m23 ,m24 ,
732 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
733 9 partsav ,mat ,ipartc ,glob_therm%NODADT_THERM)
734 ELSEIF (iparit == 0)
THEN
735 CALL cupdt3(jft ,jlt ,f ,m ,nvc ,
736 2 gbuf%OFF,off ,sti ,stir ,stifn ,
737 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
739 5 f22 ,f23 ,f24 ,f31 ,f32 ,
740 6 f33 ,f34 ,m11 ,m12 ,m13 ,
741 7 m14 ,m21 ,m22 ,m23 ,m24 ,
742 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
743 9 partsav ,mat ,ipartc
744 a fthe ,condn ,conde ,glob_therm%NODADT_THERM)
746 CALL cupdt3p(jft ,jlt ,gbuf%OFF,off ,sti ,
747 2 stir ,fsky ,fsky ,iadc ,ixc ,
748 3 f11 ,f12 ,f13 ,f14 ,f21 ,
749 4 f22 ,f23 ,f24 ,f31 ,f32 ,
750 5 f33 ,f34 ,m11 ,m12 ,m13 ,
751 6 m14 ,m21 ,m22 ,m23 ,m24 ,
752 7 m31 ,m32 ,m33 ,m34 ,
753 8 gbuf%EINT,partsav ,mat ,ipartc,pm ,
754 9
area ,gbuf%THK,jthe ,them ,fthesky,
759 .
CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
767 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
769 . nel ,nft ,ilay ,nlay ,ixc ,
770 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
771 . nodedge ,crkedge ,xedge4n ,ngl ,x2 ,
772 . x3 ,x4 ,y2 ,y3 ,y4 ,
776 . xfem_str(ig,1:nxel) ,nel ,nft ,ixc ,elcutc ,
777 . ilay ,nxlay ,iel_crk ,inod_crk ,
778 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
779 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
780 . x2 ,x3 ,x4 ,y2 ,y3 ,
784 . xfem_str(ig,1:nxel) ,nel ,nft ,ixc ,elcutc ,
785 . ilay ,nxlay ,iel_crk ,inod_crk ,
786 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
787 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
788 . x2 ,x3 ,x4 ,y2 ,y3 ,
792 CALL crkoffc(elbuf_str,xfem_str(ig,1:nxel) ,
793 . jft ,jlt ,nft ,ir ,is ,
794 . nxlay ,iel_crk ,crkedge,xedge4n )
799 IF (ifailwave > 0)
THEN
800 crkdir => elbuf_str%BUFLY(1)%CRKDIR
803 . nel ,ixc ,itab ,crkdir ,dir_a ,
804 . l_dira ,x2 ,x3 ,x4 ,y2 ,
808 IF (
ALLOCATED(dir2_crk))
DEALLOCATE(dir2_crk)
809 IF (
ALLOCATED(dir1_crk))
DEALLOCATE(dir1_crk)
810 IF (
ALLOCATED(elcrkini))
DEALLOCATE(elcrkini)
811 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
812 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
813 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)