104 2 A ,V ,MS ,W ,FLUX ,
105 3 FLU1 ,VEUL ,FV ,ALE_CONNECT ,IPARG ,
106 4 TF ,NPF ,BUFMAT ,PARTSAV,
107 5 DT2T ,NELTST ,ITYPTST ,STIFN ,FSKY ,
108 6 IADS ,OFFSET ,EANI ,IPARTS ,ICP ,
109 7 F11 ,F21 ,F31 ,F12 ,F22 ,
110 8 F32 ,F13 ,F23 ,F33 ,F14 ,
111 9 F24 ,F34 ,F15 ,F25 ,F35 ,
112 A F16 ,F26 ,F36 ,F17 ,F27 ,
113 B F37 ,F18 ,F28 ,F38 ,NEL ,
114 C FSKYM ,MSNF ,NVC ,IPM ,ITASK ,
115 D QMV ,ISTRAIN ,IMATVIS ,TEMP ,FTHE ,
116 E FTHESKY ,IEXPAN ,GRESAV ,GRTH ,IGRTH ,
117 F MSSA ,DMELS ,TABLE ,IGEO ,XDP ,
119 H D ,TAGPRT_SMS,SENSORS,IOUTPRT ,
120 I NALE ,NLOC_DMG ,MAT_ELEM,H3D_STRAIN,
121 J DT ,OUTPUT,NSVOIS,SZ_BUFVOIS,SNPC,STF,
122 K SBUFMAT ,SVIS,IRESP,MAXFUNC, USERL_AVAIL, GLOB_THERM,
128 USE output_mod,
only : output_
139 USE sdistor_ini_mod,
ONLY : sdistor_ini
142 USE sz_dt1_mod,
only : sz_dt1
146#include "implicit_f.inc"
150#include "mvsiz_p.inc"
154#include "vect01_c.inc"
155#include "com01_c.inc"
156#include "com04_c.inc"
157#include "com06_c.inc"
158#include "scr07_c.inc"
159#include "com08_c.inc"
160#include "scr06_c.inc"
161#include "scr17_c.inc"
162#include "parit_c.inc"
163#include "param_c.inc"
164#include "timeri_c.inc"
165#include "scr18_c.inc"
170 TYPE(timer_) ,
INTENT(INOUT) :: TIMERS
171 INTEGER,
INTENT(IN) :: NSVOIS
172 INTEGER,
INTENT(IN) :: SZ_BUFVOIS
173 INTEGER,
INTENT(IN) :: SNPC
174 INTEGER,
INTENT(IN) :: STF
175 INTEGER,
INTENT(IN) :: SBUFMAT
176 INTEGER ,
INTENT(IN) :: IRESP
177 INTEGER ,
INTENT(IN) :: MAXFUNC
178 INTEGER,
INTENT(IN) :: IMPL_S
179 INTEGER,
INTENT(IN) :: IDYNA
180 INTEGER,
INTENT(IN) :: USERL_AVAIL
181 INTEGER IXS(NIXS,*),IPARG(NPARG,NGROUP), NPF(*),IADS(8,*),
182 . IPARTS(*),IPM(NPROPMI,NUMMAT),ITASK,IMATVIS,GRTH(*),IGRTH(*),
183 . IGEO(NPROPGI,*), TAGPRT_SMS(*)
184 INTEGER NELTST,ITYPTST,OFFSET,NEL ,ICP,
185 . NVC,ISTRAIN,IEXPAN,,NPTS,IOUTPRT,NALE(*),H3D_STRAIN
192 . pm(npropm,nummat), geo(npropg,*), x(*), a(*), v(3,*), ms(*), w(*),
193 . flux(6,*), fskym(*),
194 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
195 . partsav(*),stifn(*), fsky(*),eani(*),msnf(*),
196 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
197 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
198 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
199 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
200 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
201 . f16(mvsiz),f26(mvsiz),f36(mvsiz),
202 . f17(mvsiz),f27(mvsiz),f37(mvsiz),
203 . f18(mvsiz),f28(mvsiz),f38(mvsiz),
204 . temp(*), fthe(*), fthesky(*),
205 . qmv(12,*),gresav(*), mssa(*), dmels(*),
206 . condn(*),condnsky(*),d(*)
208 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
209 TYPE (TTABLE) TABLE(*)
210 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
211 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
213 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
214 TYPE (SENSORS_) ,
INTENT(INOUT) :: SENSORS
215 TYPE(DT_),
INTENT(INOUT) :: DT
216 TYPE(OUTPUT_),
INTENT(INOUT) :: OUTPUT
217 type (glob_therm_) ,
intent(inout) :: glob_therm
221 INTEGER I,J,NF1,IFLAG,ILAY,IPTR,IPTS,IPTT,II(6)
222 INTEGER IBID,IBIDV(1),ITET,IADBUF,IVISC,IP
223 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),INOD(8),
224 . IPOS(8), L_NLOC, INLOC,ICP0
226 . VOLN(MVSIZ), VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
227 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
228 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
229 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
230 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
231 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
232 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
233 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz), jac9(mvsiz),
234 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz),
235 . conde(mvsiz),divde(mvsiz),deltaxi(mvsiz)
238 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz),
239 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
240 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
241 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
242 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
243 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
244 . x0(mvsiz,8),y0(mvsiz,8),z0(mvsiz,8),voldp(mvsiz)
248 . sti(mvsiz),gama(mvsiz,6),
249 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
252 . muvoid(mvsiz),fac_nu,nu_sp,nu0,dn
255 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
256 . NC5(MVSIZ), NC6(MVSIZ), NC7(MVSIZ), NC8(MVSIZ)
258 . off(mvsiz) , rhoo(mvsiz),hh(mvsiz),bid(mvsiz),
259 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
260 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
261 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
262 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
263 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
264 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
265 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
266 . vx5(mvsiz),vx6(mvsiz),vx7(mvsiz),vx8(mvsiz),
267 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
268 . vy5(mvsiz),vy6(mvsiz),vy7(mvsiz),vy8(mvsiz),
269 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
270 . vz5(mvsiz),vz6(mvsiz),vz7(mvsiz),vz8(mvsiz),
271 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
272 . px5(mvsiz),px6(mvsiz),px7(mvsiz),px8(mvsiz),
273 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
274 . py5(mvsiz),py6(mvsiz),py7(mvsiz),py8(mvsiz),
275 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
276 . pz5(mvsiz),pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),
277 . px1h1(mvsiz),px2h1(mvsiz),px3h1(mvsiz),px4h1(mvsiz),
278 . px1h2(mvsiz),px2h2(mvsiz),px3h2(mvsiz),px4h2(mvsiz),
279 . px1h3(mvsiz),px2h3(mvsiz),px3h3(mvsiz),px4h3(mvsiz),
280 . px1h4(mvsiz),px2h4(mvsiz),px3h4(mvsiz),px4h4(mvsiz),
281 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
282 . vdx5(mvsiz),vdx6(mvsiz),vdx7(mvsiz),vdx8(mvsiz),
283 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
284 . vdy5(mvsiz),vdy6(mvsiz),vdy7(mvsiz),vdy8(mvsiz),
285 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
286 . vdz5(mvsiz),vdz6(mvsiz),vdz7(mvsiz),vdz8(mvsiz),
287 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
288 . dxy(mvsiz),dyx(mvsiz),dyz(mvsiz),dzy(mvsiz),
289 . dzx(mvsiz),dxz(mvsiz),
290 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
291 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
292 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
293 . g1x(mvsiz),g2x(mvsiz),g3x(mvsiz),
294 . g1y(mvsiz),g2y(mvsiz),g3y(mvsiz),
295 . g1z(mvsiz),g2z(mvsiz),g3z(mvsiz),
296 . n1x(mvsiz),n2x(mvsiz),n3x(mvsiz),
297 . n1y(mvsiz),n2y(mvsiz),n3y(mvsiz),
298 . n1z(mvsiz),n2z(mvsiz),n3z(mvsiz),
299 . n4x(mvsiz),n5x(mvsiz),n6x(mvsiz),
300 . n4y(mvsiz),n5y(mvsiz),n6y(mvsiz),
301 . n4z(mvsiz),n5z(mvsiz),n6z(mvsiz),
302 . vx0(mvsiz,8),vy0(mvsiz,8),vz0(mvsiz,8),
303 . mfxx(mvsiz),mfxy(mvsiz),mfyx(mvsiz),
304 . mfyy(mvsiz),mfyz(mvsiz),mfzy(mvsiz),
305 . mfzz(mvsiz),mfzx(mvsiz),mfxz(mvsiz),
306 . tempel(mvsiz),them(mvsiz,8),die(mvsiz),
307 . sigy(mvsiz), sigo(nel,6),et(mvsiz), sign(nel,6),
308 . r1_free(mvsiz),r3_dam(mvsiz),offg0(mvsiz),amu(mvsiz),
309 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
310 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
311 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz),
312 . sti_c(mvsiz),ll(mvsiz),l_max(mvsiz),fld(mvsiz),
313 . cns2,rho0_1,nu,c1,caq,fqmax
314 my_real,
dimension(mvsiz) :: fheat
315 my_real ,
DIMENSION(:),
POINTER :: eint
317 TYPE(g_bufel_) ,
POINTER :: GBUF
318 TYPE(L_BUFEL_) ,
POINTER :: LBUF
322 INTEGER IBOLTP,NBPRELD,IMAT,ISM12_11,NN_DEL,PID,ISCTL,ISTAB(MVSIZ)
323 my_real,
DIMENSION(:),
ALLOCATABLE :: VAR_REG
325 my_real,
DIMENSION(:),
POINTER :: BPRELD,DNL
331 GBUF => elbuf_tab(ng)%GBUF
332 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
333 ism12_11 = elbuf_tab(ng)%BUFLY(1)%L_SIGL
336 ALLOCATE(var_reg(nel))
341 sz_ix=numelq+numels+nsvois
342 IF (jcvt==1 .AND. isorth>0) jcvt=2
344 iboltp = iparg(72,ng)
345 nbpreld = gbuf%G_BPRELD
346 bpreld =>gbuf%BPRELD(1:nbpreld*nel)
356 sigo(i,1) = gbuf%SIG(ii(1)+i)
357 sigo(i,2) = gbuf%SIG(ii(2)+i)
358 sigo(i,3) = gbuf%SIG(ii(3)+i)
359 sigo(i,4) = gbuf%SIG(ii(4)+i)
360 sigo(i,5) = gbuf%SIG(ii(5)+i)
361 sigo(i,6) = gbuf%SIG(ii(6)+i)
365 CALL srcoor3(x,ixs(1,nf1),v ,w ,gbuf%GAMA ,gama ,
366 . x1, x2, x3, x4, x5, x6, x7, x8,
367 . y1, y2, y3, y4, y5, y6, y7, y8,
368 . z1, z2, z3, z4, z5, z6, z7, z8,
369 . vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8,
370 . vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8,
371 . vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8,
372 . vd2,vis,gbuf%OFF,off,gbuf%SMSTR,gbuf%RHO,rhoo,
373 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
374 . nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,ngl,mxt,ngeo,
375 . ioutprt, vgxa, vgya, vgza, vga2,
376 . xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8,
377 . yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8,
378 . zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8,
379 . xdp, x0 , y0 , z0 , nel, xgxa, xgya, xgza,
380 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,iparg(1,ng),
387 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
389 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=8
391 IF (icp==1.AND.mtn==1.AND.ismstr==12)
THEN
394 IF (igeo(35,ngeo(1))>0) cns2=cns2-abs(geo(17,ngeo(1)))
398 icp0=mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY
402 IF (idt1sol == 1.AND.(mtn==1.OR.icp0 ==3))
THEN
403 nu_sp=sqrt((one-nu0)/(one+nu0))
404 nu_sp =
min(one,nu_sp/zep9)
405 fac_nu=(one-two*nu0)/(one-nu0)
409 IF ((ismstr >= 10.AND.ismstr <= 12).AND.jlag > 0)
THEN
411 1 tt, 8, x, ixs(1,nf1),
413 3 vy0, vz0, gbuf%SMSTR,d,
414 4 gbuf%OFF, offg0, nel, xdp,
416 IF (ismstr == 11)
THEN
418 1 r11, r12, r13, r21,
419 2 r22, r23, r31, r32,
420 3 r33, x0(1,1), x0(1,2), x0(1,3),
421 4 x0(1,4), x0(1,5), x0(1,6), x0(1,7),
422 5 x0(1,8), y0(1,1), y0(1,2), y0(1,3),
423 6 y0(1,4), y0(1,5), y0(1,6), y0(1,7),
424 7 y0(1,8), z0(1,1), z0(1,2), z0(1,3),
425 8 z0(1,4), z0(1,5), z0(1,6), z0(1,7),
428 1 r11, r12, r13, r21,
430 3 r33, vx0(1,1),vx0(1,2),vx0(1,3),
431 4 vx0(1,4),vx0(1,5),vx0(1,6),vx0(1,7),
432 5 vx0(1,8),vy0(1,1),vy0(1,2),vy0(1,3),
433 6 vy0(1,4),vy0(1,5),vy0(1,6),vy0(1,7),
434 7 vy0(1,8),vz0(1,1),vz0(1,2),vz0(1,3),
435 8 vz0(1,4),vz0(1,5),vz0(1,6),vz0(1,7),
438 . x0(1,1), x0(1,2), x0(1,3), x0(1,4),
439 . x0(1,5), x0(1,6), x0(1,7), x0(1,8),
440 . y0(1,1), y0(1,2), y0(1,3), y0(1,4),
441 . y0(1,5), y0(1,6), y0(1,7), y0(1,8),
442 . z0(1,1), z0(1,2), z0(1,3), z0(1,4),
443 . z0(1,5), z0(1,6), z0(1,7), z0(1,8),
444 . px1, px2, px3, px4,
445 . py1, py2, py3, py4,
446 . pz1, pz2, pz3, pz4,
447 . px1h1, px1h2, px1h3, px1h4,
448 . px2h1, px2h2, px2h3, px2h4,
449 . px3h1, px3h2, px3h3, px3h4,
450 . px4h1, px4h2, px4h3, px4h4,
452 . jac4,jac5,jac6,jac9,jlag)
455 1 off, voln, px1, px2,
456 2 px3, px4, py1, py2,
457 3 py3, py4, pz1, pz2,
458 4 pz3, pz4, gbuf%JAC_I,nel,
462 1 px1, px2, px3, px4,
463 2 py1, py2, py3, py4,
464 3 pz1, pz2, pz3, pz4,
465 4 vx0(1,1),vx0(1,2),vx0(1,3),vx0(1,4),
466 5 vx0(1,5),vx0(1,6),vx0(1,7),vx0(1,8),
467 6 vy0(1,1),vy0(1,2),vy0(1,3),vy0(1,4),
468 7 vy0(1,5),vy0(1,6),vy0(1,7),vy0(1,8),
469 8 vz0(1,1),vz0(1,2),vz0(1,3),vz0(1,4),
470 9 vz0(1,5),vz0(1,6),vz0(1,7),vz0(1,8),
471 a mfxx, mfxy, mfxz, mfyx,
472 b mfyy, mfyz, mfzx, mfzy,
475 IF (ismstr==10.OR.ismstr==12.OR.isorth/=0)
THEN
477 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
478 . g1x, g1y, g1z, g2x, g2y
486 IF(jale+jlag /= 0)
THEN
495 8 xd2, xd3, xd4, xd5,
496 9 xd6, xd7, xd8, yd1,
497 a yd2, yd3, yd4, yd5,
498 b yd6, yd7, yd8, zd1,
499 c zd2, zd3, zd4, zd5,
500 d zd6, zd7, zd8, nel)
513 CALL szderi3(off,voln,ngl,ismstr,
514 . xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8,
515 . yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8,
516 . zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8,
517 . px1, px2, px3, px4,
518 . py1, py2, py3, py4,
519 . pz1, pz2, pz3, pz4,
520 . px1h1, px1h2, px1h3, px1h4,
521 . px2h1, px2h2, px2h3, px2h4,
522 . px3h1, px3h2, px3h3, px3h4,
523 . px4h1, px4h2, px4h3, px4h4,
524 . jac1,jac2,jac3,jac4,jac5,jac6,jac9,
528 IF (idt1sol == 1.OR.(isctl>0.AND.nu0>0.48999))
THEN
530 1 deltax, voln, ixs(1,nf1),x1,
537 ELSEIF(idtmins==2)
THEN
541 1 deltax, voln, ixs(1,nf1),x1,
547 7 z6, z7, z8, iparts,
548 8 tagprt_sms,gbuf%ISMS, nel)
551 1 voln, deltax, x1, x2,
558 8 n3x, n4x, n5x, n6x,
559 9 n1y, n2y, n3y, n4y,
560 a n5y, n6y, n1z, n2z,
561 b n3z, n4z, n5z, n6z,
562 c nel, mtn, jale, jeul)
564 ELSEIF (jeul /= 0)
THEN
566 1 gbuf%VOL,veul, x1, x2,
573 8 px3, px4, py1, py2,
574 9 py3, py4, pz1, pz2,
575 a pz3, pz4, px5, px6,
576 b px7, px8, py5, py6,
577 c py7, py8, pz5, pz6,
578 d pz7, pz8, px1h1, px1h2,
579 e px1h3, px2h1, px2h2, px2h3,
580 f px3h1, px3h2, px3h3, px4h1,
581 g px4h2, px4h3, voln, deltax,
582 h n1x, n2x, n3x, n4x,
583 i n5x, n6x, n1y, n2y,
584 j n3y, n4y, n5y, n6y,
585 k n1z, n2z, n3z, n4z,
586 l n5z, n6z, nel, nft,
591 1 px1, px2, px3, px4,
592 2 py1, py2, py3, py4,
593 3 pz1, pz2, pz3, pz4,
594 4 fac_nu,deltaxi, nel )
596 IF (jale+jeul > 0 .AND. mtn == 11)
THEN
599 2 ixs, ale_connect,dxx, dxy,
600 3 dxz, dyx, dyy, dyz,
603 6 wzz, bufmat, nel, nft,
604 7 ipm, nummat, numels+nsvois)
607 1 px1, px2, px3, px4,
608 2 py1, py2, py3, py4,
609 3 pz1, pz2, pz3, pz4,
610 4 px5, px6, px7, px8,
611 5 py5, py6, py7, py8,
612 6 pz5, pz6, pz7, pz8,
613 7 vx1, vx2, vx3, vx4,
614 8 vx5, vx6, vx7, vx8,
615 9 vy1, vy2, vy3, vy4,
616 a vy5, vy6, vy7, vy8,
617 b vz1, vz2, vz3, vz4,
618 c vz5, vz6, vz7, vz8,
619 d dxx, dxy, dxz, dyx,
620 e dyy, dyz, dzx, dzy,
622 g wxx, wyy, wzz, bid,
624 i nft, ismstr, jeul, jhbe,
630 1 lft, llt, nel, g1x,
631 2 g1y, g1z, g2x, g2y,
632 3 g2z, g3x, g3y, g3z,
634 CALL szordef3(lft,llt,dxx,dyy,dzz,d4,d5,d6,
635 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
637 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
639 1 pm, gbuf%VOL, gbuf%RHO, gbuf%EINT,
640 2 divde, flux(1,nf1),flu1(nf1), voln,
641 3 dvol, ngl, mxt, off,
642 4 ibid, gbuf%TAG22, voldp, lbuf%VOL0DP,
643 5 amu, gbuf%OFF, nel, mtn,
644 6 jale, ismstr, jeul, jlag)
647 CALL srmalla3(gbuf%SIG,s1,s2,s3,s4,s5,s6,
650 1 gbuf%SMSTR,gbuf%OFF, wxx, wyy,
651 2 wzz, r11, r12, r13,
652 3 r21, r22, r23, r31,
653 4 r32, r33, nel, ismstr)
657 IF (ismstr <= 3.OR.(ismstr==4.AND.jlag>0))
THEN
659 1 gbuf%OFF, gbuf%SMSTR,xd1, xd2,
660 2 xd3, xd4, xd5, xd6,
661 3 xd7, xd8, yd1, yd2,
662 4 yd3, yd4, yd5, yd6,
663 5 yd7, yd8, zd1, zd2,
664 6 zd3, zd4, zd5, zd6,
671 tempel(i) = one_over_8 *( temp(nc1(i)) + temp(nc2(i))
672 . + temp(nc3(i)) + temp(nc4(i))
673 . + temp(nc5(i)) + temp(nc6(i))
674 . + temp(nc7(i)) + temp(nc8(i)))
678 deltaxi(1:nel) = deltax(1:nel)
679 IF (fac_nu<one) deltaxi(1:nel) =
max(deltaxi(1:nel),nu_sp*deltax(1:nel))
681 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
692 l_nloc = nloc_dmg%L_NLOC
693 dnl => nloc_dmg%DNL(1:l_nloc)
698 DO j = 1,elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
699 inod(j) = nloc_dmg%IDXI(elbuf_tab(ng)%NLOCS%NL_SOLNOD(j,i))
700 ipos(j) = nloc_dmg%POSI(inod(j))
704 nl_nbnod = elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
705 DO j = 1, elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
706 var_reg(i) = var_reg(i) + dnl(ipos(j))/nl_nbnod
712 IF(iboltp /= 0)
CALL boltst(ip ,bpreld ,lbuf%SIG ,tt ,nel ,
713 . npt ,sensors%NSENSOR,sensors%SENSOR_TAB)
716 CALL mmain(timers, output,
717 1 elbuf_tab, ng, pm, geo,
718 2 ale_connect, ixs, iparg,
719 3 v, tf, npf, bufmat,
720 4 sti, x, dt2t, neltst,
721 5 ityptst, offset, nel, w,
722 6 off, ngeo, mxt, ngl,
723 7 voln, vd2, dvol, deltaxi,
724 8 vis, qvis, cxx, s1,
728 c wyy, wzz, jac1, jac2,
729 d jac3, jac4, jac5, jac6,
730 e vdx, vdy, vdz, muvoid,
731 f ssp_eq, aire, sigy, et,
732 g r1_free, lbuf%PLA, r3_dam, amu,
733 h mfxx, mfxy, mfxz, mfyx,
734 i mfyy, mfyz, mfzx, mfzy,
735 j mfzz, ipm, gama, bid,
736 k dxy, dyx, dyz, dzy,
737 l dzx, dxz, istrain, tempel,
738 m die, iexpan, ilay, mssa,
739 n dmels, iptr, ipts, iptt,
740 o table, bid, bid, bid,
741 p bid, iparg(1,ng), igeo, conde,
742 q itask, nloc_dmg, var_reg, mat_elem,
743 r h3d_strain, jplasol, jsph, sz_bufvois,
744 s snpc, stf, sbufmat, glob_therm,
745 t svis, sz_ix, iresp,
746 * n2d, th_strain, ngroup, tt,
747 . dt1, ntable, numelq, nummat,
748 . numgeo, numnod, numels,
749 . idel7nok, idtmin, maxfunc,
750 . imon_mat, userl_avail, impl_s,
751 . idyna, dt ,fheat ,sensors)
753 IF (istrain == 1)
THEN
756 2 d5, d6, lbuf%STRA,wxx,
757 3 wyy, wzz, off, nel,
760 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
763 CALL sroto3(lft,llt,gbuf%SIG,sign,
764 . g1x, g2x, g3x, g1y, g2y, g3y, g1z, g2z, g3z,nel)
767 sign(i,1) = gbuf%SIG(ii(1)+i)
768 sign(i,2) = gbuf%SIG(ii(2)+i)
769 sign(i,3) = gbuf%SIG(ii(3)+i)
770 sign(i,4) = gbuf%SIG(ii(4)+i)
771 sign(i,5) = gbuf%SIG(ii(5)+i)
772 sign(i,6) = gbuf%SIG(ii(6)+i)
786 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
794 CALL smallb3(gbuf%OFF,off,nel,ismstr)
795 CALL smallgeo3(ngl, gbuf%OFF ,voln ,deltax, gbuf%VOL ,itet,nel,ismstr,dt)
796 IF (ismstr == 12.AND.idtmin(1)==3)
THEN
798 1 gbuf%OFF, offg0, gbuf%SMSTR,x,
799 2 xdp, nc1, nc2, nc3,
800 3 nc4, nc5, nc6, nc7,
802 IF (ism12_11>0 .AND. isorth == 0)
THEN
804 . nc1 ,nc2 ,nc3 ,nc4 ,nc5 ,nc6 ,nc7 ,nc8 ,
805 . gbuf%JAC_I,gbuf%SIG,lbuf%SIGL ,nel )
808 IF (jlag+jale+jeul == 0)
THEN
811 iflag=mod(ncycle,ncpri)
814 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
816 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
818 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
819 . vgxa, vgya, vgza, vga2, voln,iparts,
820 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
821 . gbuf%FILL, xgxa, xgya, xgza,
822 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
823 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
829 IF (jale+jeul > 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
832 1 ms, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
833 2 voln, nc1, nc2, nc3,
834 3 nc4, nc5, nc6, nc7,
835 4 nc8, msnf, nvc, off,
839 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
840 2 voln, iads, off, ixs,
846 IF (imatvis > 2)
THEN
847 ivisc = elbuf_tab(ng)%BUFLY(ilay)%IVISC
851 CALL visc_et(nel ,mat_elem%MAT_PARAM(imat)%VISC,
852 . rho0_1 ,nu ,cxx ,et )
860 . pm, gbuf%RHO, off, vx1,
861 . vx2, vx3, vx4, vx5,
862 . vx6, vx7, vx8, vy1,
863 . vy2, vy3, vy4, vy5,
864 . vy6, vy7, vy8, vz1,
865 . vz2, vz3, vz4, vz5,
866 . vz6, vz7, vz8, f11,
867 . f21, f31, f12, f22,
868 . f32, f13, f23, f33,
869 . f14, f24, f34, f15,
870 . f25, f35, f16, f26,
871 . f36, f17, f27, f37,
872 . f18, f28, f38, px1h1,
873 . px1h2, px1h3, px2h1, px2h2,
874 . px2h3, px3h1, px3h2, px3h3,
875 . px4h1, px4h2, px4h3, voln,
876 . gbuf%HOURG, mtn, dt1 , mxt,
877 . cxx, gbuf%EINT , npropm, nummat,
878 . gbuf%STRHG, jac1, jac5, jac9,
879 . gbuf%VOL, dn , sti , nel )
881 ELSEIF (isorth>0)
THEN
883 iadbuf = ipm(7,mxt(1))
888 1 elbuf_tab(ng), pm, gbuf%RHO, off,
889 2 vx1, vx2, vx3, vx4,
890 3 vx5, vx6, vx7, vx8,
891 4 vy1, vy2, vy3, vy4,
892 5 vy5, vy6, vy7, vy8,
893 6 vz1, vz2, vz3, vz4,
894 7 vz5, vz6, vz7, vz8,
895 8 f11, f21, f31, f12,
896 9 f22, f32, f13, f23,
897 a f33, f14, f24, f34,
898 b f15, f25, f35, f16,
899 c f26, f36, f17, f27,
900 d f37, f18, f28, f38,
901 e px1h1, px1h2, px1h3, px1h4,
902 f px2h1, px2h2, px2h3, px2h4,
903 g px3h1, px3h2, px3h3, px3h4,
904 h px4h1, px4h2, px4h3, px4h4,
905 i voln, mxt, cxx, vis,
906 j vd2, deltax, ngeo, geo,
907 k partsav, iparts, dxx, dyy,
909 m gbuf%HOURG, jac1, jac5, jac9,
910 n gbuf%EINT, gbuf%VOL, sigy, sign,
911 o sigo, icp, lbuf%PLA, imatvis,
913 q bufmat(iadbuf),gbuf%STRHG, lbuf%STRA, istrain,
914 r mtn, ismstr, jlag, iint,
915 s mat_elem%MAT_PARAM(imat) )
919 1 elbuf_tab(ng),pm, gbuf%RHO, off,
920 2 vx1, vx2, vx3, vx4,
921 3 vx5, vx6, vx7, vx8,
922 4 vy1, vy2, vy3, vy4,
923 5 vy5, vy6, vy7, vy8,
924 6 vz1, vz2, vz3, vz4,
925 7 vz5, vz6, vz7, vz8,
926 8 f11, f21, f31, f12,
927 9 f22, f32, f13, f23,
928 a f33, f14, f24, f34,
930 c f26, f36, f17, f27,
931 d f37, f18, f28, f38,
932 e px1h1, px1h2, px1h3, px1h4,
933 f px2h1, px2h2, px2h3, px2h4,
934 g px3h1, px3h2, px3h3, px3h4,
935 h px4h1, px4h2, px4h3, px4h4,
936 i voln, mxt, cxx, vis,
937 j vd2, deltax, ngeo, geo,
938 k partsav, iparts, dxx
940 m gbuf%HOURG, jac1, jac5, jac9,
941 n gbuf%EINT, gbuf%VOL, sigy, sign,
942 o sigo, icp, lbuf%PLA, imatvis,
943 p et, r3_dam, nel, gbuf%STRHG,
944 q istrain, mtn, ismstr, jlag,
948 .
CALL nsvis_sm12(gbuf%OFF ,cns2,cxx ,voln ,dxx ,
949 . dyy ,dzz ,d4 ,d5 ,d6 ,
950 . lbuf%VOL,rho0_1 ,sti ,nel,svis )
953 1 hh, gbuf%RHO,voln, vx1,
954 2 vx2, vx3, vx4, vx5,
955 3 vx6, vx7, vx8, vy1,
956 4 vy2, vy3, vy4, vy5,
957 5 vy6, vy7, vy8, vz1,
958 6 vz2, vz3, vz4, vz5,
959 7 vz6, vz7, vz8, f11,
960 8 f21, f31, f12, f22,
961 9 f32, f13, f23, f33,
962 a f14, f24, f34, f15,
963 b f25, f35, f16, f26,
964 c f36, f17, f27, f37,
965 d f18, f28, f38, nel)
967 IF (jale == 1 .OR. (jeul == 1.AND.integ8 == 0))
THEN
971 1 pm, gbuf%RHO, voln, x1,
978 8 vx2, vx3, vx4, vx5,
979 9 vx6, vx7, vx8, vy1,
980 a vy2, vy3, vy4, vy5,
981 b vy6, vy7, vy8, vz1,
982 c vz2, vz3, vz4, vz5,
983 d vz6, vz7, vz8, f11,
984 e f21, f31, f12, f22,
985 f f32, f13, f23, f33,
986 g f14, f24, f34, f15,
987 h f25, f35, f16, f26,
988 i f36, f17, f27, f37,
989 j f18, f28, f38, px1,
990 k px2, px3, px4, py1,
991 l py2, py3, py4, pz1,
992 m pz2, pz3, pz4, dxx,
993 n dxy, dxz, dyx, dyy,
994 o dyz, dzx, dzy, dzz,
995 p vdx1, vdx2, vdx3, vdx4,
996 q vdx5, vdx6, vdx7, vdx8,
997 r vdy1, vdy2, vdy3, vdy4,
998 s vdy5, vdy6, vdy7, vdy8,
999 t vdz1, vdz2, vdz3, vdz4,
1000 u vdz5, vdz6, vdz7, vdz8,
1001 v vdx, vdy, vdz, deltax,
1002 w vis, mxt, qmv, bufmat,
1003 x iparg(1,ng),ixs, gbuf%TAG22, nc1,
1004 y nc2, nc3, nc4, nc5,
1005 z nc6, nc7, nc8, nale,
1006 1 nel, nft, mtn, ipm)
1007 ELSEIF(jeul == 1 .AND. integ8 == 1)
THEN
1011 1 pm, gbuf%RHO, veul(lveul*nft+44),f11,
1012 2 f21, f31, f12, f22,
1013 3 f32, f13, f23, f33,
1014 4 f14, f24, f34, f15,
1015 5 f25, f35, f16, f26,
1016 6 f36, f17, f27, f37,
1017 7 f18, f28, f38, px1,
1019 9 py2, py3, py4, pz1,
1020 a pz2, pz3, pz4, px5,
1021 b px6, px7, px8, py5,
1022 c py6, py7, py8, pz5,
1023 d pz6, pz7, pz8, dxx,
1024 e dxy, dxz, dyx, dyy,
1025 f dyz, dzx, dzy, dzz,
1026 g vdx, vdy, vdz, mxt,
1027 h qmv, bufmat, vx1, vx2,
1028 i vx3, vx4, vx5, vx6,
1029 j vx7, vx8, vy1, vy2,
1030 k vy3, vy4, vy5, vy6,
1031 l vy7, vy8, vz1, vz2,
1032 m vz3, vz4, vz5, vz6,
1033 n vz7, vz8, iparg(1,ng), nel,
1038 1 f32,f13,f23,f33,f14,
1039 2 f24,f34,f15,f25,f35,
1040 3 f16,f26,f36,f17,f27,
1041 4 f37,f18,f28,f38,gbuf%OFF,
1045 iflag=mod(ncycle,ncpri)
1046 IF(iflag == 0.OR.tt >= output%TH%THIS.OR.mdess /= 0.
1047 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS).
1048 . or.tt >= output%TH%THIS1(1).OR.tt >= output%TH%THIS1(2).
1049 . or.tt >= output%TH%THIS1(3).OR.tt >= output%TH%THIS1(4).OR.tt >= output%TH%THIS1(5).
1050 . or.tt >= output%TH%THIS1(6).OR.tt >= output%TH%THIS1(7).OR.tt >= output%TH%THIS1(8).
1051 . or.tt >= output%TH%THIS1(9).OR.nth /= 0.OR.nanim /= 0.
1052 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(1)).
1053 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(2)).
1054 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(3)).
1055 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(4)).
1056 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(5)).
1057 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(6)).
1058 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(7)).
1060 . or.(
ale%SUB%IALESUB
THEN
1062 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
1064 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
1066 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
1067 . vgxa, vgya, vgza, vga2, voln,iparts,
1068 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
1069 . gbuf%FILL, xgxa, xgya, xgza,
1070 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
1071 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
1076 1 sign, px1, px2, px3,
1077 2 px4, py1, py2, py3,
1078 3 py4, pz1, pz2, pz3,
1079 4 pz4, px5, px6, px7,
1080 5 px8, py5, py6, py7,
1081 6 py8, pz5, pz6, pz7,
1082 7 pz8, f11, f21, f31,
1083 8 f12, f22, f32, f13,
1084 9 f23, f33, f14, f24,
1085 a f34, f15, f25, f35,
1086 b f16, f26, f36, f17,
1087 c f27, f37, f18, f28,
1088 d f38, voln, qvis, n1x,
1089 e n2x, n3x, n4x, n5x,
1090 f n6x, n1y, n2y, n3y,
1091 g n4y, n5y, n6y, n1z,
1092 h n2z, n3z, n4z, n5z,
1094 j nel, nft, jale, jeul,
1102 1 nloc_dmg ,var_reg ,nel ,off ,
1103 2 voln ,elbuf_tab(ng)%NLOCS,gbuf%VOL ,
1104 3 px1 ,px2 ,px3 ,px4 ,
1105 4 py1 ,py2 ,py3 ,py4 ,
1107 6 imat ,itask ,dt2t ,nft )
1114 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
1116 1 pm, imat, voln, nc1,
1117 2 nc2, nc3, nc4, nc5,
1118 3 nc6, nc7, nc8, px1,
1119 4 px2, px3, px4, py1,
1120 5 py2, py3, py4, pz1,
1121 6 pz2, pz3, pz4, dt1,
1122 7 temp, tempel, fheat, them,
1123 8 gbuf%OFF,lbuf%OFF,partsav, iparts,
1124 9 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1127 1 pm, imat, voln, nc1,
1128 2 nc2, nc3, nc4, nc5,
1129 3 nc6, nc7, nc8, px1,
1130 4 px2, px3, px4, py1,
1131 5 py2, py3, py4, pz1,
1132 6 pz2, pz3, pz4, dt1,
1133 7 temp, tempel, die, them,
1134 8 gbuf%OFF,lbuf%OFF,partsav, iparts,
1135 9 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1141 1 r11, r21, r31, r12,
1142 2 r22, r32, r13, r23,
1143 3 r33, f11, f12, f13,
1144 4 f14, f15, f16, f17,
1145 5 f18, f21, f22, f23,
1146 6 f24, f25, f26, f27,
1147 7 f28, f31, f32, f33,
1148 8 f34, f35, f36, f37,
1155 1 nel ,sti_c ,npropm ,nummat ,
1156 2 ismstr ,mxt ,istab ,pm ,
1157 3 gbuf%SIG ,gbuf%RHO ,cxx ,off ,
1158 4 gbuf%OFF ,ll ,voln ,fld ,
1163 . nc1, nc2, nc3, nc4,
1164 . nc5, nc6, nc7, nc8,
1171 . x, xdp, numnod, nel )
1205 . vx1, vx2, vx3, vx4,
1206 . vx5, vx6, vx7, vx8,
1207 . vy1, vy2, vy3, vy4,
1208 . vy5, vy6, vy7, vy8,
1209 . vz1, vz2, vz3, vz4,
1210 . vz5, vz6, vz7, vz8,
1211 . f11, f12, f13, f14,
1212 . f15, f16, f17, f18,
1213 . f21, f22, f23, f24,
1214 . f25, f26, f27, f28,
1215 . f31, f32, f33, f34,
1216 . f35, f36, f37, f38,
1217 . sti, sti_c, fld , cns2,
1218 . ll , istab, fqmax, nel,
1219 . gbuf%EINT_DISTOR, dt1)
1224 1 gbuf%FILL,sti, f11, f21,
1225 2 f31, f12, f22, f32,
1226 3 f13, f23, f33, f14,
1227 4 f24, f34, f15, f25,
1228 5 f35, f16, f26, f36,
1229 6 f17, f27, f37, f18,
1235 1 gbuf%OFF,a, nc1, nc2,
1236 2 nc3, nc4, nc5, nc6,
1237 3 nc7, nc8, stifn, sti,
1238 4 f11, f21, f31, f12,
1239 5 f22, f32, f13, f23,
1240 6 f33, f14, f24, f34,
1241 7 f15, f25, f35, f16,
1242 8 f26, f36, f17, f27,
1243 9 f37, f18, f28, f38,
1244 a nvc, bid, bid, bid,
1245 b bid, bid, bid, bid,
1246 c bid, bid, bid, bid,
1247 d bid, bid, bid, bid,
1248 e bid, bid, bid, bid,
1249 f bid, bid, bid, bid,
1250 g bid, bid, bid, bid,
1251 h them, fthe, condn, conde,
1252 i nel, jthe, isrot, ipartsph,glob_therm%NODADT_THERM)
1255 1 gbuf%OFF,sti, fsky, fsky,
1256 2 iads, f11, f21, f31,
1257 3 f12, f22, f32, f13,
1258 4 f23, f33, f14, f24,
1259 5 f34, f15, f25, f35,
1260 6 f16, f26, f36, f17,
1261 7 f27, f37, f18, f28,
1262 8 f38, nc1, nc2, nc3,
1263 9 nc4, nc5, nc6, nc7,
1264 a nc8, bid, bid, bid,
1265 b bid, bid, bid, bid,
1266 c bid, bid, bid, bid,
1267 d bid, bid, bid, bid,
1268 e bid, bid, bid, bid,
1269 f bid, bid, bid, bid,
1270 g bid, bid, bid, bid,
1271 h them, fthesky, condnsky,conde,
1272 i nel, nft, jthe, isrot,
1273 j ipartsph,glob_therm%NODADT_THERM)
1275 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg)