105 2 A ,V ,MS ,W ,FLUX ,
106 3 FLU1 ,VEUL ,FV ,ALE_CONNECT ,IPARG ,
107 4 TF ,NPF ,BUFMAT ,PARTSAV,
108 5 DT2T ,NELTST ,ITYPTST ,STIFN ,FSKY ,
109 6 IADS ,OFFSET ,EANI ,IPARTS ,ICP ,
110 7 F11 ,F21 ,F31 ,F12 ,F22 ,
111 8 F32 ,F13 ,F23 ,F33 ,F14 ,
112 9 F24 ,F34 ,F15 ,F25 ,F35 ,
113 A F16 ,F26 ,F36 ,F17 ,F27 ,
114 B F37 ,F18 ,F28 ,F38 ,NEL ,
115 C FSKYM ,MSNF ,NVC ,IPM ,ITASK ,
116 D QMV ,ISTRAIN ,IMATVIS ,TEMP ,FTHE ,
117 E FTHESKY ,IEXPAN ,GRESAV ,GRTH ,IGRTH ,
118 F MSSA ,DMELS ,TABLE ,IGEO ,XDP ,
120 H D ,TAGPRT_SMS,SENSORS,IOUTPRT ,
121 I NALE ,NLOC_DMG ,MAT_ELEM,H3D_STRAIN,
122 J DT ,OUTPUT,NSVOIS,SZ_BUFVOIS,SNPC,STF,
123 K SBUFMAT ,SVIS,IRESP,MAXFUNC, USERL_AVAIL, GLOB_THERM,
129 USE output_mod,
only : output_
139 USE sdistor_ini_mod,
ONLY : sdistor_ini
142 USE sz_dt1_mod,
only : sz_dt1
143 use element_mod ,
only : nixs
147#include "implicit_f.inc"
151#include "mvsiz_p.inc"
155#include "vect01_c.inc"
156#include "com01_c.inc"
157#include "com04_c.inc"
158#include "com06_c.inc"
159#include "scr07_c.inc"
160#include "com08_c.inc"
161#include "scr06_c.inc"
162#include "scr17_c.inc"
163#include "parit_c.inc"
164#include "param_c.inc"
165#include "timeri_c.inc"
166#include "scr18_c.inc"
171 TYPE(timer_) ,
INTENT(INOUT) :: TIMERS
172 INTEGER,
INTENT(IN) :: NSVOIS
173 INTEGER,
INTENT(IN) :: SZ_BUFVOIS
174 INTEGER,
INTENT(IN) :: SNPC
175 INTEGER,
INTENT(IN) :: STF
176 INTEGER,
INTENT(IN) :: SBUFMAT
177 INTEGER ,
INTENT(IN) :: IRESP
178 INTEGER ,
INTENT(IN) :: MAXFUNC
179 INTEGER,
INTENT(IN) :: IMPL_S
180 INTEGER,
INTENT(IN) :: IDYNA
181 INTEGER,
INTENT(IN) :: USERL_AVAIL
182 INTEGER IXS(NIXS,*),IPARG(NPARG,NGROUP), NPF(*),IADS(8,*),
183 . IPARTS(*),IPM(NPROPMI,NUMMAT),ITASK,IMATVIS,GRTH(*),IGRTH(*),
184 . IGEO(NPROPGI,*), TAGPRT_SMS(*)
185 INTEGER NELTST,ITYPTST,OFFSET,NEL ,ICP,
186 . NVC,ISTRAIN,IEXPAN,NG,NPTS,IOUTPRT,NALE(*),H3D_STRAIN
193 . pm(npropm,nummat), geo(npropg,*), x(*), a(*), v(3,*), ms(*), w(*),
194 . flux(6,*), fskym(*),
195 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
196 . partsav(*),stifn(*), fsky(*),eani(*),msnf(*),
198 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
199 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
200 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
201 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
202 . f16(mvsiz),f26(mvsiz),f36(mvsiz),
203 . f17(mvsiz),f27(mvsiz),f37(mvsiz),
204 . f18(mvsiz),f28(mvsiz),f38(mvsiz),
205 . temp(*), fthe(*), fthesky(*),
206 . qmv(12,*),gresav(*), mssa(*), dmels(*),
207 . condn(*),condnsky(*),d(*)
209 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
210 TYPE (TTABLE) TABLE(*)
211 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
212 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
214 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
215 TYPE (SENSORS_) ,
INTENT(INOUT) ::
216 TYPE(DT_),
INTENT(INOUT) :: DT
217 TYPE(OUTPUT_),
INTENT(INOUT) :: OUTPUT
218 type (glob_therm_) ,
intent(inout) :: glob_therm
222 INTEGER I,J,NF1,IFLAG,ILAY,IPTR,IPTS,IPTT,II(6)
223 INTEGER IBID,IBIDV(1),ITET,IADBUF,IVISC,IP
224 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),INOD(8),
225 . IPOS(8), L_NLOC, INLOC,ICP0
227 . VOLN(MVSIZ), VD2(MVSIZ) , DVOL(),DELTAX(MVSIZ),
228 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
229 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
230 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
231 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
232 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
233 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
235 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz),
236 . conde(mvsiz),divde(mvsiz),deltaxi(mvsiz)
239 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz),
240 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
241 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
242 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
243 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
244 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
245 . x0(mvsiz,8),y0(mvsiz,8),z0(mvsiz,8),voldp(mvsiz)
249 . sti(mvsiz),gama(mvsiz,6),
250 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
253 . muvoid(mvsiz),fac_nu,nu_sp,nu0,dn
256 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
257 . NC5(MVSIZ), NC6(MVSIZ), NC7(MVSIZ), NC8(MVSIZ)
259 . off(mvsiz) , rhoo(mvsiz),hh(mvsiz),bid(mvsiz),
260 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
261 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
262 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
263 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
264 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
265 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
266 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
267 . vx5(mvsiz),vx6(mvsiz),vx7(mvsiz),vx8(mvsiz),
268 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
269 . vy5(mvsiz),vy6(mvsiz),vy7(mvsiz),vy8(mvsiz),
270 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
271 . vz5(mvsiz),vz6(mvsiz),vz7(mvsiz),vz8(mvsiz),
272 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
273 . px5(mvsiz),px6(mvsiz),px7(mvsiz),px8(mvsiz),
274 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
275 . py5(mvsiz),py6(mvsiz),py7(mvsiz),py8(mvsiz),
276 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
277 . pz5(mvsiz),pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),
278 . px1h1(mvsiz),px2h1(mvsiz),px3h1(mvsiz),px4h1(mvsiz),
279 . px1h2(mvsiz),px2h2(mvsiz),px3h2(mvsiz),px4h2(mvsiz),
280 . px1h3(mvsiz),px2h3(mvsiz),px3h3(mvsiz),px4h3(mvsiz),
281 . px1h4(mvsiz),px2h4(mvsiz),px3h4(mvsiz),px4h4(mvsiz),
282 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
283 . vdx5(mvsiz),vdx6(mvsiz),vdx7(mvsiz),vdx8(mvsiz),
284 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
285 . vdy5(mvsiz),vdy6(mvsiz),vdy7(mvsiz),vdy8(mvsiz),
286 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
287 . vdz5(mvsiz),vdz6(mvsiz),vdz7(mvsiz),vdz8(mvsiz),
288 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
289 . dxy(mvsiz),dyx(mvsiz),dyz(mvsiz),dzy(mvsiz),
290 . dzx(mvsiz),dxz(mvsiz),
291 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
292 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
293 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
294 . g1x(mvsiz),g2x(mvsiz),g3x(mvsiz),
295 . g1y(mvsiz),g2y(mvsiz),g3y(mvsiz),
296 . g1z(mvsiz),g2z(mvsiz),g3z(mvsiz),
297 . n1x(mvsiz),n2x(mvsiz),n3x(mvsiz),
298 . n1y(mvsiz),n2y(mvsiz),n3y(mvsiz),
299 . n1z(mvsiz),n2z(mvsiz),n3z(mvsiz),
300 . n4x(mvsiz),n5x(mvsiz),n6x(mvsiz),
301 . n4y(mvsiz),n5y(mvsiz),n6y(mvsiz),
302 . n4z(mvsiz),n5z(mvsiz),n6z
303 . vx0(mvsiz,8),vy0(mvsiz,8),vz0
304 . mfxx(mvsiz),mfxy(mvsiz),mfyx(mvsiz),
305 . mfyy(mvsiz),mfyz(mvsiz),mfzy(mvsiz),
306 . mfzz(mvsiz),mfzx(mvsiz),mfxz(mvsiz),
307 . tempel(mvsiz),them(mvsiz,8),die(mvsiz),
308 . sigy(mvsiz), sigo(nel,6),et(mvsiz), sign(nel,6),
309 . r1_free(mvsiz),r3_dam(mvsiz),offg0(mvsiz),amu(mvsiz),
310 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
311 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
312 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz),
313 . sti_c(mvsiz),ll(mvsiz),l_max(mvsiz),fld(mvsiz),
314 . cns2,rho0_1,nu,fqmax
315 my_real,
dimension(mvsiz) :: fheat
316 my_real ,
DIMENSION(:),
POINTER :: eint
318 TYPE(g_bufel_) ,
POINTER :: GBUF
319 TYPE(L_BUFEL_) ,
POINTER :: LBUF
323 INTEGER IBOLTP,NBPRELD,IMAT,ISM12_11,NN_DEL,PID,ISCTL,ISTAB(MVSIZ)
324 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,
429 2 r22, r23, r31, r32,
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, g2z, g3x, g3y, g3z, gbuf%GAMA)
479 CALL sordeft3(lft,llt,mfxx, mfxy, mfxz, mfyx, mfyy, mfyz,
481 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
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,
525 . gbuf%SMSTR,gbuf%OFF,nel,voldp,jlag)
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)
606 CALL sdefo3(output%DATA%FANI_CELL,
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)
695 inod(1) = nloc_dmg%IDXI(nc1(i))
696 inod(2) = nloc_dmg%IDXI(nc2(i))
697 inod(3) = nloc_dmg%IDXI(nc3(i))
698 inod(4) = nloc_dmg%IDXI(nc4(i))
699 inod(5) = nloc_dmg%IDXI(nc5(i))
700 inod(6) = nloc_dmg%IDXI(nc6(i))
701 inod(7) = nloc_dmg%IDXI(nc7(i))
702 inod(8) = nloc_dmg%IDXI(nc8(i))
704 ipos(j) = nloc_dmg%POSI(inod(j))
706 var_reg(i) = dnl(ipos(1)) + dnl(ipos(2)) + dnl(ipos(3)) + dnl(ipos(4))
707 . + dnl(ipos(5)) + dnl(ipos(6)) + dnl(ipos(7)) + dnl(ipos(8))
708 var_reg(i) = var_reg(i)*one_over_8
713 IF(iboltp /= 0)
CALL boltst(ip ,bpreld ,lbuf%SIG ,tt ,nel ,
714 . npt ,sensors%NSENSOR,sensors%SENSOR_TAB,
715 . iparg(67,ng),iparg(68,ng))
718 CALL mmain(timers, output,
719 1 elbuf_tab, ng, pm, geo,
720 2 ale_connect, ixs, iparg,
721 3 v, tf, npf, bufmat,
722 4 sti, x, dt2t, neltst,
723 5 ityptst, offset, nel, w,
724 6 off, ngeo, mxt, ngl,
725 7 voln, vd2, dvol, deltaxi,
726 8 vis, qvis, cxx, s1,
730 c wyy, wzz, jac1, jac2,
731 d jac3, jac4, jac5, jac6,
732 e vdx, vdy, vdz, muvoid,
733 f ssp_eq, aire, sigy, et,
734 g r1_free, lbuf%PLA, r3_dam, amu,
735 h mfxx, mfxy, mfxz, mfyx,
736 i mfyy, mfyz, mfzx, mfzy,
737 j mfzz, ipm, gama, bid,
738 k dxy, dyx, dyz, dzy,
739 l dzx, dxz, istrain, tempel,
740 m die, iexpan, ilay, mssa,
741 n dmels, iptr, ipts, iptt,
742 o table, bid, bid, bid,
743 p bid, iparg(1,ng), igeo, conde,
744 q itask, nloc_dmg, var_reg, mat_elem,
745 r h3d_strain, jplasol, jsph, sz_bufvois,
746 s snpc, stf, sbufmat, glob_therm,
747 t svis, sz_ix, iresp,
748 * n2d, th_strain, ngroup, tt,
749 . dt1, ntable, numelq, nummat,
750 . numgeo, numnod, numels,
751 . idel7nok, idtmin, maxfunc,
752 . imon_mat, userl_avail, impl_s,
753 . idyna, dt ,fheat ,sensors)
755 IF (istrain == 1)
THEN
758 2 d5, d6, lbuf%STRA,wxx,
759 3 wyy, wzz, off, nel,
762 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
765 CALL sroto3(lft,llt,gbuf%SIG,sign,
766 . g1x, g2x, g3x, g1y, g2y, g3y, g1z, g2z, g3z,nel)
769 sign(i,1) = gbuf%SIG(ii(1)+i)
771 sign(i,3) = gbuf%SIG(ii(3)+i)
772 sign(i,4) = gbuf%SIG(ii(4)+i)
773 sign(i,5) = gbuf%SIG(ii(5)+i)
774 sign(i,6) = gbuf%SIG(ii(6)+i)
788 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
796 CALL smallb3(gbuf%OFF,off,nel,ismstr)
797 CALL smallgeo3(ngl, gbuf%OFF ,voln ,deltax, gbuf%VOL ,itet,nel,ismstr,dt)
798 IF (ismstr == 12.AND.idtmin(1)==3)
THEN
800 1 gbuf%OFF, offg0, gbuf%SMSTR,x,
801 2 xdp, nc1, nc2, nc3,
802 3 nc4, nc5, nc6, nc7,
804 IF (ism12_11>0 .AND. isorth == 0)
THEN
806 . nc1 ,nc2 ,nc3 ,nc4 ,nc5 ,nc6 ,nc7 ,nc8 ,
807 . gbuf%JAC_I,gbuf%SIG,lbuf%SIGL ,nel )
810 IF (jlag+jale+jeul == 0)
THEN
813 iflag=mod(ncycle,ncpri)
816 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
818 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
820 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
821 . vgxa, vgya, vgza, vga2, voln,iparts,
822 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
823 . gbuf%FILL, xgxa, xgya, xgza,
824 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
825 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
831 IF (jale+jeul > 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
834 1 ms, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
835 2 voln, nc1, nc2, nc3,
836 3 nc4, nc5, nc6, nc7,
837 4 nc8, msnf, nvc, off,
841 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
842 2 voln, iads, off, ixs,
848 IF (imatvis > 2)
THEN
849 ivisc = elbuf_tab(ng)%BUFLY(ilay)%IVISC
853 CALL visc_et(nel ,mat_elem%MAT_PARAM(imat)%VISC,
854 . rho0_1 ,nu ,cxx ,et )
862 . pm, gbuf%RHO, off, vx1,
863 . vx2, vx3, vx4, vx5,
864 . vx6, vx7, vx8, vy1,
865 . vy2, vy3, vy4, vy5,
866 . vy6, vy7, vy8, vz1,
867 . vz2, vz3, vz4, vz5,
868 . vz6, vz7, vz8, f11,
869 . f21, f31, f12, f22,
870 . f32, f13, f23, f33,
871 . f14, f24, f34, f15,
872 . f25, f35, f16, f26,
873 . f36, f17, f27, f37,
874 . f18, f28, f38, px1h1,
875 . px1h2, px1h3, px2h1, px2h2,
876 . px2h3, px3h1, px3h2, px3h3,
877 . px4h1, px4h2, px4h3, voln,
878 . gbuf%HOURG, mtn, dt1 , mxt,
879 . cxx, gbuf%EINT , npropm, nummat,
880 . gbuf%STRHG, jac1, jac5, jac9,
881 . gbuf%VOL, dn , sti , nel )
883 ELSEIF (isorth>0)
THEN
885 iadbuf = ipm(7,mxt(1))
890 1 elbuf_tab(ng), pm, gbuf%RHO, off,
891 2 vx1, vx2, vx3, vx4,
892 3 vx5, vx6, vx7, vx8,
893 4 vy1, vy2, vy3, vy4,
894 5 vy5, vy6, vy7, vy8,
895 6 vz1, vz2, vz3, vz4,
896 7 vz5, vz6, vz7, vz8,
897 8 f11, f21, f31, f12,
898 9 f22, f32, f13, f23,
899 a f33, f14, f24, f34,
900 b f15, f25, f35, f16,
901 c f26, f36, f17, f27,
902 d f37, f18, f28, f38,
903 e px1h1, px1h2, px1h3, px1h4,
904 f px2h1, px2h2, px2h3, px2h4,
905 g px3h1, px3h2, px3h3, px3h4,
906 h px4h1, px4h2, px4h3, px4h4,
907 i voln, mxt, cxx, vis,
908 j vd2, deltax, ngeo, geo,
909 k partsav, iparts, dxx, dyy,
911 m gbuf%HOURG, jac1, jac5, jac9,
912 n gbuf%EINT, gbuf%VOL, sigy, sign,
913 o sigo, icp, lbuf%PLA, imatvis,
914 p et, r3_dam, nel, gama,
915 q bufmat(iadbuf),gbuf%STRHG, lbuf%STRA, istrain,
916 r mtn, ismstr, jlag, iint,
917 s mat_elem%MAT_PARAM(imat) )
921 1 elbuf_tab(ng),pm, gbuf%RHO, off,
922 2 vx1, vx2, vx3, vx4,
923 3 vx5, vx6, vx7, vx8,
924 4 vy1, vy2, vy3, vy4,
925 5 vy5, vy6, vy7, vy8,
927 7 vz5, vz6, vz7, vz8,
928 8 f11, f21, f31, f12,
930 a f33, f14, f24, f34,
931 b f15, f25, f35, f16,
933 d f37, f18, f28, f38,
934 e px1h1, px1h2, px1h3, px1h4,
935 f px2h1, px2h2, px2h3, px2h4,
936 g px3h1, px3h2, px3h3, px3h4,
937 h px4h1, px4h2, px4h3, px4h4,
938 i voln, mxt, cxx, vis,
939 j vd2, deltax, ngeo, geo,
940 k partsav, iparts, dxx, dyy,
942 m gbuf%HOURG, jac1, jac5, jac9,
943 n gbuf%EINT, gbuf%VOL, sigy, sign,
944 o sigo, icp, lbuf%PLA, imatvis,
945 p et, r3_dam, nel, gbuf%STRHG,
946 q istrain, mtn, ismstr, jlag,
950 .
CALL nsvis_sm12(gbuf%OFF ,cns2,cxx ,voln ,dxx ,
951 . dyy ,dzz ,d4 ,d5 ,d6 ,
952 . lbuf%VOL,rho0_1 ,sti ,nel,svis )
955 1 hh, gbuf%RHO,voln, vx1,
956 2 vx2, vx3, vx4, vx5,
957 3 vx6, vx7, vx8, vy1,
958 4 vy2, vy3, vy4, vy5,
959 5 vy6, vy7, vy8, vz1,
960 6 vz2, vz3, vz4, vz5,
961 7 vz6, vz7, vz8, f11,
962 8 f21, f31, f12, f22,
963 9 f32, f13, f23, f33,
964 a f14, f24, f34, f15,
965 b f25, f35, f16, f26,
966 c f36, f17, f27, f37,
967 d f18, f28, f38, nel)
969 IF (jale == 1 .OR. (jeul == 1.AND.integ8 == 0))
THEN
973 1 pm, gbuf%RHO, voln, x1,
980 8 vx2, vx3, vx4, vx5,
981 9 vx6, vx7, vx8, vy1,
982 a vy2, vy3, vy4, vy5,
983 b vy6, vy7, vy8, vz1,
984 c vz2, vz3, vz4, vz5,
985 d vz6, vz7, vz8, f11,
986 e f21, f31, f12, f22,
987 f f32, f13, f23, f33,
988 g f14, f24, f34, f15,
989 h f25, f35, f16, f26,
990 i f36, f17, f27, f37,
991 j f18, f28, f38, px1,
992 k px2, px3, px4, py1,
993 l py2, py3, py4, pz1,
994 m pz2, pz3, pz4, dxx,
995 n dxy, dxz, dyx, dyy,
996 o dyz, dzx, dzy, dzz,
997 p vdx1, vdx2, vdx3, vdx4,
998 q vdx5, vdx6, vdx7, vdx8,
999 r vdy1, vdy2, vdy3, vdy4,
1000 s vdy5, vdy6, vdy7, vdy8,
1001 t vdz1, vdz2, vdz3, vdz4,
1002 u vdz5, vdz6, vdz7, vdz8,
1003 v vdx, vdy, vdz, deltax,
1004 w vis, mxt, qmv, bufmat,
1005 x iparg(1,ng),ixs, gbuf%TAG22, nc1,
1006 y nc2, nc3, nc4, nc5,
1007 z nc6, nc7, nc8, nale,
1008 1 nel, nft, mtn, ipm)
1009 ELSEIF(jeul == 1 .AND. integ8 == 1)
THEN
1013 1 pm, gbuf%RHO, veul(lveul*nft+44),f11,
1014 2 f21, f31, f12, f22,
1015 3 f32, f13, f23, f33,
1016 4 f14, f24, f34, f15,
1017 5 f25, f35, f16, f26,
1018 6 f36, f17, f27, f37,
1019 7 f18, f28, f38, px1,
1020 8 px2, px3, px4, py1,
1021 9 py2, py3, py4, pz1,
1022 a pz2, pz3, pz4, px5,
1023 b px6, px7, px8, py5,
1024 c py6, py7, py8, pz5,
1025 d pz6, pz7, pz8, dxx,
1026 e dxy, dxz, dyx, dyy,
1027 f dyz, dzx, dzy, dzz,
1028 g vdx, vdy, vdz, mxt,
1029 h qmv, bufmat, vx1, vx2,
1030 i vx3, vx4, vx5, vx6,
1032 k vy3, vy4, vy5, vy6,
1033 l vy7, vy8, vz1, vz2,
1034 m vz3, vz4, vz5, vz6,
1035 n vz7, vz8, iparg(1,ng), nel,
1040 1 f32,f13,f23,f33,f14,
1041 2 f24,f34,f15,f25,f35,
1047 iflag=mod(ncycle,ncpri
1048 IF(iflag == 0.OR.tt >= output%TH%THIS.OR.mdess /= 0.
1049 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS).
1050 . or.tt >= output%TH%THIS1(1).OR.tt >= output%TH%THIS1(2).
1051 . or.tt >= output%TH%THIS1(3).OR.tt >= output%TH%THIS1(4).OR.tt >= output%TH%THIS1(5).
1052 . or.tt >= output%TH%THIS1(6).OR.tt >= output%TH%THIS1(7).OR.tt >= output%TH%THIS1(8).
1053 . or.tt >= output%TH%THIS1(9).OR.nth /= 0.OR.nanim /= 0.
1054 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(1)).
1055 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(2)).
1056 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(3)).
1057 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(4)).
1058 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(5)).
1059 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(6)).
1060 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(7)).
1061 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(8)).
1062 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(9)))
THEN
1064 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
1066 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
1068 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
1069 . vgxa, vgya, vgza, vga2, voln,iparts,
1070 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
1071 . gbuf%FILL, xgxa, xgya, xgza,
1072 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
1073 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
1078 1 sign, px1, px2, px3,
1079 2 px4, py1, py2, py3,
1080 3 py4, pz1, pz2, pz3,
1081 4 pz4, px5, px6, px7,
1082 5 px8, py5, py6, py7,
1083 6 py8, pz5, pz6, pz7,
1084 7 pz8, f11, f21, f31,
1085 8 f12, f22, f32, f13,
1086 9 f23, f33, f14, f24,
1087 a f34, f15, f25, f35,
1088 b f16, f26, f36, f17,
1089 c f27, f37, f18, f28,
1090 d f38, voln, qvis, n1x,
1091 e n2x, n3x, n4x, n5x,
1092 f n6x, n1y, n2y, n3y,
1093 g n4y, n5y, n6y, n1z,
1094 h n2z, n3z, n4z, n5z,
1096 j nel, nft, jale, jeul,
1104 1 nloc_dmg ,var_reg ,nel ,off ,
1105 2 voln ,nc1 ,nc2 ,nc3 ,
1106 3 nc4 ,nc5 ,nc6 ,nc7 ,
1107 4 nc8 ,px1 ,px2 ,px3 ,
1108 5 px4 ,py1 ,py2 ,py3 ,
1109 6 py4 ,pz1 ,pz2 ,pz3 ,
1110 7 pz4 ,imat ,itask ,dt2t ,
1117 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
1118 CALL stherm(mat_elem%MAT_PARAM(imat),
1119 1 voln, nc1, nc2, nc3, nc4,
1120 2 nc5, nc6, nc7, nc8, px1,
1121 3 px2, px3, px4, py1,
1122 4 py2, py3, py4, pz1,
1123 5 pz2, pz3, pz4, dt1,
1124 6 temp, tempel, fheat, them,
1125 7 gbuf%OFF,lbuf%OFF,partsav, iparts,
1126 8 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1129 CALL stherm(mat_elem%MAT_PARAM(imat),
1130 1 voln, nc1, nc2, nc3, nc4,
1131 2 nc5, nc6, nc7, nc8, px1,
1132 3 px2, px3, px4, py1,
1133 4 py2, py3, py4, pz1,
1134 5 pz2, pz3, pz4, dt1,
1135 7 temp, tempel, die, them,
1136 8 gbuf%OFF,lbuf%OFF,partsav, iparts,
1137 9 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1143 1 r11, r21, r31, r12,
1144 2 r22, r32, r13, r23,
1145 3 r33, f11, f12, f13,
1146 4 f14, f15, f16, f17,
1147 5 f18, f21, f22, f23,
1148 6 f24, f25, f26, f27,
1149 7 f28, f31, f32, f33,
1150 8 f34, f35, f36, f37,
1157 1 nel ,sti_c ,npropm ,nummat ,
1158 2 ismstr ,mxt ,istab ,pm ,
1159 3 gbuf%SIG ,gbuf%RHO ,cxx ,off ,
1160 4 gbuf%OFF ,ll ,voln ,fld ,
1165 . nc1, nc2, nc3, nc4,
1166 . nc5, nc6, nc7, nc8,
1173 . x, xdp, numnod, nel )
1207 . vx1, vx2, vx3, vx4,
1208 . vx5, vx6, vx7, vx8,
1209 . vy1, vy2, vy3, vy4,
1210 . vy5, vy6, vy7, vy8,
1211 . vz1, vz2, vz3, vz4,
1212 . vz5, vz6, vz7, vz8,
1213 . f11, f12, f13, f14,
1214 . f15, f16, f17, f18,
1215 . f21, f22, f23, f24,
1216 . f25, f26, f27, f28,
1217 . f31, f32, f33, f34,
1218 . f35, f36, f37, f38,
1219 . sti, sti_c, fld , cns2,
1220 . ll , istab, fqmax, nel,
1221 . gbuf%EINT_DISTOR, dt1)
1226 1 gbuf%FILL,sti, f11, f21,
1227 2 f31, f12, f22, f32,
1228 3 f13, f23, f33, f14,
1229 4 f24, f34, f15, f25,
1230 5 f35, f16, f26, f36,
1231 6 f17, f27, f37, f18,
1237 1 gbuf%OFF,a, nc1, nc2,
1238 2 nc3, nc4, nc5, nc6,
1239 3 nc7, nc8, stifn, sti,
1240 4 f11, f21, f31, f12,
1241 5 f22, f32, f13, f23,
1242 6 f33, f14, f24, f34,
1243 7 f15, f25, f35, f16,
1244 8 f26, f36, f17, f27,
1245 9 f37, f18, f28, f38,
1246 a nvc, bid, bid, bid,
1247 b bid, bid, bid, bid,
1248 c bid, bid, bid, bid,
1249 d bid, bid, bid, bid,
1250 e bid, bid, bid, bid,
1251 f bid, bid, bid, bid,
1252 g bid, bid, bid, bid,
1253 h them, fthe, condn, conde,
1254 i nel, jthe, isrot, ipartsph,glob_therm%NODADT_THERM)
1257 1 gbuf%OFF,sti, fsky, fsky,
1258 2 iads, f11, f21, f31,
1259 3 f12, f22, f32, f13,
1260 4 f23, f33, f14, f24,
1261 5 f34, f15, f25, f35,
1262 6 f16, f26, f36, f17,
1263 7 f27, f37, f18, f28,
1264 8 f38, nc1, nc2, nc3,
1265 9 nc4, nc5, nc6, nc7,
1266 a nc8, bid, bid, bid,
1267 b bid, bid, bid, bid,
1268 c bid, bid, bid, bid,
1269 d bid, bid, bid, bid,
1270 e bid, bid, bid, bid,
1271 f bid, bid, bid, bid,
1272 g bid, bid, bid, bid,
1273 h them, fthesky, condnsky,conde,
1274 i nel, nft, jthe, isrot,
1275 j ipartsph,glob_therm%NODADT_THERM)
1277 IF (
ALLOCATED(var_reg))
DEALLOCATE(var_reg