85
86
87
88 USE timer_mod
89 USE output_mod, only : output_
90 USE mmain_mod
92 USE mat_elem_mod
96 USE elbufdef_mod
97 use glob_therm_mod
98 USE sensor_mod
99
100
101
102#include "implicit_f.inc"
103
104
105
106#include "mvsiz_p.inc"
107
108
109
110#include "com01_c.inc"
111#include "com04_c.inc"
112#include "com08_c.inc"
113#include "vect01_c.inc"
114#include "parit_c.inc"
115#include "param_c.inc"
116
117
118
119 INTEGER NIPMAX,NPE
120 parameter(nipmax=81)
121 parameter(npe=16)
122
123
124
125 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
126 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
127 INTEGER,INTENT(IN) :: SNPC
128 INTEGER,INTENT(IN) :: STF
129 INTEGER, INTENT(IN) :: SBUFMAT
130 INTEGER, INTENT(IN) :: IDTMINS
131 INTEGER, INTENt(IN) :: NSVOIS
132 INTEGER ,INTENT(IN) :: IRESP
133 INTEGER ,INTENT(IN) :: IDEL7NG
134 INTEGER ,INTENT(INOUT) :: IDEL7NOK
135 integer,dimension(102) :: IDTMIN
136 INTEGER ,INTENT(IN) :: MAXFUNC
137 INTEGER, INTENT(IN) :: IMPL_S
138 INTEGER, INTENT(IN) :: IDYNA
139 INTEGER, INTENT(IN) :: USERL_AVAIL
140 INTEGER, INTENT(IN) :: IMON_MAT
141 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
142 . IPARTS(*),IXS16(8,*),IADS16(8,*),IPM(*),GRTH(*),IGRTH(*),
143 . IGEO(*),IADS(8,*),ITASK,IOUTPRT
144 INTEGER NELTST,ITYPTST,OFFSET,NEL,ICP,ICSIG,ISTRAIN,IEXPAN,NG,H3D_STRAIN
146 . dt2t
148 . pm(npropm,*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*),
149 . flux(6,*),flu1(*), veul(*), fv(*), tf(*),
150 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*)
152 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),
153 . volnp(mvsiz,nipmax),sigs(mvsiz,nipmax),
154 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
155 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
156 . tx(mvsiz,nipmax) , ty(mvsiz,nipmax) , tz(mvsiz,nipmax) ,
157 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
158 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
159 . vx
160 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
161 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
162 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
163 . temp(*), fthe(*), fthesky(*), gresav(*),voln(mvsiz),condn(*),
164 . condnsky(*)
165 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
166 TYPE (TTABLE) TABLE(*)
167 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
168 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
169 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
170 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
171 TYPE(DT_), INTENT(INOUT) :: DT
172 type (glob_therm_) ,intent(inout) :: glob_therm
173 type (sensors_),INTENT(INOUT) :: SENSORS
174
175
176
177 INTEGER I,J,N,LCO, NF1, IFLAG, IL, IR, , IT, NF2,L_PLA,IMAT,
178 . IP,NLAY,NPTT,NPTS,NPTR,ICO,IBID,IBIDON(1),MX,II(6),PID,CURRENT_LAYER
179
180 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IPERM1(NPE),IPERM2(NPE)
182 . vd2(mvsiz) , dvol(mvsiz),deltax(mvsiz),
183 . vis(mvsiz) , qvis(mvsiz), cxx(mvsiz) ,
184 . s1(mvsiz) , s2(mvsiz) , s3(mvsiz) ,
185 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
186 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
187 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
188 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
189 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),divde(mvsiz)
190
191
193 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
194
196 . muvoid(mvsiz)
197
198
200 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
201 . r1_free(mvsiz),r3_free(mvsiz),r4_free(mvsiz),
202 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe),
area(mvsiz),llsh(mvsiz)
203 my_real,
dimension(mvsiz) :: fheat
204
205
206 INTEGER NC(MVSIZ,NPE),NN_DEL,IPRES,SZ_IX
208 . off(mvsiz) , rhoo(mvsiz),ni(npe,nipmax),
209 . sigsm(mvsiz),volsm(mvsiz),
210 . dxy(mvsiz),dyx(mvsiz),
211 . dyz(mvsiz),dzy(mvsiz),volg(mvsiz),
212 . dzx(mvsiz),dxz(mvsiz), wi,bid(mvsiz),aa,bb, mbid(1),amu(mvsiz)
214 DOUBLE PRECISION
215 . VOLDP(MVSIZ,NIPMAX)
216
217 TYPE(L_BUFEL_) ,POINTER :: LBUF
218 TYPE(G_BUFEL_) ,POINTER :: GBUF
219
221 . w_gauss(9,9),a_gauss(9,9),w_lobatto(9,9),a_lobatto(9,9),
222 . w_newton(9,9),a_newton(9,9)
223
224 DATA w_gauss /
225 1 2. ,0. ,0. ,
226 1 0. ,0. ,0. ,
227 1 0. ,0. ,0. ,
228 2 1. ,1. ,0. ,
229 2 0. ,0. ,0. ,
230 2 0. ,0. ,0. ,
231 3 0.555555555555556,0.888888888888889,0.555555555555556,
232 3 0. ,0. ,0. ,
233 3 0. ,0. ,0. ,
234 4 0.347854845137454,0.652145154862546,0.652145154862546,
235 4 0.347854845137454,0. ,0. ,
236 4 0. ,0. ,0. ,
237 5 0.236926885056189,0.478628670499366,0.568888888888889,
238 5 0.478628670499366,0.236926885056189,0. ,
239 5 0. ,0. ,0. ,
240 6 0.171324492379170,0.360761573048139,0.467913934572691,
241 6 0.467913934572691,0.360761573048139,0.171324492379170,
242 6 0. ,0. ,0. ,
243 7 0.129484966168870,0.279705391489277,0.381830050505119,
244 7 0.417959183673469,0.381830050505119,0.279705391489277,
245 7 0.129484966168870,0. ,0. ,
246 8 0.101228536290376,0.222381034453374,0.313706645877887,
247 8 0.362683783378362,0.362683783378362,0.313706645877887,
248 8 0.222381034453374,0.101228536290376,0. ,
249 9 0.081274388361574,0.180648160694857,0.260610696402935,
250 9 0.312347077040003,0.330239355001260,0.312347077040003,
251 9 0.260610696402935,0.180648160694857,0.081274388361574/
252 DATA a_gauss /
253 1 0. ,0. ,0. ,
254 1 0. ,0. ,0. ,
255 1 0. ,0. ,0. ,
256 2 -.577350269189626,0.577350269189626,0. ,
257 2 0. ,0. ,0. ,
258 2 0. ,0. ,0. ,
259 3 -.774596669241483,0. ,0.774596669241483,
260 3 0. ,0. ,0. ,
261 3 0. ,0. ,0. ,
262 4 -.861136311594053,-.339981043584856,0.339981043584856,
263 4 0.861136311594053,0. ,0. ,
264 4 0. ,0. ,0. ,
265 5 -.906179845938664,-.538469310105683,0. ,
266 5 0.538469310105683,0.906179845938664,0. ,
267 5 0. ,0. ,0. ,
268 6 -.932469514203152,-.661209386466265,-.238619186083197,
269 6 0.238619186083197,0.661209386466265,0.932469514203152,
270 6 0. ,0. ,0. ,
271 7 -.949107912342759,-.741531185599394,-.405845151377397,
272 7 0. ,0.405845151377397,0.741531185599394,
273 7 0.949107912342759,0. ,0. ,
274 8 -.960289856497536,-.796666477413627,-.525532409916329,
275 8 -.183434642495650,0.183434642495650,0.525532409916329,
276 8 0.796666477413627,0.960289856497536,0. ,
277 9 -.968160239507626,-.836031107326636,-.613371432700590,
278 9 -.324253423403809,0. ,0.324253423403809,
279 9 0.613371432700590,0.836031107326636,0.968160239507626/
280
281 DATA w_lobatto /
282 1 2. ,0. ,0. ,
283 1 0. ,0. ,0. ,
284 1 0. ,0. ,0. ,
285 2 1. ,1. ,0. ,
286 2 0. ,0. ,0. ,
287 2 0. ,0. ,0. ,
288 3 0.333333333333333,1.333333333333333,0.333333333333333,
289 3 0. ,0. ,0. ,
290 3 0. ,0. ,0. ,
291 4 0.166666666666667,0.833333333333333,0.833333333333333,
292 4 0.166666666666667,0. ,0. ,
293 4 0. ,0. ,0. ,
294 5 0.1 ,0.544444444444444,0.711111111111111,
295 5 0.544444444444444,0.1 ,0. ,
296 5 0. ,0. ,0. ,
297 6 0.066666666666667,0.37847496 ,0.55485838 ,
298 6 0.55485838 ,0.37847496 ,0.066666666666667,
299 6 0. ,0. ,0. ,
300 7 0.04761904 ,0.27682604 ,0.43174538 ,
301 7 0.48761904 ,0.43174538 ,0.27682604 ,
302 7 0.04761904 ,0. ,0. ,
303 8 0.03571428 ,0.21070422 ,0.34112270 ,
304 8 0.41245880 ,0.41245880 ,0.34112270 ,
305 8 0.21070422 ,0.03571428 ,0. ,
306 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
307 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
308 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
309 DATA a_lobatto /
310 1 0. ,0. ,0. ,
311 1 0. ,0. ,0. ,
312 1 0. ,0. ,0. ,
313 2 -1. ,1. ,0. ,
314 2 0. ,0. ,0. ,
315 2 0. ,0. ,0. ,
316 3 -1. ,0. ,1. ,
317 3 0. ,0. ,0. ,
318 3 0. ,0. ,0. ,
319 4 -1. ,-.44721360 ,0.44721360 ,
320 4 1. ,0. ,0. ,
321 4 0. ,0. ,0. ,
322 5 -1. ,-.65465367 ,0. ,
323 5 0.65465367 , 1. ,0. ,
324 5 0. ,0. ,0. ,
325 6 -1. ,-.76505532 ,-.28523152 ,
326 6 0.28523152 ,0.76505532 , 1. ,
327 6 0. ,0. ,0. ,
328 7 -1. ,-.83022390 ,-.46884879 ,
329 7 0. ,0.46884879 ,0.83022390 ,
330 7 1. ,0. ,0. ,
331 8 -1. ,-.87174015 ,-.59170018 ,
332 8 -.20929922 ,0.20929922 ,0.59170018 ,
333 8 0.87174015 , 1. ,0. ,
334 9 -1. ,-.8997579954 ,-.6771862795 ,
335 9 -.3631174638 ,0. ,0.3631174638 ,
336 9 0.6771862795 ,0.8997579954 , 1. /
337
338
339 DATA w_newton /
340 1 2. ,0. ,0. ,
341 1 0. ,0. ,0. ,
342 1 0. ,0. ,0. ,
343 2 1. ,1. ,0. ,
344 2 0. ,0. ,0. ,
345 2 0. ,0. ,0. ,
346 3 0.5 ,1. ,0.5 ,
347 3 0. ,0. ,0. ,
348 3 0. ,0. ,0. ,
349 4 0.166666666666667,0.833333333333333,0.833333333333333,
350 4 0.166666666666667,0. ,0. ,
351 4 0. ,0. ,0. ,
352 5 0.25 ,0.5 ,0.5 ,
353 5 0.5 ,0.25 ,0. ,
354 5 0. ,0. ,0. ,
355 6 0.066666666666667,0.37847496 ,0.55485838 ,
356 6 0.55485838 ,0.37847496 ,0.066666666666667,
357 6 0. ,0. ,0. ,
358 7 0.04761904 ,0.27682604 ,0.43174538 ,
359 7 0.48761904 ,0.43174538 ,0.27682604 ,
360 7 0.04761904 ,0. ,0. ,
361 8 0.03571428 ,0.21070422 ,0.34112270 ,
362 8 0.41245880 ,0.41245880 ,0.34112270 ,
363 8 0.21070422 ,0.03571428 ,0. ,
364 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
365 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
366 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
367 DATA a_newton /
368 1 0. ,0. ,0. ,
369 1 0. ,0. ,0. ,
370 1 0. ,0. ,0. ,
371 2 -1. ,1. ,0. ,
372 2 0. ,0. ,0. ,
373 2 0. ,0. ,0. ,
374 3 -1. ,0. ,1. ,
375 3 0. ,0. ,0. ,
376 3 0. ,0. ,0. ,
377 4 -1. ,-.44721360 ,0.44721360 ,
378 4 1. ,0. ,0. ,
379 4 0. ,0. ,0. ,
380 5 -1. ,-.5 ,0. ,
381 5 0.5 , 1. ,0. ,
382 5 0. ,0. ,0. ,
383 6 -1. ,-.76505532 ,-.28523152 ,
384 6 0.28523152 ,0.76505532 , 1. ,
385 6 0. ,0. ,0. ,
386 7 -1. ,-.83022390 ,-.46884879 ,
387 7 0. ,0.46884879 ,0.83022390 ,
388 7 1. ,0. ,0. ,
389 8 -1. ,-.87174015 ,-.59170018 ,
390 8 -.20929922 ,0.20929922 ,0.59170018 ,
391 8 0.87174015 , 1. ,0. ,
392 9 -1. ,-.8997579954 ,-.6771862795 ,
393 9 -.3631174638 ,0. ,0.3631174638 ,
394 9 0.6771862795 ,0.8997579954 , 1. /
395
396 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8/
397 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,6,7,8,5/
398
399
400
401 gbuf =>elbuf_tab(ng)%GBUF
402 nptr = elbuf_tab(ng)%NPTR
403 npts = elbuf_tab(ng)%NPTS
404 nptt = elbuf_tab(ng)%NPTT
405 nlay = elbuf_tab(ng)%NLAY
406 is = 1
407 isorth = 0
408 tempel(:) = zero
409 fheat(:) = zero
410 nf1 = nft+1
411 nf2 = nf1-(numels8+numels10+numels20)
412 IF (nptr*npts*nptt*nlay > nipmax) stop 933
413 ibid = 0
414 ibidon(1)= 0
415 sz_ix=numelq+numels+nsvois
416
417 DO i=1,6
418 ii(i) = nel*(i-1)
419 ENDDO
420
422 1 x, ixs(1,nf1), ixs16(1,nf2),v,
423 2 w, iperm1, iperm2, npe,
424 3 xx, yy, zz, vx,
425 4 vy, vz, vdxx, vdyy,
426 5 vdzz, vdx, vdy, vdz,
427 6 vd2, vis, gbuf%OFF, off,
428 7 gbuf%SMSTR, nc, ngl, mxt,
429 8 ngeo, fx, fy, fz,
430 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
431 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD, gbuf%G_PLA,
432 b gbuf%G_EPSD, nel, condeg, jale,
433 c ismstr, jeul, jlag)
434
435 nn_del = 0
436 pid = ngeo(1)
437 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
438 . nn_del=8
439 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=16
440 ipres = mat_elem%MAT_PARAM(mxt(1))%IPRES
441
442 DO n=1,npe
443 DO i=1,nel
444 ul(i,n) = zero
445 ENDDO
446 ENDDO
447 IF (jthe < 0) them(1:nel,1:npe) = zero
448 DO i=1,nel
449 volg(i) = zero
450 ENDDO
451
452
453
454 DO it=1,nptt
455 DO ir=1,nptr
456 DO i=1,nel
457 sigsm(i) = zero
458 volsm(i) = zero
459 ENDDO
460
461 DO il=1,nlay
462 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
463 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
464 IF (iint == 1) THEN
465
466 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
468 1 a_gauss(ir,nptr),a_gauss(il,nlay),a_gauss(it,nptt),ni(1,ip),
469 2 dnidr ,dnids ,dnidt )
470
472 1 ngl, off, a_gauss(ir,nptr),a_gauss(il,nlay),
473 2 a_gauss(it,nptt),wi, dnidr, dnids,
474 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
475 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
476 5 ty(1,ip), tz(1,ip), xx, yy,
477 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
478 7 volnp(1,ip), deltax, stin, ni(1,ip),
479 8 volg, ul, ir, il,
480 9 it, voldp(1,ip), nel)
481 ELSEIF (iint == 2) THEN
482
483 wi = w_gauss(ir,nptr)*w_lobatto(il,nlay)*w_gauss(it,nptt)
485 1 a_gauss(ir,nptr),a_lobatto(il,nlay),a_gauss(it,nptt),ni(1,ip),
486 2 dnidr ,dnids ,dnidt )
487
489 1 ngl, off, a_gauss(ir,nptr), a_lobatto(il,nlay),
490 2 a_gauss(it,nptt), wi, dnidr, dnids,
491 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
492 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
493 5 ty(1,ip), tz(1,ip), xx, yy,
494 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
495 7 volnp(1,ip), deltax, stin, ni(1,ip),
496 8 volg, ul, ir, il,
497 9 it, voldp(1,ip), nel)
498 ENDIF
499
500
501
502 DO i=1,nel
503 aa = one / sqrt(sx(i,ip)*sx(i,ip) + sy(i,ip)*sy(i,ip) +sz(i,ip)*sz(i,ip))
504 sx(i,ip) = sx(i,ip) * aa
505 sy(i,ip) = sy(i,ip) * aa
506 sz(i,ip) = sz(i,ip) * aa
507 rx(i,ip) = sy(i,ip) * tz(i,ip) - sz(i,ip) * ty(i,ip)
508 ry(i,ip) = sz(i,ip) * tx(i,ip) - sx(i,ip) * tz(i,ip)
509 rz(i,ip) = sx(i,ip) * ty(i,ip) - sy(i,ip) * tx(i,ip)
510 aa = one / sqrt(rx(i,ip)*rx(i,ip)+ry(i,ip)*ry(i,ip)+rz(i,ip)*rz(i,ip))
511 rx(i,ip) = rx(i,ip) * aa
512 ry(i,ip) = ry(i,ip) * aa
513 rz(i,ip) = rz(i,ip) * aa
514 tx(i,ip) = ry(i,ip) * sz(i,ip) - rz(i,ip) * sy(i,ip)
515 ty(i,ip) = rz(i,ip) * sx(i,ip) - rx(i,ip) * sz(i,ip
516 tz(i,ip) = rx(i,ip) * sy(i,ip) - ry(i,ip) * sx(i,ip)
517 sigs(i,ip) = sx(i,ip)*sx(i,ip)*lbuf%SIG(ii(1)+i)
518 . +sy(i,ip)*sy(i,ip)*lbuf%SIG(ii(2)+i)
519 . +sz(i,ip)*sz(i,ip)*lbuf%SIG(ii(3)+i)
520 . +sx(i,ip)*sy(i,ip)*lbuf%SIG(ii(4)+i)*two
521 . +sy(i,ip)*sz(i,ip)*lbuf%SIG(ii(5)+i)*two
522 . +sz(i,ip)*sx(i,ip)*lbuf%SIG(ii(6)+i)*two
523 sigsm(i) = sigsm(i) + sigs
524 volsm(i) = volsm(i) + lbuf%VOL(i)
525 enddo
526 enddo
527 DO i=1,nel
528 sigsm(i) = sigsm(i) / volsm(i)
529 ENDDO
530 DO il=1,nlay
531 ip = ir + ( (il-1) + (it-1)*nlay ) * nptr
532 DO i = 1,nel
533 sigs(i,ip) = sigs(i,ip)-sigsm(i)
534 ENDDO
535 enddo
536 enddo
537 enddo
538
539 DO i=1,nel
540 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
541 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
542 bb =
max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
543 . ul(i,15),ul(i,16))
544 aa = aa*thirty2
545 bb = bb*thirty2*third
546 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
547 ENDDO
548 IF (icp == 1 .OR. icp == 2 .AND. ipres==1 ) THEN
550 . nptt,icp,mtn,npe,nipmax,
551 . px, py, pz, vx, vy, vz,
552 . w_gauss,gbuf%PLA,pm,mxt,gbuf%SIG,dt1,
553 . elbuf_tab(ng))
554 ENDIF
555
556
557
558 DO it=1,nptt
559 DO ir=1,nptr
560 DO il=1,nlay
561
562 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
563 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
564
566 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
567 2 vx, vy, vz, dxx,
568 3 dxy, dxz, dyx, dyy,
569 4 dyz, dzx, dzy, dzz,
570 5 d4, d5, d6, wxx,
571 6 wyy, wzz, lbuf%RHO, rhoo,
572 7 volnp(1,ip),voln, nel)
573
574 IF(dt1/=zero .AND. ipres==1 )
CALL s16sigs3(
575 1 dxx, dyy, dzz, d4,
576 2 d5, d6, rx(1,ip), ry(1,ip),
577 3 rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
578 4 tx(1,ip), ty(1,ip), tz(1,ip), gbuf%EINT,
579 5 lbuf%VOL, sigs(1,ip), mxt, pm,
580 6 dt1, lbuf%VOL0DP,nel)
581
582 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
584 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
585 2 divde, flux(1,nf1),flu1(nf1), voln,
586 3 dvol, ngl, mxt, off,
587 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
588 5 amu, gbuf%OFF, nel, mtn,
589 6 jale,
590
592 1 lbuf%SIG,s1, s2, s3,
593 2 s4, s5, s6, wxx,
594 3 wyy, wzz, nel, mtn,
595 4 ismstr)
596
597
598
600 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
601 2 wyy, wzz, nel, ismstr,
602 3 jlag)
603
604
605
606 IF (jthe < 0 ) THEN
607 CALL s20tempcg(1,nel,npe, nc,ni(1,ip), temp,tempel)
608 ENDIF
609
610 current_layer=il
611
612
613
614 CALL mmain(timers, output,
615 1 elbuf_tab, ng, pm, geo,
616 2 ale_connect, ixs, iparg,
617 3 v, tf, npf, bufmat,
618 4 sti, x, dt2t, neltst,
619 5 ityptst, offset, nel, w,
620 6 off, ngeo, mxt, ngl,
621 7 voln, vd2, dvol, deltax,
622 8 vis, qvis, cxx, s1,
623 9 s2, s3, s4, s5,
624 a s6, dxx, dyy, dzz,
625 b d4, d5, d6, wxx,
626 c wyy, wzz, rx(1,ip), ry(1,ip),
627 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
628 e vdx, vdy, vdz, muvoid,
629 f ssp_eq, aire, sigy, et,
630 g r1_free, lbuf%PLA, r3_free, amu,
631 h dxx, dxy, dxz, dyx,
632 i dyy, dyz, dzx, dzy,
633 j dzz, ipm, gama, bid,
634 k bid, bid, bid, bid,
635 l bid, bid, istrain, tempel,
636 m die, iexpan, current_layer,mbid,
637 n mbid, ir, is, it,
638 o table, bid, bid, bid,
639 p bid, iparg(1,ng), igeo, conde,
640 q itask, nloc_dmg, varnl, mat_elem,
641 r h3d_strain, jplasol, jsph, mvsiz,
642 * snpc, stf, sbufmat, glob_therm,
643 * svis, sz_ix, iresp,
644 * n2d, th_strain, ngroup, tt,
645 . dt1, ntable, numelq, nummat,
646 . numgeo, numnod, numels,
647 . idel7nok, idtmin, maxfunc,
648 . imon_mat, userl_avail, impl_s,
649 . idyna, dt, fheat , sensors, opt_mtn=mtn, opt_jcvt=jcvt,
650 . opt_isorth=isorth,opt_isorthg=isorthg)
651
652 IF (istrain == 1)THEN
654 1 dxx, dyy, dzz, d4,
655 2 d5, d6, lbuf%STRA,wxx,
656 3 wyy, wzz, off, nel,
657 4 jcvt)
658 ENDIF
659
660
661
663 1 gbuf%OFF,off, nel, ismstr)
664
665
666
667
668
669
670 IF (iint == 1) THEN
671 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
672 ELSEIF (iint == 2) THEN
673 wi = w_gauss(ir,nptr)*w_lobatto(il,nlay)*w_gauss(it,nptt)
674 ENDIF
675
676 l_pla = elbuf_tab(ng)%BUFLY(il)%L_PLA
678 1 npe, lbuf%SIG, px(1,1,ip),py(1,1,ip),
679 2 pz(1,1,ip),ssp_eq, fx, fy,
680 3 fz, voln, qvis, stig,
681 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
682 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
683 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
684 7 wi, volg, lbuf%VOL, gbuf%VOL
685 8 l_pla, nel, conde, deltax,
686 9 condeg, israt, svis ,glob_therm%NODADT_THERM,
687 a gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
688
689
690
691
692 IF (jthe < 0) THEN
693 imat = mxt(1)
694 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
696 1 npe, pm, imat, nc,
697 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
698 3 ni(1,ip), dt1, temp, tempel,
699 4 fheat, them, gbuf%OFF
700 5 nel ,glob_therm%THEACCFACT)
701 ELSE
703 1 npe, pm, imat, nc,
704 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
705 3 ni(1,ip), dt1, temp, tempel,
706 4 die, them, gbuf%OFF, lbuf%OFF,
707 5 nel ,glob_therm%THEACCFACT)
708 END IF
709 ENDIF
710 ENDDO
711 ENDDO
712 ENDDO
713
714 IF ( nn_del> 0) THEN
716 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
717 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
718 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
719 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
720 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
721 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
723 . llsh,geo(1,pid),nn_del,dt ,nel )
724 ENDIF
725
726
727
728 iflag=mod(ncycle,ncpri)
729 IF(ioutprt>0)THEN
730 CALL s16bilan(partsav,gbuf%EINT,gbuf%RHO,volg ,gbuf%VOL,
731 . vx ,vy ,vz ,iparts ,gresav ,
732 . grth ,igrth ,iexpan ,gbuf%EINTTH, gbuf%FILL,
733 . xx ,yy ,zz ,itask ,iparg(1,ng),
734 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
735 ENDIF
736
737
739 1 npe, gbuf%FILL,stig, fx,
740 2 fy, fz, nel)
741
742 IF (iparit == 0)THEN
744 1 gbuf%OFF,a, nc, stifn,
745 2 stig, fx, fy, fz,
746 3 iperm1, iperm2, npe, them,
747 4 fthe, condn, condeg, nel,
748 5 jthe, glob_therm%NODADT_THERM)
749 ELSE
751 1 gbuf%OFF, stig, fsky, fsky,
752 2 iads(1,nf1), fx, fy, fz,
753 3 iads16(1,nf2),nc, iperm1, iperm2,
754 4 npe, them, fthesky, condnsky,
755 5 condeg, nel, nft, jthe,
756 6 glob_therm%NODADT_THERM)
757 ENDIF
758
759 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)
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 s16bilan(partsav, eintg, rhog, volg, vol0g, vx, vy, vz, iparts, gresav, grth, igrth, iexpan, eintth, fill, x, y, z, itask, iparg, offg, sensors, nel, g_wpla, wpla)
subroutine s16sigp3(lft, llt, nel, nptr, nlay, nptt, icp, mtn, npe, nipmax, px, py, pz, vx, vy, vz, w_gauss, defp, pm, mxt, sig, dt1, elbuf_str)
subroutine s16sigs3(dxx, dyy, dzz, d4, d5, d6, rx, ry, rz, sx, sy, sz, tx, ty, tz, eint, vol0, sigs, mxt, pm, dt1, vol0dp, nel)
subroutine s20cumu3(offg, a, nc, stifn, stig, fx, fy, fz, iperm1, iperm2, npe, them, fthe, condn, condeg, nel, jthe, nodadt_therm)
subroutine s20cumu3p(offg, stig, fsky, fskyv, iads, fx, fy, fz, iadsp, nc, iperm1, iperm2, npe, them, fthesky, condnsky, condeg, nel, nft, jthe, nodadt_therm)
subroutine s20defo3(npe, px, py, pz, vx, vy, vz, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, rho, rhoo, volnp, voln, nel)
subroutine s20fint3(npe, sig, px, py, pz, ssp_eq, fx, fy, fz, vol, qvis, stig, stin, eint, rho, q, eplas, epsd, epsdg, sigg, eintg, rhog, qg, eplasg, wi, volg, vol0, vol0g, g_pla, nel, conde, deltax, condeg, israt, svis, nodadt_therm, g_wpla, l_wpla, g_wpla_flag)
subroutine s20tempcg(jft, jlt, npe, nc, ni, temp, tempel)
subroutine s20therm(npe, pm, imat, nc, vol, px, py, pz, ni, dt1, tempnc, tempel, heat, fphi, offg, off, nel, theaccfact)
subroutine sdlensh2(voln, llsh, area, 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 smalla3(sav, offg, off, wxx, wyy, wzz, nel, ismstr, jlag)
subroutine smallb3(offg, off, nel, ismstr)
subroutine srota3(sig, s1, s2, s3, s4, s5, s6, wxx, wyy, wzz, nel, mtn, ismstr)
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
subroutine s20coor3(x, v, ixs, ixs20, xx, yy, zz, vx, vy, vz, nc, ngl, mxt, ngeo, mass, dtelem, sti, sigg, eintg, rhog, qg, temp0, temp, nel, nintemp)
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
subroutine s16rst(r, s, t, ni, dnidr, dnids, dnidt)
subroutine s16deri3(ngl, off, r, s, t, w, dnidr, dnids, dnidt, dxdr, dydr, dzdr, dxds, dyds, dzds, dxdt, dydt, dzdt, xx, yy, zz, px, py, pz, vol, deltax, kxx, ni, volg, ul, voldp)
subroutine sxfillopt(npe, fill, sti, fx, fy, fz, nel)
subroutine tshgeodel3(ngl, offg, volg, area, volg0, l_sh, geo, nnod, dt, nel)