88
89
90
91 USE timer_mod
92 USE output_mod, only : output_
93 USE mmain_mod
95 USE mat_elem_mod
99 USE elbufdef_mod
100 use glob_therm_mod
101 USE sensor_mod
102 use element_mod , only : nixs
103
104
105
106#include "implicit_f.inc"
107
108
109
110#include "mvsiz_p.inc"
111
112
113
114#include "com01_c.inc"
115#include "com04_c.inc"
116#include "com08_c.inc"
117#include "vect01_c.inc"
118#include "parit_c.inc"
119#include "param_c.inc"
120
121
122
123 INTEGER NIPMAX,NPE
124 parameter(nipmax=81)
125 parameter(npe=20)
126
127
128
129 TYPE(TIMER_) ,INTENT(INOUT) :: TIMERS
130 TYPE(OUTPUT_) ,INTENT(INOUT) :: OUTPUT
131 INTEGER ,INTENT(IN) :: IDEL7NG
132 INTEGER ,INTENT(INOUT) :: IDEL7NOK
133 integer,dimension(102) :: IDTMIN
134 INTEGER ,INTENT(IN) :: MAXFUNC
135 INTEGER, INTENT(IN) :: SNPC
136 INTEGER, INTENT(IN) :: STF
137 INTEGER, INTENT(IN) :: SBUFMAT
138 INTEGER, INTENT(IN) :: IDTMINS
139 INTEGER, INTENT(IN) :: NSVOIS
140 INTEGER ,INTENT(IN) :: IRESP
141 INTEGER, INTENT(IN) :: IMPL_S
142 INTEGER, INTENT(IN) :: IDYNA
143 INTEGER, INTENT(IN) :: USERL_AVAIL
144 INTEGER, INTENT(IN) :: IMON_MAT
145 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
146 . IADS(8,*),IPARTS(*),IXS20(12,*),IADS20(12,*),IPM(*),
147 . GRTH(*),IGRTH(*),IGEO(*),ITASK,IOUTPRT
148 INTEGER NELTST,ITYPTST,OFFSET,NEL,ISTRAIN,
149 . IEXPAN,NG,H3D_STRAIN
151 . dt2t
153 . pm(*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*), flux(6,*),flu1(*),
154 . veul(*), fv(*), tf(*),temp(*), fthe(*),fthesky(*),gresav(*),
155 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*),voln(mvsiz)
157 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),volnp(mvsiz,nipmax),
158 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
159 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
160 . tx(mvsiz,nipmax),ty(mvsiz,nipmax),tz(mvsiz,nipmax),
161 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
162 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
163 . vx(mvsiz,npe),vy(mvsiz,npe),vz(mvsiz,npe),
164 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
165 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
166 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
167 . condn(*),condnsky(*)
168 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
169 TYPE (TTABLE) TABLE(*)
170 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
171 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
172 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
173 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
174 TYPE(DT_), INTENT(INOUT) :: DT
175 type (glob_therm_) ,intent(inout) :: glob_therm
176 type (sensors_),INTENT(INOUT) :: SENSORS
177
178
179
180 INTEGER I,N,NF1,NF2,ILAY,IP,IR,IS,IT,NPTT,NPTS,NPTR,IFLAG,IBID
181 INTEGER IBIDON(1), NN_DEL, PID, IMAT
182
183 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ), IPERM1(NPE),
184 .IPERM2(NPE)
185 INTEGER SZ_BID,SZ_IX
187 . vd2(mvsiz) , dvol(mvsiz),deltax(mvsiz),
188 . vis(mvsiz) , qvis(mvsiz), cxx(mvsiz) ,
189 . s1(mvsiz) , s2(mvsiz) , s3(mvsiz) ,
190 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
191 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
192 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
193 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
194 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),amu(mvsiz),divde(mvsiz)
195
196
198 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
199
200
202 . muvoid(mvsiz)
203
204
206 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
207 . r1_free(mvsiz),r3_free(mvsiz),
208 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe)
209 my_real,
dimension(mvsiz) :: fheat
210
211
212 INTEGER NC(MVSIZ,NPE)
214 . off(mvsiz) , rhoo(mvsiz),ni(npe,nipmax),
215 . dxy(mvsiz),dyx(mvsiz),
216 . dyz(mvsiz),dzy(mvsiz),volg(mvsiz),
217 . dzx(mvsiz),dxz(mvsiz),bid(mvsiz),aa,wi,bb, mbid(1),ll8(mvsiz),l_max(mvsiz)
219 double precision
220 . voldp(mvsiz,nipmax)
221
222 TYPE(L_BUFEL_) ,POINTER :: LBUF
223 TYPE(G_BUFEL_) ,POINTER :: GBUF
224
225
227 . w_gauss(9,9),a_gauss(9,9)
228 DATA w_gauss /
229
230 1 2.d0 ,0.d0 ,0.d0 ,
231 1 0.d0 ,0.d0 ,0.d0 ,
232 1 0.d0 ,0.d0 ,0.d0 ,
233 2 1.d0 ,1.d0 ,0.d0 ,
234 2 0.d0 ,0.d0 ,0.d0 ,
235 2 0.d0 ,0.d0 ,0.d0 ,
236 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
237 3 0.d0 ,0.d0 ,0.d0 ,
238 3 0.d0 ,0.d0 ,0.d0 ,
239 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
240 4 0.347854845137454d0,0.d0 ,0.d0 ,
241 4 0.d0 ,0.d0 ,0.d0 ,
242 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
243 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
244 5 0.d0 ,0.d0 ,0.d0 ,
245 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
246 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
247 6 0.d0 ,0.d0 ,0.d0 ,
248 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
249 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
250 7 0.129484966168870d0,0.d0 ,0.d0 ,
251 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
252 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
253 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
254 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
255 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
256 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
257
258 DATA a_gauss /
259 1 0.d0 ,0.d0 ,0.d0 ,
260 1 0.d0 ,0.d0 ,0.d0 ,
261 1 0.d0 ,0.d0 ,0.d0 ,
262 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
263 2 0.d0 ,0.d0 ,0.d0 ,
264 2 0.d0 ,0.d0 ,0.d0 ,
265 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
266 3 0.d0 ,0.d0 ,0.d0 ,
267 3 0.d0 ,0.d0 ,0.d0 ,
268 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
269 4 0.861136311594053d0,0.d0 ,0.d0 ,
270 4 0.d0 ,0.d0 ,0.d0 ,
271 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
272 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
273 5 0.d0 ,0.d0 ,0.d0 ,
274 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
275 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
276 6 0.d0 ,0.d0 ,0.d0 ,
277 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
278 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
279 7 0.949107912342759d0,0.d0 ,0.d0 ,
280 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
281 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
282 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
283 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
284 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
285 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
286
287
288
289 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
290 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
291
292
293
294 gbuf => elbuf_tab(ng)%GBUF
295
296 bid = zero
297 sz_bid = mvsiz
298 sz_ix=numelq+numels+nsvois
299 ibid = 0
300 ibidon = 0
301 tempel(:) = zero
302 fheat(:) = zero
303 nf1 = nft+1
304 nf2 = nf1-(numels8+numels10)
305
307 1 x, ixs(1,nf1), ixs20(1,nf2),v,
308 2 w, iperm1, iperm2, npe,
309 3 xx, yy, zz, vx,
310 4 vy, vz, vdxx, vdyy,
311 5 vdzz, vdx, vdy, vdz,
312 6 vd2, vis, gbuf%OFF, off,
313 7 gbuf%SMSTR, nc, ngl, mxt,
314 8 ngeo, fx, fy, fz,
315 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
316 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD, gbuf%G_PLA,
317 b gbuf%G_EPSD, nel, condeg, jale,
318 c ismstr, jeul, jlag)
319
320 nn_del = 0
321 pid = ngeo(1)
322 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
323 . nn_del=20
324 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=20
325
326 DO n=1,npe
327 DO i=1,nel
328 ul(i,n) = zero
329 ENDDO
330 ENDDO
331 DO i=1,nel
332 volg(i) = zero
333 ENDDO
334 IF(jthe < 0) them(1:nel,1:npe) = zero
335
336
337
338
339 nptr = elbuf_tab(ng)%NPTR
340 npts = elbuf_tab(ng)%NPTS
341 nptt = elbuf_tab(ng)%NPTT
342
343 ilay = 1
344 DO it=1,nptt
345 DO is=1,npts
346 DO ir=1,nptr
347 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
348
349
350 ip = ir + ( (is-1) + (it-1)*npts )*nptr
351 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
352
354 1 a_gauss(ir,nptr),a_gauss(is,npts),a_gauss(it,nptt),ni(1,ip),
355 2 dnidr ,dnids ,dnidt )
356
358 1 ngl, off, a_gauss(ir,nptr),a_gauss(is,npts),
359 2 a_gauss(it,nptt),wi, dnidr, dnids,
360 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
361 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
362 5 ty(1,ip), tz(1,ip), xx, yy,
363 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
364 7 volnp(1,ip), deltax, stin, ni(1,ip),
365 8 volg, ul, ir, is,
366 9 it, voldp(1,ip), nel)
367
368 ENDDO
369 ENDDO
370 ENDDO
371
372
373 DO i=1,nel
374 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
375 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
376 bb =
max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
377 . ul(i,15),ul(i,16),ul(i,17),ul(i,18),ul(i,19),ul(i,20))
378 aa = aa*sixty4
379 bb = bb*eighty16/seven
380 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
381 ENDDO
382
383
384 ilay = 1
385 DO it=1,nptt
386 DO is=1,npts
387 DO ir=1,nptr
388
389 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
390 ip = ir + ( (is-1) + (it-1)*npts )*nptr
391 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
392
394 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
395 2 vx, vy, vz, dxx,
396 3 dxy, dxz, dyx, dyy,
397 4 dyz, dzx, dzy, dzz,
398 5 d4, d5, d6, wxx,
399 6 wyy, wzz, lbuf%RHO, rhoo,
400 7 volnp(1,ip),voln, nel)
401
402 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
404 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
405 2 divde, flux(1,nf1),flu1(nf1), voln,
406 3 dvol, ngl, mxt, off,
407 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
408 5 amu, gbuf%OFF, nel, mtn,
409 6 jale, ismstr, jeul, jlag)
410
412 1 lbuf%SIG,s1, s2, s3,
413 2 s4, s5, s6, wxx,
414 3 wyy, wzz, nel, mtn,
415 4 ismstr)
416
417
418
420 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
421 2 wyy, wzz, nel, ismstr,
422 3 jlag)
423
424
425
426 IF (jthe < 0 ) THEN
427 CALL s20tempcg(1,nel,npe, nc,ni(1,ip),temp,tempel)
428 ENDIF
429
430
431
432 CALL mmain(timers, output,
433 1 elbuf_tab, ng, pm, geo,
434 2 ale_connect, ixs, iparg,
435 3 v, tf, npf, bufmat,
436 4 sti, x, dt2t, neltst,
437 5 ityptst, offset, nel, w,
438 6 off, ngeo, mxt, ngl,
439 7 voln, vd2, dvol, deltax,
440 8 vis, qvis, cxx, s1,
441 9 s2, s3, s4, s5,
442 a s6, dxx, dyy, dzz,
443 b d4, d5, d6, wxx,
444 c wyy, wzz, rx(1,ip), ry(1,ip),
445 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
446 e vdx, vdy, vdz, muvoid,
447 f ssp_eq, aire, sigy, et,
448 g r1_free, lbuf%PLA, r3_free, amu,
449 h bid, bid, bid, bid,
450 i bid, bid, bid, bid,
451 j bid, ipm, gama, bid,
452 k bid, bid, bid, bid,
453 l bid, bid, istrain, tempel,
454 m die, iexpan, ilay, mbid,
455 n mbid, ir, is, it,
456 o table, bid, bid, bid,
457 p bid, iparg(1,ng), igeo, conde,
458 q itask, nloc_dmg, varnl, mat_elem ,
459 r h3d_strain, jplasol, jsph, sz_bid,
460 * snpc, stf, sbufmat, glob_therm,
461 * svis, sz_ix, iresp,
462 * n2d, th_strain, ngroup, tt,
463 . dt1, ntable, numelq, nummat,
464 . numgeo, numnod, numels,
465 . idel7nok, idtmin, maxfunc,
466 . imon_mat, userl_avail, impl_s,
467 . idyna, dt, fheat ,sensors)
468
469 IF (istrain == 1) THEN
471 1 dxx, dyy, dzz, d4,
472 2 d5, d6, lbuf%STRA,wxx,
473 3 wyy, wzz, off, nel,
474 4 jcvt)
475 ENDIF
476
477
478
479
481 1 gbuf%OFF,off, nel, ismstr)
482
483
484
485
487 1 npe, lbuf%SIG, px(1,1,ip),py(1,1,ip),
488 2 pz(1,1,ip),ssp_eq, fx, fy,
489 3 fz, voln, qvis, stig,
490 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
491 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
492 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
493 7 wi, volg, lbuf%VOL, gbuf%VOL,
494 8 gbuf%G_PLA,nel, conde, deltax,
495 9 condeg, israt ,svis ,glob_therm%NODADT_THERM,
496 1 gbuf%WPLA, lbuf%WPLA,gbuf%G_WPLA)
497
498
499
500
501 IF (jthe < 0) THEN
502 imat = mxt(1)
503 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
505 1 npe, pm, imat, nc,
506 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
507 3 ni(1,ip), dt1, temp, tempel,
508 4 fheat, them, gbuf%OFF, lbuf%OFF,
509 5 nel ,glob_therm%THEACCFACT)
510 ELSE
512 1 npe, pm, imat, nc,
513 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
514 3 ni(1,ip), dt1, temp, tempel,
515 4 die , them, gbuf%OFF, lbuf%OFF,
516 5 nel ,glob_therm%THEACCFACT)
517 END IF
518 ENDIF
519
520 ENDDO
521 ENDDO
522 ENDDO
523
524 IF ( nn_del> 0) THEN
525 CALL sdlen8(ll8,volg,ixs(1,nf1),
526 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
527 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
528 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
529 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
530 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
531 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
533 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
534 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
535 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
536 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
537 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
538 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
539 CALL sgeodel3(ngl,gbuf%OFF,volg,ll8,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
540
541 END IF
542
543
544
545 iflag=mod(ncycle,ncpri)
546 IF (ioutprt>0)THEN
547 CALL s20bilan(partsav,gbuf%EINT,gbuf%RHO,volg,
548 . vx, vy, vz,iparts,gbuf%VOL,
549 . gresav,grth,igrth,iexpan,gbuf%EINTTH,
550 . gbuf%FILL, xx, yy, zz,itask,iparg(1,ng),
551 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
552 ENDIF
553
554
556 1 npe, gbuf%FILL,stig, fx,
557 2 fy, fz, nel)
558
559 IF (iparit == 0)THEN
561 1 gbuf%OFF,a, nc, stifn,
562 2 stig, fx, fy, fz,
563 3 iperm1, iperm2, npe, them,
564 4 fthe, condn, condeg, nel,
565 5 jthe, glob_therm%NODADT_THERM)
566 ELSE
568 1 gbuf%OFF, stig, fsky, fsky,
569 2 iads(1,nf1), fx, fy, fz,
570 3 iads20(1,nf2),nc, iperm1, iperm2,
571 4 npe, them, fthesky, condnsky,
572 5 condeg, nel, nft, jthe,
573 6 glob_therm%NODADT_THERM)
574 ENDIF
575
576 RETURN
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 s20bilan(partsav, eintg, rhog, volg, vx, vy, vz, iparts, vol0g, gresav, grth, igrth, iexpan, eintth, fill, x, y, z, itask, iparg, offg, sensors, nel, g_wpla, wpla)
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 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 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 sgeodel3(ngl, offg, volg, deltax, volg0, geo, l_max, dt, nel, idel7nok)
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 s20deri3(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, deltax2, ip, nip, ul, volg, voldp)
subroutine s20rst(r, s, t, ni, dnidr, dnids, dnidt)
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
subroutine sxfillopt(npe, fill, sti, fx, fy, fz, nel)