91
92
93
94 USE timer_mod
97 USE mat_elem_mod
102 USE sensor_mod
103 USE elbufdef_mod
105 use glob_therm_mod
106 use element_mod , only : nixc
107
108
109
110#include "implicit_f.inc"
111
112
113
114#include "mvsiz_p.inc"
115
116
117
118#include "com01_c.inc"
119#include "com04_c.inc"
120#include "com_xfem1.inc"
121#include "scr02_c.inc"
122#include "scr17_c.inc"
123#include "scr18_c.inc"
124#include "param_c.inc"
125#include "parit_c.inc"
126#include "timeri_c.inc"
127#include "comlock.inc"
128
129
130
131 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
132 INTEGER,INTENT(IN) :: USERL_AVAIL
133 INTEGER,INTENT(IN) :: MAXFUNC
134 INTEGER,INTENT(IN) :: SBUFMAT
135 INTEGER,INTENT(IN) :: STF
136 INTEGER,INTENT(IN) :: SNPC
137 INTEGER, INTENT(IN) :: IGRE
138 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
139 . NEL,ISTRAIN,IHBE,ITHK,IOFC,IPLA,NFT,
140 . ISMSTR,KFTS,IFAILURE,IEXPAN,IXEL,NLEVXF,IPRI
141 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),IPARTC(*),
142 . IGEO(NPROPGI,*),IPM(NPROPMI,*),ITASK,JTHE, JSMS,
143 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,INOD_CRK(*),IEL_CRK(*),
144 . IADC_CRK(4,*),ELCUTC(2,*),ISUBSTACK,NODEDGE(2,*),INDX_DRAPE(SCDRAPE)
145
147 . f11(mvsiz), f12(mvsiz), f13(mvsiz), f14(mvsiz),
148 . f21(mvsiz), f22(mvsiz), f23(mvsiz), f24(mvsiz),
149 . f31(mvsiz), f32(mvsiz), f33(mvsiz), f34(mvsiz),
150 . m11(mvsiz), m12(mvsiz), m13(mvsiz), m14(mvsiz),
151 . m21(mvsiz), m22(mvsiz), m23(mvsiz), m24(mvsiz),
152 . m31(mvsiz), m32(mvsiz), m33(mvsiz), m34(mvsiz),
153 . pm(*), x(3,*), f(*), m(*), v(*), vr(*),
154 . geo(npropg,*),tf(*), bufmat(*),partsav(*),stifn(*),stifr(*),
155 . fsky(8,*),d(*),dr(*),tani(6,*),eani(*), thke(*),dt2t,
156 . fzero(3,4,*),temp(*), fthe(*),fthesky(*),gresav(*),
157 . msc(*), dmelc(*),uxint_mean(nlevxf,mvsiz),
158 . uyint_mean(nlevxf,mvsiz),uzint_mean(nlevxf,mvsiz)
159 TYPE(TTABLE) TABLE(*)
160 TYPE (ELBUF_STRUCT_), TARGET ::
161 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
162 TYPE (XFEM_SKY_) , DIMENSION(*) :: CRKSKY
163 TYPE (STACK_PLY) :: STACK
164 TYPE (FAILWAVE_STR_) :: FAILWAVE
165 TYPE (GROUP_PARAM_) ::
166 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
167 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
168 TYPE (NLOCAL_STR_) :: NLOC_DMG
169 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
170 TYPE (DT_), INTENT(IN) :: DT
171 type (glob_therm_) ,intent(inout) :: glob_therm
172
173 INTEGER, DIMENSION(LIPART1, NPART), INTENT(IN) :: IPART
174
175
176
177
178 INTEGER I,IGTYP,ICSEN,IXLAY,NXLAY,,IUN,NPG,NPTT,IBID,
179 . IR,IS,IT,NG,L_DIRA,L_DIRB,J1,J2,ILEV,IGMAT,IPTHK,IREP,
180 . ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
181 INTEGER MAT(MVSIZ),PID(),NDT(MVSIZ),NGL(MVSIZ),(MVSIZ)
182
184 . sti(mvsiz),stir(mvsiz),sigy(mvsiz),rho(mvsiz),
185 . x2(mvsiz),x3(mvsiz),x4(mvsiz),y2(mvsiz),y3(mvsiz),
186 . y4(mvsiz),z2(mvsiz),ssp(mvsiz),viscmx(mvsiz),
187 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
188 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
189 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
190 .
191 . thk02(mvsiz),
192 . x1g(mvsiz),x2g(mvsiz),x3g(mvsiz),x4g(mvsiz),
193 . y1g(mvsiz),y2g(mvsiz),y3g(mvsiz),y4g(mvsiz),
194 . z1g(mvsiz),z2g(mvsiz),z3g(mvsiz),z4g(mvsiz),
195 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
196 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz)
198 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),exz(mvsiz),eyz(mvsiz),
199 . kxx(mvsiz),kyy(mvsiz),kxy(mvsiz),px1(mvsiz),
200 . px2(mvsiz),py1(mvsiz),py2(mvsiz),thk0(mvsiz),
201 . off(mvsiz),nu(mvsiz),shf(mvsiz),
area(mvsiz),
202 . g(mvsiz),ym(mvsiz),a11(mvsiz),a12(mvsiz),
203 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
204 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
205 . dt1c(mvsiz),dt2c(mvsiz),aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),
206 . vhy(mvsiz),
207 . dtcsub(mvsiz),a_i(mvsiz)
209 . h1(mvsiz),h2(mvsiz),h3(mvsiz),vol0(mvsiz),vol00(mvsiz),
210 . h11(mvsiz),h12(mvsiz),h13(mvsiz),h14(mvsiz),
211 . h21(mvsiz),h22(mvsiz),h23(mvsiz),h24(mvsiz),
212 . h31(mvsiz),h32(mvsiz),h33(mvsiz),h34(mvsiz),
213 . b11(mvsiz),b12(mvsiz),b13(mvsiz),b14(mvsiz),
214 . b21(mvsiz),b22(mvsiz),b23(mvsiz),b24(mvsiz),
215 . rx1(mvsiz),rx2(mvsiz),rx3(mvsiz),rx4(mvsiz),
216 . ry1(mvsiz),ry2(mvsiz),ry3(mvsiz),ry4(mvsiz),
217 . zcfac(mvsiz,2),gs(mvsiz),srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),
218 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),
219 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
220 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),a11r(mvsiz),
221 . thke0(mvsiz)
223 . bid,thkr
224
225 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
227 . ALLOCATABLE, DIMENSION(:) :: dira,dirb,dir1_crk,dir2_crk
229 . DIMENSION(:) ,POINTER :: dir_a,dir_b
230 TARGET :: dira,dirb
231
232 my_real,
dimension(mvsiz) :: fheat
233 my_real,
dimension(mvsiz) :: ssp_eq
234
235
236 TYPE(BUF_LAY_) ,POINTER :: BUFLY
237 TYPE(G_BUFEL_) ,POINTER :: GBUF
238 TYPE(L_BUFEL_) ,POINTER :: LBUF
240 . DIMENSION(:) ,POINTER :: offg,thkg,strag,forg,momg,
241 . eintg,epsdg,tempg,eintth,hourgg
242 DOUBLE PRECISION,
243 . DIMENSION(:) ,POINTER :: SMSTRG
245 . DIMENSION(:,:), ALLOCATABLE :: varnl
246 INTEGER NPTTOT
247 INTEGER SDIR_A
248 INTEGER SDIR_B
249
250 ibid = 0
251 iun = 1
252 bid = zero
253 npg = 0
254 ng = 1
255 ir = 1
256 is = 1
257 it = 1
260 npttot = 1
261 ALLOCATE(varnl(nel,1))
262 varnl = zero
263
264 IF (ismstr>=10) ismstr=4
265
266 DO i=jft,jlt
267 mat(i) = ixc(1,i)
268 pid(i) = ixc(6,i)
269 ngl(i) = ixc(7,i)
270 ENDDO
271
272 icsen = igeo(3,pid(1))
273 igtyp = igeo(11,pid(1))
274 igmat = igeo(98,pid(1))
275 irep = iparg(35)
276 actifxfem = iparg(70)
277
278 gbuf => xfem_str%GBUF
279 nxlay = xfem_str%NLAY
280 nlayer = 1
281
282 ALLOCATE(elcrkini(nxlay*nel))
283 ALLOCATE(dir1_crk(nxlay*nel))
284 ALLOCATE(dir2_crk(nxlay*nel))
285 elcrkini = 0
286 dir1_crk = zero
287 dir2_crk = zero
288
289 l_dira = xfem_str%BUFLY(1)%LY_DIRA
290 l_dirb = xfem_str%BUFLY(1)%LY_DIRB
291
292 ALLOCATE (dira(nxlay*nel*l_dira))
293 ALLOCATE (dirb(nxlay*nel*l_dirb))
294 dira=zero
295 dirb=zero
296 sdir_a=nxlay*nel*l_dira
297 sdir_b=nxlay*nel*l_dirb
298 dir_a => dira(1:nxlay*nel*l_dira)
299 dir_b => dirb(1:nxlay*nel*l_dirb)
300
301 DO ixlay=1,nxlay
302 nptt = xfem_str%BUFLY(ixlay)%NPTT
303 IF (l_dira == 0) THEN
304 dira = zero
305 ELSEIF (irep == 0) THEN
306 j1 = 1+(ixlay-1)*l_dira*nel
307 j2 = ixlay*l_dira*nel
308 dira(j1:j2) = xfem_str%BUFLY(ixlay)%DIRA(1:nel*l_dira)
309 ENDIF
310
311 DO i=jft,jlt
312 sigy(i) = ep30
313 zcfac(i,1) = one
314 zcfac(i,2) = one
315 alpe(i) = one
316 tempel(i) = zero
317 ENDDO
318
319 ilev = nxel*(ixlay-1) + ixel
320
321 IF (igtyp == 1 .or. igtyp == 9) THEN
322 DO i=jft,jlt
323 thke0(i) = thke(i)
324 ENDDO
325 ELSEIF (igtyp == 51 .OR. igtyp == 52) THEN
326 ipthk = 1 + nxlay
327 thkr = stack%GEO(ipthk+ixlay,isubstack)
328 DO i=jft,jlt
329 thke0(i) = thke(i) * thkr
330 ENDDO
331 ELSE
332 ipthk = 300
333 DO i=jft,jlt
334 thke0(i) = thke(i) * geo(ipthk+ixlay,pid(i))
335 ENDDO
336 ENDIF
337
338 IF (nxlay > 1) THEN
339 lbuf => xfem_str%BUFLY(ixlay)%LBUF(ir,is,1)
340 bufly => xfem_str%BUFLY(ixlay)
341 offg => lbuf%OFF
342 smstrg => lbuf%SMSTR
343 thkg => lbuf%THK
344 strag => lbuf%STRA
345 forg => lbuf%FOR
346 momg => lbuf%MOM
347 eintg => lbuf%EINT
348 epsdg => lbuf%EPSD
349 tempg => lbuf%TEMP
350 eintth => lbuf%EINTTH
351 hourgg => bufly%HOURG
352 ELSEIF (nxlay == 1) THEN
353 offg => gbuf%OFF
354 smstrg => gbuf%SMSTR
355 thkg => gbuf%THK
356 strag => gbuf%STRA
357 forg => gbuf%FOR
358 momg => gbuf%MOM
359 eintg => gbuf%EINT
360 epsdg => gbuf%EPSD
361 tempg => gbuf%TEMP
362 eintth => gbuf%EINTTH
363 hourgg => gbuf%HOURG
364 ENDIF
365
367 2 pid ,mat ,ilev ,iel_crk,iadc_crk,
368 3 offg ,off ,sigy ,thke0 ,thk0 ,
369 4 dt1c ,vl1 ,vl2 ,vl3 ,vl4 ,
370 5 vrl1 ,vrl2 ,vrl3 ,vrl4 ,x1g ,
371 6 x2g ,x3g ,x4g ,y1g ,y2g ,
372 7 y3g ,y4g ,z1g ,z2g ,z3g ,
373 8 z4g )
374
375 CALL cnvec3(xfem_str,dir_a ,dir_b ,
376 1 jft ,jlt ,irep ,igtyp ,nxlay ,
377 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
378 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
379 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
380 5 e3x ,e3y ,e3z ,nel )
381
382 IF (ismstr /= 3) THEN
384 1 jft, jlt, smstrg, offg,
385 2 sti, stir,
area, px1,
386 3 px2, py1, py2, x2,
387 4 x3, x4, y2, y3,
388 5 y4, z2, x1g, x2g,
389 6 x3g, x4g, y1g, y2g,
390 7 y3g, y4g, z1g, z2g,
391 8 z3g, z4g, e1x, e1y,
392 9 e1z, e2x, e2y, e2z,
393 a e3x, e3y, e3z, vhx,
394 b vhy, a_i, ux1, ux2,
395 c ux3, ux4, uy1, uy2,
396 d uy3, uy4, nel, ismstr)
397 ELSE
398 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir,
399 2 smstrg ,px1 ,px2 ,py1 ,py2 ,
400 3 ixc ,
area ,x2 ,x3 ,x4 ,
401 4 y2 ,y3 ,y4 ,z2 ,thk0,
402 5 mat ,nel )
403 ENDIF
404
405 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
406 2 pid ,off ,
area ,sti ,stir ,
407 3 shf ,thk0 ,thk02 ,nu ,
408 4 g ,ym ,a11 ,a12 ,thkg ,
409 5 ssp ,rho ,h1 ,h2 ,h3 ,
410 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
411 7 ithk ,ismstr ,nptt ,kfts ,
412 8 srh1 ,srh2 ,srh3 ,igeo ,
413 9 a11r ,isubstack ,stack%PM)
414
415 IF ((nodadt == 0 .AND. ismstr /= 3 .AND. idt1sh == 0) .OR.
416 . idtmin(3) /= 0 .OR. igtyp == 16)
417
419 . x2 ,x3 ,x4 ,y2 ,y3 ,
420 . y4 ,aldt ,mat ,geo ,pid ,
421 . ihbe )
422 CALL cdefo3(jft,jlt,vl1,vl2,vl3,vl4,dt1c,px1,px2,py1,py2,
area,
423 2 exx,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2 ,y3,
424 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
425 4 vz1,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
426 5 e3x,e3y,e3z,ihbe)
427 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1,
428 1 px2 ,py1 ,py2 ,
area,
429 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
430 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
431 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
432 5 bid ,ismstr )
434 2 exx ,eyy ,exy ,exz ,eyz ,
435 3 kxx ,kyy ,kxy ,dt1c ,tani,
436 4 forg ,momg ,ismstr ,mtn ,
437 6 ihbe ,nft ,istrain ,ux1 ,ux2 ,
438 7 ux3 ,ux4 ,uy1 ,uy2 ,uy3 ,
439 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
440 9 bid ,bid ,bid ,nel )
441
442 DO i = jlt,jft
443 tempel(i) = zero
444 ENDDO
445
446 IF (jthe > 0)
CALL tempcg(numnod, nel ,ixc ,temp ,tempel)
447
448 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
449
451 1 xfem_str ,jft ,jlt ,nft ,iparg ,
452 2 nel ,mtn ,ipla ,ithk ,group_param,
453 3 pm ,geo ,npf ,tf ,bufmat ,
454 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
455 5
area ,exx ,eyy ,exy ,exz ,
456 6 eyz ,kxx ,kyy ,kxy ,nu ,
457 7 off ,thk0 ,mat ,pid ,mat_elem ,
458 8 forg ,momg ,strag ,failwave ,fwave ,
459 9 thkg ,eintg ,iofc ,
460 a g ,a11 ,a12 ,vol0 ,indxof ,
461 b ngl ,zcfac ,shf ,gs ,epsdg ,
462 c kfts ,ihbe ,alpe ,
463 d dir_a ,dir_b ,igeo ,
464 e ipm ,ifailure ,npg ,fheat ,
465 f tempel ,die ,jthe ,iexpan ,tempg ,
466 g ibid ,bid ,
467 h bid ,bid ,bid ,bid ,bid ,
468 i bid ,bid ,bid ,e1x ,e1y ,
469 j e1z ,e2x ,e2y ,e2z ,e3x ,
470 k e3y ,e3z ,ibid ,table ,ixfem ,
471 l bid ,sensors ,bid ,elcrkini ,
472 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
473 n ismstr ,ir ,is ,nlayer ,nptt ,
474 o ixlay ,ixel ,isubstack ,stack ,
475 p bid ,itask ,drape_sh4n ,varnl ,nloc_dmg ,
476 r indx_drape ,thke, sedrape ,numel_drape,dt ,
477 q ncycle ,snpc , stf,nxlaymax ,
478 s idel7nok ,userl_avail ,maxfunc ,npttot ,sbufmat,
479 t sdir_a ,sdir_b ,gbuf%FOR_G,ssp_eq,
480 x ipart ,lipart1 ,ipartc )
481
482 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
483
484
485
486 DO i=jft,jlt
487 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
488 ENDDO
489 IF (nodadt /= 0 .AND. mtn ==58 )
490 .
CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt ,1 )
491
492 IF (nptt == 1) THEN
493 CALL mhvis3(jft ,jlt ,pm ,thkg ,hourgg ,
494 2 off ,px1 ,px2 ,py1 ,py2 ,
495 3 ixc ,dt1c ,ssp ,rho ,sti ,
496 4 eani ,geo ,pid ,stir ,mat ,
497 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
498 6 ihbe ,nft ,ismstr ,rx1 ,
499 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
500 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
501 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
502 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
503 b b12 ,b13 ,b14 ,b21 ,b22 ,
504 c b23 ,b24 ,
area ,ym ,nu ,
505 d vhx ,vhy ,h11 ,h12 ,h13 ,
506 e h14 ,h21 ,h22 ,h23 ,h24 ,
507 f h31 ,h32 ,h33 ,h34 ,h1 ,
508 g h2 ,igeo ,nel ,mtn ,a11 )
509 ELSEIF (ihbe == 2) THEN
511 1 jft ,jlt ,thkg ,hourgg ,off ,px1 ,
512 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c ,
513 3 ssp ,rho ,sti ,z2 ,eani ,stir ,
514 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
515 5 h1 ,h2 ,h3 ,ym ,nu ,alpe ,
516 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1,
517 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area ,
518 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
519 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
520 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
521 b ipartc,partsav,
522 c ihbe ,nft ,ismstr ,srh3, igtyp ,
523 d igmat ,a11r, nel)
524 ELSE
526 2 jft ,jlt ,thkg,hourgg,off,px1 ,px2 ,py1 ,py2 ,
527 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
528 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area,thk0,vhx ,
529 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
530 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
531 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
532 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
533 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
534 a ipartc,partsav,
535 b ihbe ,nft ,ismstr,kfts ,
536 c srh1, srh2, srh3 , igtyp ,
537 d igmat ,a11r ,nel)
538 ENDIF
539
540
541
542
543 IF (ipri>0) THEN
545 1 jft, jlt, pm, v,
546 2 ixc, thkg, eintg, partsav,
547 3
area, mat, ipartc, x,
548 4 vr, vol0, vol00, thk0,
549 5 thk02, iun, off, nft,
550 6 gresav, grth, igrth, vl1,
551 7 vl2, vl3, vl4, vrl1,
552 8 vrl2, vrl3, vrl4, x1g,
553 9 x2g, x3g, x4g, y1g,
554 a y2g, y3g, y4g, z1g,
555 b z2g, z3g, z4g, ixfem,
556 c iexpan, eintth, itask, gbuf%VOL,
557 d actifxfem,igre,sensors,nel,gbuf%G_WPLA,
558 e gbuf%WPLA )
559 ENDIF
560
561
562
563 IF (ismstr /= 3 .AND.(nodadt == 0 .OR. idtmin(3) /= 0)) THEN
564 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
565 2 neltst ,ityptst,sti ,stir ,offg ,
566 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
567 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
568 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
569 6 indxof ,ngl ,ismstr ,iofc ,msc ,
570 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
571 ENDIF
572
573
574
575 CALL cfint3(jft ,jlt ,forg ,momg ,thk0 ,thk02 ,
576 2 px1 ,px2 ,py1 ,py2 ,
area ,z2 ,
577 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
578 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
579 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
580 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
581 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
582 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
583 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
584 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
585 b e3x ,e3y ,e3z ,ihbe ,nptt ,fzero )
586
587
588
589 IF (jthe /= 0) THEN
590 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1) THEN
591 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
592 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c
593 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
594 ELSE
595 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
596 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
597 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
598 END IF
599 ENDIF
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614 IF (icsen > 0)
615 .
CALL csens3(jft ,jlt ,pid ,igeo ,epsdg)
616
617
618
619 IF (iparit == 1)
621 . jft ,jlt ,nft ,ixc ,off ,iadc ,
622 . f11 ,f21 ,f31 ,f12 ,f22 ,f32 ,
623 . f13 ,f23 ,f33 ,f14 ,f24 ,f34 ,
624 . m11 ,m21 ,m31 ,m12 ,m22 ,m32 ,
625 . m13 ,m23 ,m33 ,m14 ,m24 ,m34 ,
626 . sti ,stir ,fsky ,elcutc,iadc_crk,iel_crk,
627 . ilev ,inod_crk,offg,eintg,partsav,ipartc,
628 . ixlay,crksky)
629
630 ENDDO
631
632 IF (ALLOCATED(dira)) DEALLOCATE(dira)
633 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
634 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
635 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
636 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
637 IF (ALLOCATED(varnl)) DEALLOCATE(varnl)
638
639 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 ccoor3_crk(jft, jlt, nft, ixc, ngl, pid, mat, ilev, iel_crk, iadc_crk, offg, off, sigy, thke, thk0, dt1c, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, 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 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 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 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 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 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 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 cupdt3_crk(jft, jlt, nft, ixc, off, iadc, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, m11, m21, m31, m12, m22, m32, m13, m23, m33, m14, m24, m34, sti, stir, fsky, elcutc, iadc_crk, iel_crk, ilev, inod_crk, offg, eint, partsav, ipartc, ilay, crksky)