124
125
126
127 USE timer_mod
128 USE output_mod, only : output_
129 USE mmain_mod
131 USE mat_elem_mod
134 USE sensor_mod
137 USE output_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
144
145
146#include "implicit_f.inc"
147
148
149
150#include "mvsiz_p.inc"
151
152
153
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"
166#include "sms_c.inc"
167
168
169
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,NG,NPTS,IOUTPRT,NALE(*),H3D_STRAIN
186
187 DOUBLE PRECISION
188 . XDP(3,*)
190 . dt2t
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(*)
207
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
212 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
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
218
219
220
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)
236
237 DOUBLE PRECISION
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)
245
246
248 . sti(mvsiz),gama(mvsiz,6),
249 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
250
252 . muvoid(mvsiz),fac_nu,nu_sp,nu0,dn
253
254
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
316
317 TYPE(G_BUFEL_) ,POINTER :: GBUF
318 TYPE(L_BUFEL_) ,POINTER :: LBUF
319
320
321
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
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
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
696 inod(1:8) = 0
697 ipos(1:8) = 0
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))
701 ENDDO
702
703 var_reg(i) = zero
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
707 ENDDO
708 ENDDO
709 ENDIF
710
711
712 IF(iboltp /= 0)
CALL boltst(ip ,bpreld ,lbuf%SIG ,tt ,nel ,
713 . npt ,sensors%NSENSOR,sensors%SENSOR_TAB)
714
715
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,
725 9 s2, s3, s4, s5,
726 a s6, dxx, dyy, dzz,
727 b d4, d5, d6, wxx,
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)
752
753 IF (istrain == 1)THEN
755 1 dxx, dyy, dzz, d4,
756 2 d5, d6, lbuf%STRA,wxx,
757 3 wyy, wzz, off, nel,
758 4 jcvt)
759 ENDIF
760 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,35)
761
762 IF (jcvt == 2) THEN
763 CALL sroto3(lft,llt,gbuf%SIG,sign,
764 . g1x, g2x, g3x, g1y, g2y, g3y, g1z, g2z, g3z,nel)
765 ELSE
766 DO i=1,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)
773 ENDDO
774 ENDIF
775
776 itet = 0
777 IF (nn_del >0) THEN
779 1 x1, x2, x3, x4,
780 2 x5, x6, x7, x8,
781 3 y1, y2, y3, y4,
782 4 y5, y6, y7, y8,
783 5 z1, z2, z3, z4,
784 6 z5, z6, z7, z8,
785 7 nel)
786 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
787 END IF
788
789
790
791
792
793
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,
801 4 nc8, nel, jcvt)
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 )
806 END IF
807 ENDIF
808 IF (jlag+jale+jeul == 0) THEN
809
810
811 iflag=mod(ncycle,ncpri)
812 IF(ioutprt>0)THEN
813 IF (mtn == 11) THEN
814 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
815 ELSE
816 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
817 ENDIF
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)
824 ENDIF
825 RETURN
826 ENDIF
827
828
829 IF (jale+jeul > 0 .AND.
ale%GLOBAL%INCOMP == 0)
THEN
830 IF(iparit == 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,
836 5 ixs, nel, jeul)
837 ELSE
839 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
840 2 voln, iads, off, ixs,
841 3 nel, nft, jeul)
842 ENDIF
843 ENDIF
844
845
846 IF (imatvis > 2) THEN
847 ivisc = elbuf_tab(ng)%BUFLY(ilay)%IVISC
848 IF (ivisc == 1) THEN
849 rho0_1 = pm(1 ,imat)
850 nu = pm(21,imat)
851 CALL visc_et(nel ,mat_elem%MAT_PARAM(imat)%VISC,
852 . rho0_1 ,nu ,cxx ,et )
853
854 END IF
855 END IF
856
857 IF (isctl > 0) THEN
858 dn = geo(13,pid)
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 )
880
881 ELSEIF (isorth>0) THEN
882 IF (mtn>=28) THEN
883 iadbuf = ipm(7,mxt(1))
884 ELSE
885 iadbuf = 1
886 ENDIF
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,
908 l dzz, d4, d5, d6,
909 m gbuf%HOURG, jac1, jac5, jac9,
910 n gbuf%EINT, gbuf%VOL, sigy, sign,
911 o sigo, icp, lbuf%PLA, imatvis,
912 p et, r3_dam, nel, gama,
913 q bufmat(iadbuf),gbuf%STRHG, lbuf%STRA, istrain,
914 r mtn, ismstr, jlag, iint,
915 s mat_elem%MAT_PARAM(imat) )
916
917 ELSE
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,
929 b f15, f25, f35, f16,
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, dyy,
939 l dzz, d4, d5, d6,
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,
945 r iint)
946 END IF
947 IF (cns2 > zero)
948 .
CALL nsvis_sm12(gbuf%OFF ,cns2,cxx ,voln ,dxx ,
949 . dyy ,dzz ,d4 ,d5 ,d6 ,
950 . lbuf%VOL,rho0_1 ,sti ,nel,svis )
951
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)
966
967 IF (jale == 1 .OR. (jeul == 1.AND.integ8 == 0)) THEN
968
969
971 1 pm, gbuf%RHO, voln, x1,
972 2 x2, x3, x4, x5,
973 3 x6, x7, x8, y1,
974 4 y2, y3, y4, y5,
975 5 y6, y7, y8, z1,
976 6 z2, z3, z4, z5,
977 7 z6, z7, z8, vx1,
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
1008
1009
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,
1018 8 px2, px3, px4, py1,
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,
1034 o mtn, ipm)
1035 ENDIF
1036
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,
1042 5 lft,llt,nel)
1043
1044
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)).
1059 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(8)).
1060 . or.(
ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(9)))
THEN
1061 IF (mtn == 11) THEN
1062 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
1063 ELSE
1064 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
1065 ENDIF
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)
1072 ENDIF
1073
1074
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,
1093 i n6z, bid, p, ixs,
1094 j nel, nft, jale, jeul,
1095 k svis)
1096
1097
1098
1099
1100 IF (inloc > 0) THEN
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 ,
1106 5 pz1 ,pz2 ,pz3 ,pz4 ,
1107 6 imat ,itask ,dt2t ,nft )
1108 ENDIF
1109
1110
1111
1112 IF (jthe < 0) THEN
1113 imat = mxt(1)
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)
1125 ELSE
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)
1136 END IF
1137 ENDIF
1138
1139
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,
1149 9 f38, nel)
1150
1151
1152
1153 IF (isctl > 0) THEN
1154 CALL sdistor_ini(
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 ,
1159 5 cns2 ,fqmax )
1160
1161
1163 . nc1, nc2, nc3, nc4,
1164 . nc5, nc6, nc7, nc8,
1165 . x1, x2, x3, x4,
1166 . x5, x6, x7, x8,
1167 . y1, y2, y3, y4,
1168 . y5, y6, y7, y8,
1169 . z1, z2, z3, z4,
1170 . z5, z6, z7, z8,
1171 . x, xdp, numnod, nel )
1172 DO i=1,nel
1173 vx1(i)=v(1,nc1(i))
1174 vy1(i)=v(2,nc1(i))
1175 vz1(i)=v(3,nc1(i))
1176 vx2(i)=v(1,nc2(i))
1177 vy2(i)=v(2,nc2(i))
1178 vz2(i)=v(3,nc2(i))
1179 vx3(i)=v(1,nc3(i))
1180 vy3(i)=v(2,nc3(i))
1181 vz3(i)=v(3,nc3(i))
1182 vx4(i)=v(1,nc4(i))
1183 vy4(i)=v(2,nc4(i))
1184 vz4(i)=v(3,nc4(i))
1185 vx5(i)=v(1,nc5(i))
1186 vy5(i)=v(2,nc5(i))
1187 vz5(i)=v(3,nc5(i))
1188 vx6(i)=v(1,nc6(i))
1189 vy6(i)=v(2,nc6(i))
1190 vz6(i)=v(3,nc6(i))
1191 vx7(i)=v(1,nc7(i))
1192 vy7(i)=v(2,nc7(i))
1193 vz7(i)=v(3,nc7(i))
1194 vx8(i)=v(1,nc8(i))
1195 vy8(i)=v(2,nc8(i))
1196 vz8(i)=v(3,nc8(i))
1197 ENDDO
1199 . x1, x2, x3, x4,
1200 . x5, x6, x7, x8,
1201 . y1, y2, y3, y4,
1202 . y5, y6, y7, y8,
1203 . z1, z2, z3, z4,
1204 . z5, z6, z7, z8,
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)
1220 ENDIF
1221
1222
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,
1230 7 f28, f38, nel)
1231
1232
1233 IF(iparit == 0)THEN
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)
1253 ELSE
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)
1274 ENDIF
1275 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
1276 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)
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, nlocs, vol0, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, 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(pm, imat, 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)