32 . GAPV,CAND_E ,CAND_N,TZINF,IRTL,ST,DMIN,IGNORE,
35 1 IX4,X1 ,X2 ,X3 ,X4 ,
36 1 Y1 ,Y2 ,Y3 ,Y4 ,Z1 ,
37 2 Z2 ,Z3 ,Z4 ,XI ,YI ,
38 3 ZI ,X0 ,Y0 ,Z0 ,NX1,
39 4 NY1,NZ1,NX2,NY2,NZ2,
40 5 NX3,NY3,NZ3,NX4,NY4,
41 6 NZ4,P1 ,P2 ,P3 ,P4 ,
42 7 LB1,LB2,LB3,LB4,LC1,
53#include "implicit_f.inc"
61 integer,
intent(in) :: first
62 integer,
intent(in) :: last
63 INTEGER CAND_E(*),CAND_N(*),(*),IGNORE,
66 . GAPV(*),TZINF,ST(2,*),DMIN(*)
67 INTEGER,
DIMENSION(MVSIZ),
INTENT(IN) :: IX3,IX4
68 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X1,X2,X3,X4
69 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Y1,Y2,Y3,Y4
70 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: Z1,Z2,Z3,Z4
71 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: XI,YI,ZI
72 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: X0,Y0,Z0
73 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx1,ny1,nz1
74 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx2,ny2,nz2
75 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx3,ny3,nz3
76 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: nx4,ny4,nz4
77 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: p1,p2,p3,p4
78 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: lb1,lb2,lb3,lb4
79 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: lc1,lc2,lc3,lc4
80 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: s,t
85#include "vect07_c.inc"
100 x0(i) = fourth*(x1(i)+x2(i)+x3(i)+x4(i))
101 y0(i) = fourth*(y1(i)+y2(i)+y3(i)+y4(i))
102 z0(i) = fourth*(z1(i)+z2(i)+z3(i)+z4(i))
106 IF (ix3(i) == ix4(i))
THEN
117 . xi ,yi ,zi ,x0 ,y0 ,
118 . z0 ,x1 ,y1 ,z1 ,x2 ,
119 . y2 ,z2 ,nx1,ny1,nz1,
120 . lb1 ,lc1 ,p1 ,gapv, tflag )
123 . xi ,yi ,zi ,x0 ,y0 ,
125 . y3 ,z3 ,nx2,ny2,nz2,
126 . lb2 ,lc2 ,p2 ,gapv, tflag )
129 . xi ,yi ,zi ,x0 ,y0 ,
130 . z0 ,x3 ,y3 ,z3 ,x4 ,
131 . y4 ,z4 ,nx3,ny3,nz3,
132 . lb3 ,lc3 ,p3 ,gapv, tflag )
135 . xi ,yi ,zi ,x0 ,y0 ,
136 . z0 ,x4 ,y4 ,z4 ,x1 ,
137 . y1 ,z1 ,nx4,ny4,nz4,
138 . lb4 ,lc4 ,p4 ,gapv, tflag )
141 IF (tflag(i) == 1)
THEN
146 pene(i) =
max(p1(i),p2(i),p3
147 IF(p1(i)==pene(i))
THEN
148 s(i) = -lb1(i) + lc1(i)
149 t(i) = -lb1(i) - lc1(i)
150 ELSEIF(p2(i)==pene
THEN
151 s(i) = lb2(i) + lc2(i)
152 t(i) = -lb2(i) + lc2(i)
153 ELSEIF(p3(i)==pene(i))
THEN
154 s(i) = lb3(i) - lc3(i)
155 t(i) = lb3(i) + lc3(i)
156 ELSEIF(p4(i)==pene(i))
THEN
157 s(i) = -lb4(i) - lc4(i)
158 t(i) = lb4(i) - lc4(i)
166 IF(ignore==2 .OR. ignore == 3)
THEN
168 IF(pene(i)>zero .AND.
169 . (s(i) < onep5 .AND.
174 IF(gapv(i) - pene(i)<dmin(ii))
THEN
175 dmin(ii)=gapv(i)-pene(i)
179 ELSEIF(gapv(i) - pene(i)==dmin(ii))
THEN
184 ELSEIF(ignore==1)
THEN
187 IF(pene(i)>zero .AND.
188 . (s(i) < onep5 .AND.
191 . t(i) >-onep5))
THEN
194 IF(tzinf - pene(i)<dmin(ii))
THEN
195 dmin(ii)=tzinf - pene(i)
199 ELSEIF(tzinf - pene(i)==dmin(ii))
THEN
207 IF(pene(i)>zero)
THEN
210 IF(tzinf - pene(i)<dmin(ii))
THEN
211 dmin(ii)=tzinf - pene(i)
215 ELSEIF(tzinf - pene(i)==dmin(ii))
THEN
235#include "implicit_f.inc"
239 INTEGER IRECT(4,*),M_OLD,M_NEW,TFLAG
245 INTEGER TFLAG_OLD,INTERIOR_OLD,INTERIOR,SWITCH
248 IF (IRECT(3,M_OLD)==irect(4,m_old))
THEN
250 IF ((s>=zero).AND.(t>=zero).AND.(one-s-t>=zero))
THEN
257 IF ((abs(s)<=one).AND.(abs(t)<=one))
THEN
265 IF ((s_new>=zero).AND.(t_new>=zero).AND.(one-s_new-t_new>=zero))
THEN
271 IF ((abs(s_new)<=one).AND.(abs(t_new)<=one))
THEN
280 IF ((tflag_old==0).AND.(tflag==0))
THEN
282 IF (
max(abs(s_new),abs(t_new))<
max(abs(s),abs(t))) switch = 1
285 IF (interior_old < interior)
THEN
287 ELSEIF (interior_old == interior)
THEN
289 IF (((s_new-third*tflag)**2+(t_new-third*tflag)**2)<
290 . ((s-third*tflag_old)**2+(t-third*tflag_old)**2)) switch = 1
294 IF (switch == 1)
THEN
subroutine i2dst3(first, last, gapv, cand_e, cand_n, tzinf, irtl, st, dmin, ignore, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, s, t)
subroutine i2bar3(first, last, xi, yi, zi, xa, ya, za, xb, yb, zb, xc, yc, zc, nx, ny, nz, lb, lc, p, gapv, tflag)
subroutine choose_main_segment(irect, m_old, m_new, s_new, t_new, s, t, tflag)
subroutine i2dst3_27(first, last, gapv, cand_e, cand_n, tzinf, irtl, st, dmin, ignore, irect, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, s, t)