28 SUBROUTINE qnorm2 (NEL, NFT, JALE, SYM, IXQ, XGRID, WGRID,
38#include "implicit_f.inc"
46 INTEGER,
INTENT(IN) :: NEL, NFT, JALE, , IXQ(NIXQ, *)
48 . xgrid(3, *), wgrid(*)
49 my_real,
INTENT(OUT) :: wfac(3, 4, nel), surf(4, nel)
54 INTEGER :: II, NODE1, NODE2, NODE3, NODE4, KFACE
56 . x1(3), x2(3), x3(3), x4(3),
57 . w1(3), w2(3), w3(3), w4(3)
62 node1 = ixq(2, ii + nft)
63 node2 = ixq(3, ii + nft)
64 node3 = ixq(4, ii + nft)
65 node4 = ixq(5, ii + nft)
66 x1(1:3) = xgrid(1:3, node1)
67 x2(1:3) = xgrid(1:3, node2)
68 x3(1:3) = xgrid(1:3, node3)
69 x4(1:3) = xgrid(1:3, node4)
72 w1(1:3) = wgrid(3 * (node1 - 1) + 1 : 3 * (node1 - 1) + 3)
73 w2(1:3) = wgrid(3 * (node2 - 1) + 1 : 3 * (node2 - 1) + 3)
74 w3(1:3) = wgrid(3 * (node3 - 1) + 1 : 3 * (node3 - 1) + 3)
75 w4(1:3) = wgrid(3 * (node4 - 1) + 1 : 3 * (node4 - 1) + 3)
85 norm(1, kface, ii) = zero
86 norm(2, kface, ii) = x2(3) - x1(3)
87 norm(3, kface, ii) = -(x2(2) - x1(2))
88 ny =>
norm(2, kface, ii)
89 nz =>
norm(3, kface, ii)
90 surf(kface, ii) = sqrt(ny * ny + nz * nz)
91 ny = ny / surf(kface, ii)
92 nz = nz / surf(kface, ii)
94 surf(kface, ii) = surf(kface, ii) * half * (x1(2) + x2(2))
98 norm(1, kface, ii) = zero
99 norm(2, kface, ii) = x3(3) - x2(3
100 norm(3, kface, ii) = -(x3(2) - x2(2))
101 ny =>
norm(2, kface, ii)
102 nz =>
norm(3, kface, ii)
103 surf(kface, ii) = sqrt(ny * ny + nz * nz)
104 ny = ny / surf(kface, ii)
105 nz = nz / surf(kface, ii)
107 surf(kface, ii) = surf(kface, ii) * half * (x2(2) + x3(2))
111 norm(1, kface, ii) = zero
112 norm(2, kface, ii) = x4(3) - x3(3)
113 norm(3, kface, ii) = -(x4(2) - x3(2))
114 ny =>
norm(2, kface, ii)
115 nz =>
norm(3, kface, ii)
116 surf(kface, ii) = sqrt(ny * ny + nz * nz)
117 ny = ny / surf(kface, ii)
118 nz = nz / surf(kface, ii)
120 surf(kface, ii) = surf(kface, ii) * half * (x3(2) + x4(2))
124 norm(1, kface, ii) = zero
125 norm(2, kface, ii) = x1(3) - x4(3)
126 norm(3, kface, ii) = -(x1(2) - x4(2))
127 ny =>
norm(2, kface, ii)
128 nz =>
norm(3, kface, ii)
129 surf(kface, ii) = sqrt(ny * ny + nz * nz)
130 ny = ny / surf(kface, ii)
131 nz = nz / surf(kface, ii)
133 surf(kface, ii) = surf(kface, ii) * half * (x4(2) + x1(2))
136 wfac(1:3, 1, ii) = half * (w1(1:3) + w2(1:3))
138 wfac(1:3, 2, ii) = half * (w2(1:3) + w3(1:3))
140 wfac(1:3, 3, ii) = half * (w3(1:3) + w4(1:3))
142 wfac(1:3, 4, ii) = half * (w4(1:3) + w1(1:3))