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