OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8forc3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "vect01_c.inc"
#include "parit_c.inc"
#include "timeri_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s8forc3 (timers, output, elbuf_str, pm, geo, ixs, x, a, v, ms, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, stifn, fsky, iads, offset, iparts, nel, dt2t, neltst, ityptst, ipm, itask, gresav, grth, igrth, mssa, dmels, table, ioutprt, mat_elem, ng, svis, glob_therm, snpc, numgeo, sbufmat, stf, ntable, sensors)

Function/Subroutine Documentation

◆ s8forc3()

subroutine s8forc3 ( type(timer_), intent(inout) timers,
type(output_), intent(inout) output,
type (elbuf_struct_), target elbuf_str,
pm,
geo,
integer, dimension(*) ixs,
x,
a,
v,
ms,
veul,
fv,
type(t_ale_connectivity), intent(in) ale_connect,
integer, dimension(nparg,*) iparg,
tf,
integer, dimension(*) npf,
bufmat,
partsav,
stifn,
fsky,
integer, dimension(8,*) iads,
integer offset,
integer, dimension(*) iparts,
integer nel,
dt2t,
integer neltst,
integer ityptst,
integer, dimension(*) ipm,
integer itask,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
mssa,
dmels,
type(ttable), dimension(*) table,
integer ioutprt,
type (mat_elem_), intent(inout), target mat_elem,
integer ng,
intent(inout) svis,
type (glob_therm_), intent(inout) glob_therm,
integer, intent(in) snpc,
integer, intent(in) numgeo,
integer, intent(in) sbufmat,
integer, intent(in) stf,
integer, intent(in) ntable,
type (sensors_), intent(inout) sensors )

Definition at line 54 of file s8forc3.F.

64C-----------------------------------------------
65C M o d u l e s
66C-----------------------------------------------
67 USE timer_mod
68 USE output_mod, ONLY : output_
69 USE table_mod
70 USE mat_elem_mod
72 USE elbufdef_mod
73 use glob_therm_mod
74 USE sensor_mod
75C-----------------------------------------------
76C I m p l i c i t T y p e s
77C-----------------------------------------------
78#include "implicit_f.inc"
79C-----------------------------------------------
80C G l o b a l P a r a m e t e r s
81C-----------------------------------------------
82#include "mvsiz_p.inc"
83C-----------------------------------------------
84C C o m m o n B l o c k s
85C-----------------------------------------------
86#include "com01_c.inc"
87#include "vect01_c.inc"
88#include "parit_c.inc"
89#include "timeri_c.inc"
90#include "param_c.inc"
91C-----------------------------------------------
92C D u m m y A r g u m e n t s
93C-----------------------------------------------
94 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
95 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
96 INTEGER,INTENT(IN) :: SNPC
97 INTEGER,INTENT(IN) :: NUMGEO
98 INTEGER,INTENT(IN) :: SBUFMAT
99 INTEGER,INTENT(IN) :: STF
100 INTEGER,INTENT(IN) :: NTABLE
101 INTEGER IXS(*), IPARG(NPARG,*), NPF(*),IADS(8,*),
102 . IPARTS(*),IPM(*),OFFSET,NEL, NELTST, ITYPTST,ITASK,
103 . GRTH(*),IGRTH(*) ,IOUTPRT, NG
104C REAL
105 my_real
106 . pm(*), geo(*), x(*), a(*), v(*), ms(*),
107 . veul(*), fv(*),tf(*), bufmat(*),
108 . partsav(*),stifn(*),fsky(*), dt2t,gresav(*), mssa(*), dmels(*)
109 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
110 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
111 TYPE (MAT_ELEM_) ,TARGET ,INTENT(INOUT) :: MAT_ELEM
112 TYPE(TTABLE) TABLE(*)
113 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
114 type (glob_therm_) ,intent(inout) :: glob_therm
115 type (sensors_),INTENT(INOUT) :: SENSORS
116C-----------------------------------------------
117C L o c a l V a r i a b l e s
118C-----------------------------------------------
119 INTEGER I,LCO,IFLAG,IPT,IBI
120 INTEGER NC(8,MVSIZ),MXT(MVSIZ),NGL(MVSIZ),PID(MVSIZ)
121 my_real
122 . fbi
123 my_real
124 . xloc(mvsiz,8), yloc(mvsiz,8), zloc(mvsiz,8),
125 . vxloc(mvsiz,8),vyloc(mvsiz,8),vzloc(mvsiz,8),
126 . px1(mvsiz,8),px2(mvsiz,8),px3(mvsiz,8),px4(mvsiz,8),
127 . px5(mvsiz,8),px6(mvsiz,8),px7(mvsiz,8),px8(mvsiz,8),
128 . py1(mvsiz,8),py2(mvsiz,8),py3(mvsiz,8),py4(mvsiz,8),
129 . py5(mvsiz,8),py6(mvsiz,8),py7(mvsiz,8),py8(mvsiz,8),
130 . pz1(mvsiz,8),pz2(mvsiz,8),pz3(mvsiz,8),pz4(mvsiz,8),
131 . pz5(mvsiz,8),pz6(mvsiz,8),pz7(mvsiz,8),pz8(mvsiz,8),
132 . d1(mvsiz,8), d2(mvsiz,8), d3(mvsiz,8), d4(mvsiz,8),
133 . d5(mvsiz,8), d6(mvsiz,8),
134 . volgp(mvsiz,8), voln(mvsiz),deltax(mvsiz), vd2(mvsiz),
135 . wxx(mvsiz,8),wyy(mvsiz,8),wzz(mvsiz,8),dvol(mvsiz),
136 . rho0(mvsiz), sti(mvsiz),gama(mvsiz,6), off(mvsiz),
137 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
138 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
139 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
140 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz)
141C Variables utilisees en arguments dans les routines solides
142 my_real
143 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
144 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
145 . r31(mvsiz),r32(mvsiz),r33(mvsiz)
146 my_real :: ssp(mvsiz)
147 my_real :: f11(mvsiz),f12(mvsiz),f13(mvsiz),f14(mvsiz),
148 . f15(mvsiz), f16(mvsiz), f17(mvsiz), f18(mvsiz), f21(mvsiz),
149 . f22(mvsiz), f23(mvsiz), f24(mvsiz), f25(mvsiz), f26(mvsiz),
150 . f27(mvsiz), f28(mvsiz), f31(mvsiz), f32(mvsiz), f33(mvsiz),
151 . f34(mvsiz), f35(mvsiz), f36(mvsiz), f37(mvsiz), f38(mvsiz)
152
153C
154
155 my_real,
156 . DIMENSION(:), POINTER :: eint
157C-----
158 TYPE(G_BUFEL_) ,POINTER :: GBUF
159 TYPE(L_BUFEL_) ,POINTER :: LBUF
160C=======================================================================
161 gbuf => elbuf_str%GBUF
162C-----
163 lco=1+11*nft
164C--------------------------
165C-----------------------------------------------
166C GATHERING VECTEURS LOCAUX
167C-----------------------------------------------
168 IF (jcvt==0) THEN
169 CALL s8coor3(
170 1 gbuf%OFF,off, x, v,
171 2 ixs(lco),xloc, yloc, zloc,
172 3 vxloc, vyloc, vzloc, mxt,
173 4 nc, ngl, pid, nel)
174 ELSE
175 CALL sr8coor3(gbuf%OFF,off,x,v,ixs(lco),
176 . xloc,yloc,zloc,vxloc,vyloc,vzloc,
177 . mxt,nc,ngl,pid,
178 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
179 . ioutprt,vgxa,vgya,vgza,vga2,nel,
180 . xgxa,xgya,xgza,xgxa2,xgya2,xgza2,
181 . xgxya,xgyza,xgzxa,iparg(1,ng))
182 ENDIF
183C-----------------------------------------------
184C FONCTIONS DE FORME, DEFORMATION, ET OBJECTIVITE
185C PXJ(K,I) FONCTION J DU PT INTEGRATION K ELEMENT I
186C-----------------------------------------------
187 CALL s8deri3(
188 1 xloc, yloc, zloc, px1,
189 2 px2, px3, px4, px5,
190 3 px6, px7, px8, py1,
191 4 py2, py3, py4, py5,
192 5 py6, py7, py8, pz1,
193 6 pz2, pz3, pz4, pz5,
194 7 pz6, pz7, pz8, volgp,
195 8 voln, deltax, ngl, off,
196 9 nel)
197 CALL s8lagr3(
198 1 pm, gbuf%VOL, gbuf%RHO, gbuf%EINT,
199 2 mxt, voln, rho0, dvol,
200 3 vd2, nel)
201C
202 DO ipt = 1,npt
203 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ipt)
204 CALL s8defo3(
205 1 vxloc, vyloc, vzloc, px1,
206 2 px2, px3, px4, px5,
207 3 px6, px7, px8, py1,
208 4 py2, py3, py4, py5,
209 5 py6, py7, py8, pz1,
210 6 pz2, pz3, pz4, pz5,
211 7 pz6, pz7, pz8, ipt,
212 8 d1, d2, d3, d4,
213 9 d5, d6, wxx(1,ipt),wyy(1,ipt),
214 a wzz(1,ipt),nel, jcvt)
215 CALL s8rota3(
216 1 lbuf%SIG, wxx(1,ipt),wyy(1,ipt),wzz(1,ipt),
217 2 nel, jcvt)
218 ENDDO
219C------------------------------------------------------
220C CALCUL DES CONTRAINTES SUIVANT LOIS CONSTITUTIVES
221C------------------------------------------------------
222 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
223 CALL mmain8(timers, output, pm ,geo ,elbuf_str,mat_elem ,
224 2 ixs ,iparg ,v ,tf ,
225 3 npf ,bufmat,sti ,x ,d1 ,
226 4 d2 ,d3 ,d4 ,d5 ,d6 ,
227 5 volgp,deltax,voln ,dvol ,vd2 ,
228 6 rho0 ,mxt ,nc ,ngl ,fv ,
229 7 nel ,wxx ,wyy ,wzz ,pid ,
230 8 dt2t ,neltst,ityptst,r11 ,r21 ,
231 9 r31 ,r12 ,r22 ,r32 ,r13 ,
232 a r23 ,r33 ,off ,ipm ,gama ,
233 b mssa ,dmels ,table ,ssp ,itask ,
234 c svis ,snpc ,numgeo ,sbufmat ,stf ,
235 d ntable)
236 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
237C--------------------------
238C BILANS PAR MATERIAU
239C--------------------------
240 iflag=mod(ncycle,ncpri)
241 IF(ioutprt>0)THEN
242c NB3S = NB3
243c IF (MTN==11) NB3S = NB14
244 IF (mtn == 11) THEN
245 eint => elbuf_str%GBUF%EINS(1:nel)
246 ELSE
247 eint => elbuf_str%GBUF%EINT(1:nel)
248 ENDIF
249 IF (jcvt==0)THEN
250 CALL s8bilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
251 . voln,vxloc,vyloc,vzloc,iparts,
252 . gresav,grth,igrth,xloc,yloc,zloc,itask,iparg(1,ng),sensors)
253 ELSE
254 CALL sr8bilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
255 . voln,vgxa,vgya,vgza,vga2,iparts,
256 . gresav,grth,igrth,xgxa,xgya,xgza,
257 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),sensors)
258 ENDIF
259 ENDIF
260C----------------------------
261C OFF
262C----------------------------
263 CALL smallb3(
264 1 gbuf%OFF,off, nel, ismstr)
265C----------------------------
266C INTERNAL FORCES
267C----------------------------
268 CALL s8fint3(elbuf_str%BUFLY(1) ,volgp,gbuf%QVIS,
269 . px1,px2,px3,px4,px5,px6,px7,px8,
270 . py1,py2,py3,py4,py5,py6,py7,py8,
271 . pz1,pz2,pz3,pz4,pz5,pz6,pz7,pz8,nel,
272 . f11, f12, f13, f14,
273 . f15, f16, f17, f18, f21,
274 . f22, f23, f24, f25, f26,
275 . f27, f28, f31, f32, f33,
276 . f34, f35, f36, f37, f38,
277 . svis)
278
279C----------------------------
280C CONVECTE --> GLOBAL.
281C----------------------------
282 IF (jcvt==1) THEN
283 CALL srrota3(
284 1 r11, r21, r31, r12,
285 2 r22, r32, r13, r23,
286 3 r33, f11, f12, f13,
287 4 f14, f15, f16, f17,
288 5 f18, f21, f22, f23,
289 6 f24, f25, f26, f27,
290 7 f28, f31, f32, f33,
291 8 f34, f35, f36, f37,
292 9 f38, nel)
293 ENDIF
294C-------------------------
295C ASSEMBLE
296C-------------------------
297 IF(iparit==0)THEN
298 CALL s8cumu3(
299 1 gbuf%OFF,a, nc, stifn,
300 2 sti, f11, f21, f31,
301 3 f12, f22, f32, f13,
302 4 f23, f33, f14, f24,
303 5 f34, f15, f25, f35,
304 6 f16, f26, f36, f17,
305 7 f27, f37, f18, f28,
306 8 f38, nel)
307 ELSE
308 fbi = zero
309 CALL scumu3p(
310 1 gbuf%OFF,sti, fsky, fsky,
311 2 iads, f11, f21, f31,
312 3 f12, f22, f32, f13,
313 4 f23, f33, f14, f24,
314 5 f34, f15, f25, f35,
315 6 f16, f26, f36, f17,
316 7 f27, f37, f18, f28,
317 8 f38, ibi, ibi, ibi,
318 9 ibi, ibi, ibi, ibi,
319 a ibi, fbi, fbi, fbi,
320 b fbi, fbi, fbi, fbi,
321 c fbi, fbi, fbi, fbi,
322 d fbi, fbi, fbi, fbi,
323 e fbi, fbi, fbi, fbi,
324 f fbi, fbi, fbi, fbi,
325 g fbi, fbi, fbi, fbi,
326 h fbi, fbi, fbi, fbi,
327 i nel, nft, jthe, isrot,
328 j ipartsph,glob_therm%NODADT_THERM)
329 ENDIF
330C
331C-----------
332 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine mmain8(timers, output, pm, geo, elbuf_str, mat_elem, ix, iparg, v, tf, npf, bufmat, stifn, x, d1, d2, d3, d4, d5, d6, volgp, deltax, voln, dvol, vd2, rho0, mat, nc, ngl, fv, nel, wxx, wyy, wzz, pid, dt2t, neltst, ityptst, rx, ry, rz, sx, sy, sz, tx, ty, tz, off, ipm, gama, mssa, dmels, table, ssp, itask, svis, snpc, numgeo, sbufmat, stf, ntable)
Definition mmain8.F:69
subroutine s8bilan(partsav, eint, rho, rk, vol, vnew, vx, vy, vz, iparts, gresav, grth, igrth, x, y, z, itask, iparg, sensors)
Definition s8bilan.F:36
subroutine s8coor3(offg, off, x, v, ixs, xloc, yloc, zloc, vxloc, vyloc, vzloc, mxt, nc, ngl, pid, nel)
Definition s8coor3.F:33
subroutine s8cumu3(offg, e, nc, 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, nel)
Definition s8cumu3.F:37
subroutine s8defo3(vx, vy, vz, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, ipt, d1, d2, d3, d4, d5, d6, wxx, wyy, wzz, nel, jcvt)
Definition s8defo3.F:39
subroutine s8deri3(x, y, z, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, vlinc, vol, deltax, ngl, off, nel)
Definition s8deri3.F:44
subroutine s8fint3(bufly, volgp, qvis, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, nel, f11, f12, f13, f14, f15, f16, f17, f18, f21, f22, f23, f24, f25, f26, f27, f28, f31, f32, f33, f34, f35, f36, f37, f38, svis)
Definition s8fint3.F:39
subroutine s8lagr3(pm, vol0, rho, eint, mxt, voln, rho0, dvol, vd2, nel)
Definition s8lagr3.F:32
subroutine s8rota3(sig, wxx, wyy, wzz, nel, jcvt)
Definition s8rota3.F:31
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)
Definition scumu3p.F:56
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:44
subroutine sr8bilan(partsav, eint, rho, rk, vol, vnew, vxa, vya, vza, va2, iparts, gresav, grth, igrth, xx, yy, zz, xx2, yy2, zz2, xy, yz, zx, itask, iparg, sensors)
Definition sr8bilan.F:37
subroutine sr8coor3(offg, off, x, v, ixs, xloc, yloc, zloc, vxloc, vyloc, vzloc, mxt, nc, ngl, pid, r11, r12, r13, r21, r22, r23, r31, r32, r33, ioutprt, vgax, vgay, vgaz, vga2, nel, xgax, xgay, xgaz, xgxa2, xgya2, xgza2, xgxya, xgyza, xgzxa, iparg)
Definition sr8coor3.F:38
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)
Definition srrota3.F:33
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135