110
111
112
113 USE timer_mod
114 USE output_mod, only : output_
115 USE mmain_mod
117 USE mat_elem_mod
120 USE sensor_mod
123 USE elbufdef_mod
124 USE sdistor_ini_mod, ONLY : sdistor_ini
125 use glob_therm_mod
126 USE sensor_mod
127 use element_mod , only : nixs
128
129
130
131#include "implicit_f.inc"
132
133
134
135#include "mvsiz_p.inc"
136
137
138
139#include "com01_c.inc"
140#include "com04_c.inc"
141#include "com08_c.inc"
142#include "vect01_c.inc"
143#include "scr06_c.inc"
144#include "parit_c.inc"
145#include "param_c.inc"
146#include "timeri_c.inc"
147#include "scr18_c.inc"
148
149
150
151 TYPE(TIMER_) ,INTENT(INOUT) :: TIMERS
152 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
153 INTEGER, INTENT(IN) :: S_SFEM_NODVAR
154 INTEGER, INTENT(IN) :: SNPC
155 INTEGER, INTENT(IN) :: STF
156 INTEGER, INTENT(IN) :: NSVOIS
157 INTEGER, INTENT(IN) :: SZ_BUFVOIS
158 INTEGER, INTENT(IN) :: SBUFMAT
159 INTEGER, INTENT(INOUT) :: IDEL7NOK
160 INTEGER, INTENT(IN) :: IDTMINS
161 INTEGER ,INTENT(IN) :: IRESP
162 INTEGER ,INTENT(IN) :: MAXFUNC
163 INTEGER ,INTENT(IN) :: IDEL7NG
164 INTEGER, INTENT(IN) :: IMPL_S
165 INTEGER, INTENT(IN) :: IDYNA
166 INTEGER, INTENT(IN) :: USERL_AVAIL
167 INTEGER IXS(NIXS,*), IPARG(,NGROUP), NPF(*),IADS(8,*),
168 . IPARTS(*),IPM(NPROPMI,*),IGEO(NPROPGI,*),,
169 . GRTH(*),IGRTH(*),IOUTPRT
170C
171 INTEGER NELTST,ITYPTST,OFFSET,NEL,NG, ISTRAIN,
172 . IEXPAN,H3D_STRAIN
173
174 double precision
175 . xdp(3,*)
176
178 . dt2t
180 . pm(npropm,*), geo(npropg,*), x(3,*), a(*), v(*), ms(*), w(*), flux(6,*),
181 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
182 . partsav(*),stifn(*), fsky(*),eani(*), fskym(*),
183 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
184 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
185 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
186 . f14(mvsiz),f24(mvsiz),f34(mvsiz),d(*),
187 . temp(*), fthe(*), fthesky(*),gresav(*), mssa(*), dmels(*), voln(mvsiz)
188 my_real msnf(*),sfem_nodvar(s_sfem_nodvar),condn(*),condnsky(*),bufvois(6,*)
189 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
190 TYPE(TTABLE) TABLE(*)
191 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
192 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
193 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
194 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
195 TYPE (SENSORS_) , INTENT(INOUT) :: SENSORS
196 TYPE(DT_), INTENT(INOUT) :: DT
197 type (glob_therm_) ,intent(inout) :: glob_therm
198
199
200
201 INTEGER I,IBID,NF1,IFLAG,IPTR,IPTS,IPTT,ILAY,IMAT
202 INTEGER IBIDON(1),ITET,IP
204 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ)
206 . vd2(mvsiz) , dvol(mvsiz),deltax(mvsiz),
207 . vis(mvsiz) , qvis(mvsiz), cxx(mvsiz) ,
208 . s1(mvsiz) , s2(mvsiz) , s3(mvsiz) ,
209 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
210 . b1(mvsiz) , b2(mvsiz) , b3(mvsiz) ,
211 . b4(mvsiz) , b5(mvsiz) , b6(mvsiz) ,
212 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
213 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
214 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
215 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
216 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz) ,
217 . vdx(mvsiz), vdy(mvsiz), vdz(mvsiz),ssp_eq(mvsiz),
218 . conde(mvsiz),divde(mvsiz)
219
220 DOUBLE PRECISION
221 . X0(MVSIZ,4),Y0(MVSIZ,4),Z0(MVSIZ,4),
222 . XD1(MVSIZ), (MVSIZ), XD3(MVSIZ), (MVSIZ),
223 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
224 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ)
225
226
228 . sti(mvsiz), gama(mvsiz,6),
229 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz),aire(mvsiz)
230
232 . muvoid(mvsiz)
233
234
236 . sigy(mvsiz),et(mvsiz),r3_free(mvsiz)
237
238 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ)
240 . off(mvsiz) , rhoo(mvsiz),offg0(mvsiz) ,
241 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
242 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
243 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
244 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
245 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
246 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
247 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
248 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
249 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
250 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
251 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
252 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
253 . dxy(mvsiz),dyx(mvsiz),
254 . dyz(mvsiz),dzy(mvsiz),
255 . dzx(mvsiz),dxz(mvsiz),
256 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
257 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
258 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz) ,rho_0,
259 . tempel(mvsiz), them(mvsiz,4) , die(mvsiz)
260
262 . vx0(mvsiz,4),vy0(mvsiz,4),vz0(mvsiz,4),
263 . mfxx(mvsiz),mfxy(mvsiz),mfyx(mvsiz),
264 . mfyy(mvsiz),mfyz(mvsiz),mfzy(mvsiz),
265 . mfzz(mvsiz),mfzx(mvsiz),mfxz(mvsiz),bid(mvsiz),amu(mvsiz),
266 . fld(mvsiz),sti_c(mvsiz),ll(mvsiz),mu,fqmax
268 . DIMENSION(:), POINTER :: eint
269 my_real,
dimension(mvsiz) :: fheat
270
271 TYPE(G_BUFEL_) ,POINTER :: GBUF
272 TYPE(L_BUFEL_) ,POINTER :: LBUF
273
274 INTEGER INOD(4),IPOS(4), L_NLOC, INLOC,ISM12_11
275 my_real,
DIMENSION(:),
ALLOCATABLE :: var_reg
276 my_real,
DIMENSION(:),
POINTER :: dnl
277
278
279
280
281 INTEGER IBOLTP,NBPRELD,ISCTL,ISTAB(MVSIZ),PID,SZ_IX
283 . DIMENSION(:), POINTER :: bpreld
284
285
286
287 gbuf => elbuf_tab(ng)%GBUF
288 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
289
290 ism12_11 = elbuf_tab(ng)%BUFLY(1)%L_SIGL
291 ibid = 0
292 ibidon(1) = 0
293
294 tempel(:) = zero
295 fheat(:) = zero
296
297 sz_ix=numelq+numels+nsvois
298 iboltp = iparg(72,ng)
299 inloc = iparg(78,ng)
300 ALLOCATE(var_reg(nel))
301 nbpreld = gbuf%G_BPRELD
302 bpreld =>gbuf%BPRELD(1:nbpreld*nel)
303
304 nf1 = nft+1
305 pid = ixs(10,nf1)
306 igtyp = igeo(11,pid)
307 isctl = igeo(97,pid)
308
310 1 x, ixs(1,nf1),v, w,
311 2 x1, x2, x3, x4,
312 3 y1, y2, y3, y4,
313 4 z1, z2, z3, z4,
314 5 vx1, vx2, vx3, vx4,
315 6 vy1, vy2, vy3, vy4,
316 7 vz1, vz2, vz3, vz4,
317 8 vdx1, vdx2, vdx3, vdx4,
318 9 vdy1, vdy2, vdy3, vdy4,
319 a vdz1, vdz2, vdz3, vdz4,
320 b vdx, vdy, vdz, vd2,
321 c vis, gbuf%OFF, off, gbuf%SMSTR,
322 d gbuf%RHO, rhoo, nc1, nc2,
323 e nc3, nc4, ngl, mxt,
324 f ngeo, f11, f21, f31,
325 g f12, f22, f32, f13,
326 h f23, f33, f14, f24,
327 i f34, xd1, xd2, xd3,
328 j xd4, yd1, yd2, yd3,
329 k yd4, zd1, zd2, zd3,
330 l zd4, xdp, nel, jale,
331 m ismstr, jeul, jlag)
332
333
334
335 IF ((ismstr >= 10.AND.ismstr <= 12).AND.jlag > 0) THEN
337 1 tt, 4, x, ixs(1,nf1),
338 2 x0, y0, z0, vx0,
339 3 vy0, vz0, gbuf%SMSTR,d,
340 4 gbuf%OFF, offg0, nel, xdp,
341 5 mtn, ismstr)
342 IF (ismstr == 11) THEN
344 1 off, voln, ngl, deltax,
345 2 mxt, x0(1,1), x0(1,2), x0(1,3),
346 3 x0(1,4), y0(1,1), y0(1,2), y0(1,3),
347 4 y0(1,4), z0(1,1), z0(1,2), z0(1,3),
348 5 z0(1,4), px1, px2, px3,
349 6 px4, py1, py2, py3,
350 7 py4, pz1, pz2, pz3,
351 8 pz4, rx, ry, rz,
352 9 sx, sy, sz, tx,
353 a ty, tz, pm, voldp,
354 b nel, iformdt)
355 ELSE
356 IF (ismstr == 12.AND.idtmin(1)==3.AND.ism12_11==0) THEN
357
359 1 gbuf%OFF,nc1, nc2, nc3,
360 2 nc4, x, xdp, d,
361 3 e1x, e2x, e3x, e1y,
362 4 e2y, e3y, e1z, e2z,
363 5 e3z, nel, jcvt)
364 END IF
366 1 off, voln, x0(1,1), x0(1,2),
367 2 x0(1,3), x0(1,4), y0(1,1), y0(1,2),
368 3 y0(1,3), y0(1,4), z0(1,1), z0(1,2),
369 4 z0(1,3), z0(1,4), px1, px2,
370 5 px3, px4, py1, py2,
371 6 py3, py4, pz1, pz2,
372 7 pz3, pz4, rx, ry,
373 8 rz, sx, sy, sz,
374 9 tx, ty, tz, gbuf%JAC_I,
375 a nel)
376 END IF
378 1 px1, px2, px3, px4,
379 2 py1, py2, py3, py4,
380 3 pz1, pz2, pz3, pz4,
381 4 vx0(1,1),vx0(1,2),vx0(1,3),vx0(1,4),
382 5 vy0(1,1),vy0(1,2),vy0(1,3),vy0(1,4),
383 6 vz0(1,1),vz0(1,2),vz0(1,3),vz0(1,4),
384 7 mfxx, mfxy, mfxz, mfyx,
385 8 mfyy, mfyz, mfzx, mfzy,
386 9 mfzz, nel)
387 IF (isorth == 0) THEN
388 DO i=lft,llt
389 gama(i,1) = one
390 gama(i,2) = zero
391 gama(i,3) = zero
392 gama(i,4) = zero
393 gama(i,5) = one
394 gama(i,6) = zero
395 ENDDO
396 ELSE
398 1 rx, ry, rz, sx,
399 2 sy, sz, tx, ty,
400 3 tz, e1x, e2x, e3x,
401 4 e1y, e2y, e3y, e1z,
402 5 e2z, e3z, llt)
404 1 rx, ry, rz, sx,
405 2 sy, sz, tx, ty,
406 3 tz, e1x, e2x, e3x,
407 4 e1y, e2y, e3y, e1z,
408 5 e2z, e3z, gbuf%GAMA,gama,
409 6 nel, irep)
410 ENDIF
411 IF (ismstr == 12.AND.ism12_11==0.AND.idtmin(1)==3) THEN
413 . mfyx, mfyy, mfyz,
414 . mfzx, mfzy, mfzz,
415 . e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z,gbuf%OFF)
416 ENDIF
417 ENDIF
418
419 IF(jale+jlag /= 0)THEN
420 IF (ismstr /= 11) THEN
421
423 1 off, voln, ngl, deltax,
424 2 mxt, xd1, xd2, xd3,
425 3 xd4, yd1, yd2, yd3,
426 4 yd4, zd1, zd2, zd3,
427 5 zd4, px1, px2, px3,
428 6 px4, py1, py2, py3,
429 7 py4, pz1, pz2, pz3,
430 8 pz4, rx, ry, rz,
431 9 sx, sy, sz, tx,
432 a ty, tz, gbuf%SMSTR,gbuf%OFF,
433 b nel, pm, voldp, ismstr,
434 c iformdt, jlag)
435
436 IF (isorth == 0) THEN
437 DO i=lft,llt
438 gama(i,1) = one
439 gama(i,2) = zero
440 gama(i,3) = zero
441 gama(i,4) = zero
442 gama(i,5) = one
443 gama(i,6) = zero
444 ENDDO
445 ELSE
447 1 rx, ry, rz, sx,
448 2 sy, sz, tx, ty,
449 3 tz, e1x, e2x, e3x,
450 4 e1y, e2y, e3y, e1z,
451 5 e2z, e3z, llt)
453 1 rx, ry, rz, sx,
454 2 sy, sz, tx, ty,
455 3 tz, e1x, e2x, e3x,
456 4 e1y, e2y, e3y, e1z,
457 5 e2z, e3z, gbuf%GAMA,gama,
458 6 nel, irep)
459 ENDIF
460 END IF
461
462 ELSEIF(jeul/=0)THEN
464 1 gbuf%VOL,veul, x1, x2,
465 2 x3, x4, y1, y2,
466 3 y3, y4, z1, z2,
467 4 z3, z4, px1, px2,
468 5 px3, px4, py1, py2,
469 6 py3, py4, pz1, pz2,
470 7 pz3, pz4, voln, deltax,
471 8 nel, nft)
472 ENDIF
473
475 1 px1, px2, px3, px4,
476 2 py1, py2, py3, py4,
477 3 pz1, pz2, pz3, pz4,
478 4 vx1, vx2, vx3, vx4,
479 5 vy1, vy2, vy3, vy4,
480 6 vz1, vz2, vz3, vz4,
481 7 dxx, dxy, dxz, dyx,
482 8 dyy, dyz, dzx, dzy,
483 9 dzz, d4, d5, d6,
484 a wxx, wyy, wzz, nel,
485 b ismstr)
486 IF (idtmin(1)==3.AND.ismstr == 12.AND.ism12_11==0) THEN
487 CALL sordef12(lft,llt,dxx, dyy, dzz,
488 . d4, d5, d6,
489 . e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z,offg0)
490 ENDIF
491
493 1 pm, flux(1,nf1),ale_connect,ixs,
494 2 ipm, bufmat, nel, nft,
495 3 jale, jeul , nummat, numels+nsvois)
496
497
498
499 IF(jlag > 0.AND.isrot == 3) THEN
500 rho_0 = pm(1,mxt(1))
502 1 sfem_nodvar, nc1, nc2, nc3,
503 2 nc4, mxt, gbuf%OFF, gbuf%RHO,
504 3 rho_0, mfxx, mfxy, mfxz,
505 4 mfyx, mfyy, mfyz, mfzx,
506 5 mfzy, mfzz, gbuf%VOL, voln,
507 6 lbuf%VOL0DP, voldp, gbuf%AMU, dxx,
508 7 dyy, dzz, mat_elem%MAT_PARAM,nel,
509 8 ismstr, s_sfem_nodvar)
510 ENDIF
511 IF(jale > 0 .AND. isrot == 3 .AND. mtn /= 37 .AND. mtn /= 51 .AND.
512 . mtn /= 18 .AND. mtn /= 11) THEN
513 DO i=lft,llt
514 IF(off(i) /= 0) THEN
515 sum=sfem_nodvar(nc1(i))+sfem_nodvar(nc2(i))+sfem_nodvar(nc3(i))+sfem_nodvar(nc4(i))
516 voln(i)=fourth*sum*gbuf%RHO(i)/pm(1,mxt(i))
517 ENDIF
518 ENDDO
519 ENDIF
520
521
522
523 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
525 1 pm, gbuf%VOL, gbuf%RHO, gbuf%EINT,
526 2 divde, flux(1,nf1), flu1(nf1), voln,
527 3 dvol, ngl, mxt, off,
528 4 iparg(64,ng),gbuf%TAG22, voldp, lbuf%VOL0DP,
529 5 amu, gbuf%OFF, nel, mtn,
530 6 jale, ismstr, jeul, jlag)
531
532 IF (ismstr == 12.AND.idtmin(1)==3.AND.ism12_11==0) THEN
534 . e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z,offg0)
535
536
537
538
539 ENDIF
540
541
543 1 gbuf%SIG,s1, s2, s3,
544 2 s4, s5, s6, wxx,
545 3 wyy, wzz, nel, mtn,
546 4 ismstr)
547
548
549
551 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
552 2 wyy, wzz, nel, ismstr,
553 3 jlag)
554
555
556
557
558 IF (ismstr <= 3.OR.(ismstr==4.AND.jlag>0)) THEN
559 CALL s4sav3(gbuf%OFF,gbuf%SMSTR,
560 . xd1, xd2, xd3, xd4, yd1, yd2, yd3, yd4,
561 . zd1, zd2, zd3, zd4,nel)
562 END IF
563
564
565
566 IF (jthe < 0 ) THEN
567 DO i = lft, llt
568 tempel(i) = fourth*( temp(nc1(i)) + temp(nc2(i)) +
569 . temp(nc3(i)) + temp(nc4(i)) )
570 ENDDO
571 ENDIF
572
573
574
575 IF (inloc > 0) THEN
576 l_nloc = nloc_dmg%L_NLOC
577 dnl => nloc_dmg%DNL(1:l_nloc)
578 DO i=lft,llt
579 inod(1) = nloc_dmg%IDXI(nc1(i))
580 inod(2) = nloc_dmg%IDXI(nc2(i))
581 inod(3) = nloc_dmg%IDXI(nc3(i))
582 inod(4) = nloc_dmg%IDXI(nc4(i))
583 ipos(1) = nloc_dmg%POSI(inod(1))
584 ipos(2) = nloc_dmg%POSI(inod(2))
585 ipos(3) = nloc_dmg%POSI(inod(3))
586 ipos(4) = nloc_dmg%POSI(inod(4))
587 var_reg(i) = fourth*(dnl(ipos(1)) + dnl(ipos(2)) + dnl(ipos(3)) + dnl(ipos(4)))
588 ENDDO
589 ENDIF
590
591
592
593
594 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
595
596 ilay = 1
597 iptr = 1
598 ipts = 1
599 iptt = 1
600 ip = 1
601
602 IF(iboltp /= 0) THEN
604 1 bpreld(3*nel+1),b1, b2, b3,
605 2 b4, b5, b6, wxx,
606 3 wyy, wzz, nel, mtn,
607 4 ismstr)
608
610 1 ip, bpreld, lbuf%SIG,tt, nel,
611 2 npt, sensors%NSENSOR,sensors%SENSOR_TAB,
612 3 iparg(67,ng),iparg(68,ng))
613 END IF
614
615 CALL mmain(timers,output,
616 1 elbuf_tab, ng, pm, geo,
617 2 ale_connect, ixs, iparg,
618 3 v, tf, npf, bufmat,
619 4 sti, x, dt2t, neltst,
620 5 ityptst, offset, nel, w,
621 6 off, ngeo, mxt, ngl,
622 7 voln, vd2, dvol, deltax,
623 8 vis, qvis, cxx, s1,
624 9 s2, s3, s4, s5,
625 a s6, dxx, dyy, dzz,
626 b d4, d5, d6, wxx,
627 c wyy, wzz, rx, ry,
628 d rz, sx, sy, sz,
629 e vdx, vdy, vdz, muvoid,
630 f ssp_eq, aire, sigy, et,
631 g bufvois, lbuf%PLA, r3_free, amu,
632 h mfxx, mfxy, mfxz, mfyx,
633 i mfyy, mfyz, mfzx, mfzy,
634 j mfzz, ipm, gama, bid,
635 k bid, bid, bid, bid,
636 l bid, bid, istrain, tempel,
637 m die, iexpan, ilay, mssa,
638 n dmels, iptr, ipts, iptt,
639 o table, bid, bid, bid,
640 p bid, iparg(1,ng), igeo, conde,
641 q itask, nloc_dmg, var_reg, mat_elem,
642 r h3d_strain, jplasol, jsph, sz_bufvois,
643 t snpc, stf, sbufmat, glob_therm,
644 u svis, sz_ix, iresp,
645 v n2d, th_strain, ngroup, tt,
646 . dt1, ntable, numelq, nummat,
647 . numgeo, numnod, numels,
648 . idel7nok, idtmin, maxfunc,
649 . imon_mat, userl_avail, impl_s,
650 . idyna, dt, fheat ,sensors)
651
652 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
653
654 IF (ismstr == 12.AND.idtmin(1)==3) THEN
655 IF (ism12_11==0) THEN
657 . e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,offg0)
658
659
660
661
662 IF (istrain == 1) THEN
663 CALL sordef12(lft,llt,dxx, dxy, dxz,
664 . d4, d5, d6,
665 . e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,offg0)
666 ENDIF
667 END IF
668 ENDIF
669 IF (istrain == 1) THEN
671 1 dxx, dyy, dzz, d4,
672 2 d5, d6, lbuf%STRA,wxx,
673 3 wyy, wzz, off, nel,
674 4 jcvt)
675 ENDIF
676
677
678
679 iflag=mod(ncycle,ncpri)
680 IF(ioutprt>0)THEN
681 IF (mtn == 11) THEN
682 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
683 ELSE
684 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
685 ENDIF
686 CALL s4bilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
687 . vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4,
688 . vz1, vz2, vz3, vz4, voln,iparts,gresav,
689 . grth,igrth,iexpan,gbuf%EINTTH,gbuf%FILL,
690 . x1, x2, x3, x4, y1, y2, y3, y4,
691 . z1, z2, z3, z4,itask,iparg(1,ng),off,sensors,
692 . nel,gbuf%G_WPLA,gbuf%WPLA)
693 ENDIF
694
695 IF(jlag+jale+jeul == 0)RETURN
696 itet = 1
697 bid(lft:llt)=zero
698 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),bid,dt,nel,idel7nok )
699
700
701
702 CALL smallb3(gbuf%OFF,off, nel, ismstr)
703 CALL smallgeo3(ngl, gbuf%OFF ,voln ,deltax, gbuf%VOL ,itet, nel,ismstr,dt)
704 IF (ismstr == 12.AND.idtmin(1)==3) THEN
706 1 gbuf%OFF, offg0, gbuf%SMSTR,xd1,
707 2 xd2, xd3, xd4, yd1,
708 3 yd2, yd3, yd4, zd1,
709 4 zd2, zd3, zd4, nel)
710 IF (ism12_11>0 .AND. isorth == 0) THEN
712 1 gbuf%OFF, offg0, xd1, xd2,
713 2 xd3, xd4, yd1, yd2,
714 3 yd3, yd4, zd1, zd2,
715 4 zd3, zd4, gbuf%JAC_I,gbuf%SIG,
716 5 lbuf%SIGL, nel, jcvt)
717 END IF
718 END IF
719
720
721
722
723 IF (jale+jeul > 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
724 IF(iparit == 0)THEN
726 1 ms, gbuf%RHO,voln, nc1,
727 2 nc2, nc3, nc4, msnf,
728 3 off, nel)
729 ELSE
731 1 fskym, gbuf%RHO,voln, iads,
732 2 off, nel, nft)
733 ENDIF
734 ENDIF
735
736
737
738 IF(jale == 1 .OR. jeul == 1)THEN
739
741 1 pm, gbuf%RHO,voln, x1,
742 2 x2, x3, x4, y1,
743 3 y2, y3, y4, z1,
744 4 z2, z3, z4, vx1,
745 5 vx2, vx3, vx4, vy1,
746 6 vy2, vy3, vy4, vz1,
747 7 vz2, vz3, vz4, f11,
748 8 f21, f31, f12, f22,
749 9 f32, f13, f23, f33,
750 a f14, f24, f34, px1,
751 b px2, px3, px4, py1,
752 c py2, py3, py4, pz1,
753 d pz2, pz3, pz4, dxx,
754 e dxy, dxz, dyx, dyy,
755 f dyz, dzx, dzy, dzz,
756 g vdx1, vdx2, vdx3, vdx4,
757 h vdy1, vdy2, vdy3, vdy4,
758 i vdz1, vdz2, vdz3, vdz4,
759 j vdx, vdy, vdz, deltax,
760 k vis, mxt, rx, ry,
761 l rz, sx, sy, sz,
762 m tx, ty, tz, nel,
763 n mtn)
764 ENDIF
765
767 1 f32,f13,f23,f33,f14,
768 2 f24,f34,bid,bid,bid,
769 3 bid,bid,bid,bid,bid,
770 4 bid,bid,bid,bid,gbuf%OFF,
771 5 lft,llt,nel)
772
773
774
775
777 . px1, px2, px3, px4,
778 . py1, py2, py3, py4,
779 . pz1, pz2, pz3, pz4,
780 . f11,f21,f31,f12,f22,f32,f13,f23,f33,f14,f24,f34,
781 . voln,qvis,nel,svis)
782
783
784
785 IF (jthe < 0 ) THEN
786 imat = mxt(1)
787 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
789 1 pm, imat, voln, nc1,
790 2 nc2, nc3, nc4, px1,
791 3 px2, px3, px4, py1,
792 4 py2, py3, py4, pz1,
793 5 pz2, pz3, pz4, dt1,
794 6 temp, tempel, fheat, them,
795 7 gbuf%OFF,lbuf%OFF,nel,glob_therm%THEACCFACT)
796 ELSE
798 1 pm, imat, voln, nc1,
799 2 nc2, nc3, nc4, px1,
800 3 px2, px3, px4, py1,
801 4 py2, py3, py4, pz1,
802 5 pz2, pz3, pz4, dt1,
803 6 temp, tempel, die, them,
804 7 gbuf%OFF,lbuf%OFF,nel,glob_therm%THEACCFACT)
805 END IF
806
807 ENDIF
808
809
810
811 IF (inloc > 0) THEN
813 1 nloc_dmg,var_reg, nel, lbuf%OFF,
814 2 voln, nc1, nc2, nc3,
815 3 nc4, px1, px2, px3,
816 4 px4, py1, py2, py3,
817 5 py4, pz1, pz2, pz3,
818 6 pz4, mxt(lft),itask, dt2t,
819 7 gbuf%VOL,nft)
820 ENDIF
821
822
823
824 IF (isctl > 0) THEN
825 CALL sdistor_ini(
826 1 nel ,sti_c ,npropm ,nummat ,
827 2 ismstr ,mxt ,istab ,pm ,
828 3 gbuf%SIG ,gbuf%RHO ,cxx ,off ,
829 4 gbuf%OFF ,ll ,voln ,fld ,
830 5 mu ,fqmax )
831 IF (ismstr==1.OR.ismstr>=11) THEN
832#include "vectorize.inc"
833 DO i=1,nel
834 x1(i) =x(1,nc1(i))
835 y1(i) =x(2,nc1(i))
836 z1(i) =x(3,nc1(i))
837 x2(i) =x(1,nc2(i))
838 y2(i) =x(2,nc2(i))
839 z2(i) =x(3,nc2(i))
840 x3(i) =x(1,nc3(i))
841 y3(i) =x(2,nc3(i))
842 z3(i) =x(3,nc3(i))
843 x4(i) =x(1,nc4(i))
844 y4(i) =x(2,nc4(i))
845 z4(i) =x(3,nc4(i))
846 ENDDO
847 ENDIF
849 . x1, x2, x3, x4,
850 . y1, y2, y3, y4,
851 . z1, z2, z3, z4,
852 . vx1, vx2, vx3, vx4,
853 . vy1, vy2, vy3, vy4,
854 . vz1, vz2, vz3, vz4,
855 . f11, f12, f13, f14,
856 . f21, f22, f23, f24,
857 . f31, f32, f33, f34,
858 . sti, fld, sti_c, ll,
859 . mu, fqmax, istab, nel ,
860 . gbuf%EINT_DISTOR,dt1 )
861 ENDIF
862
864 1 gbuf%FILL,sti, f11, f21,
865 2 f31, f12, f22, f32,
866 3 f13, f23, f33, f14,
867 4 f24, f34, nel)
868
869 IF (iparit == 0) THEN
871 1 gbuf%OFF,a, nc1, nc2,
872 2 nc3, nc4, stifn, sti,
873 3 f11, f21, f31, f12,
874 4 f22, f32, f13, f23,
875 5 f33, f14, f24, f34,
876 6 them, fthe, condn, conde,
877 7 nel, jthe, glob_therm%NODADT_THERM)
878 ELSE
880 1 gbuf%OFF,sti, fsky, fsky,
881 2 iads, f11, f21, f31,
882 3 f12, f22, f32, f13,
883 4 f23, f33, f14, f24,
884 5 f34, them, fthesky, condnsky,
885 6 conde, nel, nft, jthe,
886 7 glob_therm%NODADT_THERM)
887 ENDIF
888 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
889 RETURN
subroutine a4mass3(ms, rho, volu, nc1, nc2, nc3, nc4, msnf, off, nel)
subroutine a4mass3p(fskym, rho, volu, iads, off, nel, nft)
subroutine a4momt3(pm, rho, vol, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, vdx1, vdx2, vdx3, vdx4, vdy1, vdy2, vdy3, vdy4, vdz1, vdz2, vdz3, vdz4, vdx, vdy, vdz, deltax, vis, mat, rx, ry, rz, sx, sy, sz, tx, ty, tz, nel, mtn)
subroutine boltst(ip, bpreld, sig, tt, nel, npt, nsensor, sensor_tab, fun_id, sens_id)
subroutine check_off_ale(f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, off, lft, llt, nel)
subroutine e4pxle3(vol, veul, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, det, deltax, nel, nft)
subroutine mmain(pm, elbuf_str, ix, nix, x, geo, iparg, nel, skew, bufmat, ipart, ipartel, nummat, matparam, imat, ipm, ngl, pid, npf, tf, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, rx, ry, rz, sx, sy, sz, gama, voln, dvol, s1, s2, s3, s4, s5, s6, dxx, dyy, dzz, d4, d5, d6, wxx, wyy, wzz)
subroutine s11fx3(pm, flux, ale_connect, ixs, ipm, bufmat, nel, nft, jale, jeul, nummat, s_ixs)
subroutine s4bilan(partsav, eint, rho, rk, vol, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vnew, iparts, gresav, grth, igrth, iexpan, eintth, fill, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, itask, iparg, offg, sensors, nel, g_wpla, wpla)
subroutine s4cumu3(offg, e, nc1, nc2, nc3, nc4, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, them, fthe, condn, conde, nel, jthe, nodadt_therm)
subroutine s4cumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, them, fthesky, condnsky, conde, nel, nft, jthe, nodadt_therm)
subroutine s4derit3(off, det, ngl, deltax, mxt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, rx, ry, rz, sx, sy, sz, tx, ty, tz, pm, voldp, nel, iformdt)
subroutine s4derito3(off, det, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, rx, ry, rz, sx, sy, sz, tx, ty, tz, jac_i, nel)
subroutine s4fillopt(fill, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, nel)
subroutine s4fint3(sig, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, vol, qvis, nel, svis)
subroutine s4fint_reg(nloc_dmg, var_reg, nel, off, vol, nc1, nc2, nc3, nc4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, vol0, nft)
subroutine s4for_distor(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, sti, fld, sti_c, ll, mu, fqmax, istab, nel, e_distor, dt1)
subroutine s4malla3(sav, offg, off, wxx, wyy, wzz, nel, ismstr, jlag)
subroutine s4rcoor12(off, nc1, nc2, nc3, nc4, x, xdp, d, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, jcvt)
subroutine s4defot3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz)
subroutine s4sav12(offg, offg0, sav, xd1, xd2, xd3, xd4, yd1, yd2, yd3, yd4, zd1, zd2, zd3, zd4, nel)
subroutine s4sav3(offg, sav, xd1, xd2, xd3, xd4, yd1, yd2, yd3, yd4, zd1, zd2, zd3, zd4, nel)
subroutine s4therm(pm, imat, vol, nc1, nc2, nc3, nc4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dt1, tempnc, tel, heat, fphi, offg, off, nel, theaccfact)
subroutine s4upd11t12(offg, offg0, xd1, xd2, xd3, xd4, yd1, yd2, yd3, yd4, zd1, zd2, zd3, zd4, jac_1, sig, sigl, nel, jcvt)
subroutine s4voln_m(sfem_nodvar, nc1, nc2, nc3, nc4, mat, offg, rho, rho0, fxx, fxy, fxz, fyx, fyy, fyz, fzx, fzy, fzz, vol0, voln, vol0dp, voldp, amu0, dxx, dyy, dzz, matparam, nel, ismstr, s_sfem_nodvar)
subroutine sgcoor3(time, npe, x, ixs, x0, y0, z0, vx0, vy0, vz0, sav, d, off, off0, nel, xdp, mtn, ismstr)
subroutine sgeodel3(ngl, offg, volg, deltax, volg0, geo, l_max, dt, nel, idel7nok)
subroutine smallb3(offg, off, nel, ismstr)
subroutine smallgeo3(ngl, offg, volg, deltax, volg0, itet, nel, ismstr, dt)
subroutine sordef12(jft, jlt, dxx, dyy, dzz, d4, d5, d6, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, off)
subroutine sordeft12(jft, jlt, mxx, mxy, mxz, myx, myy, myz, mzx, mzy, mzz, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, off)
subroutine sorthdir3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, gama0, gama, nel, irep)
subroutine srota3(sig, s1, s2, s3, s4, s5, s6, wxx, wyy, wzz, nel, mtn, ismstr)
subroutine sroto12_sig(jft, jlt, sig, nel, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, off)
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
subroutine s4coor3(x, xrefs, ixs, ngl, mxt, ngeo, ix1, ix2, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
subroutine s4defo3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz)
subroutine s4deri3(vol, veul, geo, igeo, rx, ry, rz, sx, sy, sz, tx, ty, tz, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, jac_i, deltax, det, ngl, ngeo, mxt, pm, voldp)
subroutine sreploc3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
subroutine startime(event, itask)
subroutine stoptime(event, itask)