125
126
127
128 USE timer_mod
129 USE output_mod, only : output_
130 USE mmain_mod
132 USE mat_elem_mod
135 USE sensor_mod
138 USE elbufdef_mod
139 USE sdistor_ini_mod, ONLY : sdistor_ini
140 use glob_therm_mod
141 USE sensor_mod
142 USE sz_dt1_mod, only : sz_dt1
143 use element_mod , only : nixs
144
145
146
147#include "implicit_f.inc"
148
149
150
151#include "mvsiz_p.inc"
152
153
154
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"
167#include "sms_c.inc"
168
169
170
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
187
188 DOUBLE PRECISION
189 . XDP(3,*)
191 . dt2t
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(*),
197 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
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(*)
208
209 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
210 TYPE (TTABLE) TABLE(*)
211 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) ::
212 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
213 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
214 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
215 TYPE (SENSORS_) , INTENT(INOUT) :: SENSORS
216 TYPE(DT_), INTENT(INOUT) :: DT
217 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
218 type (glob_therm_) ,intent(inout) :: glob_therm
219
220
221
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(mvsiz),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),
234 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz), jac9(mvsiz),
235 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz),
236 . conde(mvsiz),divde(mvsiz),deltaxi(mvsiz)
237
238 DOUBLE PRECISION
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)
246
247
249 . sti(mvsiz),gama(mvsiz,6),
250 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
251
253 . muvoid(mvsiz),fac_nu,nu_sp,nu0,dn
254
255
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(mvsiz),
303 . vx0(mvsiz,8),vy0(mvsiz,8),vz0(mvsiz,8),
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
317
318 TYPE(G_BUFEL_) ,POINTER :: GBUF
319 TYPE(L_BUFEL_) ,POINTER :: LBUF
320
321
322
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
327 INTEGER SZ_IX
328
329
330
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
334 npts = iparg(6,ng)
335 inloc = iparg(78,ng)
336 ALLOCATE(var_reg(nel))
337 tempel(:) = zero
338 fheat(:) = zero
339 ibid = 0
340 ibidv = 0
341 sz_ix=numelq+numels+nsvois
342 IF (jcvt==1 .AND. isorth>0) jcvt=2
343
344 iboltp = iparg(72,ng)
345 nbpreld = gbuf%G_BPRELD
346 bpreld =>gbuf%BPRELD(1:nbpreld*nel)
347
348 DO i=1,6
349 ii(i) = nel*(i-1)
350 ENDDO
351
352 nf1=nft+1
353
354 DO i=1,nel
355 sigy(i) = ep20
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)
362 ENDDO
363
364
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),
381 . gbuf%GAMA_R)
382
383 nn_del = 0
384 pid = ngeo(1)
385 imat = mxt(1)
386
387 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
388 . nn_del=8
389 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=8
390 cns2 = zero
391 IF (icp==1.AND.mtn==1.AND.ismstr==12) THEN
392 rho0_1 =pm( 1,imat)
393 cns2 = zep02
394 IF (igeo(35,ngeo(1))>0) cns2=cns2-abs(geo(17,ngeo(1)))
395 END IF
396
397 imat = mxt(1)
398 icp0=mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY
399 fac_nu = one
400 nu0 = pm(21,imat)
401 nu_sp = one
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)
406 END IF
407 isctl = igeo(97,pid)
408
409 IF ((ismstr >= 10.AND.ismstr <= 12).AND.jlag > 0) THEN
411 1 tt, 8, x, ixs(1,nf1),
412 2 x0, y0, z0, vx0,
413 3 vy0, vz0, gbuf%SMSTR,d,
414 4 gbuf%OFF, offg0, nel, xdp,
415 5 mtn, ismstr)
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),
426 9 z0(1,8), nel)
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),
436 9 vz0(1,8),nel)
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,
451 . jac1,jac2,jac3,
452 . jac4,jac5,jac6,jac9,jlag)
453 ELSE
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,
459 5 jlag)
460 END IF
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,
473 c mfzz, nel)
474
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,
480 . mfzx, mfzy, mfzz,
481 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
482 ENDIF
483 ENDIF
484
485
486 IF(jale+jlag /= 0)THEN
488 1 geo, ngeo, x1, x2,
489 2 x3, x4, x5, x6,
490 3 x7, x8, y1, y2,
491 4 y3, y4, y5, y6,
492 5 y7, y8, z1, z2,
493 6 z3, z4, z5, z6,
494 7 z7, z8, hh, xd1,
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)
501
502
503 IF (ismstr==11) THEN
505 1 x0, y0, z0, x1,
506 2 x2, x3, x4, x5,
507 3 x6, x7, x8, y1,
508 4 y2, y3, y4, y5,
509 5 y6, y7, y8, z1,
510 6 z2, z3, z4, z5,
511 7 z6, z7, z8, nel)
512 ELSE
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)
526 END IF
527
528 IF (idt1sol == 1.OR.(isctl>0.AND.nu0>0.48999)) THEN
530 1 deltax, voln, ixs(1,nf1),x1,
531 2 x2, x3, x4, x5,
532 3 x6, x7, x8, y1,
533 4 y2, y3, y4, y5,
534 5 y6, y7, y8, z1,
535 6 z2, z3, z4, z5,
536 7 z6, z7, z8, nel)
537 ELSEIF(idtmins==2)THEN
538
539
541 1 deltax, voln, ixs(1,nf1),x1,
542 2 x2, x3, x4, x5,
543 3 x6, x7, x8, y1,
544 4 y2, y3, y4, y5,
545 5 y6, y7, y8, z1,
546 6 z2, z3, z4, z5,
547 7 z6, z7, z8, iparts,
548 8 tagprt_sms,gbuf%ISMS, nel)
549 ELSE
551 1 voln, deltax, x1, x2,
552 2 x3, x4, x5, x6,
553 3 x7, x8, y1, y2,
554 4 y3, y4, y5, y6,
555 5 y7, y8, z1, z2,
556 6 z3, z4, z5, z6,
557 7 z7, z8, n1x, n2x,
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)
563 END IF
564 ELSEIF (jeul /= 0) THEN
566 1 gbuf%VOL,veul, x1, x2,
567 2 x3, x4, x5, x6,
568 3 x7, x8, y1, y2,
569 4 y3, y4, y5, y6,
570 5 y7, y8, z1, z2,
571 6 z3, z4, z5, z6,
572 7 z7, z8, px1, px2,
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,
587 m jhbe)
588 ENDIF
589
590 CALL sz_dt1(
591 1 px1, px2, px3, px4,
592 2 py1, py2, py3, py4,
593 3 pz1, pz2, pz3, pz4,
594 4 fac_nu,deltaxi, nel )
595
596 IF (jale+jeul > 0 .AND. mtn == 11) THEN
598 1 pm, v, veul, x,
599 2 ixs, ale_connect,dxx, dxy,
600 3 dxz, dyx, dyy, dyz,
601 4 dzx, dzy, dzz, d4,
602 5 d5, d6, wxx, wyy,
603 6 wzz, bufmat, nel, nft,
604 7 ipm, nummat, numels+nsvois)
605 ELSE
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,
621 f dzz, d4, d5, d6,
622 g wxx, wyy, wzz, bid,
623 h bid, bid, nel,
624 i nft, ismstr, jeul, jhbe,
625 j jcvt, isrot)
626 ENDIF
627
628 IF (jcvt == 2) THEN
630 1 lft, llt, nel, g1x,
631 2 g1y, g1z, g2x, g2y,
632 3 g2z, g3x, g3y, g3z,
633 4 gbuf%GAMA,isorth)
634 CALL szordef3(lft,llt,dxx,dyy,dzz,d4,d5,d6,
635 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
636 ENDIF
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)
645
646
647 CALL srmalla3(gbuf%SIG,s1,s2,s3,s4,s5,s6,
648 . gbuf%OFF,off,nel)
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)
654
655
656
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,
665 7 zd7, zd8, nel)
666 END IF
667
668
669 IF (jthe < 0) THEN
670 DO i=1,nel
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)))
675 ENDDO
676 ENDIF
677
678 deltaxi(1:nel) = deltax(1:nel)
679 IF (fac_nu<one) deltaxi(1:nel) =
max(deltaxi(1:nel),nu_sp*deltax(1:nel))
680
681 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,35)
682 ilay = 1
683 iptr = 1
684 ipts = 1
685 iptt = 1
686 ip = 1
687
688
689
690
691 IF (inloc > 0) THEN
692 l_nloc = nloc_dmg%L_NLOC
693 dnl => nloc_dmg%DNL(1:l_nloc)
694 DO i=1,nel
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))
703 DO j = 1, 8
704 ipos(j) = nloc_dmg%POSI(inod(j))
705 ENDDO
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
709 ENDDO
710 ENDIF
711
712
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))
716
717
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,
727 9 s2, s3, s4, s5,
728 a s6, dxx, dyy, dzz,
729 b d4, d5, d6, wxx,
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)
754
755 IF (istrain == 1)THEN
757 1 dxx, dyy, dzz, d4,
758 2 d5, d6, lbuf%STRA,wxx,
759 3 wyy, wzz, off, nel,
760 4 jcvt)
761 ENDIF
762 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
763
764 IF (jcvt == 2) THEN
765 CALL sroto3(lft,llt,gbuf%SIG,sign,
766 . g1x, g2x, g3x, g1y, g2y, g3y, g1z, g2z, g3z,nel)
767 ELSE
768 DO i=1,nel
769 sign(i,1) = gbuf%SIG(ii(1)+i)
770 sign(i,2) = gbuf%SIG(ii(2)+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)
775 ENDDO
776 ENDIF
777
778 itet = 0
779 IF (nn_del >0) THEN
781 1 x1, x2, x3, x4,
782 2 x5, x6, x7, x8,
783 3 y1, y2, y3, y4,
784 4 y5, y6, y7, y8,
785 5 z1, z2, z3, z4,
786 6 z5, z6, z7, z8,
787 7 nel)
788 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
789 END IF
790
791
792
793
794
795
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,
803 4 nc8, nel, jcvt)
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 )
808 END IF
809 ENDIF
810 IF (jlag+jale+jeul == 0) THEN
811
812
813 iflag=mod(ncycle,ncpri)
814 IF(ioutprt>0)THEN
815 IF (mtn == 11) THEN
816 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
817 ELSE
818 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
819 ENDIF
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)
826 ENDIF
827 RETURN
828 ENDIF
829
830
831 IF (jale+jeul > 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
832 IF(iparit == 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,
838 5 ixs, nel, jeul)
839 ELSE
841 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
842 2 voln, iads, off, ixs,
843 3 nel, nft, jeul)
844 ENDIF
845 ENDIF
846
847
848 IF (imatvis > 2) THEN
849 ivisc = elbuf_tab(ng)%BUFLY(ilay)%IVISC
850 IF (ivisc == 1) THEN
851 rho0_1 = pm(1 ,imat)
852 nu = pm(21,imat)
853 CALL visc_et(nel ,mat_elem%MAT_PARAM(imat)%VISC,
854 . rho0_1 ,nu ,cxx ,et )
855
856 END IF
857 END IF
858
859 IF (isctl > 0) THEN
860 dn = geo(13,pid)
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 )
882
883 ELSEIF (isorth>0) THEN
884 IF (mtn>=28) THEN
885 iadbuf = ipm(7,mxt(1))
886 ELSE
887 iadbuf = 1
888 ENDIF
890 1 elbuf_tab(ng), pm, gbuf%RHO, off,
891 2 vx1, vx2, vx3,
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,
910 l dzz, d4, d5, d6,
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) )
918
919 ELSE
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,
926 6 vz1, vz2, vz3, vz4,
927 7 vz5, vz6, vz7, vz8,
928 8 f11, f21, f31, f12,
929 9 f22, f32, f13, f23,
930 a f33, f14, f24, f34,
931 b f15, f25, f35, f16,
932 c f26, f36, f17, f27,
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,
941 l dzz, d4, d5, d6,
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,
947 r iint)
948 END IF
949 IF (cns2 > zero)
950 .
CALL nsvis_sm12(gbuf%OFF ,cns2,cxx ,voln ,dxx ,
951 . dyy ,dzz ,d4 ,d5 ,d6 ,
952 . lbuf%VOL,rho0_1 ,sti ,nel,svis )
953
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)
968
969 IF (jale == 1 .OR. (jeul == 1.AND.integ8 == 0)) THEN
970
971
973 1 pm, gbuf%RHO, voln, x1,
974 2 x2, x3, x4, x5,
975 3 x6, x7, x8, y1,
976 4 y2, y3, y4, y5,
977 5 y6, y7, y8, z1,
978 6 z2, z3, z4, z5,
979 7 z6, z7, z8, vx1,
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
1010
1011
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,
1031 j vx7, vx8, vy1, vy2,
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,
1036 o mtn, ipm)
1037 ENDIF
1038
1040 1 f32,f13,f23,f33,f14,
1041 2 f24,f34,f15,f25,f35,
1042 3 f16,f26,f36,f17,f27,
1043 4 f37,f18,f28,f38,gbuf%OFF,
1044 5 lft,llt,nel)
1045
1046
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
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
1063 IF (mtn == 11) THEN
1064 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
1065 ELSE
1066 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
1067 ENDIF
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)
1074 ENDIF
1075
1076
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,
1095 i n6z, bid, p, ixs,
1096 j nel, nft, jale, jeul,
1097 k svis)
1098
1099
1100
1101
1102 IF (inloc > 0) THEN
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 ,
1111 8 gbuf%VOL ,nft )
1112 ENDIF
1113
1114
1115
1116 IF (jthe < 0) THEN
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)
1127 9
1128 ELSE
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)
1138 END IF
1139 ENDIF
1140
1141
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,
1151 9 f38, nel)
1152
1153
1154
1155 IF (isctl > 0) THEN
1156 CALL sdistor_ini(
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 ,
1161 5 cns2 ,fqmax )
1162
1163
1165 . nc1, nc2, nc3, nc4,
1166 . nc5, nc6, nc7, nc8,
1167 . x1, x2, x3, x4,
1168 . x5, x6, x7, x8,
1169 . y1, y2, y3, y4,
1170 . y5, y6, y7, y8,
1171 . z1, z2, z3, z4,
1172 . z5, z6, z7, z8,
1173 . x, xdp, numnod, nel )
1174 DO i=1,nel
1175 vx1(i)=v(1,nc1(i))
1176 vy1(i)=v(2,nc1(i))
1177 vz1(i)=v(3,nc1(i))
1178 vx2(i)=v(1,nc2(i))
1179 vy2(i)=v(2,nc2(i))
1180 vz2(i)=v(3,nc2(i))
1181 vx3(i)=v(1,nc3(i))
1182 vy3(i)=v(2,nc3(i))
1183 vz3(i)=v(3,nc3(i))
1184 vx4(i)=v(1,nc4(i))
1185 vy4(i)=v(2,nc4(i))
1186 vz4(i)=v(3,nc4(i))
1187 vx5(i)=v(1,nc5(i))
1188 vy5(i)=v(2,nc5(i))
1189 vz5(i)=v(3,nc5(i))
1190 vx6(i)=v(1,nc6(i))
1191 vy6(i)=v(2,nc6(i))
1192 vz6(i)=v(3,nc6(i))
1193 vx7(i)=v(1,nc7(i))
1194 vy7(i)=v(2,nc7(i))
1195 vz7(i)=v(3,nc7(i))
1196 vx8(i)=v(1,nc8(i))
1197 vy8(i)=v(2,nc8(i))
1198 vz8(i)=v(3,nc8(i))
1199 ENDDO
1201 . x1, x2, x3, x4,
1202 . x5, x6, x7, x8,
1203 . y1, y2, y3, y4,
1204 . y5, y6, y7, y8,
1205 . z1, z2, z3, z4,
1206 . z5, z6, z7, z8,
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)
1222 ENDIF
1223
1224
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,
1232 7 f28, f38, nel)
1233
1234
1235 IF(iparit == 0)THEN
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)
1255 ELSE
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)
1276 ENDIF
1277 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
1278 RETURN
subroutine amass3(ms, rho, volgp, tag22, volu, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, msnf, nvc, off, ixs, nel, jeul)
subroutine amass3p(fskym, rho, volgp, tag22, volu, iads, off, ixs, nel, nft, jeul)
subroutine amomt3(pm, rho, vol, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, 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, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, vdx, vdy, vdz, deltax, vis, mat, qmv, bufmat, iparg1, ixs, iad22, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, nale, nel, nft, mtn, ipm)
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 emomt3b(pm, rho, volgp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, vdx, vdy, vdz, mat, qmv, bufmat, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, iparg1, nel, mtn, ipm)
subroutine szderito3(off, det, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, jac_i, nel, jlag)
subroutine szderit3(off, det, ngl, nel, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, jac1, jac2, jac3, jac4, jac5, jac6, jac9, jlag)
subroutine epxle3(vol, veul, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, px1h1, px1h2, px1h3, px2h1, px2h2, px2h3, px3h1, px3h2, px3h3, px4h1, px4h2, px4h3, det, deltax, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, nel, nft, jhbe)
subroutine fe_close(hh, rho, voln, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel)
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 nsvis_sm12(offg, mu, ssp, vol, d1, d2, d3, d4, d5, d6, vol0, rho0, sti, nel, svis)
subroutine s11defo3(pm, v, veul, x, ixs, ale_connect, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, bufmat, nel, nft, ipm, nummat, numels)
subroutine s8for_distor(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f12, f13, f14, f15, f16, f17, f18, f21, f22, f23, f24, f25, f26, f27, f28, f31, f32, f33, f34, f35, f36, f37, f38, sti, sti_c, fld, mu, ll, istab, fqmax, nel, e_distor, dt1)
subroutine s8get_x3(nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, x, xdp, numnod, nel)
subroutine s8sav12(offg, offg0, sav, x, xdp, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, nel, jcvt)
subroutine s8sav3(offg, sav, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, nel)
subroutine s8upd11t12(offg, offg0, x, xdp, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, jac_1, sig, sigl, nel)
subroutine scoor_cp2sp(x0, y0, z0, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
subroutine scumu3(offg, e, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nvc, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthe, condn, conde, nel, jthe, isrot, ipartsph, nodadt_therm)
subroutine scumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthesky, condnsky, conde, nel, nft, jthe, isrot, ipartsph, nodadt_therm)
subroutine sdlen8(deltax, volg, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
subroutine sdlen_sms(deltax, volg, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, iparts, tagprt_sms, tagelem_sms, nel)
subroutine sdlenmax(lm_max, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
subroutine sfillopt(fill, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel)
subroutine sfint3(sig, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, vol, qvis, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, dfe, pbak, ixs, nel, nft, jale, jeul, svis)
subroutine sfint_reg(nloc_dmg, var_reg, nel, off, vol, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, vol0, nft)
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 srbilan(partsav, eint, rho, rk, vol, vxa, vya, vza, va2, vnew, iparts, gresav, grth, igrth, off, iexpan, eintth, fill, xx, yy, zz, xx2, yy2, zz2, xy, yz, zx, itask, iparg, sensors, nel, g_wpla, wpla)
subroutine sdefot3(nel, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz)
subroutine sordeft3(nel, mxx, mxy, mxz, myx, myy, myz, mzx, mzy, mzz, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
subroutine srmalla3(sig, s1, s2, s3, s4, s5, s6, offg, off, nel)
subroutine srmalla11(sav, offg, wxx, wyy, wzz, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, ismstr)
subroutine srrotadp(r11, r12, r13, r21, r22, r23, r31, r32, r33, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
subroutine mod_close(geo, ngeo, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
subroutine sdefo3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz)
subroutine sdlen3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, deltax, voln)
subroutine srcoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, jhbe, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
subroutine srrota3(r11, r12, r13, r21, r22, r23, r31, r32, r33, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
subroutine szderi3(vol, veul, geo, igeo, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, jac1, jac2, jac3, jac4, jac5, jac6, jac9, ngl, ngeo, det, voldp, nel, jeul, nxref)
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine stherm(mat_param, vol, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dt1, tempnc, tempel, heat, fphi, offg, off, partsav, iparts, vol0, nel, numnod, theaccfact)
subroutine szhour3(elbuf_str, pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, vol, mat, cxx, vis, vd2, deltax, pid, geo, partsav, iparts, dxx, dyy, dzz, d4, d5, d6, fhour, jr0, js0, jt0, eint, vol0, sigy, sig0, sigold, icp, defp, matvis, et, d_max, nel, strhg, istrain, mtn, ismstr, jlag, iint)
subroutine szhour3_or(elbuf_str, pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, vol, mat, cxx, vis, vd2, deltax, pid, geo, partsav, iparts, dxx, dyy, dzz, d4, d5, d6, fhour, jr0, js0, jt0, eint, vol0, sigy, sig0, sigold, icp, defp, matvis, et, d_max, nel, gama, uparam, strhg, strain, istrain, mtn, ismstr, jlag, iint, mat_param)
subroutine szhour_ctl(pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px2h1, px2h2, px2h3, px3h1, px3h2, px3h3, px4h1, px4h2, px4h3, vol, fhour, mtn, dt1, mat, cxx, eint, npropm, nummat, strhg, jr, js, jt, vol0, dn, sti, nel)
subroutine storth3(isorth, nel, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, gama)
subroutine sroto3(nel, sig, sign, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
subroutine szordef3(nel, dxx, dyy, dzz, d4, d5, d6, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
subroutine sztorth3(jft, jlt, isorth, nel, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, gama)
subroutine visc_et(nel, visc, rho, nu, cxx, et)