82 1 ELBUF_STR, JFT, JLT, PM,
84 3 V, VR, FAILWAVE, NVC,
86 5 BUFMAT, PARTSAV, DT2T, NELTST,
87 6 ITYPTST, STIFN, STIFR, FSKY,
89 8 TANI, OFFSET, EANI, F11,
95 E M32, M33, M34, INDXOF,
96 F IPARTC, THKE, GROUP_PARAM, MAT_ELEM,
97 G NEL, ISTRAIN, IHBE, ITHK,
98 H IOFC, IPLA, NFT, ISMSTR,
99 I NPT, KFTS, FZERO, IGEO,
100 J IPM, IFAILURE, ITASK, JTHE,
101 K TEMP, FTHE, FTHESKY, IEXPAN,
102 L GRESAV, GRTH, XEDGE4N, IGRTH,
103 M MSC, DMELC, JSMS, TABLE,
104 N IPARG, IXFEM, KNOD2ELC, SENSORS,
105 O ELCUTC, INOD_CRK, IEL_CRK, IBORDNODE,
106 P NODENR, IADC_CRK, NODEDGE, CRKNODIAD,
107 Q CONDN, CONDNSKY, STACK, ISUBSTACK,
108 R XFEM_STR, CRKEDGE, DRAPE_SH4N, IPRI,
109 S NLOC_DMG, INDX_DRAPE, IGRE, JTUR,
110 T OUTPUT, DT, SNPC, STF ,
111 T GLOB_THERM, USERL_AVAIL, MAXFUNC, SBUFMAT )
132#include "implicit_f.inc"
136#include
"mvsiz_p.inc"
140#include "com01_c.inc"
141#include
"com04_c.inc"
142#include "scr02_c.inc"
143#include "scr17_c.inc"
144#include "scr18_c.inc"
145#include "param_c.inc"
146#include "com_xfem1.inc"
147#include "parit_c.inc"
148#include "timeri_c.inc"
152 TYPE(timer_),
INTENT(INOUT) :: TIMERS
153 INTEGER,
INTENT(IN) :: USERL_AVAIL
154 INTEGER,
INTENT(IN) :: MAXFUNC
155 INTEGER,
INTENT(IN) :: SBUFMAT
156 INTEGER,
INTENT(IN) :: STF
157 INTEGER,
INTENT(IN) :: SNPC
158 INTEGER,
INTENT(IN) :: JTUR
159 INTEGER,
INTENT(IN) :: IGRE
160 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
161 . NEL,ISTRAIN,IHBE,ITASK,JTHE,JSMS,
162 . ITHK,IOFC,IPLA,NFT,ISMSTR,NPT,KFTS,IFAILURE,IEXPAN,
164 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),IPARTC(*),
165 . IGEO(NPROPGI,*),IPM(NPROPMI,*),XEDGE4N(4,*),ITAB(*),
166 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,KNOD2ELC(*),
167 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),IBORDNODE(*),
168 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
170 . F11(MVSIZ),F12(MVSIZ),F13(MVSIZ),F14(MVSIZ),
171 . F21(MVSIZ),F22(MVSIZ),F23(MVSIZ),F24(MVSIZ),
172 . F31(MVSIZ),F32(MVSIZ),F33(MVSIZ),F34(MVSIZ),
173 . M11(MVSIZ),M12(MVSIZ),M13(MVSIZ),M14(MVSIZ),
174 . M21(MVSIZ),M22(MVSIZ),M23(MVSIZ),M24(MVSIZ),
175 . M31(MVSIZ),M32(MVSIZ),M33(MVSIZ),M34(MVSIZ),
176 . PM(NPROPM,*),X(*),F(*),M(*),V(*),VR(*),
177 . GEO(NPROPG,*),TF(*), BUFMAT(*),PARTSAV(*),STIFN(*),STIFR(*),
178 . FSKY(*),D(*),DR(*),TANI(6,*),EANI(*), THKE(*),DT2T,
179 . FZERO(3,4,*),TEMP(*), FTHE(*),FTHESKY(*),GRESAV(*),
180 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
182 TYPE (TTABLE) TABLE(*)
183 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
184 TYPE (ELBUF_STRUCT_),
DIMENSION(NXEL),
TARGET :: XFEM_STR
185 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
186 TYPE (FAILWAVE_STR_) :: FAILWAVE
187 TYPE (NLOCAL_STR_),
TARGET :: NLOC_DMG
188 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
189 TYPE (OUTPUT_) ,
INTENT(INOUT) :: OUTPUT
190 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
191 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
192 TYPE (GROUP_PARAM_),
INTENT(IN) :: GROUP_PARAM
193 TYPE (DT_),
INTENT(IN) :: DT
194 type (glob_therm_) ,
intent(inout) :: glob_therm
198 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL),
199 . i,j,igtyp,icsen,iflag,iun,npg,ilay,nlay,ixel,ixlay,nxlay,n1,n2,n3,n4,
200 . ibid,ng,ir,is,l_dira,l_dirb,j1,j2,igmat,npttot,irep,ifailwave,idrape,
201 . nptt,it,actifxfem,sedrape,numel_drape
203 . sti(mvsiz),stir(mvsiz),sigy(mvsiz),rho(mvsiz),
204 . x2(mvsiz),x3(mvsiz),x4(mvsiz),y2(mvsiz),y3(mvsiz),
205 . y4(mvsiz),z2(mvsiz),ssp(mvsiz),viscmx(mvsiz),
206 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
207 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
208 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
209 . vx13(mvsiz),vx24(mvsiz),vy13(mvsiz),vy24(mvsiz),
210 . vz13(mvsiz),vz24(mvsiz),thk02(mvsiz),
211 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
212 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
213 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
214 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
215 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz),e3z(mvsiz)
217 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz),eyz(mvsiz),
218 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz), px1(mvsiz),
220 . off(mvsiz), nu(mvsiz) , shf(mvsiz),
area(mvsiz),
221 . g(mvsiz) , ym(mvsiz) , a11(mvsiz), a12(mvsiz),
222 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
223 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
224 . dt1c(mvsiz), dt2c(mvsiz),
225 . aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),vhy(mvsiz)
227 . h1(mvsiz), h2(mvsiz), h3(mvsiz), vol0(mvsiz),vol00(mvsiz),
228 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
229 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
230 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
231 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
232 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
233 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
234 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
235 . zcfac(mvsiz,2),gs(mvsiz),
236 . srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),a_i(mvsiz),
237 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),bid,
238 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
239 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
240 . dsub(mvsiz,3,4),drsub(mvsiz,3,4),tsub(mvsiz),
241 . dtcsub(mvsiz),areas(mvsiz),conde(mvsiz),a11r(mvsiz)
244 . areat(mvsiz),px1t(mvsiz),px2t(mvsiz),py1t(mvsiz),py2t(mvsiz),
245 . f_def(mvsiz,8), u13x(mvsiz),u24x(mvsiz),u13y(mvsiz),u24y(mvsiz),
248 INTEGER,
DIMENSION(NEL) :: OFFLY
249 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELCRKINI
250 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
251 my_real,
DIMENSION(:) ,
POINTER :: DIR_A, DIR_B,CRKDIR,CRKLEN,DADV
253 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
254 my_real,
dimension(nel) :: epsd_pg
255 my_real,
dimension(mvsiz) :: fheat
258 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
259 . IPOS(4), L_NLOC, INLOC
260 my_real,
DIMENSION(:,:),
ALLOCATABLE :: VAR_REG
261 my_real,
DIMENSION(:),
POINTER :: DNL
263 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
264 TYPE() ,
POINTER :: GBUF
265 TYPE(L_BUFEL_) ,
POINTER :: LBUF
266 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
267 TYPE (STACK_PLY) :: STACK
271 GBUF => elbuf_str%GBUF
272 idrape = elbuf_str%IDRAPE
277 nlay = elbuf_str%NLAY
293 actifxfem = iparg(70)
297 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
302 ALLOCATE(var_reg(nel,nddl))
304 IF (npt == 0) npttot = npt
308 ifailwave = iparg(79)
309 IF (ifailwave > 0)
THEN
311 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
314 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
319 . nel ,ixc ,itab ,ngl ,offly )
322 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
323 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
324 igtyp= igeo(11,ixc(6,1))
325 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52) )
THEN
326 ALLOCATE(dira(npttot*nel*l_dira))
327 ALLOCATE(dirb(npttot*nel*l_dirb))
328 IF (l_dira == 0)
THEN
330 ELSEIF (irep == 0)
THEN
333 nptt = elbuf_str%BUFLY(ilay)%NPTT
336 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
337 j1 = 1+(j-1)*l_dira*nel
339 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
341 npttot = npttot + nptt
344 sdir_a=npttot*nel*l_dira
345 sdir_b=npttot*nel*l_dirb
346 dir_a => dira(1:npttot*nel*l_dira)
347 dir_b => dirb(1:npttot*nel*l_dirb)
349 sdir_a=nlay*nel*l_dira
350 sdir_b=nlay*nel*l_dirb
351 ALLOCATE(dira(nlay*nel*l_dira))
352 ALLOCATE(dirb(nlay*nel*l_dirb))
355 IF (l_dira == 0)
THEN
357 ELSEIF (irep == 0)
THEN
359 j1 = 1+(j-1)*l_dira*nel
361 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
364 sdir_a=nlay*nel*l_dira
365 sdir_b=nlay*nel*l_dirb
366 dir_a => dira(1:nlay*nel*l_dira)
367 dir_b => dirb(1:nlay*nel*l_dirb)
373 ALLOCATE(elcrkini(nxlaymax*nel))
374 ALLOCATE(dir1_crk(nxlaymax*nel))
375 ALLOCATE(dir2_crk(nxlaymax*nel))
379 IF (nlevset > 0)
THEN
380 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
381 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
384 ALLOCATE(elcrkini(0))
385 ALLOCATE(dir1_crk(0))
386 ALLOCATE(dir2_crk(0))
392 CALL ccoor3(jft ,jlt ,x ,ixc ,geo ,gbuf%OFF,
393 2 off ,sigy ,pid ,v ,vr ,vl1,vl2,vl3,vl4,
394 3 vrl1,vrl2,vrl3,vrl4,mat,dt1c,thke ,thk0 ,ngl,
395 4 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
396 5 y3g ,y4g ,z1g ,z2g ,z3g ,z4g )
398 icsen= igeo(3,pid(1))
399 igtyp= igeo(11,pid(1))
401 igmat= igeo(98,pid(1))
403 IF (ishfram == 1)
THEN
405 CALL cevec3(elbuf_str ,dir_a,dir_b,
406 1 jft ,jlt ,x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,y3g ,y4g ,
407 2 z1g ,z2g ,z3g ,z4g ,e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
408 3 e3x ,e3y ,e3z ,irep,nlay,nel)
411 CALL cnvec3(elbuf_str ,dir_a ,dir_b ,
412 1 jft ,jlt ,irep ,igtyp ,nlay ,
413 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
414 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
415 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z
416 5 e3x ,e3y ,e3z ,nel )
421 1 jft, jlt, gbuf%SMSTR,gbuf%OFF,
422 2 sti, stir,
area, px1,
426 6 x3g, x4g, y1g, y2g,
427 7 y3g, y4g, z1g, z2g,
428 8 z3g, z4g, e1x, e1y,
429 9 e1z, e2x, e2y, e2z,
430 a e3x, e3y, e3z, vhx,
431 b vhy, a_i, ux1, ux2,
432 c ux3, ux4, uy1, uy2,
433 d uy3, uy4, nel, ismstr)
435 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir ,
436 2 gbuf%SMSTR,px1 ,px2 ,py1 ,py2 ,
437 3 ixc ,
area ,x2 ,x3 ,x4 ,
438 4 y2 ,y3 ,y4 ,z2 ,thk0 ,
442 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
443 2 pid ,off ,
area ,sti ,stir ,
444 3 shf ,thk0 ,thk02 ,nu ,
445 4 g ,ym ,a11 ,a12 ,gbuf%THK,
446 5 ssp ,rho ,h1 ,h2 ,h3 ,
447 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
448 7 ithk ,ismstr ,npttot ,kfts ,
449 8 srh1 ,srh2 ,srh3 ,igeo ,
450 9 a11r ,isubstack ,stack%PM )
452 IF ((ismstr /= 3 .AND. idt1sh == 0) .OR.
453 . idtmin(3) /= 0 .OR. igtyp == 16 .OR. glob_therm%IDT_THERM == 1)
THEN
456 2 x2 ,x3 ,x4 ,y2 ,y3 ,
457 3 y4 ,aldt ,mat ,geo ,pid ,
460 CALL cdefo3(jft ,jlt,vl1,vl2,vl3,vl4,dt1c,px1 ,px2 ,py1,py2,
area,
461 2 exx ,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2 ,y3,
463 4 vz1 ,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
465 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1
466 1 ,px2 ,py1 ,py2 ,
area,
467 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
468 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
469 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
471 IF (ismstr == 10 )
THEN
472 CALL ccoort3(jft ,jlt ,x ,ixc ,gbuf%OFF ,
473 1 dr ,px1t ,px2t ,py1t ,py2t ,
474 2 e1x ,e1y ,e1z ,e2x ,e2y ,
476 4 u13x ,u24x ,u13y ,u24y ,gbuf%SMSTR ,
479 CALL cdefot3(jft ,jlt ,px1t ,px2t ,py1t ,
480 2 py2t ,u13x ,u24x ,u13y ,u24y ,
484 2 exx ,eyy ,exy ,exz ,eyz ,
485 3 kxx ,kyy ,kxy ,dt1c ,tani ,
487 6 ihbe ,nft ,istrain ,ux1 ,ux2 ,
489 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
490 9 wxy ,gbuf%STRW ,f_def ,nel )
494 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
500 l_nloc = nloc_dmg%L_NLOC
501 dnl => nloc_dmg%DNL(1:l_nloc)
509#include "vectorize.inc"
511 inod(1) = nloc_dmg%IDXI(nc1(i))
512 inod(2) = nloc_dmg%IDXI(nc2(i))
513 inod(3) = nloc_dmg%IDXI(nc3(i))
514 inod(4) = nloc_dmg%IDXI(nc4(i))
515 ipos(1) = nloc_dmg%POSI(inod(1))
516 ipos(2) = nloc_dmg%POSI(inod(2))
517 ipos(3) = nloc_dmg%POSI(inod(3))
518 ipos(4) = nloc_dmg%POSI(inod(4))
519 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
520 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
532 dtinv = dt1 /
max(dt1**2,em20)
534#include "vectorize.inc"
536 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
537 . * one_over_9*gbuf%thk(i)**2
538 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
539 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
542 IF ((imon_mat==1).AND. itask == 0)
CALL startime(timers,35)
545 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
546 2 nel ,mtn ,ipla ,ithk ,group_param,
547 3 pm ,geo ,npf ,tf ,bufmat ,
548 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
549 5
area ,exx ,eyy ,exy ,exz ,
550 6 eyz ,kxx ,kyy ,kxy ,nu ,
551 7 off ,thk0 ,mat ,pid ,mat_elem ,
552 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
553 9 gbuf%THK ,gbuf%EINT ,iofc ,
554 a g ,a11 ,a12 ,vol0 ,indxof ,
555 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
557 d dir_a ,dir_b ,igeo ,
558 e ipm ,ifailure ,npg ,fheat ,
559 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
561 h bid ,bid ,bid ,bid ,bid ,
562 i bid ,bid ,bid ,e1x ,e1y ,
563 j e1z ,e2x ,e2y ,e2z ,e3x ,
564 k e3y ,e3z ,ng ,table ,ixfem ,
565 l bid ,sensors ,bid ,elcrkini ,
566 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
567 n ismstr ,ir ,is ,nlay ,npt ,
568 o ixlay ,ixel ,isubstack ,stack ,
569 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
570 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
571 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
572 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
573 t sdir_b ,gbuf%FOR_G)
575 IF ((imon_mat==1).AND. itask == 0)
CALL stoptime(timers,35)
580 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
582 IF (nodadt /= 0 .AND. mtn ==58 )
583 .
CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt )
585 IF (iabs(npttot) == 1)
THEN
586 CALL mhvis3(jft ,jlt ,pm ,gbuf%THK,gbuf%HOURG,
587 2 off ,px1 ,px2 ,py1 ,py2 ,
588 3 ixc ,dt1c ,ssp ,rho ,sti ,
589 4 eani ,geo ,pid ,stir ,mat ,
590 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
591 6 ihbe ,nft ,ismstr ,rx1 ,
592 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
593 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
594 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
595 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
596 b b12 ,b13 ,b14 ,b21 ,b22 ,
597 c b23 ,b24 ,
area ,ym ,nu ,
598 d vhx ,vhy ,h11 ,h12 ,h13 ,
599 e h14 ,h21 ,h22 ,h23 ,h24 ,
600 f h31 ,h32 ,h33 ,h34 ,h1 ,
601 g h2 ,igeo ,nel ,mtn ,a11 )
602 ELSEIF(ihbe == 2)
THEN
603 CALL chsti3(jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,
604 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c,
605 3 ssp ,rho ,sti ,z2 ,eani ,stir,
606 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
607 5 h1 ,h2 ,h3 ,ym ,nu , alpe ,
608 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
609 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area ,
610 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
611 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
612 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
614 c ihbe ,nft ,ismstr,srh3,igtyp ,
618 2 jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,px2 ,py1 ,py2 ,
619 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
620 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area,thk0,vhx ,
621 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
622 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
623 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
624 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
625 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
627 b ihbe ,nft ,ismstr,kfts ,
628 c srh1, srh2, srh3 ,igtyp ,
638 2 ixc, gbuf%THK, gbuf%EINT, partsav
639 3
area, mat, ipartc, x,
640 4 vr, vol0, vol00, thk0,
641 5 thk02, 1, off, nft,
642 6 gresav, grth, igrth, vl1,
643 7 vl2, vl3, vl4, vrl1,
644 8 vrl2, vrl3, vrl4, x1g,
645 9 x2g, x3g, x4g, y1g,
646 a y2g, y3g, y4g, z1g,
647 b z2g, z3g, z4g, ibid,
648 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
649 d actifxfem, igre, sensors, nel,
650 e gbuf%G_WPLA,gbuf%WPLA )
655 IF (ismstr /= 3.AND.(nodadt == 0.OR.idtmin(3) /= 0))
THEN
656 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
657 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
658 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
659 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
660 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
661 6 indxof ,ngl ,ismstr ,iofc ,msc ,
662 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
667 CALL cfint3(jft ,jlt ,gbuf%FOR,gbuf%MOM,thk0 ,thk02 ,
668 2 px1 ,px2 ,py1 ,py2 ,
area ,z2 ,
669 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
670 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
671 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
672 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
673 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
674 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
675 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
676 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
677 b e3x ,e3y ,e3z ,ihbe ,npttot ,fzero )
683 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1)
THEN
684 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
685 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
686 . temp ,tempel,fheat , them ,glob_therm%THEACCFACT)
688 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
689 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
690 . temp ,tempel,die , them ,glob_therm%THEACCFACT)
696 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1)
THEN
697 call dttherm(nel ,pm(1,mat(1)) ,npropm ,glob_therm ,
698 . jtur ,tempel ,vol0 ,rho ,
699 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
707 1 nloc_dmg, var_reg, gbuf%THK, nel,
708 2 off,
area, nc1, nc2,
710 4 px2, py2, elbuf_str%NLOC(1,1),
711 5 ixc(1,jft), nddl, itask, dt2t,
712 6 aldt, gbuf%THK_I, gbuf%AREA, nft)
715 IF (iparit == 3)
THEN
716 CALL cupdt3f(jft ,jlt ,f ,m ,nvc
717 2 gbuf%OFF,off ,sti ,stir ,stifn ,
718 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
719 4 f11 ,f12 ,f13 ,f14 ,f21 ,
720 5 f22 ,f23 ,f24 ,f31 ,f32 ,
721 6 f33 ,f34 ,m11 ,m12 ,m13 ,
722 7 m14 ,m21 ,m22 ,m23 ,m24 ,
723 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
724 9 partsav ,mat ,ipartc ,glob_therm%NODADT_THERM)
725 ELSEIF (iparit == 0)
THEN
726 CALL cupdt3(jft ,jlt ,f ,m ,nvc ,
727 2 gbuf%OFF,off ,sti ,stir ,stifn ,
728 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
729 4 f11 ,f12 ,f13 ,f14 ,f21 ,
730 5 f22 ,f23 ,f24 ,f31 ,f32 ,
732 7 m14 ,m21 ,m22 ,m23 ,m24 ,
733 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
734 9 partsav ,mat ,ipartc,jthe ,them ,
735 a fthe ,condn ,conde ,glob_therm%NODADT_THERM)
738 2 stir ,fsky ,fsky ,iadc ,ixc ,
740 4 f22 ,f23 ,f24 ,f31 ,f32 ,
742 6 m14 ,m21 ,m22 ,m23 ,m24 ,
743 7 m31 ,m32 ,m33 ,m34 ,
744 8 gbuf%EINT,partsav ,mat ,ipartc,pm ,
745 9
area ,gbuf%THK,jthe ,them ,fthesky,
746 a condnsky ,conde ,glob_therm%NODADT_THERM)
750 .
CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
758 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
760 . nel ,nft ,ilay ,nlay ,ixc ,
761 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
762 . nodedge ,crkedge ,xedge4n ,ngl ,x2 ,
763 . x3 ,x4 ,y2 ,y3 ,y4 ,
767 . xfem_str ,nel ,nft ,ixc ,elcutc ,
768 . ilay ,nxlay ,iel_crk ,inod_crk ,
769 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
770 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
771 . x2 ,x3 ,x4 ,y2 ,y3 ,
775 . xfem_str ,nel ,nft ,ixc ,elcutc ,
776 . ilay ,nxlay ,iel_crk ,inod_crk ,
777 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
778 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
779 . x2 ,x3 ,x4 ,y2 ,y3 ,
783 CALL crkoffc(elbuf_str,xfem_str ,
784 . jft ,jlt ,nft ,ir ,is ,
785 . nxlay ,iel_crk ,crkedge,xedge4n )
790 IF (ifailwave > 0)
THEN
791 crkdir => elbuf_str%BUFLY(1)%CRKDIR
794 . nel ,ixc ,itab ,crkdir ,dir_a ,
795 . l_dira ,x2 ,x3 ,x4 ,y2 ,
799 IF (
ALLOCATED(dir2_crk))
DEALLOCATE
800 IF (
ALLOCATED(dir1_crk))
DEALLOCATE(dir1_crk)
801 IF (
ALLOCATED(elcrkini))
DEALLOCATE(elcrkini)
802 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
803 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
804 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)