113
114
115
116 USE timer_mod
118 USE mat_elem_mod
124 USE sensor_mod
125 USE output_mod
126 USE elbufdef_mod
128 use glob_therm_mod
129 use dttherm_mod
130 use element_mod , only : nixc
131
132
133
134#include "implicit_f.inc"
135
136
137
138#include "mvsiz_p.inc"
139
140
141
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"
151
152
153
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,
166 . ISUBSTACK,IPRI
167 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),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(*)
184
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) :: SENSORS
194 TYPE (MAT_ELEM_) ,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
198
199 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
200
201
202
203 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),(MVSIZ),FWAVE_EL(NEL),
204 . I,J,IGTYP,ICSEN,IUN,NPG,ILAY,NLAY,IXEL,IXLAY,NXLAY,
205 . IBID,NG,IR,IS,L_DIRA,L_DIRB,J1,J2,IGMAT,NPTTOT,IREP,IFAILWAVE,IDRAPE,
206 . NPTT,IT,ACTIFXFEM,SEDRAPE,NUMEL_DRAPE,IMAT
208 . sti(mvsiz),stir(mvsiz),sigy(mvsiz),rho(mvsiz),
209 . x2(mvsiz),x3(mvsiz),x4(mvsiz),y2(mvsiz),y3(mvsiz),
210 . y4(mvsiz),z2(mvsiz),ssp(mvsiz),viscmx(mvsiz),
211 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
212 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
213 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
214 .
215 . thk02(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), kxy(mvsiz), px1(mvsiz),
224 . px2(mvsiz), py1(mvsiz), py2(mvsiz), thk0(mvsiz),
225 . off(mvsiz), nu(mvsiz) , shf(mvsiz),
area(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),
229 . dt1c(mvsiz), dt2c(mvsiz),
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),
245 .
246 . dtcsub(mvsiz),conde(mvsiz),a11r(mvsiz)
247
249 . areat(mvsiz),px1t(mvsiz),px2t(mvsiz),py1t(mvsiz),py2t(mvsiz),
250 . f_def(mvsiz,8), u13x(mvsiz),u24x(mvsiz),u13y(mvsiz),u24y(mvsiz),
251 . wxy(mvsiz)
252
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
257 TARGET :: dira,dirb
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
262
263
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 :: var_reg
267 my_real,
DIMENSION(:),
POINTER :: dnl
268
269
270 TYPE(G_BUFEL_) ,POINTER :: GBUF
271
272 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
273 TYPE (STACK_PLY) :: STACK
274 INTEGER SDIR_A
275 INTEGER SDIR_B
276
277 gbuf => elbuf_str%GBUF
278 idrape = elbuf_str%IDRAPE
279
280 iun = 1
281 ibid = 0
282 bid = zero
283 nlay = elbuf_str%NLAY
286 tempel(:) = zero
287 fheat(: ) = zero
288
289
290
291 npg = 1
292 ir = 1
293 is = 1
294 ng = 1
295 ixel = 0
296 ixlay = 0
297 irep = iparg(35)
298 inloc = iparg(78)
299 actifxfem = iparg(70)
300
301 npttot = 0
302 DO ilay=1,nlay
303 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
304 ENDDO
305
306
307 nddl = npttot
308 ALLOCATE(var_reg(nel,nddl))
309
310 IF (npt == 0) npttot = npt
311
312
313
314 ifailwave = iparg(79)
315 IF (ifailwave > 0) THEN
316 fwave_el(:) = zero
317 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
318 DO i=2,nlay
319 DO j=1,nel
320 offly(j) =
max(offly(j), elbuf_str%BUFLY
321 ENDDO
322 ENDDO
323 dadv => gbuf%DMG
325 . nel ,ixc ,itab ,ngl ,offly )
326 ENDIF
327
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
335 CONTINUE
336 ELSEIF (irep == 0) THEN
337 npttot = 0
338 DO ilay=1,nlay
339 nptt = elbuf_str%BUFLY(ilay)%NPTT
340 DO it=1,nptt
341 j = npttot + it
342 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
343 j1 = 1+(j-1)*l_dira*nel
344 j2 = j*l_dira*nel
345 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
346 ENDDO
347 npttot = npttot + nptt
348 ENDDO
349 ENDIF
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)
354 ELSE
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))
359 dira=zero
360 dirb=zero
361 IF (l_dira == 0) THEN
362 CONTINUE
363 ELSEIF (irep == 0) THEN
364 DO j=1,nlay
365 j1 = 1+(j-1)*l_dira*nel
366 j2 = j*l_dira*nel
367 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira
368 ENDDO
369 ENDIF
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)
374 ENDIF
375
376 nxlay = nlay
377
378 IF (ixfem > 0) THEN
379 ALLOCATE(elcrkini(nxlaymax*nel))
380 ALLOCATE(dir1_crk(nxlaymax*nel))
381 ALLOCATE(dir2_crk(nxlaymax*nel))
382 dir1_crk = zero
383 dir2_crk = zero
384 elcrkini = 0
385 IF (nlevset > 0) THEN
386 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
387 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n
388 ENDIF
389 ELSE
390 ALLOCATE(elcrkini(0))
391 ALLOCATE(dir1_crk(0))
392 ALLOCATE(dir2_crk(0))
393 ENDIF
394
395
396
397
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 )
403
404 icsen= igeo(3,pid(1))
405 igtyp= igeo(11,pid(1))
406
407 igmat= igeo(98,pid(1))
408
409 IF (ishfram == 1) THEN
410
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)
415 ELSE
416
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 )
423 ENDIF
424
425 IF (ismstr /= 3)THEN
427 1 jft, jlt, gbuf%SMSTR,gbuf%OFF,
428 2 sti, stir,
area, px1,
429 3 px2, py1, py2, x2,
430 4 x3, x4, y2, y3,
431 5 y4, z2, x1g, x2g,
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)
440 ELSE
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 ,
445 5 mat ,nel )
446 ENDIF
447
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 )
457
458 IF ((ismstr /= 3 .AND. idt1sh == 0) .OR.
459 . idtmin(3) /= 0 .OR. igtyp == 16 .OR. glob_therm%IDT_THERM == 1) THEN
460
462 2 x2 ,x3 ,x4 ,y2 ,y3 ,
463 3 y4 ,aldt ,mat ,geo ,pid ,
464 4 ihbe )
465 ENDIF
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 ,y3,
468 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
469 4 vz1 ,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
470 5 e3x ,e3y,e3z,ihbe)
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 ,
476 5 wxy ,ismstr)
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 ,
483 5 nel )
484
485 CALL cdefot3(jft ,jlt ,px1t ,px2t ,py1t ,
486 2 py2t ,u13x ,u24x ,u13y ,u24y ,
487 3 f_def )
488 END IF
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 )
497
498
499 IF (jthe /= 0) THEN
500 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
501 ENDIF
502
503
504
505 IF (inloc > 0) THEN
506 l_nloc = nloc_dmg%L_NLOC
507 dnl => nloc_dmg%DNL(1:l_nloc)
508 DO i=jft,jlt
509 nc1(i) = ixc(2,i)
510 nc2(i) = ixc(3,i)
511 nc3(i) = ixc(4,i)
512 nc4(i) = ixc(5,i)
513 ENDDO
514 DO k = 1,nddl
515#include "vectorize.inc"
516 DO i=jft,jlt
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))
527 ENDDO
528 ENDDO
529 ENDIF
530
531
532
533
534
535
536
537 dt1 = dt1c(1)
538 dtinv = dt1 /
max(dt1**2,em20)
539 asrate = one
540#include "vectorize.inc"
541 do i = 1,nel
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
546 end do
547 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
548
549 IF ((imon_mat==1).AND. itask == 0)
CALL startime(timers,35)
550
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 ,
563 c kfts ,ihbe ,alpe ,
564 d dir_a ,dir_b ,igeo ,
565 e ipm ,ifailure ,npg ,fheat ,
566 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
567 g ibid ,bid ,
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 ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
574 n ismstr ,ir ,is ,nlay ,npt ,
575 o ixlay ,ixel ,isubstack ,stack ,
576 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
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 )
582
583 IF ((imon_mat==1).AND. itask == 0)
CALL stoptime(timers,35)
584
585
586
587 DO i=jft,jlt
588 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
589 ENDDO
590 IF (nodadt /= 0 .AND. mtn ==58 )
591 .
CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt ,1 )
592
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 ,
617 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area ,
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,
621 b ipartc,partsav,
622 c ihbe ,nft ,ismstr,srh3,igtyp ,
623 d igmat ,a11r ,nel)
624 ELSE
626 2 jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,px2 ,py1 ,py2 ,
627 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
628 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area,thk0,vhx ,
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 ,
634 a ipartc,partsav,
635 b ihbe ,nft ,ismstr,kfts ,
636 c srh1, srh2, srh3 ,igtyp ,
637 d igmat ,a11r ,nel)
638 ENDIF
639
640
641
642
643 IF (ipri>0) THEN
645 1 jft, jlt, pm, v,
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 )
659 ENDIF
660
661
662
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)
671 ENDIF
672
673
674
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 )
686
687
688
689
690 IF (jthe /= 0) THEN
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 ,
694 . temp ,tempel,fheat , them ,glob_therm%THEACCFACT)
695 ELSE
696 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
697 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
698 . temp ,tempel,die , them ,glob_therm%THEACCFACT)
699 END IF
700 ENDIF
701
702
703
704 imat = mat(1)
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 ,gbuf%rk )
709 ENDIF
710
711
712
713 IF (inloc > 0) THEN
714
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)
722 ENDIF
723
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 ,
738 4 f11 ,f12 ,f13 ,f14 ,f21 ,
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,jthe ,them ,
744 a fthe ,condn ,conde ,glob_therm%NODADT_THERM)
745 ELSE
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,
755 a condnsky ,conde ,glob_therm%NODADT_THERM)
756 ENDIF
757
758 IF (icsen > 0)
759 .
CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
760
761
762
763 IF (ixfem > 0) THEN
764 DO ilay=1,nxlay
765
766
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 ,
773 . aldt )
774
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 ,
781 . y4 ,xedge4n ,ngl )
782
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
788 . x2 ,x3 ,x4 ,y2 ,y3 ,
789 . y4 ,xedge4n ,ngl )
790 ENDDO
791
792 CALL crkoffc(elbuf_str,xfem_str(ig,1:nxel) ,
793 . jft ,jlt ,nft ,ir ,is ,
794 . nxlay ,iel_crk ,crkedge,xedge4n )
795 END IF
796
797
798
799 IF (ifailwave > 0) THEN
800 crkdir => elbuf_str%BUFLY(1)%CRKDIR
801
803 . nel ,ixc ,itab ,crkdir ,dir_a ,
804 . l_dira ,x2 ,x3 ,x4 ,y2 ,
805 . y3 ,y4 )
806 ENDIF
807
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)
814
815 RETURN
subroutine cbilan(jft, jlt, pm, v, ixc, thk, eint, partsav, area, mat, ipartc, x, vr, vol0, vol00, thk0, thk02, ifla, off, nft1, gresav, grth, igrth, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, ixfem, iexpan, eintth, itask, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
subroutine ccoef3(jft, jlt, pm, mat, geo, pid, off, area, sti, stir, shf, thk0, thk02, nu, g, ym, a11, a12, thk, ssp, rho, h1, h2, h3, vol0, vol00, alpe, gs, mtn, ithk, ismstr, npt, kfts, srh1, srh2, srh3, igeo, a11r, isubstack, pm_stack)
subroutine ccoort3(jft, jlt, x, ixc, offg, dr, px1, px2, py1, py2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, area, v13x, v24x, v13y, v24y, smstr, nel)
subroutine ccoor3(jft, jlt, x, ixc, geo, offg, off, sigy, pid, v, vr, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, mat, dt1c, thke, thk0, ngl, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
subroutine ccurv3(jft, jlt, vrl1, vrl2, vrl3, vrl4, px1, px2, py1, py2, area, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, kxx, kyy, kxy, exz, eyz, wxy, ismstr)
subroutine cdefo3(jft, jlt, vl1, vl2, vl3, vl4, dt1c, px1, px2, py1, py2, area, exx, eyy, exy, exz, eyz, x2, x3, x4, y2, y3, y4, z2, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe)
subroutine cdefot3(jft, jlt, px1, px2, py1, py2, vx13, vx24, vy13, vy24, f_def)
subroutine cderi3(jft, jlt, smstr, offg, sti, stir, area, px1, px2, py1, py2, x2, x3, x4, y2, y3, y4, z2, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, vhx, vhy, a_i, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, nel, ismstr)
subroutine cdlen3(jft, jlt, pm, off, area, x2, x3, x4, y2, y3, y4, aldt, mat, geo, pid, ihbe)
subroutine cdt3(jft, jlt, ym, off, dt2t, neltst, ityptst, sti, stir, offg, dtc, ndt, dt2c, ixc, ssp, viscmx, px1, px2, py1, py2, vol0, vol00, rho, aldt, alpe, indxof, ngl, ismstr, iofc, msc, dmelc, jsms, g_dt, dtel)
subroutine cevec3(elbuf_str, dir_a, dir_b, jft, jlt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, irep, nlay, nel)
subroutine cfint3(jft, jlt, for, mom, thk0, thk02, px1, px2, py1, py2, area, z2, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, nel, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe, npt, fzero)
subroutine cfint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, nc4, px1, py1, px2, py2, bufnl, imat, nddl, itask, dt2t, le, thk0, area0, nft)
subroutine chsti3(jft, jlt, thk, hour, off, px1, px2, py1, py2, sigy, ixc, dt1c, ssp, rho, sti, z2, eani, stir, shf, thk0, thk02, viscmx, g, a11, h1, h2, h3, ym, nu, alpe, vhx, vhy, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, srh3, igtyp, igmat, a11r, nel)
subroutine chvis3(jft, jlt, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, thk0, vhx, vhy, shf, z2, eani, stir, viscmx, g, a11, h1, h2, h3, ym, nu, thk02, alpe, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, kfts, srh1, srh2, srh3, igtyp, igmat, a11r, nel)
subroutine cmain3(timers, elbuf_str, jft, jlt, nft, iparg, nel, mtn, ipla, ithk, group_param, pm, geo, npf, tf, bufmat, ssp, rho, viscmx, dt1c, sigy, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nu, off, thk0, mat, pid, mat_elem, for, mom, gstr, failwave, fwave_el, thk, eint, iofc, g, a11, a12, vol0, indxdel, ngl, zcfac, shf, gs, epsd_pg, kfts, jhbe, alpe, dir_a, dir_b, igeo, ipm, ifailure, npg, fheat, tempel, die, jthe, iexpan, tempel0, ishplyxfem, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, del_ply, th_iply, sig_iply, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ng, table, ixfem, offi, sensors, a11_iply, elcrkini, dir1_crk, dir2_crk, aldt, idt_therm, theaccfact, ismstr, ir, is, nlay, npt, ixlay, ixel, isubstack, stack, f_def, itask, drape, varnl, nloc_dmg, indx_drape, thke, sedrape, numel_drape, dt, ncycle, snpc, stf, nxlaymax, idel7nok, userl_avail, maxfunc, varnl_npttot, sbufmat, sdir_a, sdir_b, for_g, ssp_eq, ipart, lipart1, ipartc)
subroutine cnvec3(elbuf_str, dir_a, dir_b, jft, jlt, irep, igtyp, nlay, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel)
subroutine cpxpy3(jft, jlt, pm, sti, smstr, px1, px2, py1, py2, stir, ixc, area, x2, x3, x4, y2, y3, y4, z2, thk0, mat, nel)
subroutine crklayer4n_adv(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklayer4n_ini(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklen4n_adv(nel, nft, ilay, nlay, ixc, crklen, elcrkini, iel_crk, dir1, dir2, nodedge, crkedge, xedge4n, ngl, xl2, xl3, xl4, yl2, yl3, yl4, aldt)
subroutine csens3(jft, jlt, pid, igeo, epsp)
subroutine cssp2a11(pm, imat, ssp, a11, nel, iflag)
subroutine cstra3(jft, jlt, gstr, shf, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, for, mom, ismstr, mtn, ihbe, nft, istrain, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, px1, px2, py1, py2, wxy, gstrw, f_def, nel)
subroutine cupdt3f(jft, jlt, i8f, i8m, nvc, offg, off, sti, stir, i8stifn, i8stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, nodadt_therm)
subroutine cupdt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadc, ixc, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, pm, area, thk, jthe, them, fthesky, condnsky, conde, nodadt_therm)
subroutine cupdt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, jthe, them, fthe, condn, conde, nodadt_therm)
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine mhvis3(jft, jlt, pm, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, eani, geo, pid, stir, mat, thk0, viscmx, alpe, ipartc, partsav, ihbe, nft, ismstr, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, b11, b12, b13, b14, b21, b22, b23, b24, area, ym, pr, vhx, vhy, h11, h12, h13, h14, h21, h22, h23, h24, h31, h32, h33, h34, h1, h2, igeo, nel, mtn, a1)
subroutine crkoffc(elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crk, crkedge, xedge4n)
subroutine precrklay(jft, jlt, nft, nlay, elcrkini, iel_crk, inod_crk, nodenr, crkedge, xedge4n)
subroutine set_failwave_nod4(failwave, fwave_el, ngl, nel, ixc, itab, crkdir, dir_a, nrot, xl2, xl3, xl4, yl2, yl3, yl4)
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine tempcg(numnod, nel, ixc, temp, tempel)
subroutine thermc(jft, jlt, pm, mat, thk, ixc, px1, px2, py1, py2, area, dt1c, tempnc, tempel, die, fphi, theaccfact)
subroutine set_failwave_sh4n(failwave, fwave_el, dadv, nel, ixc, itab, ngl, offly)