OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s20forc3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| s20forc3 ../engine/source/elements/solid/solide20/s20forc3.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!||--- calls -----------------------------------------------------
28!|| mmain ../engine/source/materials/mat_share/mmain.F90
29!|| s20bilan ../engine/source/elements/solid/solide20/s20bilan.F
30!|| s20coor3 ../engine/source/elements/solid/solide20/s20coor3.F
31!|| s20cumu3 ../engine/source/elements/solid/solide20/s20cumu3.F
32!|| s20cumu3p ../engine/source/elements/solid/solide20/s20cumu3p.F
33!|| s20defo3 ../engine/source/elements/solid/solide20/s20defo3.F
34!|| s20deri3 ../engine/source/elements/solid/solide20/s20deri3.F
35!|| s20fint3 ../engine/source/elements/solid/solide20/s20fint3.F
36!|| s20rst ../engine/source/elements/solid/solide20/s20rst.F
37!|| s20tempcg ../engine/source/elements/solid/solide20/s20tempcg.F
38!|| s20therm ../engine/source/elements/solid/solide20/s20therm.F
39!|| sdlen8 ../engine/source/elements/solid/solidez/sdlen8.F
40!|| sdlenmax ../engine/source/elements/solid/solide/sdlenmax.F
41!|| sgeodel3 ../engine/source/elements/solid/solide/sgeodel3.F
42!|| smalla3 ../engine/source/elements/solid/solide/smalla3.F
43!|| smallb3 ../engine/source/elements/solid/solide/smallb3.F
44!|| srho3 ../engine/source/elements/solid/solide/srho3.F
45!|| srota3 ../engine/source/elements/solid/solide/srota3.F
46!|| sstra3 ../engine/source/elements/solid/solide/sstra3.F
47!|| sxfillopt ../engine/source/elements/solid/solide10/sxfillopt.f
48!||--- uses -----------------------------------------------------
49!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
50!|| dt_mod ../engine/source/modules/dt_mod.F
51!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
52!|| element_mod ../common_source/modules/elements/element_mod.F90
53!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
54!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
55!|| mmain_mod ../engine/source/materials/mat_share/mmain.F90
56!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
57!|| output_mod ../common_source/modules/output/output_mod.F90
58!|| sensor_mod ../common_source/modules/sensor_mod.F90
59!|| table_mod ../engine/share/modules/table_mod.F
60!|| timer_mod ../engine/source/system/timer_mod.F90
61!||====================================================================
62 SUBROUTINE s20forc3(TIMERS,OUTPUT,
63 1 ELBUF_TAB, NG, PM, GEO,
64 2 IXS, X, A, V,
65 3 MS, W, FLUX, FLU1,
66 4 VEUL, FV, ALE_CONNECT,IPARG,
67 5 TF, NPF, BUFMAT, PARTSAV,
68 6 NLOC_DMG, DT2T, NELTST, ITYPTST,
69 7 STIFN, FSKY, IADS, OFFSET,
70 8 EANI, IPARTS, IXS20, IADS20,
71 9 NEL, FX, FY, FZ,
72 A VOLNP, RX, RY, RZ,
73 B SX, SY, SZ, TX,
74 C TY, TZ, STIG, STIN,
75 D UL, XX, YY, ZZ,
76 E VX, VY, VZ, VDXX,
77 F VDYY, VDZZ, DNIDR, DNIDS,
78 G DNIDT, PX, PY, PZ,
79 H IPM, ISTRAIN, TEMP, FTHE,
80 I FTHESKY, IEXPAN, GRESAV, GRTH,
81 J IGRTH, TABLE, IGEO, VOLN,
82 K CONDN, CONDNSKY, ITASK, IOUTPRT,
83 L MAT_ELEM, H3D_STRAIN, DT, IDEL7NOK,
84 M SNPC, STF, SBUFMAT, SVIS,
85 N IDTMINS, NSVOIS, IRESP, IDEL7NG,
86 O IDTMIN, MAXFUNC, IMON_MAT, USERL_AVAIL,
87 . GLOB_THERM, impl_s, idyna, SENSORS)
88C-----------------------------------------------
89C M o d u l e s
90C-----------------------------------------------
91 USE timer_mod
92 USE output_mod, only : output_
93 USE mmain_mod
94 USE table_mod
95 USE mat_elem_mod
98 USE dt_mod
99 USE elbufdef_mod
100 use glob_therm_mod
101 USE sensor_mod
102 use element_mod , only : nixs
103C-----------------------------------------------
104C I m p l i c i t T y p e s
105C-----------------------------------------------
106#include "implicit_f.inc"
107C-----------------------------------------------
108C G l o b a l P a r a m e t e r s
109C-----------------------------------------------
110#include "mvsiz_p.inc"
111C-----------------------------------------------
112C C o m m o n B l o c k s
113C-----------------------------------------------
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"
120C-----------------------------------------------
121C L o c a l P a r a m e t e r s
122C-----------------------------------------------
123 INTEGER NIPMAX,NPE
124 parameter(nipmax=81)
125 parameter(npe=20)
126C-----------------------------------------------
127C D u m m y A r g u m e n t s
128C-----------------------------------------------
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
150 my_real
151 . dt2t
152 my_real
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)
156 my_real
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
177C-----------------------------------------------
178C L o c a l V a r i a b l e s
179C-----------------------------------------------
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
186 my_real
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 ! variables used as arguments by materials
197 my_real
198 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
199
200 ! Variables used in argument by materials if SPH only.
201 my_real
202 . muvoid(mvsiz)
203
204 ! Variables void MMAIN
205 my_real
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 ! variables used only in solid routines (as arguments)
212 INTEGER NC(MVSIZ,NPE)
213 my_real
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)
218 my_real VARNL(NEL)
219 DOUBLE PRECISION
220 . VOLDP(MVSIZ,NIPMAX)
221C-----------------------------------------------
222 TYPE(l_bufel_) ,POINTER :: LBUF
223 TYPE(G_BUFEL_) ,POINTER :: GBUF
224
225c------------------------------------------------------------
226 my_real
227 . w_gauss(9,9),a_gauss(9,9)
228 DATA w_gauss /
229c---
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/
257c------------------------------------------------------------
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/
286C
287c------------------------------------------------------------
288C variables used as arguments by materials
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/
291C-----------------------------------------------
292C S o u r c e L i n e s
293C=======================================================================
294 gbuf => elbuf_tab(ng)%GBUF
295c
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)
305C
306 CALL s20coor3(
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)
319C
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
325c
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
335C
336C-----------------------------
337C POINTS D' INTEGRATION
338C-----------------------------
339 nptr = elbuf_tab(ng)%NPTR
340 npts = elbuf_tab(ng)%NPTS
341 nptt = elbuf_tab(ng)%NPTT
342C-------------
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)
352c
353 CALL s20rst(
354 1 a_gauss(ir,nptr),a_gauss(is,npts),a_gauss(it,nptt),ni(1,ip),
355 2 dnidr ,dnids ,dnidt )
356C
357 CALL s20deri3(
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)
367C
368 ENDDO
369 ENDDO
370 ENDDO
371C-------------
372C
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
382C
383C-------------
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)
392C--------
393 CALL s20defo3(
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)
401C
402 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
403 CALL srho3(
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
411 CALL srota3(
412 1 lbuf%SIG,s1, s2, s3,
413 2 s4, s5, s6, wxx,
414 3 wyy, wzz, nel, mtn,
415 4 ismstr)
416C-----------------------------
417C SMALL STRAIN
418C-----------------------------
419 CALL smalla3(
420 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
421 2 wyy, wzz, nel, ismstr,
422 3 jlag)
423C
424C for heat transfert
425C
426 IF (jthe < 0 ) THEN
427 CALL s20tempcg(1,nel,npe, nc,ni(1,ip),temp,tempel)
428 ENDIF
429C------------------------------------------------------
430C CALCUL DES CONTRAINTES SUIVANT LOIS CONSTITUTIVES
431C------------------------------------------------------
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)
468c
469 IF (istrain == 1) THEN
470 CALL sstra3(
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
477C-----------------------------
478C SMALL STRAIN
479C-----------------------------
480 CALL smallb3(
481 1 gbuf%OFF,off, nel, ismstr)
482C----------------------------
483C INTERNAL FORCES
484C----------------------------
485c
486 CALL s20fint3(
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)
497C
498C-------------------------
499c finite element heat transfert
500C--------------------------
501 IF (jthe < 0) THEN
502 imat = mxt(1)
503 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
504 CALL s20therm(
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
511 CALL s20therm(
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
523C
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)
532 CALL sdlenmax(l_max,
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 !( NN_DEL> 0) THEN
542C--------------------------
543C balances by material
544C--------------------------
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
553C
554c-----------------------------
555 IF(nfilsol/=0) CALL sxfillopt(
556 1 npe, gbuf%FILL,stig, fx,
557 2 fy, fz, nel)
558c-----------------------------
559 IF (iparit == 0)THEN
560 CALL s20cumu3(
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
567 CALL s20cumu3p(
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
575C-----------
576 RETURN
577 END
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
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)
Definition mmain.F:43
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)
Definition s20bilan.F:38
subroutine s20cumu3(offg, a, nc, stifn, stig, fx, fy, fz, iperm1, iperm2, npe, them, fthe, condn, condeg, nel, jthe, nodadt_therm)
Definition s20cumu3.F:35
subroutine s20cumu3p(offg, stig, fsky, fskyv, iads, fx, fy, fz, iadsp, nc, iperm1, iperm2, npe, them, fthesky, condnsky, condeg, nel, nft, jthe, nodadt_therm)
Definition s20cumu3p.F:36
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)
Definition s20defo3.F:37
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)
Definition s20fint3.F:40
subroutine s20forc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, ixs20, iads20, nel, fx, fy, fz, volnp, rx, ry, rz, sx, sy, sz, tx, ty, tz, stig, stin, ul, xx, yy, zz, vx, vy, vz, vdxx, vdyy, vdzz, dnidr, dnids, dnidt, px, py, pz, ipm, istrain, temp, fthe, fthesky, iexpan, gresav, grth, igrth, table, igeo, voln, condn, condnsky, itask, ioutprt, mat_elem, h3d_strain, dt, idel7nok, snpc, stf, sbufmat, svis, idtmins, nsvois, iresp, idel7ng, idtmin, maxfunc, imon_mat, userl_avail, glob_therm, impl_s, idyna, sensors)
Definition s20forc3.F:88
subroutine s20tempcg(jft, jlt, npe, nc, ni, temp, tempel)
Definition s20tempcg.F:30
subroutine s20therm(npe, pm, imat, nc, vol, px, py, pz, ni, dt1, tempnc, tempel, heat, fphi, offg, off, nel, theaccfact)
Definition s20therm.F:35
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)
Definition sdlen8.F:42
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)
Definition sdlenmax.F:40
subroutine sgeodel3(ngl, offg, volg, deltax, volg0, geo, l_max, dt, nel, idel7nok)
Definition sgeodel3.F:42
subroutine smalla3(sav, offg, off, wxx, wyy, wzz, nel, ismstr, jlag)
Definition smalla3.F:35
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:45
subroutine srota3(sig, s1, s2, s3, s4, s5, s6, wxx, wyy, wzz, nel, mtn, ismstr)
Definition srota3.F:43
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
Definition sstra3.F:47
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)
Definition s20coor3.F:38
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)
Definition s20deri3.F:38
subroutine s20rst(r, s, t, ni, dnidr, dnids, dnidt)
Definition s20deri3.F:505
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
Definition srho3.F:31
subroutine sxfillopt(npe, fill, sti, fx, fy, fz, nel)
Definition sxfillopt.F:33