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