34 . X5 ,X6 ,X7 ,X8 ,Y1 ,Y2 ,Y3 ,
35 . Y4 ,Y5 ,Y6 ,Y7 ,Y8 ,Z1 ,Z2 ,
36 . Z3 ,Z4 ,Z5 ,Z6 ,Z7 ,Z8 ,
37 . VDX1,VDX2,VDX3,VDX4,VDX5,VDX6,VDX7,VDX8,
38 . VDY1,VDY2,VDY3,VDY4,VDY5,VDY6,VDY7,VDY8,
39 . VDZ1,VDZ2,VDZ3,VDZ4,VDZ5,VDZ6,VDZ7,VDZ8,
40 . FLUX,FLU1,ALE_CONNECT,ALPHA )
50 use element_mod ,
only : nixs
54#include "implicit_f.inc"
61#include
"vect01_c.inc"
66 INTEGER IXS(NIXS,NUMELS)
67 my_real PM(NPROPM,NUMMAT),FLUX(MVSIZ,6), FLU1(*),
68 . X1(*), X2(*), X3(*), X4(*), X5(*), X6(*), X7(*), X8(*),
69 . Y1(*), Y2(*), Y3(*), Y4(*), Y5(*), Y6(*), Y7(*), Y8(*),
70 . Z1(*), Z2(*), Z3(*), Z4(*), Z5(*), Z6(*), Z7(*), Z8(*),
72 . VDX1(*),VDX2(*),VDX3(*),VDX4(*),VDX5(*),VDX6(*),VDX7(*),VDX8(*),
73 . VDY1(*),VDY2(*),VDY3(*),VDY4(*),VDY5(*),VDY6(*),VDY7(*),VDY8(*),
74 . vdz1(*),vdz2(*),vdz3(*),vdz4(*),vdz5(*),vdz6(*),vdz7(*),vdz8(*)
79 INTEGER MAT(MVSIZ), I,II,ICLOS,IAD2
80 my_real N1X(MVSIZ), N2X(MVSIZ), N3X(MVSIZ), N4X(MVSIZ), N5X(MVSIZ),
81 . N6X(MVSIZ), N1Y(MVSIZ), N2Y(MVSIZ), N3Y(MVSIZ), N4Y(MVSIZ),
82 . N5Y(MVSIZ), N6Y(MVSIZ), N1Z(MVSIZ), N2Z(MVSIZ), N3Z(MVSIZ),
83 . n4z(mvsiz), n5z(mvsiz), n6z(mvsiz),
84 . flux1(mvsiz),flux2(mvsiz), flux3(mvsiz), flux4(mvsiz),
85 . flux5(mvsiz),flux6(mvsiz), vx1(mvsiz),
86 . vx2(mvsiz), vx3(mvsiz), vx4(mvsiz), vx5(mvsiz), vx6(mvsiz),
87 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz), vy5(mvsiz),
88 . vy6(mvsiz), vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
89 . vz5(mvsiz), vz6(mvsiz),
90 . upwl(mvsiz,6),xc(mvsiz),yc(mvsiz),
91 . zc(mvsiz) ,xf1(mvsiz),yf1(mvsiz),zf1(mvsiz),xf2(mvsiz),
92 . yf2(mvsiz),zf2(mvsiz), xf3(mvsiz),yf3(mvsiz),zf3(mvsiz),
93 . xf4(mvsiz),yf4(mvsiz),zf4(mvsiz),xf5(mvsiz),yf5(mvsiz),
94 . zf5(mvsiz), xf6(mvsiz),yf6(mvsiz),zf6(mvsiz),test
107 vx1(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i))
108 vx2(i)=one_over_8*(vdx3(i)+vdx4(i)+vdx8(i)+vdx7(i))
109 vx3(i)=one_over_8*(vdx5(i)+vdx6(i)+vdx7(i)+vdx8(i))
110 vx4(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx6(i)+vdx5(i))
111 vx5(i)=one_over_8*(vdx2(i)+vdx3(i)+vdx7(i)+vdx6(i))
112 vx6(i)=one_over_8*(vdx1(i)+vdx4(i)+vdx8(i)+vdx5(i))
114 vy1(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i))
115 vy2(i)=one_over_8*(vdy3(i)+vdy4(i)+vdy8(i)+vdy7(i))
116 vy3(i)=one_over_8*(vdy5(i)+vdy6(i)+vdy7(i)+vdy8(i))
117 vy4(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy6(i)+vdy5(i))
118 vy5(i)=one_over_8*(vdy2(i)+vdy3(i)+vdy7(i)+vdy6(i))
119 vy6(i)=one_over_8*(vdy1(i)+vdy4(i)+vdy8(i)+vdy5(i))
121 vz1(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i))
122 vz2(i)=one_over_8*(vdz3(i)+vdz4(i)+vdz8(i)+vdz7(i))
123 vz3(i)=one_over_8*(vdz5(i)+vdz6(i)+vdz7(i)+vdz8(i))
124 vz4(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz6(i)+vdz5(i))
125 vz5(i)=one_over_8*(vdz2(i)+vdz3(i)+vdz7(i)+vdz6(i))
126 vz6(i)=one_over_8*(vdz1(i)+vdz4(i)+vdz8(i)+vdz5(i))
132 n1x(i)=(y3(i)-y1(i))*(z2(i)-z4(i)) - (z3(i)-z1(i))*(y2(i)-y4(i))
133 n1y(i)=(z3(i)-z1(i))*(x2(i)-x4(i)) - (x3(i)-x1(i))*(z2(i)-z4(i))
134 n1z(i)=(x3(i)-x1(i))*(y2(i)-y4(i)) - (y3(i)-y1(i))*(x2(i)-x4(i))
136 n2x(i)=(y7(i)-y4(i))*(z3(i)-z8(i)) - (z7(i)-z4(i))*(y3(i)-y8(i))
137 n2y(i)=(z7(i)-z4(i))*(x3(i)-x8(i)) - (x7(i)-x4(i))*(z3(i)-z8(i))
138 n2z(i)=(x7(i)-x4(i))*(y3(i)-y8(i)) - (y7(i)-y4(i))*(x3(i)-x8(i))
140 n3x(i)=(y6(i)-y8(i))*(z7(i)-z5(i)) - (z6(i)-z8(i))*(y7(i)-y5(i))
141 n3y(i)=(z6(i)-z8(i))*(x7(i)-x5(i)) - (x6(i)-x8(i))*(z7(i)-z5(i))
142 n3z(i)=(x6(i)-x8(i))*(y7(i)-y5(i)) - (y6(i)-y8(i))*(x7(i)-x5(i))
144 n4x(i)=(y2(i)-y5(i))*(z6(i)-z1(i)) - (z2(i)-z5(i))*(y6(i)-y1(i))
145 n4y(i)=(z2(i)-z5(i))*(x6(i)-x1(i)) - (x2(i)-x5(i))*(z6(i)-z1(i))
146 n4z(i)=(x2(i)-x5(i))*(y6(i)-y1(i)) - (y2(i)-y5(i))*(x6(i)-x1(i))
148 n5x(i)=(y7(i)-y2(i))*(z6(i)-z3(i)) - (z7(i)-z2(i))*(y6(i)-y3(i))
149 n5y(i)=(z7(i)-z2(i))*(x6(i)-x3(i)) - (x7(i)-x2(i))*(z6(i)-z3(i))
150 n5z(i)=(x7(i)-x2(i))*(y6(i)-y3(i)) - (y7(i)-y2(i))*(x6(i)-x3(i))
152 n6x(i)=(y8(i)-y1(i))*(z4(i)-z5(i)) - (z8(i)-z1(i))*(y4(i)-y5(i))
153 n6y(i)=(z8(i)-z1(i))*(x4(i)-x5(i)) - (x8(i)-x1(i))*(z4(i)-z5(i))
154 n6z(i)=(x8(i)-x1(i))*(y4(i)-y5(i)) - (y8(i)-y1(i))*(x4(i)-x5(i))
162 xc(i)=one_over_8*(x1(i)+x2(i)+x3(i)+x4(i)+x5(i)+x6(i)+x7(i)+x8(i))
163 yc(i)=one_over_8*(y1(i)+y2(i)+y3(i)+y4(i)+y5(i)+y6(i)+y7(i)+y8(i))
164 zc(i)=one_over_8*(z1(i)+z2(i)+z3(i)+z4(i)+z5(i)+z6(i)+z7(i)+z8(i))
165 xf1(i)=fourth*(x1(i)+x2(i)+x3(i)+x4(i))
166 xf2(i)=fourth*(x3(i)+x4(i)+x8(i)+x7(i))
167 xf3(i)=fourth*(x5(i)+x6(i)+x7(i)+x8(i))
168 xf4(i)=fourth*(x1(i)+x2(i)+x6(i)+x5(i))
169 xf5(i)=fourth*(x2(i)+x3(i)+x7(i)+x6(i))
170 xf6(i)=fourth*(x1(i)+x4(i)+x8(i)+x5(i))
172 yf1(i)=fourth*(y1(i)+y2(i)+y3(i)+y4(i))
173 yf2(i)=fourth*(y3(i)+y4(i)+y8(i)+y7(i))
174 yf3(i)=fourth*(y5(i)+y6(i)+y7(i)+y8(i))
175 yf4(i)=fourth*(y1(i)+y2(i)+y6(i)+y5(i))
176 yf5(i)=fourth*(y2(i)+y3(i)+y7(i)+y6(i))
177 yf6(i)=fourth*(y1(i)+y4(i)+y8(i)+y5(i))
179 zf1(i)=fourth*(z1(i)+z2(i)+z3(i)+z4(i))
180 zf2(i)=fourth*(z3(i)+z4(i)+z8(i)+z7(i))
181 zf3(i)=fourth*(z5(i)+z6(i)+z7(i)+z8(i))
182 zf4(i)=fourth*(z1(i)+z2(i)+z6(i)+z5(i))
183 zf5(i)=fourth*(z2(i)+z3(i)+z7(i)+z6(i))
184 zf6(i)=fourth*(z1(i)+z4(i)+z8(i)+z5(i))
187 test=(xf1(i)-xc(i))*n1x(i)+
188 . (yf1(i)-yc(i))*n1y(i)+
189 . (zf1(i)-zc(i))*n1z(i)
197 test=(xf2(i)-xc(i))*n2x(i)+
198 . (yf2(i)-yc(i))*n2y(i)+
199 . (zf2(i)-zc(i))*n2z(i)
207 test=(xf3(i)-xc(i))*n3x(i)+
208 . (yf3(i)-yc(i))*n3y(i)+
209 . (zf3(i)-zc(i))*n3z(i)
217 test=(xf4(i)-xc(i))*n4x(i)+
218 . (yf4(i)-yc(i))*n4y(i)+
219 . (zf4(i)-zc(i))*n4z(i)
227 test=(xf5(i)-xc(i))*n5x(i)+
228 . (yf5(i)-yc(i))*n5y(i)+
229 . (zf5(i)-zc(i))*n5z(i)
237 test=(xf6(i)-xc(i))*n6x(i)+
238 . (yf6(i)-yc(i))*n6y(i)+
239 . (zf6(i)-zc(i))*n6z(i)
251 flux1(i)=(vx1(i)*n1x(i)+vy1(i)*n1y(i)+vz1(i)*n1z(i))
252 flux2(i)=(vx2(i)*n2x(i)+vy2(i)*n2y(i)+vz2(i)*n2z(i))
253 flux3(i)=(vx3(i)*n3x(i)+vy3(i)*n3y(i)+vz3(i)*n3z(i))
254 flux4(i)=(vx4(i)*n4x(i)+vy4(i)*n4y(i)+vz4(i)*n4z(i))
255 flux5(i)=(vx5(i)*n5x(i)+vy5(i)*n5y(i)+vz5(i)*n5z(i))
256 flux6(i)=(vx6(i)*n6x(i)+vy6(i)*n6y(i)+vz6(i)*n6z(i))
258 flux1(i)=alpha(i,1)*flux1(i)
259 flux2(i)=alpha(i,2)*flux2(i)
260 flux3(i)=alpha(i,3)*flux3(i)
261 flux4(i)=alpha(i,4)*flux4(i)
262 flux5(i)=alpha(i,5)*flux5(i)
263 flux6(i)=alpha(i,6)*flux6(i)
278 iclos = nint(pm(198, mat(1)))
281 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
282 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
283 IF(ii == 0) flux1(i)= zero
285 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
286 IF(ii == 0) flux2(i)= zero
288 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
289 IF(ii == 0)flux3(i)= zero
291 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
292 IF(ii == 0)flux4(i)= zero
294 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
295 IF(ii == 0) flux5(i)=zero
297 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
298 IF(ii == 0) flux6(i)= zero
305 flux(i,1)=flux1(i)-upwl(i,1)*abs(flux1(i))
306 flux(i,2)=flux2(i)-upwl(i,2)*abs(flux2(i))
307 flux(i,3)=flux3(i)-upwl(i,3)*abs(flux3(i))
308 flux(i,4)=flux4(i)-upwl(i,4)*abs(flux4(i))
309 flux(i,5)=flux5(i)-upwl(i,5)*abs(flux5(i))
310 flux(i,6)=flux6(i)-upwl(i,6)*abs(flux6(i))
312 flu1(i) =flux1(i)+upwl(i,1)*abs(flux1(i))
313 . +flux2(i)+upwl(i,2)*abs(flux2(i))
314 . +flux3(i)+upwl(i,3)*abs(flux3(i))
315 . +flux4(i)+upwl(i,4)*abs(flux4(i))
316 . +flux5(i)+upwl(i,5)*abs(flux5(i))
317 . +flux6(i)+upwl(i,6)*abs(flux6(i))
subroutine aleflux(pm, 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, vdx1, vdx2, vdx3, vdx4, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, flux, flu1, ale_connect, alpha)