84 1 ELBUF_STR, JFT, JLT, PM,
86 3 V, R, FAILWAVE, NVC,
88 5 BUFMAT, PMSAV, DT2T, NELTST,
89 6 ITYPTST, STIFN, STIFR, FSKY,
90 7 IADTG, ITAB, EPSDOT, OFFSET,
91 8 IPARTTG, THKE, F11, F12,
96 D GROUP_PARAM, MAT_ELEM, NEL, ISTRAIN,
97 E ISH3N, XEDGE3N, ITHK, IOFC,
98 F IPLA, NFT, ISMSTR, NPT,
99 G KFTS, FZERO, IGEO, IPM,
100 H IFAILURE, ITASK, JTHE, TEMP,
101 I FTHE, FTHESKY, IEXPAN, GRESAV,
102 J GRTH, IGRTH, MSTG, DMELTG,
103 K JSMS, TABLE, IPARG, IXFEM,
104 L SENSORS, PTG, IBORDNODE, ELCUTC,
105 M INOD_CRK, IEL_CRK, NODENR, IADTG_CRK,
106 N NODEDGE, CRKNODIAD, KNOD2ELC, CONDN,
107 O CONDNSKY, STACK, ISUBSTACK, XFEM_STR,
108 P CRKEDGE, DRAPE_SH3N, IPRI, NLOC_DMG,
109 Q xdp, INDX_DRAPE, IGRE, JTUR,
110 R DT, SNPC, STF, GLOB_THERM,
111 S IDEL7NOK, USERL_AVAIL, MAXFUNC, SBUFMAT)
131#include "implicit_f.inc"
135#include "mvsiz_p.inc"
139#include "param_c.inc"
140#include "com01_c.inc"
141#include "com04_c.inc"
142#include "scr18_c.inc"
143#include "com_xfem1.inc"
144#include "parit_c.inc"
145#include "timeri_c.inc"
149 TYPE(timer_),
INTENT(INOUT) :: TIMERS
150 INTEGER,
INTENT(IN) :: USERL_AVAIL
151 INTEGER,
INTENT(IN) :: MAXFUNC
152 INTEGER,
INTENT(INOUT) :: IDEL7NOK
153 INTEGER,
INTENT(IN) :: SBUFMAT
154 INTEGER,
INTENT(IN) :: STF
155 INTEGER,
INTENT(IN) :: SNPC
156 INTEGER,
INTENT(IN) :: JTUR
157 INTEGER,
INTENT(IN) :: IGRE
158 INTEGER JFT, JLT, NVC, MTN,NELTST,ITYPTST, OFFSET,
159 . NEL ,ISTRAIN,ISH3N , ICSEN,
160 . ITHK ,IOFC ,IPLA ,NFT ,ISMSTR ,NPT,KFTS,IFAILURE,
162 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IGEO(NPROPGI,*),IPM(*),
163 . IPARTTG(*),ITASK,,IEXPAN,GRTH(*),IGRTH(*),IPARG(*),ITAB(*),
164 . IXFEM,IBORDNODE(*),
165 . ELCUTC(2,*),INOD_CRK(*),NODENR(*),IEL_CRK(*),IADTG_CRK(3,*),
166 . NODEDGE(2,*),CRKNODIAD(*),KNOD2ELC(*),XEDGE3N(3,*),INDX_DRAPE(STDRAPE)
168 . PM(NPROPM,*), F(*), M(*), V(*), R(*),X(*),
169 . GEO(NPROPG,*), TF(*), BUFMAT(*), PMSAV(*),STIFN(*),
170 . STIFR(*),FSKY(*),EPSDOT(6,*),THKE(*),DT2T,
171 . F11(), F12(MVSIZ), F13(MVSIZ),
172 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ),
173 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ),
174 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ),
175 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ),
176 . (MVSIZ), M32(MVSIZ), M33(MVSIZ),
177 . fzero(3,3,*),temp(*),fthe(*),fthesky(*),gresav(*),mstg(*),
178 . dmeltg(*),ptg(3,*),condn(*),condnsky(*)
180 REAL(kind=8), dimension(*),
INTENT(in),
TARGET :: xdp
183 TYPE (elbuf_struct_),
TARGET :: ELBUF_STR
184 TYPE (ELBUF_STRUCT_),
DIMENSION(NXEL),
TARGET :: XFEM_STR
185 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
186 TYPE (STACK_PLY) :: STACK
187 TYPE () ,
TARGET :: NLOC_DMG
188 TYPE (FAILWAVE_STR_) ,
TARGET :: FAILWAVE
189 TYPE (DRAPE_),
DIMENSION(NUMELTG_DRAPE) :: DRAPE_SH3N
190 TYPE (SENSORS_) ,
INTENT(INOUT) ::
191 TYPE (MAT_ELEM_),
INTENT(INOUT) :: MAT_ELEM
192 TYPE (GROUP_PARAM_) :: GROUP_PARAM
193 TYPE (DT_),
INTENT(IN) :: DT
194 type () ,
intent(inout) :: glob_therm
199 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL)
200 INTEGER I,J,IFLAG,NPG,IBID,IDRIL,NG,IR,IS,N1,N2,N3,
201 . IXEL,IXLAY,ILAY,,NLAY,L_DIRA,L_DIRB,J1,J2,IGMAT,IGTYP,
202 . IMAT,NPTTOT,IREP,ipr,IFRAM_OLD,IPRI,IFAILWAVE, IDRAPE,NPTT,IT,
203 . ACTIFXFEM ,SEDRAPE,NUMEL_DRAPE
207 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
209 . sti(mvsiz),stir(mvsiz),rho(mvsiz),bid,
210 . viscmx(mvsiz),
area(mvsiz),
211 . x2l(mvsiz), x3l(mvsiz), y2l(mvsiz),y3l(mvsiz),
212 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), ezx(mvsiz), eyz(mvsiz),
213 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz),
214 . px1(mvsiz), py1(mvsiz), py2(mvsiz),
215 . off(mvsiz), sigy(mvsiz),thk0(mvsiz),
216 . nu(mvsiz) , shf(mvsiz
217 . g(mvsiz) , ym(mvsiz) , a11(mvsiz) , a12(mvsiz),
218 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2), gs(mvsiz),
219 . vol00(mvsiz),alpe(mvsiz),die(mvsiz), tempel(mvsiz),
220 . e1x0(mvsiz), e1y0(mvsiz), e1z0(mvsiz), e2x0(mvsiz),
221 . e2y0(mvsiz), e2z0(mvsiz), e3x0(mvsiz), e3y0(mvsiz), e3z0(mvsiz),
222 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
223 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
224 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),
225 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3) ,them(mvsiz,3),
226 . x21g(mvsiz), y21g(mvsiz), z21g(mvsiz),
227 . x31g(mvsiz), y31g(mvsiz), z31g(mvsiz),
228 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),
229 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),
230 . vx13(mvsiz), vx23(mvsiz),vy12(mvsiz),
231 . rlz(mvsiz,3),wxy(mvsiz),mlz(mvsiz,3),krz(mvsiz),
232 . b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2),bm0rz(mvsiz,3,2),
233 . conde(mvsiz),a11r(mvsiz),fac1,aldt(mvsiz),ssp(mvsiz)
235 . areat(mvsiz),x2t(mvsiz) ,y2t(mvsiz), x3t(mvsiz),y3t(mvsiz),
236 . f_def(mvsiz,8), u21x(mvsiz),u31x(mvsiz),u21y(mvsiz),u31y(mvsiz),
237 . rz13(mvsiz),rz23(mvsiz),bmrzt(mvsiz,8),wkxy(mvsiz),
238 . ecos(mvsiz),esin(mvsiz),nfor(nel,5),nmom(nel,3)
240 my_real ,
DIMENSION(NEL) :: zoffset
242 REAL(kind=8), dimension(mvsiz) ::x1g,x2g,x3g
243 REAL(kind=8), dimension(mvsiz) ::y1g,y2g,y3g
244 REAL(kind=8), dimension(mvsiz) ::z1g,z2g,z3g
245 my_real,
dimension(nel) :: epsd_pg
247 my_real,
dimension(mvsiz) :: fheat
250 INTEGER :: NDDL, K, (3),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), L_NLOC, IPOS(3),INLOC
251 my_real,
DIMENSION(:,:),
ALLOCATABLE :: VAR_REG
252 my_real,
DIMENSION(:),
POINTER :: BPRELD,DNL
254 INTEGER,
DIMENSION(NEL) :: OFFLY
255 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: ELCRKINI
256 my_real ,
ALLOCATABLE,
DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
257 my_real ,
DIMENSION(:) ,
POINTER :: DIR_A,DIR_B,CRKDIR,CRKLEN,DADV
260 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
261 TYPE(G_BUFEL_) ,
POINTER ::
262 TYPE(l_bufel_) ,
POINTER :: LBUF
263 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
267 GBUF => elbuf_str%GBUF
268 idrape = elbuf_str%IDRAPE
272 actifxfem = iparg(70)
274 nlay = elbuf_str%NLAY
289 zcfac(1:mvsiz,1:2) = zero
293 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
296 ALLOCATE(var_reg(nel,nddl))
297 IF (npt == 0) npttot = npt
298 IF (ish3n==3.AND.ish3nfram==0)
THEN
312 igtyp = igeo(11,pid(1))
313 igmat = igeo(98,pid(1))
317 ifailwave = iparg(79)
318 IF (ifailwave > 0)
THEN
320 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
323 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
328 . nel ,ixtg ,itab ,ngl ,offly )
332 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
333 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
334 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
335 ALLOCATE(dira(npttot*nel*l_dira))
336 ALLOCATE(dirb(npttot*nel*l_dirb))
337 IF (l_dira == 0)
THEN
339 ELSEIF (irep == 0)
THEN
342 nptt = elbuf_str%BUFLY(ilay)%NPTT
345 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
346 j1 = 1+(j-1)*l_dira*nel
348 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
350 npttot = npttot + nptt
353 sdir_a = npttot*nel*l_dira
354 sdir_b = npttot*nel*l_dirb
355 dir_a => dira(1:npttot*nel*l_dira)
356 dir_b => dirb(1:npttot*nel*l_dirb)
359 sdir_a = nlay*nel*l_dira
360 sdir_b = nlay*nel*l_dirb
361 ALLOCATE(dira(nlay*nel*l_dira))
362 ALLOCATE(dirb(nlay*nel*l_dirb))
365 IF (l_dira == 0)
THEN
367 ELSEIF (irep == 0)
THEN
369 j1 = 1+(j-1)*l_dira*nel
371 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
374 sdir_a=nlay*nel*l_dira
375 sdir_b=nlay*nel*l_dirb
376 dir_a => dira(1:nlay*nel*l_dira)
377 dir_b => dirb(1:nlay*nel*l_dirb)
383 ALLOCATE(elcrkini(nxlaymax*mvsiz))
384 ALLOCATE(dir1_crk(nxlaymax*mvsiz))
385 ALLOCATE(dir2_crk(nxlaymax*mvsiz))
389 IF (nlevset > 0)
THEN
394 ALLOCATE(elcrkini(0))
395 ALLOCATE(dir1_crk(0))
396 ALLOCATE(dir2_crk(0))
400 CALL c3coor3(jft ,jlt ,x ,ixtg ,
401 . gbuf%OFF ,off ,dt1c ,
402 . v ,r ,vl1 ,vl2 ,vl3 ,
403 . vrl1 ,vrl2 ,vrl3 ,sigy ,
404 . x1g ,x2g ,x3g ,y1g ,y2g ,
405 . y3g ,z1g ,z2g ,z3g ,xdp )
410 CALL c3evec3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
411 . irep ,e1x0 ,e1y0 ,e1z0 ,e2x0 ,
412 . e2y0 ,e2z0 ,e3x0 ,e3y0 ,e3z0 ,
413 . e1x ,e1y ,e1z ,e2x ,
414 . e2y ,e2z ,e3x ,e3y ,e3z ,
415 . nlay ,gbuf%OFF ,ecos ,esin ,ifram_old,
416 . nel ,
area ,x21g ,y21g ,z21g ,
418 . x1g ,x2g ,x3g ,y1g ,y2g ,
419 . y3g ,z1g ,z2g ,z3g )
423 . gbuf%SMSTR,gbuf%OFF,ismstr ,alpe ,aldt ,
424 . ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
425 . uy3 ,nel ,
area ,x21g ,y21g ,
426 . z21g ,x31g ,y31g ,z31g ,x2l ,
428 . e1x ,e1y ,e1z ,e2x ,
429 . e2y ,e2z ,e3x ,e3y ,e3z )
432 CALL c3pxpy3(jft ,jlt ,pm ,sti ,stir,
433 2 gbuf%SMSTR,px1 ,py1 ,py2 ,mat ,
437 IF (idril > 0)
CALL c3brz3(jft ,jlt ,
area ,x2l ,x3l ,
438 . y3l ,bm0rz,b0rz,bkrz,berz)
440 CALL c3coef3(jft ,jlt ,pm ,mat ,geo ,
441 2 pid ,off ,
area ,sti ,stir ,
442 3 shf ,thk0 ,thk02 ,nu ,
443 4 g ,ym ,a11 ,a12 ,gbuf%THK,
444 5 ssp ,rho ,vol0 ,gs ,mtn ,
445 6 ithk ,npttot ,ismstr ,vol00 ,igeo ,
446 7 a11r ,isubstack , stack%PM,nel, zoffset )
448 CALL c3defo3(jft ,jlt ,vl1 ,vl2 ,vl3 ,
449 . ixtg ,ish3n ,px1 ,py1 ,py2 ,
450 . exx ,eyy ,exy ,eyz ,ezx ,
452 . e1x ,e1y ,e1z ,e2x ,
453 . e2y ,e2z ,e3x ,e3y ,e3z )
456 CALL c3defrz(jft ,jlt ,rlz ,bm0rz ,b0rz,
457 1 bkrz ,berz ,e3x0 ,e3y0 ,e3z0 ,
458 2 vrl1 ,vrl2 ,vrl3 ,exx ,eyy ,
459 3 exy ,px1 ,py1 ,py2 ,wxy ,
460 4
area ,vx13 ,vx23 ,vy12 )
464 CALL c3curv3(jft,jlt,vrl1,vrl2,vrl3,
465 . ixtg,wkxy,ismstr,kxx,kyy,kxy,
466 . px1 ,py1 ,py2 ,eyz ,ezx ,
467 . e1x ,e1y ,e1z ,e2x ,
468 . e2y ,e2z ,e3x ,e3y ,e3z )
470 IF (ismstr == 10)
THEN
471 CALL c3coort3(jft ,jlt ,x ,ixtg ,gbuf%OFF,
472 1 r ,x2l ,x3l ,y2l ,y3l ,
473 2 e1x0 ,e1y0 ,e1z0 ,e2x0 ,e2y0 ,
474 3 e2z0 ,e3x0 ,e3y0 ,e3z0 ,nel ,
475 4 u21x ,u31x ,u21y ,u31y ,rz13 ,
476 5 rz23 ,x2t ,x3t ,y2t ,y3t ,
477 6 areat ,gbuf%SMSTR ,idril )
478 CALL c3deft3(jft,jlt,x2t,y2t,x3t,y3t,u21x,u21y,u31x,u31y,
479 . bmrzt,rz13,rz23,areat,f_def,idril )
482 IF (ifram_old==0)
THEN
483 CALL shroto3(jft,jlt,ecos,esin,exx,
484 . eyy,exy,ezx,eyz,kxx,
488 2 mat ,
area ,exx ,eyy ,exy ,
489 3 ezx ,eyz ,kxx ,kyy ,kxy ,
490 4 geo ,pid ,nu ,shf ,gbuf%STRA,
492 6 nft ,istrain,ismstr ,
493 7 ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
494 8 uy3 ,px1 ,py1 ,py2 ,mtn ,
495 9 f_def ,wkxy ,gbuf%STRW,nel )
497 IF (ifram_old==0.AND.ismstr>=10)
THEN
498 CALL shtroto3(jft,jlt,ecos,esin,gbuf%STRA,
505 l_nloc = nloc_dmg%L_NLOC
506 dnl => nloc_dmg%DNL(1:l_nloc)
513#include "vectorize.inc"
515 inod(1) = nloc_dmg%IDXI(nc1(i))
516 inod(2) = nloc_dmg%IDXI(nc2(i))
517 inod(3) = nloc_dmg%IDXI(nc3(i))
518 ipos(1) = nloc_dmg%POSI(inod(1))
519 ipos(2) = nloc_dmg%POSI(inod(2))
520 ipos(3) = nloc_dmg%POSI(inod(3))
521 var_reg(i,k) = third*(dnl(ipos(1)+k-1
523 . + dnl(ipos(3)+k-1))
535 dtinv = dt1 /
max(dt1**2,em20)
537#include "vectorize.inc"
539 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
540 . * one_over_9*gbuf%thk(i)**2
541 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
542 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
545 IF (jthe /= 0 )
CALL temp3cg(jft ,jlt ,pm ,mat ,ixtg,
548 IF ((imon_mat==1).AND.itask == 0)
CALL startime(timers,35)
551 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
552 2 nel ,mtn ,ipla ,ithk ,group_param
553 3 pm ,geo ,npf ,tf ,bufmat ,
554 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
557 7 off ,thk0 ,mat ,pid ,mat_elem ,
558 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
559 9 gbuf%THK ,gbuf%EINT ,iofc ,
560 a g ,a11 ,a12 ,vol0 ,indx ,
561 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
562 c kfts ,ish3n ,alpe ,
563 d dir_a ,dir_b ,igeo ,
564 e ipm ,ifailure ,npg ,fheat ,
565 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
567 h bid ,bid ,bid ,bid ,bid ,
568 i bid ,bid ,bid ,e1x0 ,e1y0 ,
569 j e1z0 ,e2x0 ,e2y0 ,e2z0 ,e3x0 ,
570 k e3y0 ,e3z0 ,ng ,table ,ixfem ,
571 l bid ,sensors ,bid ,elcrkini ,
572 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
573 n ismstr ,ir ,is ,nlay ,npt ,
574 o ixlay ,ixel ,isubstack ,stack ,
575 p f_def ,itask ,drape_sh3n ,var_reg ,nloc_dmg ,
576 q indx_drape,thke ,sedrape ,numel_drape,dt ,
577 r ncycle ,snpc ,stf ,nxlaymax ,
578 s idel7nok ,userl_avail ,maxfunc ,npttot,
579 t sbufmat ,sdir_a , sdir_b ,gbuf%FOR_G)
581 IF ((imon_mat==1).AND.itask == 0)
CALL stoptime(timers,35)
585 IF (ismstr /= 3)
CALL c3dt3(
586 1 jft ,jlt ,pm ,off ,dt2t ,
587 2 neltst ,ityptst ,sti ,stir ,gbuf%OFF,
588 3 ssp ,viscmx ,ismstr ,nft ,iofc ,
589 4 alpe ,mstg ,dmeltg ,jsms ,ptg ,
590 5 shf ,igtyp ,igmat ,g ,a11 ,
591 6 a11r ,gbuf%G_DT ,gbuf%DT ,aldt ,thk0 ,
592 7
area ,ngl ,imat ,mtn ,nel ,
596 CALL c3sroto3(jft ,jlt ,ecos ,esin ,gbuf%FOR,
597 + gbuf%MOM,nfor ,nmom ,ifram_old ,nel )
605 2 gbuf%THK, gbuf%EINT, pmsav, iparttg,
606 3 rho, vol00, ixtg, x,
607 4 r, thk02,
area, gresav,
608 5 grth, igrth, off, ibid,
609 6 ibid, ibid, ibid, ibid,
610 7 iexpan, gbuf%EINTTH,itask, mat,
611 8 gbuf%VOL, actifxfem, igre, sensors,
612 9 nel, gbuf%G_WPLA,gbuf%WPLA)
616 CALL c3fint3(jft ,jlt ,nfor ,nmom ,thk0,
617 2 px1 ,py1 ,py2 ,f11 ,f12 ,
618 3 f13 ,f21 ,f22 ,f23 ,f31 ,
619 4 f32 ,f33 ,m11 ,m12 ,m13 ,
620 5 m21 ,m22 ,m23 ,nel )
623 2 py1 ,py2 ,f11 ,f12 ,f13 ,
624 3 f21 ,f22 ,f23 ,wxy ,nfor ,
625 4 gbuf%HOURG,mlz ,bm0rz,b0rz,bkrz,
626 5 berz ,krz ,rlz ,dt1c ,gbuf%EINT,
634 1 nloc_dmg, var_reg, gbuf%THK, nel,
635 2 off,
area, nc1, nc2,
637 4 elbuf_str%NLOC(1,1), imat, nddl,
638 5 itask, dt2t, aldt, gbuf%THK_I,
646 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
647 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg ,
648 . px1 ,py1 ,py2 ,
area ,dtime ,
649 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
651 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg ,
652 . px1 ,py1 ,py2 ,
area ,dtime ,
653 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
659 IF (jthe > 0 .AND. glob_therm%IDT_THERM == 1)
THEN
660 call dttherm(nel ,pm(1,mat(1)) ,npropm ,glob_therm ,
661 . jtur ,tempel ,vol0 ,rho ,
662 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
668 . f11,f12,f13,f21,f22,f23,
670 . e1x ,e1y ,e1z ,e2x ,
671 . e2y ,e2z ,e3x ,e3y ,e3z )
673 . m11,m12,m13,m21,m22,m23,m31,m32,m33,
674 . e1x ,e1y ,e1z ,e2x ,
675 . e2y ,e2z ,e3x ,e3y ,e3z )
678 CALL c3mzcum3(jft ,jlt ,mlz ,e3x0 ,e3y0 ,
679 . e3z0 ,m11 ,m12 ,m13 ,m21 ,
680 . m22 ,m23 ,m31 ,m32 ,m33)
683 IF (iparit == 0)
THEN
684 CALL c3updt3(jft ,jlt ,f ,m ,nvc ,
685 2 gbuf%OFF,off ,sti ,stir,stifn,
686 3 stifr ,ixtg ,glob_therm%NODADT_THERM,
687 4 f11 ,f12 ,f13 ,f21 ,f22 ,f23 ,
688 5 f31 ,f32 ,f33 ,m11 ,m12 ,
689 7 m13 ,m21 ,m22 ,m23 ,m31 ,
690 8 m32 ,m33 ,jthe,them,fthe ,
691 9 gbuf%EINT,pm ,
area,gbuf%THK,
692 a pmsav,mat,iparttg,condn,conde)
694 CALL c3updt3p(jft ,jlt ,gbuf%OFF,off,sti,
695 2 stir ,fsky ,fsky,iadtg ,f11,
696 4 f12 ,f13 ,f21 ,f22 ,f23 ,
697 5 f31 ,f32 ,f33 ,m11 ,m12 ,
698 7 m13 ,m21 ,m22 ,m23 ,m31 ,
699 8 m32 ,m33 ,jthe,them,fthesky,
700 9 gbuf%EINT,pm ,
area,gbuf%THK ,
701 b pmsav ,mat ,iparttg,condnsky,
702 c conde ,glob_therm%NODADT_THERM)
705 IF (icsen > 0)
CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
709 IF (icrack3d > 0 .AND. ixfem > 0)
THEN
712 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
714 . nel ,nft ,ilay ,nlay ,ixtg ,
715 . crklen ,elcrkini ,iel_crk ,dir1_crk
716 . nodedge ,crkedge ,xedge3n ,ngl ,x2l ,
717 . x3l ,y2l ,y3l ,aldt )
720 . nel ,nft ,ilay ,nxlay ,ixtg ,
721 . elcutc ,elcrkini ,iel_crk ,inod_crk ,iadtg_crk ,
722 . nodenr ,dir1_crk ,dir2_crk ,nodedge ,crknodiad ,
723 . knod2elc ,crkedge ,xedge3n ,ngl ,
area ,
724 . x2l ,x3l ,y2l ,y3l )
727 . nel ,nft ,ilay ,nxlay ,ixtg ,
728 . elcutc ,elcrkini ,iel_crk ,inod_crk ,iadtg_crk ,
729 . nodenr ,dir1_crk ,dir2_crk ,nodedge ,crknodiad ,
730 . knod2elc ,crkedge ,xedge3n ,ngl ,
area ,
731 . x2l ,x3l ,y2l ,y3l )
735 . jft ,jlt ,nft ,ir ,is ,
736 . nxlay ,iel_crk ,crkedge,xedge3n )
742 IF (ifailwave > 0)
THEN
743 crkdir => elbuf_str%BUFLY(1)%CRKDIR
746 . nel ,ixtg ,itab ,crkdir
747 . l_dira ,x2l ,x3l ,y2l ,y3l )
750 IF (
ALLOCATED(dir2_crk))
DEALLOCATE(dir2_crk)
751 IF (
ALLOCATED(dir1_crk))
DEALLOCATE(dir1_crk)
752 IF (
ALLOCATED(elcrkini))
DEALLOCATE(elcrkini)
753 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
754 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
755 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)