88
89
90
91 USE mat_elem_mod
97 USE sensor_mod
98 USE elbufdef_mod
100 use glob_therm_mod
101 use dttherm_mod
102 USE timer_mod
103 use element_mod , only : nixtg
104
105
106
107#include "implicit_f.inc"
108
109
110
111#include "mvsiz_p.inc"
112
113
114
115#include "param_c.inc"
116#include "com04_c.inc"
117#include "com08_c.inc"
118#include "scr18_c.inc"
119#include "parit_c.inc"
120
121
122
123 TYPE(TIMER_) ,INTENT(INOUT) :: TIMERS
124 INTEGER,INTENT(IN) :: USERL_AVAIL
125 INTEGER,INTENT(IN) :: MAXFUNC
126 INTEGER,INTENT(INOUT) :: IDEL7NOK
127 INTEGER, INTENT(IN) :: NXLAYMAX
128 INTEGER, INTENT(IN) :: SBUFMAT
129 INTEGER, INTENT(IN) :: STF
130 INTEGER, INTENT(IN) :: SNPC
131 INTEGER, INTENT(IN) :: JTUR, NCYCLE
132 INTEGER, INTENT(IN) :: IGRE
133 INTEGER JFT, JLT, NVC, MTN,NELTST,ITYPTST,IUN,
134 . NEL,ISTRAIN,IHBE ,ITHK,IOFC,IPLA,NFT,ISMSTR ,
135 . NPT,KFTS,IFAILURE,JSMS,JTHE,ISUBSTACK,ITASK,IPRI
136 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IGEO(NPROPGI,*),ITAB(*),
137 . IPM(NPROPMI,*),IPARTTG(*),GRTH(*),IGRTH(*),IPARG(*),INDX_DRAPE(SCDRAPE)
138
140 . pm(npropm,*), x(*), f(*), m(*), v(*), r(*),
141 . geo(npropg,*), tf(*), bufmat(*), pmsav(*),stifn(*),
142 . stifr(*),fsky(*),epsdot(6,*),thke(*),dt2t,
143 . f11(mvsiz), f12(mvsiz), f13(mvsiz),
144 . f21(mvsiz), f22(mvsiz), f23(mvsiz),
145 . f31(mvsiz), f32(mvsiz), f33(mvsiz),
146 . m11(mvsiz), m12(mvsiz), m13(mvsiz),
147 . m21(mvsiz), m22(mvsiz), m23(mvsiz),
148 . m31(mvsiz), m32(mvsiz), m33(mvsiz),
149 . gresav(*),mstg(*), dmeltg(*),ptg(3,*),condn(*),condnsky(*)
150 TYPE(TTABLE) TABLE(*)
151 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
152 TYPE (STACK_PLY) :: STACK
153 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
154 TYPE (GROUP_PARAM_) :: GROUP_PARAM
155 TYPE (NLOCAL_STR_), TARGET :: NLOC_DMG
156 TYPE (DRAPE_), DIMENSION (NUMELTG_DRAPE):: DRAPE_SH3N
157 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
158 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
159 TYPE (DT_), INTENT(IN) :: DT
160 type (glob_therm_) ,intent(inout) :: glob_therm
161 INTEGER, INTENT(IN) :: LIPART1
162 INTEGER, DIMENSION(LIPART1, NPART ), INTENT(IN) :: IPART
163
164
165
166
167
168 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),INDX(MVSIZ),FWAVE_EL(NEL),
169 . LENF,LENM,LENS,IR,IS,IT,NPTT,IMAT,
170 . I,J,NG,NPG,NNOD,NLAY,L_DIRA,L_DIRB,IFAILWAVE,
171 . PT1,PT2,PT3,PTF,PTM,PTS,IGTYP,IBID,J1,J2,
172 . IGMAT,ILAY,NPTTOT,IREP,KK(5),K,IDRAPE,ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
173 INTEGER, DIMENSION(NEL) :: OFFLY
174 parameter(npg = 3)
175 parameter(nnod = 3)
176 my_real,
dimension(mvsiz) :: epsd_pg,epsd_glob
177 my_real :: dtinv,asrate,eps_m2,eps_k2
179 . sti(mvsiz),stir(mvsiz),rho(mvsiz),
180 . ssp(mvsiz),viscmx(mvsiz),
area(mvsiz),area2(mvsiz),
181 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz), eyz(mvsiz),
182 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz),
183 . px2(mvsiz),py2(mvsiz), px3(mvsiz), py3(mvsiz),
184 . off(mvsiz), sigy(mvsiz),thk0(mvsiz),
185 . nu(mvsiz) , shf(mvsiz), dt1c(mvsiz),
186 . g(mvsiz) , ym(mvsiz) , a11(mvsiz) , a12(mvsiz),
187 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2), gs(mvsiz),
188 . vol00(mvsiz),alpe(mvsiz),a_hammer(3,2),
189 . r11(mvsiz),r12(mvsiz),r13(mvsiz),r21(mvsiz),r22(mvsiz),
190 . r23(mvsiz),r31(mvsiz),r32(mvsiz),r33(mvsiz),aldt(mvsiz),
191 . vlx(mvsiz,2),vly(mvsiz,2),vlz(mvsiz,2),rlx(mvsiz,3),rly(mvsiz,3),
192 . px(mvsiz,3),py(mvsiz,3),pxy(mvsiz,3), pyy(mvsiz,3),
193 . bz1(mvsiz,2),bz2(mvsiz,2),bz3(mvsiz,2), brx1(mvsiz,3),
194 . brx2(mvsiz,3),brx3(mvsiz,3),bry1(mvsiz,3),bry2(mvsiz,3),
195 . bry3(mvsiz,3),amu(mvsiz),cdet(mvsiz),vdef(mvsiz,8),die(mvsiz),
196 . tempel(mvsiz),krz(mvsiz),
197 . conde(mvsiz),a11r(mvsiz)
199 . DIMENSION(1),TARGET :: bid
201 .
202 .
203 .
204 . x2l(mvsiz),y2l(mvsiz),x3l(mvsiz),y3l(mvsiz)
205 my_real ,
DIMENSION(NEL) :: zoffset
207 : ALLOCATABLE, DIMENSION(:), TARGET :: dira,dirb
209 . DIMENSION(:) ,POINTER :: dir_a,dir_b,crkdir,dadv
210
211 my_real,
dimension(mvsiz) :: fheat
212 my_real,
dimension(mvsiz) :: ssp_eq
213
214
215 INTEGER :: NDDL, INOD(3),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), L_NLOC, IPOS(3),INLOC
216 my_real,
DIMENSION(:,:),
ALLOCATABLE :: var_reg
217 my_real,
DIMENSION(:),
POINTER :: dnl,unl
219 . ksi,eta
220 INTEGER SDIR_A
221 INTEGER SDIR_B
222
223
224 TYPE(G_BUFEL_) ,POINTER :: GBUF
225
226 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
227
228 DATA a_hammer /
229 1 0.166666666666667,0.666666666666667,0.166666666666667,
230 2 0.166666666666667,0.166666666666667,0.666666666666667/
231
232 gbuf => elbuf_str%GBUF
233 idrape = elbuf_str%IDRAPE
234
235 iun = 1
236 ibid = 0
237 bid = zero
238 igtyp = igeo(11,ixtg(5,1))
239 irep = iparg(35)
240 actifxfem = iparg(70)
241 inloc= iparg(78)
244
245 tempel(:) = zero
246 fheat(: ) = zero
247
248 DO j=1,5
249 kk(j) = nel*(j-1)
250 ENDDO
251
252
253 nlay = elbuf_str%NLAY
254
255
256 npttot = 0
257 DO ilay=1,nlay
258 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
259 ENDDO
260 IF (npt == 0) npttot = npt
261 nddl = npttot
262 ALLOCATE(var_reg(nel,nddl))
263
264
265
266 ifailwave = iparg(79)
267 IF (ifailwave > 0) THEN
268 fwave_el(:) = zero
269 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
270 DO i=2,nlay
271 DO j=1,nel
272 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
273 ENDDO
274 ENDDO
275 dadv => gbuf%DMG
277 . nel ,ixtg ,itab ,ngl ,offly )
278
279 ENDIF
280
281 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
282 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
283 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52)) THEN
284 ALLOCATE(dira(npttot*nel*l_dira))
285 ALLOCATE(dirb(npttot*nel*l_dirb))
286 IF (l_dira == 0) THEN
287 CONTINUE
288 ELSEIF (irep == 0) THEN
289 npttot = 0
290 DO ilay=1,nlay
291 nptt = elbuf_str%BUFLY(ilay)%NPTT
292 DO it=1,nptt
293 j = npttot + it
294 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
295 j1 = 1+(j-1)*l_dira*nel
296 j2 = j*l_dira*nel
297 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
298 ENDDO
299 npttot = npttot + nptt
300 ENDDO
301 ENDIF
302 sdir_a=npttot*nel*l_dira
303 sdir_b=npttot*nel*l_dirb
304 dir_a => dira(1:npttot*nel*l_dira)
305 dir_b => dirb(1:npttot*nel*l_dirb)
306 ELSE
307 sdir_a=nlay*nel*l_dira
308 sdir_b=nlay*nel*l_dirb
309 ALLOCATE(dira(nlay*nel*l_dira))
310 ALLOCATE(dirb(nlay*nel*l_dirb))
311 dira=zero
312 dirb=zero
313 IF (l_dira == 0) THEN
314 CONTINUE
315 ELSEIF (irep == 0) THEN
316 DO j=1,nlay
317 j1 = 1+(j-1)*l_dira*nel
318 j2 = j*l_dira*nel
319 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
320 ENDDO
321 ENDIF
322 sdir_a=nlay*nel*l_dira
323 sdir_b=nlay*nel*l_dirb
324 dir_a => dira(1:nlay*nel*l_dira)
325 dir_b => dirb(1:nlay*nel*l_dirb)
326 ENDIF
327
328
329 igtyp = igeo(11,ixtg(5,1))
330 igmat = igeo(98 ,ixtg(5,1))
331
332
333 DO i=jft,jlt
334 mat(i) = ixtg(1,i)
335 pid(i) = ixtg(5,i)
336 a11r(i) = zero
337 ENDDO
338
340 . jft,jlt,mat,pid,ngl,x,v,r,ixtg,gbuf%OFF,
341 . off,r11,r12,r13,r21,r22,r23,r31,r32,r33,
342 . x2l,y2l,x3l,y3l,gbuf%SMSTR,
343 .
area,area2,cdet,vlx,vly,vlz,rlx,rly,
344 . ismstr,irep,nlay,dir_a,dir_b,
345 . f11,f12,f13,f21,f22,f23,f32,f33,
346 . m11,m12,m13,m21,m22,m23,nel)
347 CALL cncoef3(jft ,jlt ,pm ,mat ,geo ,
348 2 pid ,off ,
area ,shf ,thk0 ,
349 3 thk02 ,nu ,g ,ym ,
350 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
351 5 rho ,vol00 ,gs ,mtn ,ithk ,
352 6 npttot ,dt1c ,dt1 ,ihbe ,amu ,
353 7 krz ,igeo ,a11r ,isubstack, stack%PM,
354 8 nel ,zoffset )
355 CALL cdkderic3(jft ,jlt, x2l,y2l,x3l,y3l,area2,alpe,aldt,
356 1 px2,py2,px3,py3,px,py,pxy,pyy,vol0,vol00,
357 2 nu,thk02)
358
359 CALL cdkdefo3(jft,jlt,vlx,vly,px2,py2,px3,py3,exx,eyy,exy,
360 1 exz, eyz,dt1,epsdot,nft,istrain,gbuf%STRA,vdef,nel)
361
362
363
364 lenf = nel*gbuf%G_FORPG/npg
365 lenm = nel*gbuf%G_MOMPG/npg
366 lens = nel*gbuf%G_STRPG/npg
367 it = 1
368 epsd_glob(1:nel) = zero
369
370 DO ng =1,npg
371 ir = ng
372 is = 1
373 ptf = (ng-1)*lenf+1
374 ptm = (ng-1)*lenm+1
375 pts = (ng-1)*lens+1
376
377 CALL cdkderi3(jft ,jlt,px2,py2,px3,py3,px,py,pxy,pyy,
378 1 bz1,bz2,bz3,brx1,brx2,brx3,bry1,bry2,bry3,
379 2 a_hammer(ng,1),a_hammer(ng,2))
380 CALL cdkcurv3(jft,jlt,bz1,bz2,bz3,brx1,brx2,brx3,bry1,
381 1 bry2,bry3,vlz,rlx,rly,kxx, kyy, kxy)
382 CALL cdkstra3(jft,jlt,gbuf%STRA,exx,eyy,exy,kxx, kyy, kxy,
383 1 epsdot,nft,istrain,dt1,gbuf%STRPG(pts),nel)
384
385
386
387 IF (inloc > 0) THEN
388 l_nloc = nloc_dmg%L_NLOC
389 dnl => nloc_dmg%DNL(1:l_nloc)
390 unl => nloc_dmg%UNL(1:l_nloc)
391 eta = a_hammer(ng,1)
392 ksi = a_hammer(ng,2)
393 var_reg(1:nel,1:nddl) = zero
394 DO i = jft,jlt
395 nc1(i) = ixtg(2,i)
396 nc2(i) = ixtg(3,i)
397 nc3(i) = ixtg(4,i)
398 ENDDO
399 DO k = 1,nddl
400#include "vectorize.inc"
401 DO i = jft,jlt
402 inod(1) = nloc_dmg%IDXI(nc1(i))
403 inod(2) = nloc_dmg%IDXI(nc2(i))
404 inod(3) = nloc_dmg%IDXI(nc3(i))
405 ipos(1) = nloc_dmg%POSI(inod(1))
406 ipos(2) = nloc_dmg%POSI(inod(2))
407 ipos(3) = nloc_dmg%POSI(inod(3))
408 var_reg(i,k) = (one-eta-ksi)*dnl(ipos(1)+k-1) +
409 . eta*dnl(ipos(2)+k-1) +
410 . ksi*dnl(ipos(3)+k-1)
411 ENDDO
412 ENDDO
413 ENDIF
414
415
416
417
418
419
420
421 dt1 = dt1c(1)
422 dtinv = dt1 /
max(dt1**2,em20)
423#include "vectorize.inc"
424 do i = 1,nel
425 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
426 . * one_over_9*gbuf%thk(i)**2
427 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
428 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
429 epsd_glob(i) = epsd_glob(i) + epsd_pg(i) / npg
430 end do
431
433 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
434 2 nel ,mtn ,ipla ,ithk ,group_param
435 3 pm ,geo ,npf ,tf ,bufmat ,
436 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
437 5 cdet ,exx ,eyy ,exy ,exz ,
438 6 eyz ,kxx ,kyy ,kxy ,nu ,
439 7 off ,thk0 ,mat ,pid ,mat_elem ,
440 8 gbuf%FORPG(ptf),gbuf%MOMPG(ptm) ,gbuf%STRPG(pts),failwave,fwave_el,
441 9 gbuf%THK ,gbuf%EINT ,iofc ,
442 a g ,a11 ,a12 ,vol0 ,indx ,
443 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
444 c kfts ,ihbe ,alpe ,
445 d dir_a ,dir_b ,igeo ,
446 e ipm ,ifailure ,npg ,fheat ,
447 f tempel ,die ,ibid ,ibid ,bid ,
448 g ibid ,bid ,
449 h bid ,bid ,bid ,bid ,bid ,
450 i bid ,bid ,bid ,r11 ,r12 ,
451 j r13 ,r21 ,r22 ,r23 ,r31 ,
452 k r32 ,r33 ,ng ,table ,ibid ,
453 l bid ,sensors ,ibid ,ibid ,
454 m bid ,bid ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
455 n ismstr ,ir ,is ,nlay ,npt ,
456 o ibid ,ibid ,isubstack ,stack ,
457 p bid ,itask ,drape_sh3n ,var_reg ,nloc_dmg,
458 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
459 q ncycle ,snpc , stf ,
460 s nxlaymax ,idel7nok ,userl_avail ,maxfunc ,npttot,
461 t sbufmat ,sdir_a ,sdir_b, gbuf%FORPG_G(ptf),ssp_eq,
462 x ipart ,lipart1 ,iparttg )
463
464
465
466 IF (ithk > 0) THEN
467 DO i=jft,jlt
468 gbuf%THK(i) = gbuf%THK(i) - two_third*(gbuf%THK(i)-thk0(i))
469 thk0(i) = gbuf%THK(i)
470 ENDDO
471 ENDIF
472
473
474
475
476 CALL cbavisc(jft ,jlt ,vdef ,amu ,off ,
477 2 shf ,nu ,rho ,ssp ,cdet,
478 3 thk0 ,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),iun ,mtn ,
479 4 iparttg ,pmsav ,dt1 ,nel )
480
481
482
483 CALL cdkfint3(jft,jlt,vol0,thk0,gbuf%FORPG(ptf),gbuf%MOMPG(ptm),
484 1 px2,py2,px3,py3,
485 2 bz1,bz2,bz3,
486 3 brx1,brx2,brx3,bry1,bry2,bry3,
487 4 f11,f12,f13,f21,f22,f23,f32,f33,
488 5 m11,m12,m13,m21,m22,m23,
489 6 nel)
490
491
492
493 IF (inloc > 0) THEN
495 1 nloc_dmg, var_reg, thk0, nel,
496 2 gbuf%OFF,
area, nc1, nc2,
497 3 nc3, px2, py2, px3,
498 4 py3, ksi,
499 5 ixtg(1,jft), nddl, itask, ng,
500 6 dt2t, gbuf%THK_I, gbuf%AREA, nft)
501 ENDIF
502
503 ENDDO
504
505
506
507
508
509
510 asrate = one
511 gbuf%epsd(1:nel) = asrate * epsd_glob(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
512
513
514
515
516
517
518 pt1 = 0
519 pt2 = pt1 + lenf
520 pt3 = pt2 + lenf
521 DO i=jft,jlt
522 DO j=1,5
523 gbuf%FOR(kk(j)+i) = third*(gbuf%FORPG(pt1+kk(j)+i)
524 . + gbuf%FORPG(pt2+kk(j)+i)
525 . + gbuf%FORPG(pt3+kk(j)+i))
526 ENDDO
527 ENDDO
528 pt2 = pt1 + lenm
529 pt3 = pt2 + lenm
530 DO i=jft,jlt
531 DO j=1,3
532 gbuf%MOM(kk(j)+i) = third*(gbuf%MOMPG(pt1+kk(j)+i)
533 . + gbuf%MOMPG(pt2+kk(j)+i)
534 . + gbuf%MOMPG(pt3+kk(j)+i))
535 ENDDO
536 ENDDO
537
538
539
540 CALL cdkfcum3(jft,jlt,px2,py2,px3,py3,
541 1 r11,r12,r13,r21,r22,r23,r31,r32,r33,
542 2 f11,f12,f13,f21,f22,f23,f31,f32,f33,
543 3 m11,m12,m13,m21,m22,m23,m31,m32,m33)
544
545
546
547
549 1 jft ,jlt ,off ,dt2t ,amu ,
550 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
551 3 ssp ,viscmx ,rho ,vol00 ,thk0 ,thk02,
552 4 a11 ,aldt ,alpe ,ngl , ismstr,
553 5 iofc ,nnod ,
area ,g ,shf ,
554 6 mstg ,dmeltg ,jsms ,ptg ,igtyp ,
555 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
556 8 pm ,mat(jft),nel ,zoffset ,ssp_eq )
557
558
559
560 imat = mat(1)
561 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1) THEN
562 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
563 . jtur ,tempel ,vol0 ,rho ,
564 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
565 ENDIF
566
567
568 IF (inloc > 0) THEN
569 CALL dtcdk_reg(nloc_dmg,thk0 ,nel ,gbuf%OFF,
570 . aldt ,ixtg(1,jft),nddl ,dt2t )
571 ENDIF
572
573
574
575
576
577 IF(ipri>0)
579 1 jft, jlt, pm, v,
580 2 gbuf%THK, gbuf%EINT, pmsav, iparttg,
581 3 rho, vol00, ixtg, x,
582 4 r, thk02,
area, gresav,
583 5 grth, igrth, off, ibid,
584 6 ibid, ibid, ibid, ibid,
585 7 ibid, gbuf%EINTTH,itask, mat,
586 8 gbuf%VOL, actifxfem, igre, sensors,
587 9 nel, gbuf%G_WPLA,gbuf%WPLA)
588
589 IF (iparit == 0) THEN
590 CALL c3updt3(jft ,jlt ,f ,m ,nvc ,
591 2 gbuf%OFF ,off ,sti ,stir ,stifn ,
592 3 stifr ,ixtg ,glob_therm%NODADT_THERM,
593 4 f11 ,f12 ,f13 ,f21 ,f22 ,f23 ,
594 5 f31 ,f32 ,f33 ,m11 ,m12 ,
595 7 m13 ,m21 ,m22 ,m23 ,m31 ,
596 8 m32 ,m33 ,ibid ,bid ,bid ,
597 9 gbuf%EINT,pm ,
area ,gbuf%THK,
598 a pmsav ,mat ,iparttg ,condn ,conde )
599 ELSE
600 CALL c3updt3p(jft ,jlt ,gbuf%OFF ,off ,sti ,
601 2 stir ,fsky ,fsky,iadtg ,f11,
602 4 f12 ,f13 ,f21 ,f22 ,f23 ,
603 5 f31 ,f32 ,f33 ,m11 ,m12 ,
604 7 m13 ,m21 ,m22 ,m23 ,m31 ,
605 8 m32 ,m33 ,ibid,bid ,bid,
606 8 gbuf%EINT,pm ,
area ,gbuf%THK,
607 b pmsav ,mat ,iparttg,condnsky,
608 c conde,glob_therm%NODADT_THERM)
609 ENDIF
610
611
612
613 IF (ifailwave > 0) THEN
614 crkdir => elbuf_str%BUFLY(1)%CRKDIR
615
617 . nel ,ixtg ,itab ,crkdir ,dir_a ,
618 . l_dira ,x2l ,x3l ,y2l ,y3l )
619 ENDIF
620
621 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
622 IF (ALLOCATED(dira)) DEALLOCATE(dira)
623 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
624
625 RETURN
subroutine c3bilan(jft, jlt, pm, v, thk, eint, partsav, iparttg, rho, vol00, ixtg, x, vr, thk02, area, gresav, grth, igrth, off, ixfem, ilev, iel_crk, iadtg_crk, nft1, iexpan, eintth, itask, mat, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
subroutine c3updt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixtg, nodadt_therm, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, jthe, them, fthe, eint, pm, area, thk, partsav, mat, iparttg, condn, conde)
subroutine c3updt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadtg, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, jthe, them, fthesky, eint, pm, area, thk, partsav, mat, iparttg, condnsky, conde, nodadt_therm)
subroutine cbavisc(jft, jlt, vdef, amu, off, shf, nu, rho, ssp, area, thk, for, mom, npt, mtn, ipartc, evis, dt1, nel)
subroutine cdkcoor3(elbuf_str, jft, jlt, mat, pid, ngl, x, v, r, ixtg, offg, off, r11, r12, r13, r21, r22, r23, r31, r32, r33, xl2, yl2, xl3, yl3, smstr, area, area2, cdet, vlx, vly, vlz, rlx, rly, ismstr, irep, nlay, dir_a, dir_b, f11, f12, f13, f21, f22, f23, f32, f33, m11, m12, m13, m21, m22, m23, nel)
subroutine cdkdefo3(jft, jlt, vlx, vly, px2, py2, px3, py3, exx, eyy, exy, exz, eyz, dt1, epsdot, nft, istrain, gstr, vdef, nel)
subroutine cdkcurv3(jft, jlt, bz1, bz2, bz3, brx1, brx2, brx3, bry1, bry2, bry3, vlz, rlx, rly, kxx, kyy, kxy)
subroutine cdkderic3(jft, jlt, x2, y2, x3, y3, area2, alpe, aldt, px2, py2, px3, py3, px, py, pxy, pyy, vol, volg, nu, thk2)
subroutine cdkderi3(jft, jlt, px2, py2, px3, py3, px, py, pxy, pyy, bz1, bz2, bz3, brx1, brx2, brx3, bry1, bry2, bry3, ksi, eta)
subroutine cdkfcum3(jft, jlt, px2, py2, px3, py3, r11, r12, r13, r21, r22, r23, r31, r32, r33, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33)
subroutine cdkfint3(jft, jlt, vol, thk0, for, mom, px2, py2, px3, py3, bz1, bz2, bz3, brx1, brx2, brx3, bry1, bry2, bry3, f11, f12, f13, f21, f22, f23, f32, f33, m11, m12, m13, m21, m22, m23, nel)
subroutine cdkfint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, px2, py2, px3, py3, ksi, eta, bufnl, imat, nddl, itask, ng, dt2t, thk0, area0, nft)
subroutine cdkstra3(jft, jlt, gstr, exx, eyy, exy, kxx, kyy, kxy, epsdot, nft, istrain, dt1, gstrpg, 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 cncoef3(jft, jlt, pm, mat, geo, pid, off, area, shf, thk0, thk02, nu, g, ym, a11, a12, thk, thke, ssp, rho, volg, gs, mtn, ithk, npt, dt1c, dt1, ihbe, amu, krz, igeo, a11r, isubstack, pm_stack, nel, zoffset)
subroutine cndt3(jft, jlt, off, dt2t, amu, neltst, ityptst, sti, stir, offg, ssp, viscmx, rho, vol0, thk0, thk02, a1, aldt, alpe, ngl, ismstr, iofc, nne, area, g, shf, msc, dmelc, jsms, ptg, igtyp, igmat, a11r, g_dt, dtel, mtn, pm, imat, nel, zoffset, ssp_eq)
subroutine dtcdk_reg(nloc_dmg, thk, nel, off, le, imat, nddl, dt2t)
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine set_failwave_nod3(failwave, fwave_el, ngl, nel, ixtg, itab, crkdir, dir_a, nrot, xl2, xl3, yl2, yl3)
subroutine set_failwave_sh3n(failwave, fwave_el, dadv, nel, ixtg, itab, ngl, offly)