85 1 ELBUF_STR, JFT, JLT, NFT,
87 3 IPRI, ITHK, NELTST, ISTRAIN,
89 5 PM, GEO, PARTSAV, IXC,
90 6 ITYPTST, BUFMAT, TF, NPF,
93 9 M, STIFN, STIFR, FSKY,
94 A TANI, INDXOF, ISMSTR,
95 B GROUP_PARAM, IPARTC, THKE, NVC,
96 C IOFC, IHBE, F11, F12,
100 G M13, M14, M21, M22,
101 H M23, M24, M31, M32,
102 I M33, M34, KFTS, FZERO,
103 J IGEO, IPM, IFAILURE, ITASK,
104 K JTHE, TEMP, FTHE, FTHESKY,
105 L IEXPAN, GRESAV, GRTH, IGRTH,
106 M XEDGE4N, MSC, DMELC, JSMS,
107 N TABLE, IPARG, MAT_ELEM, IXFEM,
108 O KNOD2ELC, SENSORS, ELCUTC, INOD_CRK,
109 P IEL_CRK, NODENR, IADC_CRK,
110 Q NODEDGE, CRKNODIAD, CONDN, CONDNSKY,
111 R STACK, ISUBSTACK, XFEM_STR, CRKEDGE,
112 S DRAPE_SH4N, NEL, NLOC_DMG, INDX_DRAPE,
113 T IGRE, JTUR, DT, NCYCLE,
114 U SNPC, STF, GLOB_THERM, IDEL7NOK,
115 U USERL_AVAIL, MAXFUNC, SBUFMAT,IPART ,LIPART1)
132 use element_mod ,
only : nixc
136#include
"implicit_f.inc"
140#include "param_c.inc"
141#include "mvsiz_p.inc"
145#include "com_xfem1.inc"
146#include "scr14_c.inc"
147#include "scr18_c.inc"
148#include "parit_c.inc"
149#include "timeri_c.inc"
150#include "impl1_c.inc"
151#include "com04_c.inc"
155 TYPE(timer_),
INTENT(INOUT) :: TIMERS
156 INTEGER ,
INTENT(IN) :: NCYCLE
157 INTEGER,
INTENT(IN) :: USERL_AVAIL
158 INTEGER,
INTENT(IN) :: MAXFUNC
159 INTEGER,
INTENT(INOUT) :: IDEL7NOK
160 INTEGER,
INTENT(IN) :: SBUFMAT
161 INTEGER,
INTENT(IN) :: STF
162 INTEGER,
INTENT(IN) :: SNPC
163 INTEGER JFT,JLT,NFT,NPT,MTN,IPRI,ITHK,NELTST,
164 . ITYPTST ,ISTRAIN ,IPLA,NVC,JSMS,ITASK,IEXPAN,IXFEM,
165 . IOFC,IHBE,KFTS,ISMSTR,IFAILURE,JTHE,ISUBSTACK,NEL
166 INTEGER IXC(NIXC,*),IADC(4,*),IPARTC(*),NPF(*),IGEO(NPROPGI,*),
167 . IPM(NPROPMI,*),INDXOF(MVSIZ),GRTH(*),IGRTH(*),IPARG(*),ITAB(*),
168 . KNOD2ELC(*),XEDGE4N(4,*),
169 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),
170 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
174 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ), F14(MVSIZ),
175 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ), F24(MVSIZ),
176 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ), F34(MVSIZ),
177 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ), M14(MVSIZ),
178 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ), M24(MVSIZ),
179 . M31(MVSIZ), M32(MVSIZ), M33(MVSIZ), M34(MVSIZ),
180 . TF(*), PM(NPROPM,*),GEO(NPROPG,*),PARTSAV(*),
181 . BUFMAT(*), X(3,*),DR(*),V(3,*),VR(3,*),F(3,*),M(3,*),
182 . STIFN(*), STIFR(*),FSKY(*),TANI(6,*),THKE(*),
183 . FZERO(3,4,*),TEMP(*),FTHE(*),FTHESKY(*),GRESAV(*),
184 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
187 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
188 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
189 TYPE (ELBUF_STRUCT_),
DIMENSION(NXEL) :: XFEM_STR
190 TYPE (XFEM_EDGE_) ,
DIMENSION(NXLAYMAX) :: CRKEDGE
191 TYPE (STACK_PLY) :: STACK
192 TYPE (FAILWAVE_STR_) :: FAILWAVE
193 TYPE (GROUP_PARAM_) :: GROUP_PARAM
194 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
195 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
196 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
197 TYPE (DT_) ,
INTENT(IN) :: DT
198 type (glob_therm_) ,
intent(inout) :: glob_therm
199 integer,
intent(in) :: LIPART1
201 INTEGER,
DIMENSION(LIPART1,NPART),
INTENT(IN) :: IPART
208 . ,J,IR,IS,NNOD,NLAY,NXLAY,ILAY,NPG,IXEL,IFAILWAVE,
209 . IBID,ISROT,NG,IXFEM2,L_DIRA,L_DIRB,J1,J2,IORTH,IGTYP,IGMAT,IXLAY,
210 . NPTTOT,IREP,IPOUT,IDRAPE,NPTT,IT,ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
211 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL)
215 . vl13(mvsiz,3), vl24(mvsiz,3), vlhi(mvsiz,3), rlxyz(mvsiz,8),
216 . x13(mvsiz), x24(mvsiz), y13(mvsiz), y24(mvsiz),
217 . mx13(mvsiz), mx23(mvsiz), mx34(mvsiz),
218 . my13(mvsiz), my23(mvsiz), my34(mvsiz), z1(mvsiz),z2(mvsiz),
219 . vq(mvsiz,9), vdef(mvsiz,8), off(mvsiz), dhg(mvsiz,6),
220 .
area(mvsiz), vqn(mvsiz,12), l13(mvsiz), l24(mvsiz),
221 . zcfac(mvsiz,2), a_i(mvsiz), thk02(mvsiz),
222 . exx(mvsiz) ,eyy(mvsiz) ,exy(mvsiz) ,exz(mvsiz) ,eyz(mvsiz),
223 . kxx(mvsiz) ,kyy(mvsiz) ,kxy(mvsiz) ,sigy(mvsiz),
224 . dt1c(mvsiz),ssp(mvsiz) ,viscmx(mvsiz),rho(mvsiz) ,
225 . nu(mvsiz) ,g(mvsiz) ,a11(mvsiz) ,a12(mvsiz) ,vol0(mvsiz),
226 . thk0(mvsiz),sti(mvsiz) ,stir(mvsiz) ,shf(mvsiz) ,
227 . vf(mvsiz,12),vm(mvsiz,8),gs(mvsiz) ,fac1(mvsiz),
228 . alpe(mvsiz),ym(mvsiz) ,bid,facn(mvsiz,2),
229 . lxyz(mvsiz,8),dd(mvsiz,6),db(mvsiz,12),amu(mvsiz),
230 . gsr(mvsiz), a11sr(mvsiz), a12sr(mvsiz), nusr(mvsiz),
231 . shfsr(mvsiz),px2(mvsiz),py1(mvsiz),py2(mvsiz),
232 . die(mvsiz), tempel(mvsiz),them(mvsiz,4),
233 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
234 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
235 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
236 . rlz(mvsiz,4),vhgzk(mvsiz,5),vhgze(mvsiz,5),vrlz(mvsiz),
237 . bm0rz(mvsiz,4,4),bmkrz(mvsiz,4,4),bmerz(mvsiz,4,4),
238 . vmz(mvsiz,4),krz(mvsiz),diz(mvsiz,3),
239 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
240 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
241 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
242 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
243 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
244 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
245 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
246 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
247 . vrx1(mvsiz),vrx2(mvsiz),vrx3(mvsiz),vrx4(mvsiz),
248 . vry1(mvsiz),vry2(mvsiz),vry3(mvsiz),vry4(mvsiz),
249 . vrz1(mvsiz),vrz2(mvsiz),vrz3(mvsiz),vrz4(mvsiz),
250 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
251 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
252 . hm(mvsiz,6), hf(mvsiz,6), hc(mvsiz,2),hmfor(mvsiz,6),
253 . conde(mvsiz),a11r(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),
254 . yl2(mvsiz),yl3(mvsiz),yl4(mvsiz)
256 . areat(mvsiz),x13t(mvsiz) ,y13t(mvsiz), x24t(mvsiz),y24t(mvsiz),
257 . mx13t(mvsiz), mx23t(mvsiz), mx34t(mvsiz),
258 . my13t(mvsiz), my23t(mvsiz), my34t(mvsiz), z1t(mvsiz),
259 . a_it(mvsiz),f_def(mvsiz,8), u13(mvsiz,2),u24(mvsiz,2),
260 . axyz(mvsiz,4),wxy(mvsiz),fac58(mvsiz,2)
261 my_real ,
DIMENSION (NEL) :: zoffset
262 my_real :: dtinv,asrate,eps_m2,eps_k2
263 my_real,
dimension(nel) :: epsd_pg
264 my_real,
dimension(mvsiz) :: fheat
265 my_real,
dimension(mvsiz) :: ssp_eq
268 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ)
270DIMENSION(:,:),
ALLOCATABLE :: VAR_REG
271 my_real,
DIMENSION(:),
POINTER :: DNL, UVAR
273 INTEGER,
DIMENSION(NEL) :: OFFLY
274 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELCRKINI
275 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
276 my_real,
DIMENSION(:) ,
POINTER :: DIR_A,DIR_B,CRKDIR,,DADV
280 TYPE(G_BUFEL_) ,
POINTER :: GBUF
282 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
290 gbuf => elbuf_str%GBUF
291 idrape = elbuf_str%IDRAPE
299 actifxfem = iparg(70)
300 nlay = elbuf_str%NLAY
317 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
319 uvar => elbuf_str%BUFLY(1)%MAT(ir,is,1)%VAR
323 ALLOCATE(var_reg(nel,nddl))
325 IF (npt == 0) npttot = npt
327 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
328 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
329 igtyp = igeo(11,ixc(6,1))
330 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
331 ALLOCATE(dira(npttot*nel*l_dira))
332 ALLOCATE(dirb(npttot*nel*l_dirb))
333 IF (l_dira == 0)
THEN
335 ELSEIF (irep == 0)
THEN
338 nptt = elbuf_str%BUFLY(ilay)%NPTT
341 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
342 j1 = 1+(j-1)*l_dira*nel
344 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
346 npttot = npttot + nptt
349 sdir_a=npttot*nel*l_dira
350 sdir_b=npttot*nel*l_dirb
351 dir_a => dira(1:npttot*nel*l_dira)
352 dir_b => dirb(1:npttot*nel*l_dirb)
354 sdir_a=nlay*nel*l_dira
355 sdir_b=nlay*nel*l_dirb
356 ALLOCATE(dira(nlay*nel*l_dira))
357 ALLOCATE(dirb(nlay*nel*l_dirb))
360 IF (l_dira == 0)
THEN
362 ELSEIF (irep == 0)
THEN
364 j1 = 1+(j-1)*l_dira*nel
366 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
369 sdir_a=nlay*nel*l_dira
370 sdir_b=nlay*nel*l_dirb
371 dir_a => dira(1:nlay*nel*l_dira)
372 dir_b => dirb(1:nlay*nel*l_dirb)
388 fac1(i) = geo(17,pid(i))
394 igtyp = igeo(11,pid(1))
395 igmat = igeo(98,pid(1))
399 ifailwave = iparg(79)
400 IF (ifailwave > 0)
THEN
402 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
405 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
410 . nel ,ixc ,itab ,ngl ,offly )
420 ALLOCATE(elcrkini(nxlaymax*mvsiz))
421 ALLOCATE(dir1_crk(nxlaymax*mvsiz))
426 IF (nlevset > 0)
THEN
427 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
428 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
431 ALLOCATE(elcrkini(0))
432 ALLOCATE(dir1_crk(0))
433 ALLOCATE(dir2_crk(0))
436 CALL czcorc1(numnod,numelc ,elbuf_str,
437 1 jft ,jlt ,x ,v ,vr ,
438 2 ixc ,pm ,plat ,
area ,
439 3 a_i ,vl13 ,vl24 ,vlhi ,rlxyz ,
440 4 vqn ,vq ,ll ,l13 ,l24 ,
441 5 x13 ,x24 ,y13 ,y24 ,mx13 ,
442 6 mx23 ,mx34 ,my13 ,my23 ,my34 ,
443 7 z1 ,lxyz ,dd ,db ,gbuf%SMSTR,
444 9 irep ,npt ,nlay ,ismstr ,
445 a dir_a ,dir_b ,gbuf%OFF,rlxyz ,lxyz ,
446 b facn ,py1 ,px2 ,py2 ,r11 ,
447 c r12 ,r13 ,r21 ,r22 ,r23 ,
448 d r31 ,r32 ,r33 ,rlz ,isrot ,
449 e ixfem2 ,vx1 ,vx2 ,vx3 ,vx4 ,
450 f vy1 ,vy2 ,vy3 ,vy4 ,vz1 ,
451 g vz2 ,vz3 ,vz4 ,vrx1 ,vrx2 ,
452 h vrx3 ,vrx4 ,vry1 ,vry2 ,vry3 ,
453 i vry4 ,vrz1 ,vrz2 ,vrz3 ,vrz4 ,
454 j x1g ,x2g ,x3g ,x4g ,y1g ,
455 k y2g ,y3g ,y4g ,z1g ,z2g ,
456 l z3g ,z4g ,thke ,diz ,ux1 ,
457 m ux2 ,ux3 ,ux4 ,uy1 ,uy2 ,
458 n uy3 ,uy4 ,xl2 ,xl3 ,xl4 ,
459 o yl2 ,yl3 ,yl4 ,vl1 ,vl2 ,
460 p vl3 ,vl4 ,nel ,z2 )
462 CALL cncoef3b(jft ,jlt ,pm ,mat ,geo ,
463 2 pid ,
area ,shf ,thk0 ,
465 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
466 5 rho ,vol0 ,gs ,mtn ,ithk ,
467 6 npttot ,dt1c ,dt1 ,ihbe ,amu ,
468 7 gsr ,a11sr ,a12sr ,nusr ,shfsr ,
469 8 krz ,igeo ,a11r , isubstack , stack%PM,
470 9 mat_elem%MAT_PARAM(imat)%UPARAM ,dira ,dirb ,
471 a uvar ,fac58 ,nel ,zoffset )
474 1 pid ,mtn ,npttot ,hm ,hf ,
475 2 hc ,hmfor ,iorth ,dir_a ,igeo ,
476 3 isubstack,stack,elbuf_str ,nlay ,gbuf%THK,
477 4 drape_sh4n ,nft ,nel ,indx_drape , thke,
478 5 sedrape,numel_drape ,mat_elem )
482 CALL czdef(jft ,jlt ,
area ,a_i ,vl13 ,vl24 ,
483 2 vlhi ,rlxyz ,vdef ,dhg ,x13 ,
484 3 x24 ,y13 ,y24 ,mx13 ,mx23 ,mx34 ,
489 1 vdef ,vhgzk ,vhgze ,x13 ,x24 ,
490 2 y13 ,y24 ,mx13 ,mx23 ,mx34 ,
491 3 my13 ,my23 ,my34 ,z1 ,dhg ,
492 4 bm0rz ,bmkrz ,bmerz ,vl13 ,vl24 ,
495 IF (ismstr == 10 )
THEN
497 1 jft ,jlt ,x ,v ,vr ,
498 2 ixc ,pm ,gbuf%OFF,areat ,a_it ,
499 3 u13 ,u24 ,dr ,axyz ,vq ,
500 4 x13t ,x24t ,y13t ,y24t ,mx13t ,
501 5 mx23t ,mx34t ,my13t ,my23t ,my34t ,
502 6 z1t ,gbuf%SMSTR,thke,npttot ,ismstr ,
503 7 isrot ,lxyz ,z1 ,vqn ,nel )
505 CALL czdeft(jft ,jlt ,u13 ,u24 ,axyz ,
506 2 f_def,x13t ,x24t,y13t ,y24t ,
509 CALL czdefrzt(jft ,jlt ,areat,a_it ,axyz ,
510 1 f_def,x13t,x24t ,y13t ,y24t ,
511 2 mx13t,mx23t,mx34t ,my13t,my23t,
514 CALL czdeftw(jft ,jlt ,a_i ,vl13 ,vl24,
515 2 rlxyz,x13 ,x24 ,y13 ,y24 ,
521 CALL czstra3(jft ,jlt ,nft ,vdef ,gbuf%STRA,
522 2 exx ,eyy ,exy ,exz ,eyz ,
523 3 kxx ,kyy ,kxy ,dt1c ,tani ,
524 4 iepsdot,istrain,ux1 ,ux2 ,ux3 ,
525 5 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
526 6 y24 ,px2 ,py1 ,py2 ,
area ,
527 7 ismstr ,mtn ,wxy ,f_def,gbuf%STRW,
529 IF (gbuf%G_STRPG > gbuf%G_STRA)
THEN
530 CALL czstrah3(jft ,jlt ,gbuf%STRPG,dhg ,a_i ,
531 3 mx23 ,mx34 ,my23 ,my34 ,dt1c ,
532 4 exx ,eyy ,exy ,exz ,eyz ,
533 3 kxx ,kyy ,kxy ,nel )
535 IF (npttot == 1 .AND. mtn==58)
THEN
537 1 jft ,jlt ,x ,v ,vr ,
539 3 vq ,gbuf%HOURG,thke ,npttot ,ismstr ,
540 7 lxyz ,z2 ,iint ,nel )
546 l_nloc = nloc_dmg%L_NLOC
547 dnl => nloc_dmg%DNL(1:l_nloc)
555#include "vectorize.inc"
557 inod(1) = nloc_dmg%IDXI(nc1(i))
558 inod(2) = nloc_dmg%IDXI(nc2(i))
559 inod(3) = nloc_dmg%IDXI(nc3(i))
560 inod(4) = nloc_dmg%IDXI(nc4(i))
561 ipos(1) = nloc_dmg%POSI(inod(1))
562 ipos(2) = nloc_dmg%POSI(inod(2))
563 ipos(3) = nloc_dmg%POSI(inod(3))
564 ipos(4) = nloc_dmg%POSI(inod(4))
565 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
566 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
577 dtinv = dt1 /
max(dt1**2,em20)
579#include "vectorize.inc"
581 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
582 . * one_over_9*gbuf%thk(i)**2
583 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
584 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
586 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
587!-------------------------------------------------------------------------------
590 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
593 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
596 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
597 2 nel ,mtn ,ipla ,ithk ,group_param,
598 3 pm ,geo ,npf ,tf ,bufmat ,
599 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
600 5
area ,exx ,eyy ,exy ,exz ,
601 6 eyz ,kxx ,kyy ,kxy ,nu ,
602 7 off ,thk0 ,mat ,pid ,mat_elem ,
603 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
604 9 gbuf%THK ,gbuf%EINT ,iofc ,
605 a g ,a11 ,a12 ,vol0 ,indxof ,
606 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
608 d dir_a ,dir_b ,igeo ,
609 e ipm ,ifailure ,npg ,fheat ,
610 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
612 h bid ,bid ,bid ,bid ,bid ,
613 i bid ,bid ,bid ,r11 ,r12 ,
615 k r32 ,r33 ,ng ,table ,ixfem ,
616 l bid ,sensors ,bid ,elcrkini ,
617 m dir1_crk ,dir2_crk ,ll ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
618 n ismstr ,ir ,is ,nlay ,npt ,
619 o ixlay ,ixel ,isubstack ,stack ,
620 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
621 r indx_drape,thke ,sedrape ,numel_drape,dt ,
622 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
623 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
624 t sdir_b ,gbuf%FOR_G ,ssp_eq ,
625 x ipart ,lipart1 ,ipartc )
629 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
637 2 ixc, gbuf%THK, gbuf%EINT, partsav,
638 3
area, mat, ipartc, x,
640 5 thk02, ipout, off, nft,
641 6 gresav, grth, igrth, vl1,
642 7 vl2, vl3, vl4, vrl1,
643 8 vrl2, vrl3, vrl4, x1g,
644 9 x2g, x3g, x4g, y1g,
645 a y2g, y3g, y4g, z1g,
646 b z2g, z3g, z4g, ibid,
647 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
648 d actifxfem, igre, sensors, nel,
649 e gbuf%G_WPLA,gbuf%WPLA )
652 1 jft ,jlt ,off ,dt2t ,amu ,
653 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
654 3 ssp ,viscmx ,rho ,vol0 ,thk0,thk02,
655 4 a11 ,ll ,alpe,ngl,ismstr,
656 5 iofc ,nnod ,
area,g ,shf ,
657 6 msc ,dmelc,jsms,bid , igtyp ,
658 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
659 8 pm ,mat(jft),nel, zoffset,ssp_eq )
661 CALL czfintce(jft ,jlt ,thk0 ,thk02,a_i ,x13 ,
662 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
663 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%MOM,
668 1 jft ,jlt ,thk0 ,vol0 ,
area ,x13 ,
669 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
670 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%HOURG,
671 4 vf ,vmz ,bm0rz,krz ,vrlz ,dt1c ,
672 5 gbuf%EINT,off ,nel )
673 IF (impl_s > 0 .OR. iorth == 0)
THEN
675 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
676 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
677 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
678 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
679 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
680 6 rho ,
area ,dt1 ,gbuf%EINT,amu ,vlhi ,
681 7 npttot ,ipartc ,partsav,kfts ,gsr ,
682 8 a11sr ,a12sr ,nusr ,shfsr ,bmkrz ,bmerz ,
683 9 vhgzk ,vhgze ,krz ,vmz ,nel )
686 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
687 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
688 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
689 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
690 6 rho ,
area , dt1,gbuf%EINT,amu ,vlhi ,
691 7 npttot,ipartc,partsav,kfts ,gsr ,
692 8 a11sr,a12sr ,nusr,shfsr,bmkrz,bmerz ,
693 9 vhgzk,vhgze ,krz ,vmz ,iorth ,hm ,
694 a hf ,hc ,hmfor, mtn ,nel)
699 IF (impl_s > 0 .OR. iorth == 0)
THEN
701 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
702 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
703 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
704 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
705 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
706 6 rho ,
area ,dt1 ,gbuf%EINT,amu ,vlhi ,
707 7 npttot ,ipartc ,partsav,kfts ,gsr ,nel ,
708 8 a11sr ,a12sr ,nusr ,shfsr ,mtn ,fac58 )
710 CALL czfintn_or(jft ,jlt ,thk0 ,thk02,a_i ,dhg ,
711 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
712 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
713 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
714 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
715 6 rho ,
area , dt1,gbuf%EINT,amu ,vlhi ,
716 7 npttot,ipartc,partsav,kfts ,gsr ,
717 8 a11sr,a12sr ,nusr,shfsr ,iorth ,hm ,
718 9 hf ,hc ,hmfor,mtn ,nel)
727 1 nloc_dmg, var_reg, gbuf%THK, nel,
728 2 off,
area, nc1, nc2,
729 3 nc3, nc4, y24, py1,
730 4 px2, py2, elbuf_str%NLOC(1,1), imat,
731 5 nddl, itask, dt2t, ll,
732 7 gbuf%THK_I, gbuf%AREA, nft)
735 IF (npttot == 1)
THEN
736 IF (mtn==58.OR.mtn==19.OR.mtn==119)
THEN
737 CALL czfintnm1(jft ,jlt ,thk0 ,a_i ,dhg ,
738 2 x13 ,x24 ,y13 ,y24 ,vf ,
739 4 mx13 ,mx23 ,my13 ,my23 ,
740 3 g ,rho ,
area ,amu ,dt1 ,
741 4 vl13 ,vl24 ,vlhi ,gbuf%HOURG,
742 4 off ,ipartc,partsav,kfts ,nel )
744 CALL czfintnm(jft ,jlt ,thk0 ,a_i ,dhg ,
745 2 x13 ,x24 ,y13 ,y24 ,vf ,
746 3 g ,rho ,
area ,amu ,dt1 ,
747 4 off ,ipartc,partsav,kfts )
751 1 jft ,jlt ,vqn ,vq ,vf ,
753 3 f11 ,f12 ,f13 ,f14 ,f21,
754 4 f22 ,f23 ,f24 ,f31 ,f32,
755 5 f33 ,f34 ,m11 ,m12 ,m13,
756 6 m14 ,m21 ,m22 ,m23 ,m24,
757 7 m31 ,m32 ,m33 ,m34 ,fzero,
758 8 z1 ,lxyz ,dd ,db ,lxyz,
764 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
765 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
766 . y24 ,px2 ,py1 ,py2 ,
area ,dt1c ,
767 . temp ,tempel ,fheat ,them ,glob_therm%THEACCFACT)
770 . y24 ,px2 ,py1 ,py2 ,
area ,dt1c ,
771 . temp ,tempel ,die ,them ,glob_therm%THEACCFACT)
777 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1)
THEN
778 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
779 . jtur ,tempel ,vol0 ,rho ,
780 . ll ,off ,conde ,gbuf%re ,gbuf%rk )
786 IF (iparit == 3)
THEN
787 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
788 2 gbuf%OFF,off ,sti ,stir ,stifn ,
789 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
790 4 f11 ,f12 ,f13 ,f14 ,f21 ,
791 5 f22 ,f23 ,f24 ,f31 ,f32 ,
792 6 f33 ,f34 ,m11 ,m12 ,m13 ,
793 7 m14 ,m21 ,m22 ,m23 ,m24 ,
794 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
795 9 partsav ,mat ,ipartc,glob_therm%NODADT_THERM)
796 ELSEIF (iparit == 0)
THEN
797 CALL cupdtn3(jft ,jlt ,f ,m ,nvc ,
798 2 gbuf%OFF,off ,sti ,stir ,stifn ,
799 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
800 4 f11 ,f12 ,f13 ,f14 ,f21 ,
801 5 f22 ,f23 ,f24 ,f31 ,f32 ,
802 6 f33 ,f34 ,m11 ,m12 ,m13 ,
803 7 m14 ,m21 ,m22 ,m23 ,m24 ,
804 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT
805 a partsav ,mat ,ipartc,facn ,jthe ,
806 b them ,fthe ,condn ,conde,glob_therm%NODADT_THERM)
808 CALL cupdtn3p(jft ,jlt ,gbuf%OFF,off ,sti ,
809 2 stir ,fsky ,fsky ,iadc ,
810 4 f11 ,f12 ,f13 ,f14 ,f21 ,
811 5 f22 ,f23 ,f24 ,f31 ,f32 ,
812 6 f33 ,f34 ,m11 ,m12 ,m13 ,
814 8 m31 ,m32 ,m33 ,m34 ,ixc ,
815 a gbuf%EINT,partsav ,mat ,ipartc,pm ,
816 b
area ,gbuf%THK,facn ,jthe ,them ,
825 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
827 . nel ,nft ,ilay ,nlay ,ixc ,
828 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
829 . nodedge ,crkedge ,xedge4n ,ngl ,xl2 ,
830 . xl3 ,xl4 ,yl2 ,yl3 ,yl4 ,
835 . xfem_str ,nel ,nft ,ixc ,elcutc ,
836 . ilay ,nxlay ,iel_crk ,inod_crk ,
837 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
838 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
839 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
840 . yl4 ,xedge4n ,ngl )
844 . xfem_str ,nel ,nft ,ixc ,elcutc ,
845 . ilay ,nxlay ,iel_crk ,inod_crk ,
846 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
847 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
848 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
849 . yl4 ,xedge4n ,ngl )
852 CALL crkoffc(elbuf_str,xfem_str ,
853 . jft ,jlt ,nft ,ir ,is ,
854 . nxlay ,iel_crk ,crkedge,xedge4n )
860 IF (ifailwave > 0)
THEN
861 crkdir => elbuf_str%BUFLY(1)%CRKDIR
864 . nel ,ixc ,itab ,crkdir ,dir_a ,
865 . l_dira ,xl2 ,xl3 ,xl4 ,yl2 ,
869 IF (
ALLOCATED(dir2_crk))
DEALLOCATE(dir2_crk)
870 IF (
ALLOCATED(dir1_crk))
DEALLOCATE(dir1_crk)
871 IF (
ALLOCATED(elcrkini))
DEALLOCATE(elcrkini)
872 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
873 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
874 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)