32 SUBROUTINE i10optcd(NSV ,CAND_E,CAND_N,X ,I_STOK,
33 1 IRECT,GAP ,GAP_S ,GAP_M ,IGAP ,
34 2 ITASK,NIN ,NSN ,STFN ,STF ,
35 3 COUNT_REMSLV, LSKYI_SMS_NEW)
43#include "implicit_f.inc"
52 INTEGER (4,*), NSV(*), CAND_E(*), CAND_N(*),
53 . I_STOK, IGAP, , NSN, NIN,COUNT_REMSLV(*)
55 . x(3,*),gap,gap_s(*),gap_m(*),stfn(*),stf(*)
68 . XI,X1,X2,X3,X4,YI,Y1,Y2,Y3,Y4,ZI,Z1,Z2,Z3,Z4,
69 . xmin,xmax,ymin,
ymax,zmin,zmax
71 INTEGER LIST(MVSIZ), LISTI(MVSIZ)
72 INTEGER IS,JS,LS,NLS,NLT,NSEG, II, NLF, NLS2
73 INTEGER IG(MVSIZ),IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ)
74 INTEGER SG, FIRST, LAST,COUNT_CAND,CT
77 INTEGER,
INTENT(INOUT) :: LSKYI_SMS_NEW
82 first = 1 + i_stok*itask / nthread
83 last = i_stok*(itask+1) / nthread
85 DO sg = first,last,mseg
86 nseg =
min(mseg,last-js)
96 IF(cand_n(i)<=nsn)
THEN
113 gapv(is)=gap_s(cand_n(i))+gap_m(cand_e(i))
114 gapv(is)=
max(gapv(is),gap)
128 gapv(is)=gap_s(cand_n(i))+gap_m(cand_e(i))
129 gapv(is)=
max(gapv(is),gap)
142 IF(stf(l)/=zero.AND.stfn(cand_n(i))/=zero)
THEN
143 ig(is) = nsv(cand_n(i))
153 zmin =
min(z1,z2,z3,z4)-gapv(is)
155 IF (zmin<=zi.AND.zmax>=zi)
THEN
171 ymin =
min(y1,y2,y3,y4)-gapv(is)
172 ymax =
max(y1,y2,y3,y4)+gapv(is)
173 IF (ymin<=yi.AND.
ymax>=yi)
THEN
186 xmin =
min(x1,x2,x3,x4)-gapv(is)
187 xmax =
max(x1,x2,x3,x4)+gapv(is)
188 IF (xmin<=xi.AND.xmax>=xi)
THEN
190 cand_n(i) = -cand_n(i)
191 count_cand = count_cand+1
206 gapv(is)=
gapfi(nin)%P(cand_n(i)-nsn)+gap_m(cand_e(i))
207 gapv(is)=
max(gapv(is),gap)
216 IF(stf(l)/=zero.AND.
stifi(nin)%P(ii)/=zero)
THEN
217 zi =
xfi(nin)%P(3,ii)
226 zmin =
min(z1,z2,z3,z4)-gapv(is)
227 zmax =
max(z1,z2,z3,z4)+gapv(is)
228 IF (zmin<=zi.AND.zmax>=zi)
THEN
247 ymin =
min(y1,y2,y3,y4)-gapv(is)
248 ymax =
max(y1,y2,y3,y4)+gapv(is)
249 IF (ymin<=yi.AND.
ymax>=yi)
THEN
259 xi =
xfi(nin)%P(1,ii)
264 xmin =
min(x1,x2,x3,x4)-gapv(is)
265 xmax =
max(x1,x2,x3,x4)+gapv(is)
266 IF (xmin<=xi.AND.xmax>=xi)
THEN
267 cand_n(i) = -cand_n(i)
268 count_cand = count_cand+1
278 IF (count_cand > 0)
THEN
280 lskyi_count=lskyi_count+count_cand*5
281 count_remslv(nin)=count_remslv(nin)+ct
282 lskyi_sms_new = lskyi_sms_new + count_cand
283#include "lockoff.inc"
subroutine i10optcd(nsv, cand_e, cand_n, x, i_stok, irect, gap, gap_s, gap_m, igap, itask, nin, nsn, stfn, stf, count_remslv, lskyi_sms_new)