32 . INOD ,INOD2SURF ,KNOD2SURF ,NNOD2SURF ,X ,
33 . XN ,DIST ,NSEG ,SURF_ELTYP,NOD_NORMAL,
34 . SURF_NODES,SWIFTSURF ,IDSURF ,SEGTOSURF )
38#include "implicit_f.inc"
46 INTEGER INOD,KNOD2SURF(*),NNOD2SURF,
47 . INOD2SURF(NNOD2SURF,*),NSEG,SURF_ELTYP(NSEG),
48 . SURF_NODES(NSEG,4),SWIFTSURF(NSURF),IDSURF,SEGTOSURF(*)
51 . nod_normal(3,*),xfas(3,4)
55 INTEGER I,K,OK,FAC,FAC1,FAC2,,
57 . p,r,p1,p2,dd1(4),dd2(4),ddd1(3),ddd2(,ISURF
59 . dist_pl(3),vx_nod_inod,vy_nod_inod,vz_nod_inod,xsign(3),
60 . v1x,v1y,v1z,v2x,v2y,v2z,v3x,v3y,v3z,v12x,v12y,v12z,dot,
62 DATA dd1/4,1,2,3/,dd2/2,3,4,1/,ddd1/3,1,2/,ddd2/2,3,1/
66 DO 60 k=1,knod2surf(inod)
67 ipl = inod2surf(k,inod)
68 isurf = segtosurf(ipl)
69 IF (isurf /= idsurf)
GOTO 60
70 ipl = ipl - swiftsurf(isurf)
71 IF (ipl <= 0 .OR. ipl > nseg .OR. inod > numnod)
GOTO 60
72 ityp = surf_eltyp(ipl)
75 ixpl(1) = surf_nodes(ipl,1)
76 ixpl(2) = surf_nodes(ipl,2)
77 ixpl(3) = surf_nodes(ipl,3)
78 ixpl(4) = surf_nodes(ipl,4)
80 ixpl(1) = surf_nodes(ipl,1)
81 ixpl(2) = surf_nodes(ipl,2)
82 ixpl(3) = surf_nodes(ipl,3)
83 ixpl(4) = surf_nodes(ipl,3)
90 IF(inod == ixpl(r))
THEN
97 IF(inod == ixpl(r))
THEN
114 xfas(1,1) = x(1,ixpl(1))
115 xfas(2,1) = x(2,ixpl(1))
116 xfas(3,1) = x(3,ixpl(1))
117 xfas(1,2) = x(1,ixpl(2))
118 xfas(2,2) = x(2,ixpl(2))
121 xfas(2,3) = x(2,ixpl(3))
122 xfas(3,3) = x(3,ixpl(3))
123 xfas(1,4) = x(1,ixpl(4))
124 xfas(2,4) = x(2,ixpl(4))
125 xfas(3,4) = x(3,ixpl(4))
131 vx_nod_inod = xn(1) - x(1,inod)
132 vy_nod_inod = xn(2) - x(2,inod)
133 vz_nod_inod = xn(3) - x(3,inod)
140 dot = vx_nod_inod*v12x+vy_nod_inod*v12y+vz_nod_inod*v12z
144 v1x = nod_normal(1,inod)
145 v1y = nod_normal(2,inod)
146 v1z = nod_normal(3,inod)
147 v2x = xfas(1,p)-xfas(1,p1)
148 v2y = xfas(2,p)-xfas(2,p1)
149 v2z = xfas(3,p)-xfas(3,p1)
150 v12x = v1y*v2z-v1z*v2y
151 v12y = v1z*v2x-v1x*v2z
152 v12z = v1x*v2y-v1y*v2x
154 dot = vx_nod_inod*v12x+vy_nod_inod*v12y+vz_nod_inod*v12z
158 v1x = nod_normal(1,inod)
159 v1y = nod_normal(2,inod)
160 v1z = nod_normal(3,inod)
161 v2x = xfas(1,p2)-xfas(1,p)
162 v2y = xfas(2,p2)-xfas(2,p)
163 v2z = xfas(3,p2)-xfas(3,p)
164 v12x = v1y*v2z-v1z*v2y
165 v12y = v1z*v2x-v1x*v2z
166 v12z = v1x*v2y-v1y*v2x
168 dot = vx_nod_inod*v12x+vy_nod_inod*v12y+vz_nod_inod*v12z
172 xsign(r) = sign(one,dist_pl(r))
173 IF(dist_pl(r) == zero)xsign(r) = one
178 IF(null_dist == 1)
EXIT
181 IF(xsign(r) >= zero)
THEN
194 IF(ok == 0) dist = -one
195 IF(null_dist == 1) dist = zero
subroutine in_out_side(inod, inod2surf, knod2surf, nnod2surf, x, xn, dist, nseg, surf_eltyp, nod_normal, surf_nodes, swiftsurf, idsurf, segtosurf)