51 integer*4,
intent(in) :: ind, par, arr
53 real*8 :: a1,a2,a3,b1,b2,b3,aplane,bplane,cplane
54 real*8 :: norm1, norm2, norm3, norm4
55 real*8 :: nx1, nx2, nx3, nx4
56 real*8 :: ny1, ny2, ny3, ny4
57 real*8 :: nz1, nz2, nz3, nz4
59 real*8,
intent(in) :: xs1, xs2, xs3, xs4, ys1, ys2, ys3, ys4, zs1, zs2, zs3, zs4
60 real*8,
intent(out) :: nx,ny,nz
71 aplane = a2*b3 - a3*b2
72 bplane = -a1*b3 + a3*b1
73 cplane = a1*b2 - a2*b1
75 norm1 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
76 nx1 = aplane/dsqrt(norm1)
77 ny1 = bplane/dsqrt(norm1)
78 nz1 = cplane/dsqrt(norm1)
87 aplane = a2*b3 - a3*b2
88 bplane = -a1*b3 + a3*b1
89 cplane = a1*b2 - a2*b1
91 norm2 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
92 nx2 = aplane/dsqrt(norm2)
93 ny2 = bplane/dsqrt(norm2)
94 nz2 = cplane/dsqrt(norm2)
103 aplane = a2*b3 - a3*b2
104 bplane = -a1*b3 + a3*b1
105 cplane = a1*b2 - a2*b1
107 norm3 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
108 nx3 = aplane/dsqrt(norm3)
109 ny3 = bplane/dsqrt(norm3)
110 nz3 = cplane/dsqrt(norm3)
119 aplane = a2*b3 - a3*b2
120 bplane = -a1*b3 + a3*b1
121 cplane = a1*b2 - a2*b1
123 norm4 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
124 nx4 = aplane/dsqrt(norm4)
125 ny4 = bplane/dsqrt(norm4)
126 nz4 = cplane/dsqrt(norm4)
128 nx = (nx1 + nx2 + nx3 + nx4)/4.d0
129 ny = (ny1 + ny2 + ny3 + ny4)/4.d0
130 nz = (nz1 + nz2 + nz3 + nz4)/4.d0
141 aplane = a2*b3 - a3*b2
142 bplane = -a1*b3 + a3*b1
143 cplane = a1*b2 - a2*b1
145 norm1 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
146 nx1 = aplane/dsqrt(norm1)
147 ny1 = bplane/dsqrt(norm1)
148 nz1 = cplane/dsqrt(norm1)
157 aplane = a2*b3 - a3*b2
158 bplane = -a1*b3 + a3*b1
159 cplane = a1*b2 - a2*b1
161 norm2 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
162 nx2 = aplane/dsqrt(norm2)
163 ny2 = bplane/dsqrt(norm2)
164 nz2 = cplane/dsqrt(norm2)
173 aplane = a2*b3 - a3*b2
174 bplane = -a1*b3 + a3*b1
175 cplane = a1*b2 - a2*b1
177 norm3 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
178 nx3 = aplane/dsqrt(norm3)
179 ny3 = bplane/dsqrt(norm3)
180 nz3 = cplane/dsqrt(norm3)
189 aplane = a2*b3 - a3*b2
190 bplane = -a1*b3 + a3*b1
191 cplane = a1*b2 - a2*b1
193 norm4 = aplane**2.d0 + bplane**2.d0 + cplane**2.d0
194 nx4 = aplane/dsqrt(norm4)
195 ny4 = bplane/dsqrt(norm4)
196 nz4 = cplane/dsqrt(norm4)
199 nx = (nx1 + nx2 + nx3 + nx4)/4.d0
200 ny = (ny1 + ny2 + ny3 + ny4)/4.d0
201 nz = (nz1 + nz2 + nz3 + nz4)/4.d0
subroutine make_normal(ind, xs1, xs2, xs3, xs4, ys1, ys2, ys3, ys4, zs1, zs2, zs3, zs4, nx, ny, nz, par, arr)
Makes normal vector of a given surface.