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