32 SUBROUTINE inist3(N1,N2,N3,SSC,TTC,IER,ALP,XX1,XX2,XX3,XS1,YS1,ZS1,XC,YC,ZC)
36#include "implicit_f.inc"
40 INTEGER,
INTENT(INOUT) :: IER
41 my_real,
INTENT(INOUT) :: n1, n2, n3, ssc, ttc
43 my_real,
INTENT(INOUT) :: xx1(4), xx2(4),xx3(4),xs1,ys1,zs1,xc,yc,zc
48 . h(4), x0, y0, z0, xl1, xl2, xl3, xl4, yy1, yy2, yy3, yy4,
49 . zz1, zz2, zz3, zz4, xi1, xi2, xi3, xi4, yi1, yi2, yi3, yi4,
50 . zi1, zi2, zi3, zi4, xn1, yn1, zn1, xn2, yn2, zn2, xn3, yn3,
51 . zn3, xn4, yn4, zn4, an,
area, a12, a23, a34, a41, b12, b23,
52 . b34, b41, ab1, ab2, tp, tm, sp, sm, x1,x2,x3,x4,
53 . y1,y2,y3,y4,z1,z2,z3,z4,xi,yi,zi
76 x0 = fourth*(x1+x2+x3+x4)
77 y0 = fourth*(y1+y2+y3+y4)
78 z0 = fourth*(z1+z2+z3+z4)
107 xn1 = yy1*zz2 - yy2*zz1
108 yn1 = zz1*xl2 - zz2*xl1
109 zn1 = xl1*yy2 - xl2*yy1
114 xn2 = yy2*zz3 - yy3*zz2
115 yn2 = zz2*xl3 - zz3*xl2
116 zn2 = xl2*yy3 - xl3*yy2
121 xn3 = yy3*zz4 - yy4*zz3
122 yn3 = zz3*xl4 - zz4*xl3
123 zn3 = xl3*yy4 - xl4*yy3
128 xn4 = yy4*zz1 - yy1*zz4
129 yn4 = zz4*xl1 - zz1*xl4
130 zn4 = xl4*yy1 - xl1*yy4
135 an =
max(em20,sqrt(n1*n1+n2*n2+n3*n3))
145 a12 = (n1*xn1+n2*yn1+n3*zn1)
146 a23 = (n1*xn2+n2*yn2+n3*zn2)
147 a34 = (n1*xn3+n2*yn3+n3*zn3)
148 a41 = (n1*xn4+n2*yn4+n3*zn4)
151 xn1 = yi1*zi2 - yi2*zi1
152 yn1 = zi1*xi2 - zi2*xi1
153 zn1 = xi1*yi2 - xi2*yi1
154 b12 = (n1*xn1+n2*yn1+n3*zn1)
156 xn2 = yi2*zi3 - yi3*zi2
157 yn2 = zi2*xi3 - zi3*xi2
158 zn2 = xi2*yi3 - xi3*yi2
159 b23 = (n1*xn2+n2*yn2+n3*zn2)
161 xn3 = yi3*zi4 - yi4*zi3
162 yn3 = zi3*xi4 - zi4*xi3
163 zn3 = xi3*yi4 - xi4*yi3
164 b34 = (n1*xn3+n2*yn3+n3*zn3)
166 xn4 = yi4*zi1 - yi1*zi4
167 yn4 = zi4*xi1 - zi1*xi4
168 zn4 = xi4*yi1 - xi1*yi4
169 b41 = (n1*xn4+n2*yn4+n3*zn4)
173 IF(abs(ab1+ab2)/
area>em10)
THEN
174 ssc = (ab1-ab2)/(ab1+ab2)
179 IF(abs(a34/
area)>em10)
THEN
182 ttc = (ab1-ab2)/(ab1+ab2)
185 IF(b23<=zero .AND. b41<=zero)
THEN
186 IF(-b23/a12<=alp.AND.-b41/a12<=alp)ssc=zero
187 ELSEIF(b23<=zero)
THEN
188 IF(-b23/a12<=alp)ssc=one
189 ELSEIF(b41<=zero)
THEN
190 IF(-b41/a12<=alp)ssc=-one
195 IF(abs(ssc)>one+alp.OR.abs(ttc)>one+alp)
THEN
199 IF(abs(ssc)>one)ssc=ssc/abs(ssc)
200 IF(abs(ttc)>one)ttc=ttc/abs(ttc)
203 tp = fourth*(one+ttc)
204 tm = fourth*(one-ttc)
211 xc = h(1)*x1+h(2)*x2+h(3)*x3+h(4)*x4
212 yc = h(1)*y1+h(2)*y2+h(3)*y3+h(4)*y4
213 zc = h(1)*z1+h(2)*z2+h(3)*z3+h(4)*z4
subroutine inist3(n1, n2, n3, ssc, ttc, ier, alp, xx1, xx2, xx3, xs1, ys1, zs1, xc, yc, zc)