OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s16bilan.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "vect01_c.inc"

Go to the source code of this file.

Functions/Subroutines

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)

Function/Subroutine Documentation

◆ s16bilan()

subroutine s16bilan ( partsav,
eintg,
rhog,
volg,
vol0g,
vx,
vy,
vz,
integer, dimension(*) iparts,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
integer iexpan,
eintth,
fill,
x,
y,
z,
integer itask,
integer, dimension(*) iparg,
dimension(mvsiz), intent(in) offg,
type (sensors_), intent(inout) sensors,
integer, intent(in) nel,
integer, intent(in) g_wpla,
intent(in) wpla )

Definition at line 33 of file s16bilan.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE sensor_mod
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "param_c.inc"
54#include "vect01_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER IEXPAN,
59 . IPARTS(*),GRTH(*),IGRTH(*),IPARG(*),ITASK
61 . partsav(npsav,*), eintg(*), rhog(*),
62 . vx(mvsiz,*),vy(mvsiz,*),vz(mvsiz,*),
63 . volg(*),vol0g(*),gresav(*),eintth(*), fill(*),
64 . x(mvsiz,*),y(mvsiz,*),z(mvsiz,*)
65 my_real, INTENT(IN) :: offg(mvsiz)
66 type (sensors_),INTENT(INOUT) :: SENSORS
67 INTEGER, INTENT(IN) :: NEL,G_WPLA
68 my_real,DIMENSION(NEL*G_WPLA), INTENT(IN) :: wpla
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER I, M, N, FLAG
74 . x1, x2, x3, v1, v2, v3, fac,
75 . vxa(mvsiz), vya(mvsiz) , vza(mvsiz),
76 . va2(mvsiz), xmas(mvsiz),
77 . off(mvsiz), ei(mvsiz) , ek(mvsiz),
78 . xm(mvsiz) , ym(mvsiz) , zm(mvsiz),
79 . xx(mvsiz) , yy(mvsiz) , zz(mvsiz),
80 . xy(mvsiz) , yz(mvsiz) , zx(mvsiz),
81 . xx2(mvsiz), yy2(mvsiz), zz2(mvsiz),
82 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
83 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
84 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
85 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
86 . rei(mvsiz), rek(mvsiz), off_l(mvsiz)
87C-----------------------------------------------
88 flag = iparg(80) ! Flag pour sorties additionnelles
89C-----------------------------------------------
90C CALCUL BILAN SORTIES DEF
91C-----------------------------------------------
92 n = 1
93 DO i=lft,llt
94 v1=vx(i,n)
95 v2=vy(i,n)
96 v3=vz(i,n)
97 vxa(i)=v1
98 vya(i)=v2
99 vza(i)=v3
100 va2(i)=(v1**2+v2**2+v3**2)
101 ENDDO
102C
103 DO n=2,8
104 DO i=lft,llt
105 v1=vx(i,n)
106 v2=vy(i,n)
107 v3=vz(i,n)
108 vxa(i)=vxa(i)+v1
109 vya(i)=vya(i)+v2
110 vza(i)=vza(i)+v3
111 va2(i)=va2(i)+(v1**2+v2**2+v3**2)
112 ENDDO
113 ENDDO
114C
115 DO i=lft,llt
116 vxa(i)=vxa(i)/three
117 vya(i)=vya(i)/three
118 vza(i)=vza(i)/three
119 va2(i)=va2(i)/three
120 ENDDO
121C
122 DO n=9,16
123 DO i=lft,llt
124 v1=vx(i,n)
125 v2=vy(i,n)
126 v3=vz(i,n)
127 vxa(i)=vxa(i)+v1
128 vya(i)=vya(i)+v2
129 vza(i)=vza(i)+v3
130 va2(i)=va2(i)+(v1**2+v2**2+v3**2)
131 ENDDO
132 ENDDO
133C
134 fac = three/thirty2
135 DO i=lft,llt
136 vxa(i)=vxa(i)*fac
137 vya(i)=vya(i)*fac
138 vza(i)=vza(i)*fac
139 va2(i)=va2(i)*fac
140 ENDDO
141C
142 DO i=lft,llt
143 xmas(i)= fill(i)*rhog(i)*volg(i)
144 ei(i) = fill(i)*eintg(i)*vol0g(i)
145 ek(i) = xmas(i)*va2(i)*half
146 xm(i) = xmas(i)*vxa(i)
147 ym(i) = xmas(i)*vya(i)
148 zm(i) = xmas(i)*vza(i)
149 ENDDO
150C
151 DO i=lft,llt
152 m=iparts(i)
153 partsav(1,m)=partsav(1,m) + fill(i)*eintg(i)*vol0g(i)
154 partsav(2,m)=partsav(2,m) + xmas(i)*va2(i)*half
155 partsav(3,m)=partsav(3,m) + xmas(i)*vxa(i)
156 partsav(4,m)=partsav(4,m) + xmas(i)*vya(i)
157 partsav(5,m)=partsav(5,m) + xmas(i)*vza(i)
158 IF (offg(i) >= one) partsav(6,m)=partsav(6,m) + xmas(i)
159 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
160 ENDDO
161C
162C-----------------------------------------------
163C CALCUL BILAN SORTIES ADDITIONNELLES
164C-----------------------------------------------
165 IF(flag==1) THEN
166 n = 1
167 DO i=lft,llt
168 x1=x(i,n)
169 x2=y(i,n)
170 x3=z(i,n)
171 xx(i)=x1
172 yy(i)=x2
173 zz(i)=x3
174 xx2(i)=(x1**2)
175 yy2(i)=(x2**2)
176 zz2(i)=(x3**2)
177 xy(i)=(x1*x2)
178 yz(i)=(x2*x3)
179 zx(i)=(x3*x1)
180 ENDDO
181C
182 DO n=2,8
183 DO i=lft,llt
184 x1=x(i,n)
185 x2=y(i,n)
186 x3=z(i,n)
187 xx(i)=xx(i)+x1
188 yy(i)=yy(i)+x2
189 zz(i)=zz(i)+x3
190 xx2(i)=xx2(i)+(x1**2)
191 yy2(i)=yy2(i)+(x2**2)
192 zz2(i)=zz2(i)+(x3**2)
193 xy(i)=xy(i)+(x1*x2)
194 yz(i)=yz(i)+(x2*x3)
195 zx(i)=zx(i)+(x3*x1)
196 ENDDO
197 ENDDO
198C
199 DO i=lft,llt
200 xx(i)=xx(i)/three
201 yy(i)=yy(i)/three
202 zz(i)=zz(i)/three
203 xy(i)=xy(i)/three
204 yz(i)=yz(i)/three
205 zx(i)=zx(i)/three
206 xx2(i)=xx2(i)/three
207 yy2(i)=yy2(i)/three
208 zz2(i)=zz2(i)/three
209 ENDDO
210C
211 DO n=9,16
212 DO i=lft,llt
213 x1=x(i,n)
214 x2=y(i,n)
215 x3=z(i,n)
216 xx(i)=xx(i)+x1
217 yy(i)=yy(i)+x2
218 zz(i)=zz(i)+x3
219 xx2(i)=xx2(i)+(x1**2)
220 yy2(i)=yy2(i)+(x2**2)
221 zz2(i)=zz2(i)+(x3**2)
222 xy(i)=xy(i)+(x1*x2)
223 yz(i)=yz(i)+(x2*x3)
224 zx(i)=zx(i)+(x3*x1)
225 ENDDO
226 ENDDO
227C
228 fac = three/thirty2
229 DO i=lft,llt
230 xx(i)=xx(i)*fac
231 yy(i)=yy(i)*fac
232 zz(i)=zz(i)*fac
233 xy(i)=xy(i)*fac
234 yz(i)=yz(i)*fac
235 zx(i)=zx(i)*fac
236 xx2(i)=xx2(i)*fac
237 yy2(i)=yy2(i)*fac
238 zz2(i)=zz2(i)*fac
239 ENDDO
240C
241 DO i=lft,llt
242 xcg(i)= xmas(i)*xx(i)
243 ycg(i)= xmas(i)*yy(i)
244 zcg(i)= xmas(i)*zz(i)
245 ixy(i)= -xmas(i)*xy(i)
246 iyz(i)= -xmas(i)*yz(i)
247 izx(i)= -xmas(i)*zx(i)
248 ixx(i)= xmas(i)*(yy2(i) + zz2(i))
249 iyy(i)= xmas(i)*(zz2(i) + xx2(i))
250 izz(i)= xmas(i)*(xx2(i) + yy2(i))
251 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
252 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
253 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
254 rei(i)= zero
255 rek(i)= zero
256 ENDDO
257C
258 DO i=lft,llt
259 m=iparts(i)
260 partsav(9,m) =partsav(9,m) + xcg(i)
261 partsav(10,m)=partsav(10,m) + ycg(i)
262 partsav(11,m)=partsav(11,m) + zcg(i)
263 partsav(12,m)=partsav(12,m) + xxm(i)
264 partsav(13,m)=partsav(13,m) + yym(i)
265 partsav(14,m)=partsav(14,m) + zzm(i)
266 partsav(15,m)=partsav(15,m) + ixx(i)
267 partsav(16,m)=partsav(16,m) + iyy(i)
268 partsav(17,m)=partsav(17,m) + izz(i)
269 partsav(18,m)=partsav(18,m) + ixy(i)
270 partsav(19,m)=partsav(19,m) + iyz(i)
271 partsav(20,m)=partsav(20,m) + izx(i)
272 partsav(21,m)=partsav(21,m) + rei(i)
273 partsav(22,m)=partsav(22,m) + rek(i)
274
275 ENDDO
276 ENDIF
277C
278C-----------------------------------------------
279 IF (igre /= 0) THEN
280 DO i=lft,llt
281 off(i) = one
282 ENDDO
283 CALL grelem_sav(lft ,llt ,gresav,igrth ,grth ,
284 2 off ,ei ,ek ,xm ,ym ,
285 3 zm ,xmas ,xcg ,ycg ,zcg ,
286 4 xxm ,yym ,zzm ,ixx ,iyy ,
287 5 izz ,ixy ,iyz ,izx ,rei ,
288 6 rek ,flag )
289 ENDIF
290C-----------------------------------------------
291C
292 IF(iexpan/=0)THEN
293 DO i=lft,llt
294 m=iparts(i)
295 partsav(27,m)=partsav(27,m) + eintth(i)*vol0g(i)
296 ENDDO
297 ENDIF
298
299 off_l(lft:llt) = one
300C
301 DO i = lft,llt
302 m=iparts(i)
303 IF (offg(i) < one) THEN
304 partsav(25,m) = partsav(25,m) + one
305 ENDIF
306 ENDDO
307C
308 CALL sensor_energy_bilan(lft,llt,ei,ek,off_l,iparts,itask,sensors)
309C-----------
310 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine grelem_sav(jft, jlt, gresav, igrth, grth, off, ei, ek, xm, ym, zm, xmas, xcg, ycg, zcg, xxm, yym, zzm, ixx, iyy, izz, ixy, iyz, izx, rei, rek, flag)
Definition grelem_sav.F:54
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)