37 SUBROUTINE sbilan(PARTSAV,EINT,RHO,RK,VOL,
38 . VX1, VX2, VX3, VX4, VX5, VX6, VX7, VX8,
39 . VY1, VY2, VY3, VY4, VY5, VY6, VY7, VY8,
40 . VZ1, VZ2, VZ3, VZ4, VZ5, VZ6, VZ7, VZ8,
41 . VNEW,IPARTS,GRESAV,GRTH,IGRTH, OFF,
42 . IEXPAN,EINTTH,FILL,MOM,NEL,IFVM22,
43 . X1, X2, X3, X4, X5, X6, X7, X8,
44 . Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8,
45 . Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8,
46 . ITASK,IPARG,SENSORS,G_WPLA,WPLA)
54#include "implicit_f.inc"
63#include "vect01_c.inc"
68 my_real,
INTENT(IN) :: mom(nel,3)
70 . partsav(npsav,*), eint(nel), rho(nel), rk(nel), vol(nel),
71 . vx1(*), vx2(*), vx3(*), vx4(*), vx5(*), vx6(*), vx7(*), vx8(*),
72 . vy1(*), vy2(*), vy3(*), vy4(*), vy5(*), vy6(*), vy7(*), vy8(*),
73 . vz1(*), vz2(*), vz3(*), vz4(*), vz5(*), vz6(*), vz7(*), vz8(*),
74 . vnew(nel), gresav(*), off(nel), eintth(nel), fill(nel),
75 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
76 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
77 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*)
78 INTEGER,
INTENT(IN) :: G_WPLA
79 my_real,
DIMENSION(NEL*G_WPLA),
INTENT(IN) :: WPLA
81 . IPARTS(*),GRTH(*),IGRTH(*),IPARG(*),NEL
82 INTEGER,
INTENT(IN) :: IFVM22
83 type (sensors_),
INTENT(INOUT) :: SENSORS
90 . vxa(mvsiz), vya(mvsiz) , vza(mvsiz),
91 . va2(mvsiz), xmas(mvsiz),
92 . ei(mvsiz) , ek(mvsiz),
93 . xm(mvsiz) , ym(mvsiz) , zm(mvsiz),
94 . xx(mvsiz) , yy(mvsiz) , zz(mvsiz),
95 . xy(mvsiz) , yz(mvsiz) , zx(mvsiz),
96 . xx2(mvsiz), yy2(mvsiz), zz2(mvsiz),
97 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
98 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
99 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
100 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
101 . rei(mvsiz), rek(mvsiz), off_l(mvsiz)
108 IF(int22==0 .OR. ifvm22==0)
THEN
111 vxa(i)=vx1(i)+vx2(i)+vx3(i)+vx4(i)+vx5(i)+vx6(i)+vx7(i)+vx8(i)
112 vya(i)=vy1(i)+vy2(i)+vy3(i)+vy4(i)+vy5(i)+vy6(i)+vy7(i)+vy8(i)
113 vza(i)=vz1(i)+vz2(i)+vz3(i)+vz4(i)+vz5(i)+vz6(i)+vz7(i)+vz8(i)
114 va2(i)=vx1(i)**2+vx2(i)**2+vx3(i)**2+vx4(i)**2
115 1 +vx5(i)**2+vx6(i)**2+vx7(i)**2+vx8(i)**2
116 2 +vy1(i)**2+vy2(i)**2+vy3(i)**2+vy4(i)**2
117 3 +vy5(i)**2+vy6(i)**2+vy7(i)**2+vy8(i)**2
118 4 +vz1(i)**2+vz2(i)**2+vz3(i)**2+vz4(i)**2
119 5 +vz5(i)**2+vz6(i)**2+vz7(i)**2+vz8(i)**2
122 vxa(i)=vxa(i)*one_over_8
123 vya(i)=vya(i)*one_over_8
124 vza(i)=vza(i)*one_over_8
125 va2(i)=va2(i)*one_over_8
130 vxa(i) = mom(i,1)/rho(i)/vol(i)
131 vya(i) = mom(i,2)/rho(i)/vol(i)
132 vza(i) = mom(i,3)/rho(i)/vol(i)
133 va2(i) = (vxa(i)**2 + vya(i)**2 + vza(i)**2)
138 xmas(i)= fill(i)*rho(i)*vnew(i)
139 ei(i) = fill(i)*eint(i)*vol(i)
140 ek(i) = xmas(i)*va2(i)*half
141 xm(i) = xmas(i)*vxa(i)
142 ym(i) = xmas(i)*vya(i)
143 zm(i) = xmas(i)*vza(i)
149 partsav(1,m)=partsav(1,m) + ei(i)
150 partsav(2,m)=partsav(2,m) + ek(i)
151 partsav(3,m)=partsav(3,m) + xm(i)
152 partsav(4,m)=partsav(4,m) + ym(i)
153 partsav(5,m)=partsav(5,m) + zm(i)
154 IF (off(i) >= one) partsav(6,m)=partsav(6,m) + xmas(i)
155 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
159 IF(off(i) < one)cycle
160 partsav(1,m)=partsav(1,m) + ei(i)
161 partsav(2,m)=partsav(2,m) + ek(i)
162 partsav(3,m)=partsav(3,m) + xm(i)
163 partsav(4,m)=partsav(4,m) + ym(i)
164 partsav(5,m)=partsav(5,m) + zm(i)
165 partsav(6,m)=partsav(6,m) + xmas(i)
166 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
174 IF(int22==0 .OR. ifvm22==0)
THEN
177 xx(i)=x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i)
178 yy(i)=y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i)
179 zz(i)=z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i)
180 xx2(i)=x1(i)**2+x2(i)**2+x3(i)**2+x4(i)**2
181 . +x5(i)**2+x6(i)**2+x7(i)**2+x8(i)**2
182 yy2(i)=y1(i)**2+y2(i)**2+y3(i)**2+y4(i)**2
183 . +y5(i)**2+y6(i)**2+y7(i)**2+y8(i)**2
184 zz2(i)=z1(i)**2+z2(i)**2+z3(i)**2+z4(i)**2
185 . +z5(i)**2+z6(i)**2+z7(i)**2+z8(i)**2
186 xy(i)=x1(i)*y1(i)+x2(i)*y2(i)+x3(i)*y3(i)+x4(i)*y4(i)
187 . +x5(i)*y5(i)+x6(i)*y6(i)+x7(i)*y7(i)+x8(i)*y8(i)
188 yz(i)=y1(i)*z1(i)+y2(i)*z2(i)+y3(i)*z3(i)+y4(i)*z4(i)
189 . +y5(i)*z5(i)+y6(i)*z6(i)+y7(i)*z7(i)+y8(i)*z8(i)
190 zx(i)=z1(i)*x1(i)+z2(i)*x2(i)+z3(i)*x3(i)+z4(i)*x4(i)
191 . +z5(i)*x5(i)+z6(i)*x6(i)+z7(i)*x7(i)+z8(i)*x8(i)
194 xx(i)=xx(i)*one_over_8
195 yy(i)=yy(i)*one_over_8
196 zz(i)=zz(i)*one_over_8
197 xy(i)=xy(i)*one_over_8
198 yz(i)=yz(i)*one_over_8
199 zx(i)=zx(i)*one_over_8
200 xx2(i)=xx2(i)*one_over_8
201 yy2(i)=yy2(i)*one_over_8
202 zz2(i)=zz2(i)*one_over_8
207 xx(i) = x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i)
208 yy(i) = y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i)
209 zz(i) = z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i)
210 xx2(i)=x1(i)**2+x2(i)**2+x3(i)**2+x4(i)**2
211 . +x5(i)**2+x6(i)**2+x7(i)**2+x8(i)**2
212 yy2(i)=y1(i)**2+y2(i)**2+y3(i)**2+y4(i)**2
213 . +y5(i)**2+y6(i)**2+y7(i)**2+y8(i)**2
214 zz2(i)=z1(i)**2+z2(i)**2+z3(i)**2+z4(i)**2
215 . +z5(i)**2+z6(i)**2+z7(i)**2+z8(i)**2
216 xy(i)=x1(i)*y1(i)+x2(i)*y2(i)+x3(i)*y3(i)+x4(i)*y4(i)
217 . +x5(i)*y5(i)+x6(i)*y6(i)+x7(i)*y7(i)+x8(i)*y8(i)
218 yz(i)=y1(i)*z1(i)+y2(i)*z2(i)+y3(i)*z3(i)+y4(i)*z4(i)
219 . +y5(i)*z5(i)+y6(i)*z6(i)+y7(i)*z7(i)+y8(i)*z8(i)
220 zx(i)=z1(i)*x1(i)+z2(i)*x2(i)+z3(i)*x3(i)+z4(i)*x4(i)
221 . +z5(i)*x5(i)+z6(i)*x6(i)+z7(i)*x7(i)+z8(i)*x8(i)
224 xx(i)=xx(i)*one_over_8
225 yy(i)=yy(i)*one_over_8
226 zz(i)=zz(i)*one_over_8
227 xy(i)=xy(i)*one_over_8
228 yz(i)=yz(i)*one_over_8
229 zx(i)=zx(i)*one_over_8
230 xx2(i)=xx2(i)*one_over_8
231 yy2(i)=yy2(i)*one_over_8
232 zz2(i)=zz2(i)*one_over_8
237 xcg(i)= xmas(i)*xx(i)
238 ycg(i)= xmas(i)*yy(i)
239 zcg(i)= xmas(i)*zz(i)
240 ixy(i)= -xmas(i)*xy(i)
241 iyz(i)= -xmas(i)*yz(i)
242 izx(i)= -xmas(i)*zx(i)
243 ixx(i)= xmas(i)*(yy2(i) + zz2(i))
244 iyy(i)= xmas(i)*(zz2(i) + xx2(i))
245 izz(i)= xmas(i)*(xx2(i) + yy2(i))
246 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
247 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
248 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
256 partsav(9,m) =partsav(9,m) + xcg(i)
257 partsav(10,m)=partsav(10,m) + ycg(i)
258 partsav(11,m)=partsav(11,m) + zcg(i)
259 partsav(12,m)=partsav(12,m) + xxm(i)
260 partsav(13,m)=partsav(13,m) + yym(i)
261 partsav(14,m)=partsav(14,m) + zzm(i)
262 partsav(15,m)=partsav(15,m) + ixx(i)
263 partsav(16,m)=partsav(16,m) + iyy
264 partsav(17,m)=partsav(17,m) + izz(i)
265 partsav(18,m)=partsav(18,m) + ixy(i)
266 partsav(19,m)=partsav(19,m) + iyz(i)
267 partsav(20,m)=partsav(20,m) + izx(i)
268 partsav(21,m)=partsav(21,m) + rei(i)
269 partsav(22,m)=partsav(22,m) + rek(i)
273 IF(off(i) < one)cycle
274 partsav(9,m) =partsav(9,m) + xcg(i)
275 partsav(10,m)=partsav(10,m) + ycg(i)
276 partsav(11,m)=partsav(11,m) + zcg(i)
277 partsav(12,m)=partsav(12,m) + xxm(i)
278 partsav(13,m)=partsav(13,m) + yym(i)
279 partsav(14,m)=partsav(14,m) + zzm(i)
280 partsav(15,m)=partsav(15,m) + ixx(i)
281 partsav(16,m)=partsav(16,m) + iyy(i)
282 partsav(17,m)=partsav(17,m) + izz(i)
283 partsav(18,m)=partsav(18,m) + ixy(i)
284 partsav(19,m)=partsav(19,m) + iyz(i)
285 partsav(20,m)=partsav(20,m) + izx(i)
286 partsav(21,m)=partsav(21,m) + rei(i)
287 partsav(22,m)=partsav(22,m) + rek(i)
295 2 off ,ei ,ek ,xm ,ym ,
296 3 zm ,xmas ,xcg ,ycg ,zcg ,
297 4 xxm ,yym ,zzm ,ixx ,iyy ,
298 5 izz ,ixy ,iyz ,izx ,rei ,
306 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)
313 partsav(27,m)=partsav(27,m) + eintth(i)*vol(i)
317 IF(off(i) < one)
THEN
326 IF (off(i) < one)
THEN
327 partsav(25,m) = partsav(25,m) + one
subroutine sbilan(partsav, eint, rho, rk, vol, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, vnew, iparts, gresav, grth, igrth, off, iexpan, eintth, fill, mom, nel, ifvm22, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, itask, iparg, sensors, g_wpla, wpla)