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)
102 INTEGER IC, II, J, JST(MVSIZ+1)
109 IF(int22==0 .OR. ifvm22==0)
THEN
112 vxa(i)=vx1(i)+vx2(i)+vx3(i)+vx4(i)+vx5(i)+vx6(i)+vx7(i)+vx8(i)
113 vya(i)=vy1(i)+vy2(i)+vy3(i)+vy4(i)+vy5(i)+vy6(i)+vy7(i)+vy8(i)
114 vza(i)=vz1(i)+vz2(i)+vz3(i)+vz4(i)+vz5(i)+vz6(i)+vz7(i)+vz8(i)
115 va2(i)=vx1(i)**2+vx2(i)**2+vx3(i)**2+vx4(i)**2
116 1 +vx5(i)**2+vx6(i)**2+vx7(i)**2+vx8(i)**2
117 2 +vy1(i)**2+vy2(i)**2+vy3(i)**2+vy4(i)**2
118 3 +vy5(i)**2+vy6(i)**2+vy7(i)**2+vy8(i)**2
119 4 +vz1(i)**2+vz2(i)**2+vz3(i)**2+vz4(i)**2
120 5 +vz5(i)**2+vz6(i)**2+vz7(i)**2+vz8(i)**2
123 vxa(i)=vxa(i)*one_over_8
124 vya(i)=vya(i)*one_over_8
125 vza(i)=vza(i)*one_over_8
126 va2(i)=va2(i)*one_over_8
131 vxa(i) = mom(i,1)/rho(i)/vol(i)
132 vya(i) = mom(i,2)/rho(i)/vol(i)
133 vza(i) = mom(i,3)/rho(i)/vol(i)
134 va2(i) = (vxa(i)**2 + vya(i)**2 + vza(i)**2)
139 xmas(i)= fill(i)*rho(i)*vnew(i)
140 ei(i) = fill(i)*eint(i)*vol(i)
141 ek(i) = xmas(i)*va2(i)*half
142 xm(i) = xmas(i)*vxa(i)
143 ym(i) = xmas(i)*vya(i)
144 zm(i) = xmas(i)*vza(i)
150 partsav(1,m)=partsav(1,m) + ei(i)
151 partsav(2,m)=partsav(2,m) + ek(i)
152 partsav(3,m)=partsav(3,m) + xm(i)
153 partsav(4,m)=partsav(4,m) + ym(i)
154 partsav(5,m)=partsav(5,m) + zm(i)
155 IF (off(i) >= one) partsav(6,m)=partsav(6,m) + xmas(i)
156 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
160 IF(off(i) < one)cycle
161 partsav(1,m)=partsav(1,m) + ei(i)
162 partsav(2,m)=partsav(2,m) + ek(i)
163 partsav(3,m)=partsav(3,m) + xm(i)
164 partsav(4,m)=partsav(4,m) + ym(i)
165 partsav(5,m)=partsav(5,m) + zm(i)
166 partsav(6,m)=partsav(6,m) + xmas(i)
167 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
175 IF(int22==0 .OR. ifvm22==0)
THEN
178 xx(i)=x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i)
179 yy(i)=y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i)
180 zz(i)=z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i)
181 xx2(i)=x1(i)**2+x2(i)**2+x3(i)**2+x4(i)**2
182 . +x5(i)**2+x6(i)**2+x7(i)**2+x8(i)**2
183 yy2(i)=y1(i)**2+y2(i)**2+y3(i)**2+y4(i)**2
184 . +y5(i)**2+y6(i)**2+y7(i)**2+y8(i)**2
185 zz2(i)=z1(i)**2+z2(i)**2+z3(i)**2+z4(i)**2
186 . +z5(i)**2+z6(i)**2+z7(i)**2+z8(i)**2
187 xy(i)=x1(i)*y1(i)+x2(i)*y2(i)+x3(i)*y3(i)+x4(i)*y4(i)
188 . +x5(i)*y5(i)+x6(i)*y6(i)+x7(i)*y7(i)+x8(i)*y8(i)
190 . +y5(i)*z5(i)+y6(i)*z6(i)+y7(i)*z7(i)+y8(i)*z8(i)
191 zx(i)=z1(i)*x1(i)+z2(i)*x2(i)+z3(i)*x3(i)+z4(i)*x4(i)
192 . +z5(i)*x5(i)+z6(i)*x6
195 xx(i)=xx(i)*one_over_8
196 yy(i)=yy(i)*one_over_8
197 zz(i)=zz(i)*one_over_8
198 xy(i)=xy(i)*one_over_8
199 yz(i)=yz(i)*one_over_8
200 zx(i)=zx(i)*one_over_8
201 xx2(i)=xx2(i)*one_over_8
202 yy2(i)=yy2(i)*one_over_8
203 zz2(i)=zz2(i)*one_over_8
208 xx(i) = x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i)
209 yy(i) = y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i)
210 zz(i) = z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i
211 xx2(i)=x1(i)**2+x2(i)**2+x3(i)**2+x4(i)**2
212 . +x5(i)**2+x6(i)**2+x7(i)**2+x8(i)**2
213 yy2(i)=y1(i)**2+y2(i)**2+y3(i)**2+y4(i)**2
214 . +y5(i)**2+y6(i)**2+y7(i)**2+y8(i)**2
215 zz2(i)=z1(i)**2+z2(i)**2+z3(i)**2+z4(i)**2
216 . +z5(i)**2+z6(i)**2+z7(i)**2+z8(i)**2
217 xy(i)=x1(i)*y1(i)+x2(i)*y2(i)+x3(i)*y3(i)+x4(i)*y4(i)
218 . +x5(i)*y5(i)+x6(i)*y6(i)+x7(i)*y7(i)+x8(i)*y8(i)
219 yz(i)=y1(i)*z1(i)+y2(i)*z2(i)+y3(i)*z3(i)+y4(i)*z4(i)
220 . +y5(i)*z5(i)+y6(i)*z6(i)+y7(i)*z7(i)+y8(i)*z8(i)
221 zx(i)=z1(i)*x1(i)+z2(i)*x2(i)+z3(i)*x3(i)+z4(i)*x4(i)
222 . +z5(i)*x5(i)+z6(i)*x6(i)+z7(i)*x7(i)+z8(i)*x8(i)
225 xx(i)=xx(i)*one_over_8
226 yy(i)=yy(i)*one_over_8
227 zz(i)=zz(i)*one_over_8
228 xy(i)=xy(i)*one_over_8
229 yz(i)=yz(i)*one_over_8
230 zx(i)=zx(i)*one_over_8
231 xx2(i)=xx2(i)*one_over_8
232 yy2(i)=yy2(i)*one_over_8
233 zz2(i)=zz2(i)*one_over_8
238 xcg(i)= xmas(i)*xx(i)
239 ycg(i)= xmas(i)*yy(i)
240 zcg(i)= xmas(i)*zz(i)
241 ixy(i)= -xmas(i)*xy(i)
242 iyz(i)= -xmas(i)*yz(i)
243 izx(i)= -xmas(i)*zx(i)
244 ixx(i)= xmas(i)*(yy2(i) + zz2(i))
245 iyy(i)= xmas(i)*(zz2(i) + xx2(i))
246 izz(i)= xmas(i)*(xx2(i) + yy2(i))
247 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
248 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
249 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
257 partsav(9,m) =partsav(9,m) + xcg(i)
258 partsav(10,m)=partsav(10,m) + ycg(i)
259 partsav(11,m)=partsav(11,m) + zcg(i)
261 partsav(13,m)=partsav(13,m) + yym(i)
262 partsav(14,m)=partsav(14,m) + zzm(i)
263 partsav(15,m)=partsav(15,m) + ixx(i)
265 partsav(17,m)=partsav(17,m) + izz(i)
266 partsav(18,m)=partsav
267 partsav(19,m)=partsav(19,m) + iyz(i)
268 partsav(20,m)=partsav(20,m) + izx(i)
270 partsav(22,m)=partsav(22,m) + rek(i)
274 IF(off(i) < one)cycle
275 partsav(9,m) =partsav(9,m) + xcg(i)
276 partsav(10,m)=partsav(10,m) + ycg(i)
277 partsav(11,m)=partsav(11,m) + zcg(i)
278 partsav(12,m)=partsav(12,m) + xxm(i)
279 partsav(13,m)=partsav(13,m) + yym(i)
280 partsav(14,m)=partsav(14,m) + zzm(i)
281 partsav(15,m)=partsav(15,m) + ixx(i)
282 partsav(16,m)=partsav(16,m) + iyy(i)
283 partsav(17,m)=partsav(17,m) + izz(i)
284 partsav(18,m)=partsav(18,m) + ixy(i)
285 partsav(19,m)=partsav(19,m) + iyz(i)
286 partsav(20,m)=partsav(20,m) + izx(i)
287 partsav(21,m)=partsav(21,m) + rei(i)
288 partsav(22,m)=partsav(22,m) + rek(i)
296 2 off ,ei ,ek ,xm ,ym ,
297 3 zm ,xmas ,xcg ,ycg ,zcg ,
298 4 xxm ,yym ,zzm ,ixx ,iyy ,
299 5 izz ,ixy ,iyz ,izx ,rei ,
307 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)
314 partsav(27,m)=partsav(27,m) + eintth(i)*vol(i)
318 IF(off(i) < one)
THEN
327 IF (off(i) < one)
THEN
328 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)