41 7 PZ6, PZ7, PZ8, VLINC,
42 8 VOL, DELTAX, NGL, OFF,
51#include "implicit_f.inc"
63 INTEGER,
INTENT(IN) :: NEL
66 . X(MVSIZ,8), Y(MVSIZ,8), Z(MVSIZ,8),
67 . PX1(MVSIZ,8),PX2(MVSIZ,8),PX3(MVSIZ,8),PX4(MVSIZ,8),
68 . PX5(MVSIZ,8),PX6(MVSIZ,8),PX7(MVSIZ,8),PX8(MVSIZ,8),
69 . PY1(MVSIZ,8),PY2(MVSIZ,8),PY3(MVSIZ,8),PY4(MVSIZ,8),
70 . PY5(MVSIZ,8),PY6(MVSIZ,8),PY7(MVSIZ,8),PY8(MVSIZ,8),
71 . PZ1(MVSIZ,8),PZ2(MVSIZ,8),PZ3(MVSIZ,8),PZ4(MVSIZ,8),
72 . pz5(mvsiz,8),pz6(mvsiz,8),pz7(mvsiz,8),pz8(mvsiz,8),
73 . vlinc(mvsiz,8),vol(mvsiz),deltax(mvsiz) ,off(mvsiz)
81 . AJ11(MVSIZ), AJ12(MVSIZ), AJ13(MVSIZ), AJ21(MVSIZ),
82 . AJ22(MVSIZ), AJ23(MVSIZ), AJ31(MVSIZ), AJ32(MVSIZ),
83 . aj33(mvsiz), ai11(mvsiz), ai12, ai13,
84 . ai21(mvsiz), ai22, ai23, ai31(mvsiz),
87 . a1115, a1117, a2111, a2113,
88 . a2115, a2117, a3111, a3113,
89 . a3115, a3117, a1221, a1222,
90 . a1225, a1226, a2221, a2222,
91 . a2225, a2226, a3221, a3222
94 . a3225, a3226, a1331, a1332,
95 . a1333, a1334, a2331, a2332,
96 . a2333, a2334, a3331, a3332,
97 . a3333, a3334, x12(mvsiz), x34(mvsiz), x56(mvsiz),
98 . x78(mvsiz), y12(mvsiz), y34(mvsiz), y56(mvsiz), y78(mvsiz),
99 . z12(mvsiz), z34(mvsiz), z56(mvsiz), z78(mvsiz), x14(mvsiz),
100 . x23(mvsiz), x58(mvsiz), x67(mvsiz), y14(mvsiz), y23(mvsiz),
101 . y58(mvsiz), y67(mvsiz), z14(mvsiz), z23(mvsiz), z58(mvsiz),
102 . z67(mvsiz), x15(mvsiz), x26(mvsiz), x37(mvsiz), x48(mvsiz),
103 . y15(mvsiz), y26(mvsiz), y37(mvsiz), y48(mvsiz), z15(mvsiz),
104 . z26(mvsiz), z37(mvsiz), z48(mvsiz), h(8), vlinv,
105 . delta1,delta2,delta3,
106 . spx1,spx2,spx3,spx4,spx5,spx6,spx7,spx8,
107 . spy1,spy2,spy3,spy4,spy5,spy6,spy7,spy8,
108 . spz1,spz2,spz3,spz4,spz5,spz6,spz7,spz8,
109 . xx1,yy1,zz1,xx2,yy2,zz2,xx3,yy3,zz3,smax,vmin,
110 . p1(8), p2(8), p3(8)
156 CALL basisf (h,p1,p2,p3,ipt)
159 aj11(i)=p1(1)*x12(i)+p1(3)*x34(i)+p1(5)*x56(i)+p1(7)*x78(i)
160 aj12(i)=p1(1)*y12(i)+p1(3)*y34(i)+p1(5)*y56(i)+p1(7)*y78(i)
161 aj13(i)=p1(1)*z12(i)+p1(3)*z34(i)+p1(5)*z56(i)+p1(7)*z78(i)
162 aj21(i)=p2(1)*x14(i)+p2(2)*x23(i)+p2(5)*x58(i)+p2(6)*x67(i)
163 aj22(i)=p2(1)*y14(i)+p2(2)*y23(i)+p2(5)*y58(i)+p2(6)*y67(i)
164 aj23(i)=p2(1)*z14(i)+p2(2)*z23(i)+p2(5)*z58(i)+p2(6)*z67(i)
165 aj31(i)=p3(1)*x15(i)+p3(2)*x26(i)+p3(3)*x37(i)+p3(4)*x48(i)
166 aj32(i)=p3(1)*y15(i)+p3(2)*y26(i)+p3(3)*y37(i)+p3(4)*y48(i)
167 aj33(i)=p3(1)*z15(i)+p3(2)*z26(i)+p3(3)*z37(i)+p3(4)*z48(i)
171 ai11(i)= aj22(i)*aj33(i)-aj23(i)*aj32(i)
172 ai21(i)=-aj21(i)*aj33(i)+aj23(i)*aj31(i)
173 ai31(i)= aj21(i)*aj32(i)-aj22(i)*aj31(i)
174 vlinc(i,ipt)=aj11(i)*ai11(i)+aj12(i)*ai21(i)+aj13(i)*ai31(i)
179 IF(off(i)==zero)vlinc(i,ipt)=one
180 vol(i)=vol(i)+vlinc(i,ipt)
181 IF(vlinc(i,ipt)>zero)
GO TO 130
182 CALL ancmsg(msgid=172,anmode=aninfo,
188 vlinv=one/vlinc(i,ipt)
189 ai11(i)=vlinv*ai11(i)
190 ai21(i)=vlinv*ai21(i)
191 ai31(i)=vlinv*ai31(i)
192 ai12=vlinv*(-aj12(i)*aj33(i)+aj13(i)*aj32(i))
193 ai22=vlinv*( aj11(i)*aj33(i)-aj13(i)*aj31(i))
194 ai32=vlinv*(-aj11(i)*aj32(i)+aj12(i)*aj31(i))
195 ai13=vlinv*( aj12(i)*aj23(i)-aj13(i)*aj22(i))
196 ai23=vlinv*(-aj11(i)*aj23(i)+aj13(i)*aj21(i))
197 ai33=vlinv*( aj11(i)*aj22(i)-aj12(i)*aj21(i))
236 px1(i,ipt)= a1111+a1221+a1331
237 px2(i,ipt)=-a1111+a1222+a1332
238 px3(i,ipt)= a1113-a1222+a1333
239 px4(i,ipt)=-a1113-a1221+a1334
240 px5(i,ipt)= a1115+a1225-a1331
241 px6(i,ipt)=-a1115+a1226-a1332
242 px7(i,ipt)= a1117-a1226-a1333
243 px8(i,ipt)=-a1117-a1225-a1334
244 py1(i,ipt)= a2111+a2221+a2331
245 py2(i,ipt)=-a2111+a2222+a2332
246 py3(i,ipt)= a2113-a2222+a2333
247 py4(i,ipt)=-a2113-a2221+a2334
249 py6(i,ipt)=-a2115+a2226-a2332
250 py7(i,ipt)= a2117-a2226-a2333
251 py8(i,ipt)=-a2117-a2225-a2334
252 pz1(i,ipt)= a3111+a3221+a3331
253 pz2(i,ipt)=-a3111+a3222+a3332
254 pz3(i,ipt)= a3113-a3222+a3333
255 pz4(i,ipt)=-a3113-a3221+a3334
256 pz5(i,ipt)= a3115+a3225-a3331
257 pz6(i,ipt)=-a3115+a3226-a3332
258 pz7(i,ipt)= a3117-a3226-a3333
259 pz8(i,ipt)=-a3117-a3225-a3334
266 xx1 = x(i,1) + x(i,2) + x(i,3) + x(i,4)
267 . - x(i,5) - x(i,6) - x(i,7) - x(i,8)
268 yy1 = y(i,1) + y(i,2) + y(i,3) + y(i,4)
269 . - y(i,5) - y(i,6) - y(i,7) - y(i,8)
270 zz1 = z(i,1) + z(i,2) + z(i,3) + z(i,4)
271 . - z(i,5) - z(i,6) - z(i,7) - z(i,8)
272 xx2 = x(i,1) + x(i,2) + x(i,5) + x(i,6)
273 . - x(i,3) - x(i,4) - x(i,7) - x(i,8)
274 yy2 = y(i,1) + y(i,2) + y(i,5) + y(i,6)
275 . - y(i,3) - y(i,4) - y(i,7) - y(i,8)
276 zz2 = z(i,1) + z(i,2) + z(i,5) + z(i,6)
277 . - z(i,3) - z(i,4) - z(i,7) - z(i,8)
278 xx3 = x(i,1) + x(i,4) + x(i,5) + x(i,8)
279 . - x(i,3) - x(i,2) - x(i,7) - x(i,6)
280 yy3 = y(i,1) + y(i,4) + y(i,5) + y(i,8)
281 . - y(i,3) - y(i,2) - y(i,7) - y(i,6)
282 zz3 = z(i,1) + z(i,4) + z(i,5) + z(i,8)
283 . - z(i,3) - z(i,2) - z(i,7) - z(i,6)
285 smax = (yy1 * zz2 - yy2 * zz1)**2
286 . + (zz1 * xx2 - zz2 * xx1)**2
287 . + (xx1 * yy2 - xx2 * yy1)**2
288 smax =
max(smax,(yy1 * zz3 - yy3 * zz1)**2
289 . + (zz1 * xx3 - zz3 * xx1)**2
290 . + (xx1 * yy3 - xx3 * yy1)**2)
291 smax =
max(smax,(yy3 * zz2 - yy2 * zz3)**2
292 . + (zz3 * xx2 - zz2 * xx3)**2
293 . + (xx3 * yy2 - xx2 * yy3)**2)
295 vmin =
min(vlinc(i,1),vlinc(i,2),vlinc(i,3),vlinc(i,4),
296 . vlinc(i,5),vlinc(i,6),vlinc(i,7),vlinc(i,8))
297 deltax(i)=hundred28*vmin/sqrt(smax)