84 1 ELBUF_STR, JFT, JLT, NFT,
86 3 IPRI, ITHK, NELTST, ISTRAIN,
88 5 PM, GEO, PARTSAV, IXC,
89 6 ITYPTST, BUFMAT, TF, NPF,
92 9 M, STIFN, STIFR, FSKY,
93 A TANI, INDXOF, ISMSTR,
94 B GROUP_PARAM, IPARTC, THKE, NVC,
95 C IOFC, IHBE, F11, F12,
100 H M23, M24, M31, M32,
101 I M33, M34, KFTS, FZERO,
102 J IGEO, IPM, IFAILURE, ITASK,
103 K JTHE, TEMP, FTHE, FTHESKY,
104 L IEXPAN, GRESAV, GRTH, IGRTH,
105 M XEDGE4N, MSC, DMELC, JSMS,
106 N TABLE, IPARG, MAT_ELEM, IXFEM,
107 O KNOD2ELC, SENSORS, ELCUTC, INOD_CRK,
108 P IEL_CRK, NODENR, IADC_CRK,
109 Q NODEDGE, CRKNODIAD, CONDN, CONDNSKY,
110 R STACK, ISUBSTACK, XFEM_STR, CRKEDGE,
111 S DRAPE_SH4N, NEL, NLOC_DMG, INDX_DRAPE,
112 T IGRE, JTUR, DT, NCYCLE,
113 U SNPC, STF, GLOB_THERM, IDEL7NOK,
114 U USERL_AVAIL, MAXFUNC, SBUFMAT)
134#include "implicit_f.inc"
138#include "param_c.inc"
139#include "mvsiz_p.inc"
143#include "com_xfem1.inc"
144#include "scr14_c.inc"
145#include "scr18_c.inc"
146#include "parit_c.inc"
147#include "timeri_c.inc"
148#include "impl1_c.inc"
149#include "com04_c.inc"
153 TYPE(timer_),
INTENT(INOUT) :: TIMERS
154 INTEGER ,
INTENT(IN) :: NCYCLE
155 INTEGER,
INTENT(IN) :: USERL_AVAIL
156 INTEGER,
INTENT(IN) :: MAXFUNC
157 INTEGER,
INTENT(INOUT) :: IDEL7NOK
158 INTEGER,
INTENT(IN) :: SBUFMAT ! Size of BUFMAT
159 INTEGER,
INTENT(IN) :: STF
160 INTEGER,
INTENT(IN) :: SNPC
161 INTEGER JFT,JLT,NFT,NPT,MTN,IPRI,ITHK,NELTST,
162 . ITYPTST ,ISTRAIN ,IPLA,NVC,JSMS,ITASK,IEXPAN,,
163 . IOFC,IHBE,KFTS,ISMSTR,IFAILURE,JTHE,ISUBSTACK,NEL,N1,N2,N3,N4
164 INTEGER IXC(NIXC,*),IADC(4,*),IPARTC(*),NPF(*),IGEO(NPROPGI,*),
165 . IPM(NPROPMI,*),INDXOF(MVSIZ),GRTH(*),IGRTH(*),IPARG(*),ITAB(*),
166 . KNOD2ELC(*),XEDGE4N(4,*),
167 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),
168 . NODENR(*),IADC_CRK(4,*),(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
172 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ), F14(MVSIZ),
173 . F21(), F22(MVSIZ), F23(MVSIZ), F24(MVSIZ),
174 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ), F34(MVSIZ),
175 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ), M14(MVSIZ),
176 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ), M24(MVSIZ),
177 . M31(MVSIZ), M32(MVSIZ), M33(MVSIZ), M34(MVSIZ),
178 . TF(*), PM(NPROPM,*),(NPROPG,*),PARTSAV(*),
179 . BUFMAT(*), X(3,*),DR(*),V(3,*),VR(3,*),F(3,*),M(3,*),
180 . STIFN(*), STIFR(*),FSKY(*),TANI(6,*),THKE(*),
181 . FZERO(3,4,*),TEMP(*),FTHE(*),FTHESKY(*),GRESAV(*),
182 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
185 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
186 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
187 TYPE (ELBUF_STRUCT_),
DIMENSION(NXEL) :: XFEM_STR
188 TYPE (XFEM_EDGE_) ,
DIMENSION(NXLAYMAX) :: CRKEDGE
189 TYPE (STACK_PLY) :: STACK
191 TYPE (GROUP_PARAM_) :: GROUP_PARAM
192 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
193 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
194 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
195 TYPE (DT_) ,
INTENT(IN) :: DT
196 type (glob_therm_) ,
intent(inout) :: glob_therm
202 . i,j,ir,is,mx,nnod,nupar,nlay,nxlay,ilay,npg,ixel,ifailwave,
203 . ibid,isrot,ng,ixfem2,l_dira,l_dirb,j1,j2,iorth,igtyp,igmat,ixlay,
204 . npttot,irep,ipout,idrape,nptt,it,actifxfem,sedrape,numel_drape
205 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(),FWAVE_EL(NEL)
208 . rh0(mvsiz),ll(mvsiz),
209 . vl13(mvsiz,3), vl24(mvsiz,3), vlhi(mvsiz,3), rlxyz(mvsiz,8),
210 . x13(mvsiz), x24(mvsiz), y13(mvsiz), y24(mvsiz),
211 . mx13(mvsiz), mx23(mvsiz), mx34(mvsiz),
212 . my13(mvsiz), my23(mvsiz), my34(mvsiz), z1(mvsiz),z2(mvsiz),
213 . vq(mvsiz,9), vdef(mvsiz,8), off(mvsiz), dhg(mvsiz,6),
214 .
area(mvsiz), vqn(mvsiz,12), l13(mvsiz), l24(mvsiz),
215 . zcfac(mvsiz,2), a_i(mvsiz), thk02(mvsiz),
216 . exx(mvsiz) ,eyy(mvsiz) ,exy(mvsiz) ,exz(mvsiz) ,eyz(mvsiz),
217 . kxx(mvsiz) ,kyy(mvsiz) ,kxy(mvsiz) ,sigy(mvsiz),
218 . dt1c(mvsiz),ssp(mvsiz) ,viscmx(mvsiz),rho(mvsiz) ,
219 . nu(mvsiz) ,g(mvsiz) ,a11(mvsiz) ,a12(mvsiz) ,vol0(mvsiz),
220 . thk0(mvsiz),sti(mvsiz) ,stir(mvsiz) ,shf(mvsiz) ,
221 . vf(mvsiz,12),vm(mvsiz,8),gs(mvsiz) ,fac1(mvsiz),
222 . alpe(mvsiz),ym(mvsiz) ,bid,facn(mvsiz,2),
223 . lxyz(mvsiz,8),dd(mvsiz,6),db(mvsiz,12),amu(mvsiz),
224 . gsr(mvsiz), a11sr(mvsiz), a12sr(mvsiz), nusr(mvsiz),
225 . shfsr(mvsiz),px2(mvsiz),py1(mvsiz),py2(mvsiz),px1(mvsiz),
226 . die(mvsiz), tempel(mvsiz),them(mvsiz,4),
227 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
228 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
229 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
230 . rlz(mvsiz,4),vhgzk(mvsiz,5),vhgze(mvsiz,5),vrlz(mvsiz),
231 . bm0rz(mvsiz,4,4),bmkrz(mvsiz,4,4),bmerz(mvsiz,4,4),
232 . vmz(mvsiz,4),krz(mvsiz),diz(mvsiz,3),
233 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
234 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
235 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
236 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
237 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
238 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
239 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
240 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
241 . vrx1(mvsiz),vrx2(mvsiz),vrx3(mvsiz),vrx4(mvsiz),
242 . vry1(mvsiz),vry2(mvsiz),vry3(mvsiz),vry4(mvsiz),
243 . vrz1(mvsiz),vrz2(mvsiz),vrz3(mvsiz),vrz4(mvsiz),
244 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
245 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
246 . hm(mvsiz,6), hf(mvsiz,6), hc(mvsiz,2),hmfor(mvsiz,6),
247 . conde(mvsiz),a11r(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),
248 . yl2(mvsiz),yl3(mvsiz),yl4(mvsiz)
250 . areat(mvsiz),x13t(mvsiz) ,y13t(mvsiz), x24t(mvsiz),y24t(mvsiz),
251 . mx13t(mvsiz), mx23t(mvsiz), mx34t(mvsiz),
252 . my13t(mvsiz), my23t(mvsiz), my34t(mvsiz), z1t(mvsiz),
253 . a_it(mvsiz),f_def(mvsiz,8), u13(mvsiz,2),u24(mvsiz,2),
254 . axyz(mvsiz,4),wxy(mvsiz),fac58(mvsiz,2)
255 my_real ,
DIMENSION (NEL) :: zoffset
256 my_real :: dtinv,asrate,eps_m2,eps_k2
257 my_real,
dimension(nel) :: epsd_pg
258 my_real,
dimension(mvsiz) :: fheat
261 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), (MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
262 . IPOS(4), L_NLOC, IMAT, INLOC,IINT
263 my_real,
DIMENSION(:,:),
ALLOCATABLE :: VAR_REG
264 my_real,
DIMENSION(:),
POINTER :: BPRELD,DNL,UVAR
266 INTEGER,
DIMENSION(NEL) :: OFFLY
267 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELCRKINI
268 my_real,
ALLOCATABLE,
DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,
269 my_real,
DIMENSION(:) ,
POINTER :: DIR_A,DIR_B,CRKDIR,,DADV
272 TYPE() ,
POINTER :: BUFLY
273 TYPE(G_BUFEL_) ,
POINTER :: GBUF
274 TYPE(L_BUFEL_) ,
POINTER :: LBUF
275 TYPE(L_BUFEL_DIR_) ,
POINTER ::
283 gbuf => elbuf_str%GBUF
284 idrape = elbuf_str%IDRAPE
292 actifxfem = iparg(70)
293 nlay = elbuf_str%NLAY
310 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
312 uvar => elbuf_str%BUFLY(1)%MAT(ir,is,1)%VAR
316 ALLOCATE(var_reg(nel,nddl))
318 IF (npt == 0) npttot = npt
320 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
321 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
322 igtyp = igeo(11,ixc(6,1))
323 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
324 ALLOCATE(dira(npttot*nel*l_dira))
325 ALLOCATE(dirb(npttot*nel*l_dirb))
326 IF (l_dira == 0)
THEN
328 ELSEIF (irep == 0)
THEN
331 nptt = elbuf_str%BUFLY(ilay)%NPTT
334 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
335 j1 = 1+(j-1)*l_dira*nel
337 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
339 npttot = npttot + nptt
342 sdir_a=npttot*nel*l_dira
343 sdir_b=npttot*nel*l_dirb
344 dir_a => dira(1:npttot*nel*l_dira)
345 dir_b => dirb(1:npttot*nel*l_dirb)
347 sdir_a=nlay*nel*l_dira
348 sdir_b=nlay*nel*l_dirb
349 ALLOCATE(dira(nlay*nel*l_dira))
350 ALLOCATE(dirb(nlay*nel*l_dirb))
353 IF (l_dira == 0)
THEN
355 ELSEIF (irep == 0)
THEN
357 j1 = 1+(j-1)*l_dira*nel
359 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
362 sdir_a=nlay*nel*l_dira
363 sdir_b=nlay*nel*l_dirb
364 dir_a => dira(1:nlay*nel*l_dira)
365 dir_b => dirb(1:nlay*nel*l_dirb)
381 fac1(i) = geo(17,pid(i))
387 igtyp = igeo(11,pid(1))
392 ifailwave = iparg(79)
393 IF (ifailwave > 0)
THEN
395 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
398 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
403 . nel ,ixc ,itab ,ngl ,offly )
413 ALLOCATE(elcrkini(nxlaymax*mvsiz))
414 ALLOCATE(dir1_crk(nxlaymax*mvsiz))
415 ALLOCATE(dir2_crk(nxlaymax*mvsiz))
419 IF (nlevset > 0)
THEN
420 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
421 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
424 ALLOCATE(elcrkini(0))
425 ALLOCATE(dir1_crk(0))
426 ALLOCATE(dir2_crk(0))
429 CALL czcorc1(numnod,numelc ,elbuf_str,
430 1 jft ,jlt ,x ,v ,vr ,
431 2 ixc ,pm ,plat ,
area ,
432 3 a_i ,vl13 ,vl24 ,vlhi ,rlxyz ,
433 4 vqn ,vq ,ll ,l13 ,l24 ,
434 5 x13 ,x24 ,y13 ,y24 ,mx13 ,
435 6 mx23 ,mx34 ,my13 ,my23 ,my34 ,
436 7 z1 ,lxyz ,dd ,db ,gbuf%SMSTR,
437 9 irep ,npt ,nlay ,ismstr ,
438 a dir_a ,dir_b ,gbuf%OFF,rlxyz ,lxyz ,
440 c r12 ,r13 ,r21 ,r22 ,r23 ,
441 d r31 ,r32 ,r33 ,rlz ,isrot ,
442 e ixfem2 ,vx1 ,vx2 ,vx3 ,vx4 ,
443 f vy1 ,vy2 ,vy3 ,vy4 ,vz1 ,
444 g vz2 ,vz3 ,vz4 ,vrx1 ,vrx2 ,
445 h vrx3 ,vrx4 ,vry1 ,vry2 ,vry3 ,
447 j x1g ,x2g ,x3g ,x4g ,y1g ,
448 k y2g ,y3g ,y4g ,z1g ,z2g ,
450 m ux2 ,ux3 ,ux4 ,uy1 ,uy2 ,
451 n uy3 ,uy4 ,xl2 ,xl3 ,xl4 ,
452 o yl2 ,yl3 ,yl4 ,vl1 ,vl2 ,
453 p vl3 ,vl4 ,nel ,z2 )
455 CALL cncoef3b(jft ,jlt ,pm ,mat ,geo ,
456 2 pid ,
area ,shf ,thk0 ,
458 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
459 5 rho ,vol0 ,gs ,mtn ,ithk ,
460 6 npttot ,dt1c ,dt1 ,ihbe ,amu ,
461 7 gsr ,a11sr ,a12sr ,nusr ,shfsr ,
462 8 krz ,igeo ,a11r , isubstack , stack%PM,
463 9 mat_elem%MAT_PARAM(imat)%UPARAM ,dira ,dirb ,
464 a uvar ,fac58 ,nel ,zoffset )
467 1 pid ,mtn ,npttot ,hm ,hf ,
468 2 hc ,hmfor ,iorth ,dir_a ,igeo ,
469 3 isubstack,stack,elbuf_str ,nlay ,gbuf%THK,
470 4 drape_sh4n ,nft ,nel ,indx_drape , thke,
471 5 sedrape,numel_drape ,mat_elem )
475 CALL czdef(jft ,jlt ,
area ,a_i ,vl13 ,vl24 ,
476 2 vlhi ,rlxyz ,vdef ,dhg ,x13 ,
477 3 x24 ,y13 ,y24 ,mx13 ,mx23 ,mx34 ,
478 4 my13 ,my23 ,my34 ,z1 ,dt1 ,off ,
482 1 vdef ,vhgzk ,vhgze ,x13 ,x24 ,
483 2 y13 ,y24 ,mx13 ,mx23 ,mx34 ,
484 3 my13 ,my23 ,my34 ,z1 ,dhg ,
485 4 bm0rz ,bmkrz ,bmerz ,vl13 ,vl24 ,
488 IF (ismstr == 10 )
THEN
491 2 ixc ,pm ,gbuf%OFF,areat ,a_it ,
492 3 u13 ,u24 ,dr ,axyz ,vq ,
493 4 x13t ,x24t ,y13t ,y24t ,mx13t ,
494 5 mx23t ,mx34t ,my13t ,my23t ,my34t ,
495 6 z1t ,gbuf%SMSTR,thke,npttot ,ismstr ,
496 7 isrot ,lxyz ,z1 ,vqn ,nel )
498 CALL czdeft(jft ,jlt ,u13 ,u24 ,axyz ,
499 2 f_def,x13t ,x24t,y13t ,y24t ,
502 CALL czdefrzt(jft ,jlt ,areat,a_it ,axyz ,
503 1 f_def,x13t,x24t ,y13t ,y24t ,
504 2 mx13t,mx23t,mx34t ,my13t,my23t,
507 CALL czdeftw(jft ,jlt ,a_i ,vl13 ,vl24,
508 2 rlxyz,x13 ,x24 ,y13 ,y24 ,
514 CALL czstra3(jft ,jlt ,nft ,vdef ,gbuf%STRA,
515 2 exx ,eyy ,exy ,exz ,eyz ,
516 3 kxx ,kyy ,kxy ,dt1c ,tani ,
517 4 iepsdot,istrain,ux1 ,ux2 ,ux3 ,
518 5 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
519 6 y24 ,px2 ,py1 ,py2 ,
area ,
520 7 ismstr ,mtn ,wxy ,f_def,gbuf%STRW,
522 IF (gbuf%G_STRPG > gbuf%G_STRA)
THEN
523 CALL czstrah3(jft ,jlt ,gbuf%STRPG,dhg ,a_i ,
524 3 mx23 ,mx34 ,my23 ,my34 ,dt1c ,
525 4 exx ,eyy ,exy ,exz ,eyz ,
526 3 kxx ,kyy ,kxy ,nel )
528 IF (npttot == 1 .AND. mtn==58)
THEN
530 1 jft ,jlt ,x ,v ,vr ,
532 3 vq ,gbuf%HOURG,thke ,npttot ,ismstr ,
533 7 lxyz ,z2 ,iint ,nel )
539 l_nloc = nloc_dmg%L_NLOC
540 dnl => nloc_dmg%DNL(1:l_nloc)
548#include "vectorize.inc"
550 inod(1) = nloc_dmg%IDXI(nc1(i))
551 inod(2) = nloc_dmg%IDXI
552 inod(3) = nloc_dmg%IDXI(nc3(i))
553 inod(4) = nloc_dmg%IDXI(nc4(i))
554 ipos(1) = nloc_dmg%POSI(inod(1))
555 ipos(2) = nloc_dmg%POSI(inod(2))
556 ipos(3) = nloc_dmg%POSI(inod(3))
557 ipos(4) = nloc_dmg%POSI(inod(4))
558 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k
559 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
570 dtinv = dt1 /
max(dt1**2,em20)
571 asrate = one ! to be changed
for default
value
572#include "vectorize.inc"
574 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
575 . * one_over_9*gbuf%thk(i)**2
576 eps_m2 = four_over_3*(exx
577 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
579!-------------------------------------------------------------------------------
582 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
585 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
588 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
589 2 nel ,mtn ,ipla ,ithk ,group_param,
590 3 pm ,geo ,npf ,tf ,bufmat ,
591 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
592 5
area ,exx ,eyy ,exy ,exz ,
593 6 eyz ,kxx ,kyy ,kxy ,nu ,
594 7 off ,thk0 ,mat ,pid ,mat_elem ,
595 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
596 9 gbuf%THK ,gbuf%EINT ,iofc ,
597 a g ,a11 ,a12 ,vol0 ,indxof ,
598 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
600 d dir_a ,dir_b ,igeo ,
601 e ipm ,ifailure ,npg ,fheat ,
602 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
604 h bid ,bid ,bid ,bid ,bid ,
605 i bid ,bid ,bid ,r11 ,r12 ,
606 j r13 ,r21 ,r22 ,r23 ,r31 ,
607 k r32 ,r33 ,ng ,table ,ixfem ,
608 l bid ,sensors ,bid ,elcrkini ,
609 m dir1_crk ,dir2_crk ,ll ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
610 n ismstr ,ir ,is ,nlay ,npt ,
611 o ixlay ,ixel ,isubstack ,stack ,
612 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
613 r indx_drape,thke ,sedrape ,numel_drape,dt ,
614 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
615 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
616 t sdir_b ,gbuf%FOR_G )
620 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
628 2 ixc, gbuf%THK, gbuf%EINT, partsav,
631 5 thk02, ipout, off, nft,
633 7 vl2, vl3, vl4, vrl1
634 8 vrl2, vrl3, vrl4, x1g
635 9 x2g, x3g, x4g, y1g,
636 a y2g, y3g, y4g, z1g,
637 b z2g, z3g, z4g, ibid,
638 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
639 d actifxfem, igre, sensors, nel,
640 e gbuf%G_WPLA,gbuf%WPLA )
643 1 jft ,jlt ,off ,dt2t ,amu ,
644 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
645 3 ssp ,viscmx ,rho ,vol0 ,thk0,thk02,
646 4 a11 ,ll ,alpe,ngl,ismstr,
647 5 iofc ,nnod ,
area,g ,shf ,
648 6 msc ,dmelc,jsms,bid , igtyp ,
649 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
650 8 pm ,mat(jft),nel, zoffset)
652 CALL czfintce(jft ,jlt ,thk0 ,thk02,a_i ,x13 ,
653 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
654 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%MOM,
659 1 jft ,jlt ,thk0 ,vol0 ,
area ,x13 ,
660 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
661 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%HOURG,
662 4 vf ,vmz ,bm0rz,krz ,vrlz ,dt1c ,
663 5 gbuf%EINT,off ,nel )
664 IF (impl_s > 0 .OR. iorth == 0)
THEN
666 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
667 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
668 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
669 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
670 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
671 6 rho ,
area ,dt1 ,gbuf%EINT,amu ,vlhi ,
672 7 npttot ,ipartc ,partsav,kfts ,gsr ,
673 8 a11sr ,a12sr ,nusr ,shfsr ,bmkrz ,bmerz ,
674 9 vhgzk ,vhgze ,krz ,vmz ,nel )
677 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
678 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
679 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
680 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
681 6 rho ,
area , dt1,gbuf%EINT,amu ,vlhi ,
682 7 npttot,ipartc,partsav,kfts ,gsr ,
684 9 vhgzk,vhgze ,krz ,vmz ,iorth ,hm ,
685 a hf ,hc ,hmfor, mtn ,nel)
690 IF (impl_s > 0 .OR. iorth == 0)
THEN
692 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
693 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
694 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
695 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
696 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
697 6 rho ,
area ,dt1 ,gbuf%EINT,amu ,vlhi ,
698 7 npttot ,ipartc ,partsav,kfts ,gsr ,nel ,
699 8 a11sr ,a12sr ,nusr ,shfsr ,mtn ,fac58 )
701 CALL czfintn_or(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 ,gs ,sigy ,off ,fac1 ,
707 7 npttot,ipartc,partsav,kfts ,gsr ,
708 8 a11sr,a12sr ,nusr,shfsr ,iorth ,hm ,
709 9 hf ,hc ,hmfor,mtn ,nel)
718 1 nloc_dmg, var_reg, gbuf%THK, nel,
719 2 off,
area, nc1, nc2,
720 3 nc3, nc4, y24, py1,
721 4 px2, py2, elbuf_str%NLOC(1,1), imat,
722 5 nddl, itask, dt2t, ll,
723 7 gbuf%THK_I, gbuf%AREA, nft)
726 IF (npttot == 1)
THEN
727 IF (mtn==58.OR.mtn==19.OR.mtn==119)
THEN
728 CALL czfintnm1(jft ,jlt ,thk0 ,a_i ,dhg ,
729 2 x13 ,x24 ,y13 ,y24 ,vf ,
730 4 mx13 ,mx23 ,my13 ,my23 ,
731 3 g ,rho ,
area ,amu ,dt1 ,
732 4 vl13 ,vl24 ,vlhi ,gbuf%HOURG,
733 4 off ,ipartc,partsav,kfts ,nel )
735 CALL czfintnm(jft ,jlt ,thk0 ,a_i ,dhg ,
736 2 x13 ,x24 ,y13 ,y24 ,vf ,
737 3 g ,rho ,
area ,amu ,dt1 ,
738 4 off ,ipartc,partsav,kfts )
742 1 jft ,jlt ,vqn ,vq ,vf ,
744 3 f11 ,f12 ,f13 ,f14 ,f21,
745 4 f22 ,f23 ,f24 ,f31 ,f32,
746 5 f33 ,f34 ,m11 ,m12 ,m13,
747 6 m14 ,m21 ,m22 ,m23 ,m24,
748 7 m31 ,m32 ,m33 ,m34 ,fzero,
749 8 z1 ,lxyz ,dd ,db ,lxyz,
755 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
756 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
757 . y24 ,px2 ,py1 ,py2 ,
area ,dt1c ,
758 . temp ,tempel ,fheat ,them ,glob_therm%THEACCFACT)
760 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
761 . y24 ,px2 ,py1 ,py2 ,
area ,dt1c ,
762 . temp ,tempel ,die ,them ,glob_therm%THEACCFACT)
768 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1)
THEN
769 call dttherm(nel ,pm(1,mat(1))
770 . jtur ,tempel ,vol0 ,rho ,
771 . ll ,off ,conde ,gbuf%re ,gbuf%rk )
777 IF (iparit == 3)
THEN
778 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
779 2 gbuf%OFF,off ,sti ,stir ,stifn ,
780 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
781 4 f11 ,f12 ,f13 ,f14 ,f21 ,
782 5 f22 ,f23 ,f24 ,f31 ,f32 ,
783 6 f33 ,f34 ,m11 ,m12 ,m13 ,
784 7 m14 ,m21 ,m22 ,m23 ,m24 ,
785 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
786 9 partsav ,mat ,ipartc,glob_therm%NODADT_THERM)
787 ELSEIF (iparit == 0)
THEN
788 CALL cupdtn3(jft ,jlt ,f ,m ,nvc ,
789 2 gbuf%OFF,off ,sti ,stir ,stifn ,
790 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
791 4 f11 ,f12 ,f13 ,f14 ,f21 ,
792 5 f22 ,f23 ,f24 ,f31 ,f32 ,
793 6 f33 ,f34 ,m11 ,m12 ,m13 ,
794 7 m14 ,m21 ,m22 ,m23 ,m24 ,
795 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
796 a partsav ,mat ,ipartc,facn ,jthe ,
797 b them ,fthe ,condn ,conde,glob_therm%NODADT_THERM)
799 CALL cupdtn3p(jft ,jlt ,gbuf%OFF,off ,sti ,
800 2 stir ,fsky ,fsky ,iadc ,
801 4 f11 ,f12 ,f13 ,f14 ,f21 ,
802 5 f22 ,f23 ,f24 ,f31 ,f32 ,
803 6 f33 ,f34 ,m11 ,m12 ,m13 ,
804 7 m14 ,m21 ,m22 ,m23 ,m24 ,
805 8 m31 ,m32 ,m33 ,m34 ,ixc ,
806 a gbuf%EINT,partsav ,mat ,ipartc,pm ,
807 b
area ,gbuf%THK,facn ,jthe ,them ,
808 c fthesky ,condnsky,conde ,glob_therm%NODADT_THERM)
816 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
818 . nel ,nft ,ilay ,nlay ,ixc ,
819 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
820 . nodedge ,crkedge ,xedge4n ,ngl ,xl2 ,
821 . xl3 ,xl4 ,yl2 ,yl3 ,yl4 ,
826 . xfem_str ,nel ,nft ,ixc ,elcutc ,
827 . ilay ,nxlay ,iel_crk ,inod_crk ,
828 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
829 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
830 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
831 . yl4 ,xedge4n ,ngl )
835 . xfem_str ,nel ,nft ,ixc ,elcutc ,
838 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
839 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
840 . yl4 ,xedge4n ,ngl )
843 CALL crkoffc(elbuf_str,xfem_str ,
844 . jft ,jlt ,nft ,ir ,is ,
845 . nxlay ,iel_crk ,crkedge,xedge4n )
851 IF (ifailwave > 0)
THEN
852 crkdir => elbuf_str%BUFLY(1)%CRKDIR
855 . nel ,ixc ,itab ,crkdir ,dir_a ,
856 . l_dira ,xl2 ,xl3 ,xl4 ,yl2 ,
860 IF (
ALLOCATED(dir2_crk))
DEALLOCATE(dir2_crk)
861 IF (
ALLOCATED(dir1_crk))
DEALLOCATE(dir1_crk)
862 IF (
ALLOCATED(elcrkini))
DEALLOCATE(elcrkini)
863 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
864 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
865 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)