29 1 JLT ,CAND_N ,CAND_E ,IRECT ,NSV ,
30 2 GAP_S ,X ,IRTLM ,CSTS ,DEPTH ,
31 3 NOD_NORMAL,XM0 ,PENE ,PENI ,IFPEN ,
32 4 IGAP ,GAP ,GAPMAX ,GAPMIN ,DRAD ,
37#include "implicit_f.inc"
45 INTEGER JLT, CAND_N(*), CAND_E(*), IRECT(4,*),
46 . IRTLM(2,*), NSV(*), IFPEN(*)
49 . X(3,*), CSTS(2,*), DEPTH, NOD_NORMAL(3,*),
50 . xm0(3,*), pene(*), peni(*), gap_s(*), gap, gapmin, gapmax,
52 my_real ,
INTENT(IN) :: dgapload
56 INTEGER I, IG, J, IS, L, N, N4N
57 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
58 . NSVG(MVSIZ), FAR(MVSIZ), I4N(MVSIZ),
62 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
63 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
64 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
65 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
66 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
67 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
68 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
69 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
70 . x0(mvsiz), y0(mvsiz), z0(mvsiz),
71 . xi(mvsiz), yi(mvsiz), zi(mvsiz),
72 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz)
74 . nnx1(mvsiz), nnx2(mvsiz), nnx3(mvsiz), nnx4(mvsiz),
75 . nny1(mvsiz), nny2(mvsiz), nny3(mvsiz), nny4(mvsiz),
76 . nnz1(mvsiz), nnz2(mvsiz), nnz3(mvsiz), nnz4(mvsiz),
77 . nnx0(mvsiz), nny0(mvsiz), nnz0(mvsiz)
79 . x01(mvsiz), x02(mvsiz), x03(mvsiz), x04(mvsiz),
80 . y01(mvsiz), y02(mvsiz), y03(mvsiz), y04(mvsiz),
81 . z01(mvsiz), z02(mvsiz), z03(mvsiz), z04(mvsiz),
82 . xi1(mvsiz), xi2(mvsiz),
83 . yi1(mvsiz), yi2(mvsiz),
84 . zi1(mvsiz), zi2(mvsiz)
87 . x12,x23,x34,x41,xi0,
88 . y12,y23,y34,y41,yi0,
89 . z12,z23,z34,z41,zi0,
90 . xn1(mvsiz),yn1(mvsiz),zn1(mvsiz),
91 . xn2(mvsiz),yn2(mvsiz),zn2(mvsiz),
93 . xn4(mvsiz),yn4(mvsiz),zn4(mvsiz),
94 . sx1(mvsiz),sx2(mvsiz),
95 . sy1(mvsiz),sy2(mvsiz),
96 . sz1(mvsiz),sz2(mvsiz),
97 . xi0v(mvsiz), yi0v(mvsiz), zi0v(mvsiz),
98 . xh(mvsiz), yh(mvsiz), zh(mvsiz),
99 . nx(mvsiz), ny(mvsiz), nz(mvsiz),
101 . x0h(mvsiz), y0h(mvsiz), z0h(mvsiz),
102 . x1h(mvsiz), y1h(mvsiz), z1h(mvsiz),
103 . x2h(mvsiz), y2h(mvsiz), z2h(mvsiz), hh(mvsiz), ll,
104 . hxi0, hyi0, hzi0, hxi1, hyi1, hzi1, hxi2, hyi2, hzi2,
105 . hx01, hy01, hz01, hx02, hy02, hz02,
106 . hxn1, hyn1, hzn1, hsx1, hsy1, hsz1, hsx2, hsy2, hsz2,
107 . side, crit, crito, lbo, lco, lb, lc, la, sl,
108 . lambda, xp, yp, zp, dist, depth2, drad2,gapp
110 . cmaj(mvsiz), csts_l(2,mvsiz)
119 gapv(i)=gap_s(cand_n(i))
120 gapv(i)=
min(gapv(i),gapmax)
121 gapv(i)=
max(gapmin,gapv(i))
129 nsvg(i)= nsv(cand_n(i))
168 IF(ix3(i)/=ix4(i))
THEN
169 x0(i) = fourth*(x1(i)+x2(i)+x3(i)+x4(i))
170 y0(i) = fourth*(y1(i)+y2(i)+y3(i)+y4(i))
171 z0(i) = fourth*(z1(i)+z2(i)+z3(i)+z4(i))
181 nnx1(i)=nod_normal(1,ix1(i))
182 nny1(i)=nod_normal(2,ix1(i))
183 nnz1(i)=nod_normal(3,ix1(i))
185 nnx2(i)=nod_normal(1,ix2(i))
186 nny2(i)=nod_normal(2,ix2(i))
187 nnz2(i)=nod_normal(3,ix2(i))
189 nnx3(i)=nod_normal(1,ix3(i))
190 nny3(i)=nod_normal(2,ix3(i))
191 nnz3(i)=nod_normal(3,ix3(i))
193 nnx4(i)=nod_normal(1,ix4(i))
194 nny4(i)=nod_normal(2,ix4(i))
195 nnz4(i)=nod_normal(3,ix4(i))
201 IF(ix3(i)/=ix4(i))
THEN
202 nnx0(i)=fourth*(nnx1(i)+nnx2(i)+nnx3(i)+nnx4(i))
203 nny0(i)=fourth*(nny1(i)+nny2(i)+nny3(i)+nny4(i))
204 nnz0(i)=fourth*(nnz1(i)+nnz2(i)+nnz3(i)+nnz4(i))
229 gapp = gapv(i)+dgapload
232 x01(i) = x1(i) - x0(i)
233 y01(i) = y1(i) - y0(i)
234 z01(i) = z1(i) - z0(i)
236 x02(i) = x2(i) - x0(i)
237 y02(i) = y2(i) - y0(i)
238 z02(i) = z2(i) - z0(i)
240 x03(i) = x3(i) - x0(i)
241 y03(i) = y3(i) - y0(i)
242 z03(i) = z3(i) - z0(i)
244 x04(i) = x4(i) - x0(i)
245 y04(i) = y4(i) - y0(i)
246 z04(i) = z4(i) - z0(i)
253 xn1(i) = y01(i)*z02(i) - z01(i)*y02(i)
254 yn1(i) = z01(i)*x02(i) - x01(i)*z02(i)
255 zn1(i) = x01(i)*y02(i) - y01(i)*x02(i)
257 xn2(i) = y02(i)*z03(i) - z02(i)*y03(i)
258 yn2(i) = z02(i)*x03(i) - x02(i)*z03(i)
259 zn2(i) = x02(i)*y03(i) - y02(i)*x03(i)
261 xn3(i) = y03(i)*z04(i) - z03(i)*y04(i)
262 yn3(i) = z03(i)*x04(i) - x03(i)*z04(i)
263 zn3(i) = x03(i)*y04(i) - y03(i)*x04(i)
265 xn4(i) = y04(i)*z01(i) - z04(i)*y01(i)
266 yn4(i) = z04(i)*x01(i) - x04(i)*z01(i)
267 zn4(i) = x04(i)*y01(i) - y04(i)*x01(i)
275 xi0v(i) = x0(i) - xi(i)
276 yi0v(i) = y0(i) - yi(i)
277 zi0v(i) = z0(i) - zi(i)
279 xi1(i) = x1(i) - xi(i)
280 yi1(i) = y1(i) - yi(i)
281 zi1(i) = z1(i) - zi(i)
283 xi2(i) = x2(i) - xi(i)
284 yi2(i) = y2(i) - yi(i)
285 zi2(i) = z2(i) - zi(i)
287 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
288 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
289 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
291 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
292 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
293 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
296 .
max(em30,(xn1(i)*xn1(i)+ yn1(i)*yn1(i)+ zn1(i)*zn1(i)))
297 lb1(i) = -(xn1(i)*sx2(i) + yn1(i)*sy2(i) + zn1(i)*sz2(i))*s2
298 lc1(i) = (xn1(i)*sx1(i) + yn1(i)*sy1(i) + zn1(i)*sz1(i))*s2
304 nx(i) = xi(i)-(x0(i) + lb1(i)*x01(i) + lc1(i)*x02(i))
305 ny(i) = yi(i)-(y0(i) + lb1(i)*y01(i) + lc1(i)*y02(i))
306 nz(i) = zi(i)-(z0(i) + lb1(i)*z01(i) + lc1(i)*z02(i))
307 hh(i) = nx(i)*xn1(i) + ny(i)*yn1(i) +nz(i)*zn1(i)
315 .
max(em30,nnx1(i)*xn1(i)+nny1(i)*yn1(i)+nnz1(i)*zn1(i))
316 x1h(i)=x1(i)+ll*nnx1(i)
317 y1h(i)=y1(i)+ll*nny1(i)
318 z1h(i)=z1(i)+ll*nnz1(i)
321 .
max(em30,nnx2(i)*xn1(i)+nny2(i)*yn1(i)+nnz2(i)*zn1(i))
322 x2h(i)=x2(i)+ll*nnx2(i)
323 y2h(i)=y2(i)+ll*nny2(i)
324 z2h(i)=z2(i)+ll*nnz2(i)
327 .
max(em30,nnx0(i)*xn1(i)+nny0(i)*yn1(i)+nnz0(i)*zn1(i))
328 x0h(i)=x0(i)+ll*nnx0(i)
329 y0h(i)=y0(i)+ll*nny0(i)
330 z0h(i)=z0(i)+ll*nnz0(i)
339 hxi0 = x0h(i) - xi(i)
340 hyi0 = y0h(i) - yi(i)
341 hzi0 = z0h(i) - zi(i)
343 hxi1 = x1h(i) - xi(i)
344 hyi1 = y1h(i) - yi(i)
345 hzi1 = z1h(i) - zi(i)
347 hxi2 = x2h(i) - xi(i)
348 hyi2 = y2h(i) - yi(i)
349 hzi2 = z2h(i) - zi(i)
351 hx01 = x1h(i) - x0h(i)
352 hy01 = y1h(i) - y0h(i)
353 hz01 = z1h(i) - z0h(i)
355 hx02 = x2h(i) - x0h(i)
356 hy02 = y2h(i) - y0h(i)
357 hz02 = z2h(i) - z0h(i)
359 hxn1 = hy01*hz02 - hz01*hy02
360 hyn1 = hz01*hx02 - hx01*hz02
361 hzn1 = hx01*hy02 - hy01*hx02
363 IF(hxn1*xn1(i)+hyn1*yn1(i)+hzn1*zn1(i) <= zero)
THEN
369 hsx1 = hyi0*hzi1 - hzi0*hyi1
370 hsy1 = hzi0*hxi1 - hxi0*hzi1
371 hsz1 = hxi0*hyi1 - hyi0*hxi1
373 hsx2 = hyi0*hzi2 - hzi0*hyi2
374 hsy2 = hzi0*hxi2 - hxi0*hzi2
375 hsz2 = hxi0*hyi2 - hyi0*hxi2
378 .
max(em30,(hxn1*hxn1+ hyn1*hyn1+ hzn1*hzn1))
379 lb1(i) = -(hxn1*hsx2 + hyn1*hsy2 + hzn1*hsz2)*s2
380 lc1(i) = (hxn1*hsx1 + hyn1*hsy1 + hzn1*hsz1)*s2
382 IF(lb1(i) < -zep05 .OR. lc1(i) < -zep05 .OR.
383 . lb1(i)+lc1(i) > onep05) far(i)=1
393 nx(i)=(one-lb1(i)-lc1(i))*nnx0(i)+lb1(i)*nnx1(i)+lc1(i)*nnx2(i)
394 ny(i)=(one-lb1(i)-lc1(i))*nny0(i)+lb1(i)*nny1(i)+lc1(i)*nny2(i)
395 nz(i)=(one-lb1(i)-lc1(i))*nnz0(i)+lb1(i)*nnz1(i)+lc1(i)*nnz2(i)
398 nn = nx(i)*xn1(i)+ ny(i)*yn1(i)+ nz(i)*zn1(i)
404 nn = one/
max(em30,nn)
406 lambda=(xn1(i)*xi0v(i)+yn1(i)*yi0v(i)+zn1(i)*zi0v(i))*nn
407 xp=xi(i)+lambda*nx(i)
408 yp=yi(i)+lambda*ny(i)
409 zp=zi(i)+lambda*nz(i)
423 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
424 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
425 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
427 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
428 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
429 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
432 .
max(em30,(xn1(i)*xn1(i)+ yn1(i)*yn1(i)+ zn1(i)*zn1(i)))
433 lb1(i) = -(xn1(i)*sx2(i) + yn1(i)*sy2(i) + zn1(i)*sz2(i))*nn
434 lc1(i) = (xn1(i)*sx1(i) + yn1(i)*sy1(i) + zn1(i)*sz1(i))*nn
442 lb =
min(one,
max(lb1(i),zero))
443 lc =
min(one,
max(lc1(i),zero))
444 la =
min(one,
max(one-lb1(i)-lc1(i),zero))
446 sl=one/
max(em20,la+lb+lc)
451 nx1(i) = xi(i)-(la*x0(i) + lb*x1(i) + lc*x2(i))
452 ny1(i) = yi(i)-(la*y0(i) + lb*y1(i) + lc*y2(i))
453 nz1(i) = zi(i)-(la*z0(i) + lb*z1(i) + lc*z2(i))
454 p1(i) = nx1(i)*nx1(i) + ny1(i)*ny1(i) +nz1(i)*nz1(i)
461 side=sign(one,nx1(i)*xn1(i)+ny1(i)*yn1(i)+nz1(i)*zn1(i))
462 IF((side >= zero .AND. p1(i) <
max(gap2(i),drad2)) .OR.
463 . (side < zero .AND. p1(i) < depth2))
THEN
464 IF(lb1(i) < -zep05 .OR. lc1(i) < -zep05 .OR.
465 . lb1(i)+lc1(i) > onep05) cycle
466 crit = abs(third-lb1(i))
467 . + abs(third-lc1(i))
468 . + abs(two_third-lb1(i)-lc1(i))
471 crito = abs(third-lbo)
473 . + abs(two_third-lbo-lco)
476 la =one-lb1(i)-lc1(i)
477 nx(i)=lb1(i)*nnx1(i)+lc1(i)*nnx2(i)+la*nnx0(i)
478 ny(i)=lb1(i)*nny1(i)+lc1(i)*nny2(i)+la*nny0(i)
479 nz(i)=lb1(i)*nnz1(i)+lc1(i)*nnz2(i)+la*nnz0(i)
480 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
485 nx1(i) = xi(i)-(x0(i) + lb1(i)*x01(i) + lc1(i)*x02(i))
486 ny1(i) = yi(i)-(y0(i) + lb1(i)*y01(i) + lc1(i)*y02(i))
487 nz1(i) = zi(i)-(z0(i) + lb1(i)*z01(i) + lc1(i)*z02(i))
489 dist =nx1(i)*nx(i)+ny1(i)*ny(i)+nz1(i)*nz(i)
492 irtlm_l(1,i) = cand_e(i)
493 irtlm_l(2,i) = nint(side)
497 ELSEIF(side >= zero .AND. p1(i) < drad2)
THEN
498 IF(lb1(i) < -zep05 .OR. lc1(i) < -zep05 .OR.
499 . lb1(i)+lc1(i) > onep05) cycle
500 crit = abs(third-lb1(i))
501 . + abs(third-lc1(i))
502 . + abs(two_third-lb1(i)-lc1(i))
505 crito = abs(third-lbo)
507 . + abs(two_third-lbo-lco)
510 la =one-lb1(i)-lc1(i)
511 nx(i)=lb1(i)*nnx1(i)+lc1(i)*nnx2(i)+la*nnx0(i)
512 ny(i)=lb1(i)*nny1(i)+lc1(i)*nny2(i)+la*nny0(i)
513 nz(i)=lb1(i)*nnz1(i)+lc1(i)*nnz2(i)+la*nnz0(i)
514 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
519 nx1(i) = xi(i)-(x0(i) + lb1(i)*x01(i) + lc1(i)*x02(i))
520 ny1(i) = yi(i)-(y0(i) + lb1(i)*y01(i) + lc1(i)*y02(i))
521 nz1(i) = zi(i)-(z0(i) + lb1(i)*z01(i) + lc1(i)*z02(i))
523 dist =nx1(i)*nx(i)+ny1(i)*ny(i)+nz1(i)*nz(i)
526 irtlm_l(1,i) = -cand_e(i)
527 irtlm_l(2,i) = nint(side)
537 IF(ix3(i)/=ix4(i))
THEN
549 xi0v(i) = x0(i) - xi(i
550 yi0v(i) = y0(i) - yi(i)
551 zi0v(i) = z0(i) - zi(i)
553 xi1(i) = x2(i) - xi(i)
554 yi1(i) = y2(i) - yi(i)
555 zi1(i) = z2(i) - zi(i)
557 xi2(i) = x3(i) - xi(i)
558 yi2(i) = y3(i) - yi(i)
559 zi2(i) = z3(i) - zi(i)
561 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
562 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
563 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
565 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
566 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
567 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
570 .
max(em30,(xn2(i)*xn2(i)+ yn2
571 lb2(i) = -(xn2(i)*sx2(i) + yn2(i)*sy2(i) + zn2(i)*sz2(i))*s2
572 lc2(i) = (xn2(i)*sx1(i) + yn2(i)*sy1(i) + zn2(i)*sz1(i))*s2
580 nx(i) = xi(i)-(x0(i) + lb2(i)*x02(i) + lc2(i)*x03(i))
581 ny(i) = yi(i)-(y0(i) + lb2(i)*y02(i) + lc2(i)*y03(i))
582 nz(i) = zi(i)-(z0(i) + lb2(i)*z02(i) + lc2(i)*z03(i))
583 hh(i) = nx(i)*xn2(i) + ny(i)*yn2(i) +nz(i)*zn2(i)
593 .
max(em30,nnx2(i)*xn2(i)+nny2(i)*yn2(i)+nnz2(i)*zn2(i))
594 x1h(i)=x2(i)+ll*nnx2(i)
595 y1h(i)=y2(i)+ll*nny2(i)
599 .
max(em30,nnx3(i)*xn2(i)+nny3(i)*yn2(i)+nnz3(i)*zn2(i))
600 x2h(i)=x3(i)+ll*nnx3(i)
601 y2h(i)=y3(i)+ll*nny3(i)
602 z2h(i)=z3(i)+ll*nnz3(i)
605 .
max(em30,nnx0(i)*xn2(i)+nny0(i)*yn2(i)+nnz0(i)*zn2(i))
606 x0h(i)=x0(i)+ll*nnx0(i)
607 y0h(i)=y0(i)+ll*nny0(i)
608 z0h(i)=z0(i)+ll*nnz0(i)
619 hxi0 = x0h(i) - xi(i)
620 hyi0 = y0h(i) - yi(i)
621 hzi0 = z0h(i) - zi(i)
623 hxi1 = x1h(i) - xi(i)
624 hyi1 = y1h(i) - yi(i)
625 hzi1 = z1h(i) - zi(i)
627 hxi2 = x2h(i) - xi(i)
628 hyi2 = y2h(i) - yi(i)
629 hzi2 = z2h(i) - zi(i)
631 hx01 = x1h(i) - x0h(i)
632 hy01 = y1h(i) - y0h(i)
633 hz01 = z1h(i) - z0h(i)
635 hx02 = x2h(i) - x0h(i)
636 hy02 = y2h(i) - y0h(i)
637 hz02 = z2h(i) - z0h(i)
639 hxn1 = hy01*hz02 - hz01*hy02
640 hyn1 = hz01*hx02 - hx01*hz02
641 hzn1 = hx01*hy02 - hy01*hx02
643 IF(hxn1*xn2(i)+hyn1*yn2(i)+hzn1*zn2(i) <= zero)
THEN
649 hsx1 = hyi0*hzi1 - hzi0*hyi1
650 hsy1 = hzi0*hxi1 - hxi0*hzi1
651 hsz1 = hxi0*hyi1 - hyi0*hxi1
653 hsx2 = hyi0*hzi2 - hzi0*hyi2
654 hsy2 = hzi0*hxi2 - hxi0*hzi2
655 hsz2 = hxi0*hyi2 - hyi0*hxi2
658 .
max(em30,(hxn1*hxn1+ hyn1*hyn1+ hzn1*hzn1))
659 lb2(i) = -(hxn1*hsx2 + hyn1*hsy2 + hzn1*hsz2)*s2
660 lc2(i) = (hxn1*hsx1 + hyn1*hsy1 + hzn1*hsz1)*s2
662 IF(lb2(i) < -zep05 .OR. lc2(i) < -zep05 .OR.
663 . lb2(i)+lc2(i) > onep05) far(i)=1
674 nx(i)=(1-lb2(i)-lc2(i))*nnx0(i)+lb2(i)*nnx2(i)+lc2(i)*nnx3(i)
675 ny(i)=(1-lb2(i)-lc2(i))*nny0(i)+lb2(i)*nny2(i)+lc2(i)*nny3(i)
676 nz(i)=(1-lb2(i)-lc2(i))*nnz0(i)+lb2(i)*nnz2(i)+lc2(i)*nnz3(i)
679 nn = nx(i)*xn2(i)+ ny(i)*yn2(i)+ nz(i)*zn2(i)
685 nn = one/
max(em30,nn)
687 lambda=(xn2(i)*xi0v(i)+yn2(i)*yi0v(i)+zn2(i)*zi0v(i))*nn
688 xp=xi(i)+lambda*nx(i)
689 yp=yi(i)+lambda*ny(i)
690 zp=zi(i)+lambda*nz(i)
704 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
705 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
706 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
708 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
709 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
710 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
713 .
max(em30,(xn2(i)*xn2(i)+ yn2(i)*yn2(i)+ zn2(i)*zn2(i)))
714 lb2(i) = -(xn2(i)*sx2(i) + yn2(i)*sy2(i) + zn2(i)*sz2(i))*nn
715 lc2(i) = (xn2(i)*sx1(i) + yn2(i)*sy1(i) + zn2(i)*sz1(i))*nn
725 lb =
min(one,
max(lb2(i),zero))
726 lc =
min(one,
max(lc2(i),zero))
727 la =
min(one,
max(one-lb2(i)-lc2(i),zero))
729 sl=one/
max(em20,la+lb+lc)
734 nx2(i) = xi(i)-(la*x0(i) + lb*x2(i) + lc*x3(i))
735 ny2(i) = yi(i)-(la*y0(i) + lb*y2(i) + lc*y3
736 nz2(i) = zi(i)-(la*z0(i) + lb*z2(i) + lc*z3(i))
737 p2(i) = nx2(i)*nx2(i) + ny2(i)*ny2(i) +nz2(i)*nz2(i)
744 side=sign(one,nx2(i)*xn2(i)+ny2(i)*yn2(i)+nz2(i)*zn2(i))
745 IF((side >= zero .AND. p2(i) <
max(gap2(i),drad2)) .OR.
746 . (side < zero .AND. p2(i) < depth2))
THEN
747 IF(lb2(i) < -zep05 .OR. lc2(i) < -zep05 .OR.
748 . lb2(i)+lc2(i) > onep05) cycle
749 crit = abs(third-lb2(i))
750 . + abs(third-lc2(i))
751 . + abs(two_third-lb2(i)-lc2(i))
754 crito = abs(third-lbo)
756 . + abs(two_third-lbo-lco)
759 la =one-lb2(i)-lc2(i)
760 nx(i)=lb2(i)*nnx2(i)+lc2(i)*nnx3(i)+la*nnx0(i)
761 ny(i)=lb2(i)*nny2(i)+lc2(i)*nny3(i)+la*nny0(i)
762 nz(i)=lb2(i)*nnz2(i)+lc2(i)*nnz3(i)+la*nnz0(i)
763 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
768 nx2(i) = xi(i)-(x0(i) + lb2(i)*x02(i) + lc2(i)*x03(i))
769 ny2(i) = yi(i)-(y0(i) + lb2(i)*y02(i) + lc2(i)*y03(i
770 nz2(i) = zi(i)-(z0(i) + lb2(i)*z02(i) + lc2(i)*z03(i))
772 dist =nx2(i)*nx(i)+ny2(i)*ny(i)+nz2(i)*nz(i)
775 irtlm_l(1,i) = cand_e(i)
776 irtlm_l(2,i) = nint(two*side)
780 ELSEIF(side >= zero .AND. p2(i) < drad2)
THEN
781 IF(lb2(i) < -zep05 .OR. lc2(i) < -zep05 .OR.
782 . lb2(i)+lc2(i) > onep05) cycle
783 crit = abs(third-lb2(i))
784 . + abs(third-lc2(i))
785 . + abs(two_third-lb2(i)-lc2(i))
788 crito = abs(third-lbo)
790 . + abs(two_third-lbo-lco)
793 la =one-lb2(i)-lc2(i)
794 nx(i)=lb2(i)*nnx2(i)+lc2(i)*nnx3(i)+la*nnx0(i)
795 ny(i)=lb2(i)*nny2(i)+lc2(i)*nny3(i)+la*nny0(i)
796 nz(i)=lb2(i)*nnz2(i)+lc2(i)*nnz3(i)+la*nnz0(i)
797 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
802 nx2(i) = xi(i)-(x0(i) + lb2(i)*x02(i) + lc2(i)*x03(i))
803 ny2(i) = yi(i)-(y0(i) + lb2(i)*y02(i) + lc2(i)*y03(i))
804 nz2(i) = zi(i)-(z0(i) + lb2(i)*z02(i) + lc2
806 dist =nx2(i)*nx(i)+ny2
809 irtlm_l(1,i) = -cand_e(i)
810 irtlm_l(2,i) = nint(two*side)
823 xi0v(i) = x0(i) - xi(i)
824 yi0v(i) = y0(i) - yi(i)
825 zi0v(i) = z0(i) - zi(i)
827 xi1(i) = x3(i) - xi(i)
828 yi1(i) = y3(i) - yi(i)
829 zi1(i) = z3(i) - zi(i)
831 xi2(i) = x4(i) - xi(i)
832 yi2(i) = y4(i) - yi(i)
833 zi2(i) = z4(i) - zi(i)
835 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
836 sy1(i) = zi0v(i)*xi1(i) - xi0v(i
837 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i
839 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
840 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
841 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
844 .
max(em30,(xn3(i)*xn3(i)+ yn3(i)*yn3(i)+ zn3(i)*zn3(i)))
845 lb3(i) = -(xn3(i)*sx2(i) + yn3(i)*sy2(i) + zn3(i)*sz2(i))*s2
846 lc3(i) = (xn3(i)*sx1(i) + yn3(i)*sy1(i) + zn3(i)*sz1(i))*s2
854 nx(i) = xi(i)-(x0(i) + lb3(i)*x03(i) + lc3(i)*x04(i))
855 ny(i) = yi(i)-(y0(i) + lb3(i)*y03(i) + lc3(i)*y04(i))
856 nz(i) = zi(i)-(z0(i) + lb3(i)*z03(i) + lc3(i)*z04(i)
857 hh(i) = nx(i)*xn3(i) + ny(i)*yn3(i) +nz
867 .
max(em30,nnx3(i)*xn3(i)+nny3(i)*yn3(i)+nnz3(i)*zn3(i))
868 x1h(i)=x3(i)+ll*nnx3(i)
869 y1h(i)=y3(i)+ll*nny3(i)
870 z1h(i)=z3(i)+ll*nnz3(i)
873 .
max(em30,nnx4(i)*xn3(i)+nny4(i)*yn3(i)+nnz4(i)*zn3(i))
874 x2h(i)=x4(i)+ll*nnx4(i)
875 y2h(i)=y4(i)+ll*nny4(i)
876 z2h(i)=z4(i)+ll*nnz4(i)
879 .
max(em30,nnx0(i)*xn3(i)+nny0(i)*yn3(i)+nnz0(i)*zn3(i))
880 x0h(i)=x0(i)+ll*nnx0(i)
881 y0h(i)=y0(i)+ll*nny0(i)
882 z0h(i)=z0(i)+ll*nnz0(i)
893 hxi0 = x0h(i) - xi(i)
894 hyi0 = y0h(i) - yi(i)
895 hzi0 = z0h(i) - zi(i)
897 hxi1 = x1h(i) - xi(i)
898 hyi1 = y1h(i) - yi(i)
899 hzi1 = z1h(i) - zi(i)
901 hxi2 = x2h(i) - xi(i)
902 hyi2 = y2h(i) - yi(i)
903 hzi2 = z2h(i) - zi(i)
905 hx01 = x1h(i) - x0h(i)
906 hy01 = y1h(i) - y0h(i)
907 hz01 = z1h(i) - z0h(i)
909 hx02 = x2h(i) - x0h(i)
910 hy02 = y2h(i) - y0h(i)
911 hz02 = z2h(i) - z0h(i)
913 hxn1 = hy01*hz02 - hz01*hy02
914 hyn1 = hz01*hx02 - hx01*hz02
915 hzn1 = hx01*hy02 - hy01*hx02
917 IF(hxn1*xn3(i)+hyn1*yn3(i)+hzn1*zn3(i) <= zero)
THEN
923 hsx1 = hyi0*hzi1 - hzi0*hyi1
924 hsy1 = hzi0*hxi1 - hxi0*hzi1
925 hsz1 = hxi0*hyi1 - hyi0*hxi1
927 hsx2 = hyi0*hzi2 - hzi0*hyi2
928 hsy2 = hzi0*hxi2 - hxi0*hzi2
929 hsz2 = hxi0*hyi2 - hyi0*hxi2
932 .
max(em30,(hxn1*hxn1+ hyn1*hyn1+ hzn1*hzn1))
933 lb3(i) = -(hxn1*hsx2 + hyn1*hsy2 + hzn1*hsz2)*s2
934 lc3(i) = (hxn1*hsx1 + hyn1*hsy1 + hzn1*hsz1)*s2
936 IF(lb3(i) < -zep05 .OR. lc3(i) < -zep05 .OR.
937 . lb3(i)+lc3(i) > onep05) far(i)=1
948 nx(i)=(1-lb3(i)-lc3(i))*nnx0(i)+lb3(i)*nnx3(i)+lc3(i)*nnx4(i)
949 ny(i)=(1-lb3(i)-lc3(i))*nny0(i)+lb3(i)*nny3(i)+lc3(i)*nny4(i)
950 nz(i)=(1-lb3(i)-lc3(i))*nnz0(i)+lb3(i)*nnz3(i)+lc3(i)*nnz4(i)
953 nn = nx(i)*xn3(i)+ ny(i)*yn3(i)+ nz(i)*zn3(i)
959 nn = one/
max(em30,nn)
961 lambda=(xn3(i)*xi0v(i)+yn3(i)*yi0v(i)+zn3(i)*zi0v(i))*nn
962 xp=xi(i)+lambda*nx(i)
963 yp=yi(i)+lambda*ny(i)
964 zp=zi(i)+lambda*nz(i)
978 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
979 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
980 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
982 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
983 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
984 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
987 .
max(em30,(xn3(i)*xn3(i)+ yn3(i)*yn3(i)+ zn3(i)*zn3(i)))
988 lb3(i) = -(xn3(i)*sx2(i) + yn3(i)*sy2(i) + zn3(i)*sz2(i))*nn
989 lc3(i) = (xn3(i)*sx1(i) + yn3(i)*sy1(i) + zn3(i)*sz1(i))*nn
999 lb =
min(one,
max(lb3(i),zero))
1000 lc =
min(one,
max(lc3(i),zero))
1001 la =
min(one,
max(one-lb3(i)-lc3(i),zero))
1003 sl=one/
max(em20,la+lb+lc)
1008 nx3(i) = xi(i)-(la*x0(i) + lb*x3(i) + lc*x4(i))
1009 ny3(i) = yi(i)-(la*y0(i) + lb*y3(i) + lc*y4(i))
1010 nz3(i) = zi(i)-(la*z0(i) + lb*z3(i) + lc*z4(i))
1011 p3(i) = nx3(i)*nx3(i) + ny3(i)*ny3(i) +nz3(i)*nz3(i)
1018 side=sign(one,nx3(i)*xn3(i)+ny3(i)*yn3(i)+nz3(i)*zn3(i))
1019 IF((side >= zero .AND. p3(i) <
max(gap2(i),drad2)) .OR.
1020 . (side < zero .AND. p3(i) < depth2))
THEN
1021 IF(lb3(i) < -zep05 .OR. lc3(i) < -zep05 .OR.
1022 . lb3(i)+lc3(i) > onep05) cycle
1023 crit = abs(third-lb3(i))
1024 . + abs(third-lc3(i))
1025 . + abs(two_third-lb3(i)-lc3(i))
1028 crito = abs(third-lbo)
1030 . + abs(two_third-lbo-lco)
1031 IF(crit < crito)
THEN
1033 la =one-lb3(i)-lc3(i)
1034 nx(i)=lb3(i)*nnx3(i)+lc3(i)*nnx4(i)+la*nnx0(i)
1035 ny(i)=lb3(i)*nny3(i)+lc3(i)*nny4(i)+la*nny0(i)
1036 nz(i)=lb3(i)*nnz3(i)+lc3(i)*nnz4(i)+la*nnz0(i)
1037 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
1042 nx3(i) = xi(i)-(x0(i) + lb3(i)*x03(i
1043 ny3(i) = yi(i)-(y0(i) + lb3(i)*y03(i) + lc3(i)*y04(i))
1044 nz3(i) = zi(i)-(z0(i) + lb3(i)*z03
1046 dist =nx3(i)*nx(i)+ny3(i)*ny(i)+nz3(i)*nz(i)
1047 pene(i)=gapv(i)-dist
1049 irtlm_l(1,i) = cand_e(i)
1050 irtlm_l(2,i) = nint(three*side)
1051 csts_l(1,i) = lb3(i)
1052 csts_l(2,i) = lc3(i)
1054 ELSEIF(side >= zero .AND. p3(i) < drad2)
THEN
1055 IF(lb3(i) < -zep05 .OR. lc3(i) < -zep05 .OR.
1056 . lb3(i)+lc3(i) > onep05) cycle
1057 crit = abs(third-lb3(i))
1058 . + abs(third-lc3(i))
1059 . + abs(two_third-lb3(i)-lc3(i))
1062 crito = abs(third-lbo)
1064 . + abs(two_third-lbo-lco)
1065 IF(crit < crito)
THEN
1067 la =one-lb3(i)-lc3(i)
1068 nx(i)=lb3(i)*nnx3(i)+lc3(i)*nnx4(i)+la*nnx0(i)
1069 ny(i)=lb3(i)*nny3(i)+lc3(i)*nny4(i)+la*nny0(i)
1070 nz(i)=lb3(i)*nnz3(i)+lc3(i)*nnz4(i)+la*nnz0(i)
1071 nn=one/
max(em20,sqrt(nx(i)*nx(i
1076 nx3(i) = xi(i)-(x0(i) + lb3(i)*x03(i) + lc3(i)*x04(i))
1077 ny3(i) = yi(i)-(y0(i) + lb3(i)*y03(i) + lc3(i)*y04(i))
1078 nz3(i) = zi(i)-(z0(i) + lb3(i)*z03(i) + lc3(i)*z04(i))
1080 dist =nx3(i)*nx(i)+ny3(i)*ny(i)+nz3(i)*nz(i)
1081 pene(i)=gapv(i)-dist
1083 irtlm_l(1,i) = -cand_e(i)
1084 irtlm_l(2,i) = nint(three*side)
1085 csts_l(1,i) = lb3(i)
1086 csts_l(2,i) = lc3(i)
1097 xi0v(i) = x0(i) - xi(i)
1098 yi0v(i) = y0(i) - yi(i)
1099 zi0v(i) = z0(i) - zi(i)
1101 xi1(i) = x4(i) - xi(i)
1102 yi1(i) = y4(i) - yi(i)
1103 zi1(i) = z4(i) - zi(i)
1105 xi2(i) = x1(i) - xi(i)
1106 yi2(i) = y1(i) - yi(i)
1107 zi2(i) = z1(i) - zi(i)
1109 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
1110 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
1111 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
1113 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
1114 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
1115 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
1118 .
max(em30,(xn4(i)*xn4(i)+ yn4(i)*yn4(i)+ zn4(i)*zn4(i)))
1119 lb4(i) = -(xn4(i)*sx2(i) + yn4(i)*sy2(i) + zn4(i)*sz2(i))*s2
1120 lc4(i) = (xn4(i)*sx1(i) + yn4(i)*sy1(i) + zn4(i)*sz1(i))*s2
1128 nx(i) = xi(i)-(x0(i) + lb4(i)*x04(i) + lc4(i)*x01(i))
1129 ny(i) = yi(i)-(y0(i) + lb4(i)*y04(i) + lc4(i)*y01(i))
1130 nz(i) = zi(i)-(z0(i) + lb4(i)*z04(i) + lc4(i)*z01(i))
1131 hh(i) = nx(i)*xn4(i) + ny(i)*yn4(i) +nz(i)*zn4(i)
1141 .
max(em30,nnx4(i)*xn4(i)+nny4(i)*yn4(i)+nnz4(i)*zn4(i))
1142 x1h(i)=x4(i)+ll*nnx4(i)
1143 y1h(i)=y4(i)+ll*nny4(i)
1144 z1h(i)=z4(i)+ll*nnz4(i)
1147 .
max(em30,nnx1(i)*xn4(i)+nny1(i)*yn4(i)+nnz1(i)*zn4(i))
1148 x2h(i)=x1(i)+ll*nnx1(i)
1149 y2h(i)=y1(i)+ll*nny1(i)
1150 z2h(i)=z1(i)+ll*nnz1(i)
1153 .
max(em30,nnx0(i)*xn4(i)+nny0(i)*yn4(i)+nnz0(i)*zn4(i))
1154 x0h(i)=x0(i)+ll*nnx0(i)
1155 y0h(i)=y0(i)+ll*nny0(i)
1156 z0h(i)=z0(i)+ll*nnz0(i)
1167 hxi0 = x0h(i) - xi(i)
1168 hyi0 = y0h(i) - yi(i)
1169 hzi0 = z0h(i) - zi(i)
1171 hxi1 = x1h(i) - xi(i)
1172 hyi1 = y1h(i) - yi(i)
1173 hzi1 = z1h(i) - zi(i)
1175 hxi2 = x2h(i) - xi(i)
1176 hyi2 = y2h(i) - yi(i)
1177 hzi2 = z2h(i) - zi(i)
1179 hx01 = x1h(i) - x0h(i)
1180 hy01 = y1h(i) - y0h(i)
1181 hz01 = z1h(i) - z0h(i)
1183 hx02 = x2h(i) - x0h(i)
1184 hy02 = y2h(i) - y0h(i)
1185 hz02 = z2h(i) - z0h(i)
1187 hxn1 = hy01*hz02 - hz01*hy02
1188 hyn1 = hz01*hx02 - hx01*hz02
1189 hzn1 = hx01*hy02 - hy01*hx02
1191 IF(hxn1*xn4(i)+hyn1*yn4(i)+hzn1*zn4(i) <= zero)
THEN
1197 hsx1 = hyi0*hzi1 - hzi0*hyi1
1198 hsy1 = hzi0*hxi1 - hxi0*hzi1
1199 hsz1 = hxi0*hyi1 - hyi0*hxi1
1201 hsx2 = hyi0*hzi2 - hzi0*hyi2
1202 hsy2 = hzi0*hxi2 - hxi0*hzi2
1203 hsz2 = hxi0*hyi2 - hyi0*hxi2
1206 .
max(em30,(hxn1*hxn1+ hyn1*hyn1+ hzn1*hzn1))
1207 lb4(i) = -(hxn1*hsx2 + hyn1*hsy2 + hzn1*hsz2)*s2
1208 lc4(i) = (hxn1*hsx1 + hyn1*hsy1 + hzn1*hsz1)*s2
1210 IF(lb4(i) < -zep05 .OR. lc4(i) < -zep05 .OR.
1211 . lb4(i)+lc4(i) > onep05) far(i)=1
1222 nx(i)=(1-lb4(i)-lc4(i))*nnx0(i)+lb4(i)*nnx4(i)+lc4(i)*nnx1(i)
1223 ny(i)=(1-lb4(i)-lc4(i))*nny0(i)+lb4(i)*nny4(i)+lc4(i)*nny1(i)
1224 nz(i)=(1-lb4(i)-lc4(i))*nnz0(i)+lb4(i)*nnz4(i)+lc4(i)*nnz1(i)
1227 nn = nx(i)*xn4(i)+ ny(i)*yn4(i)+ nz(i)*zn4(i)
1233 nn = one/
max(em30,nn)
1235 lambda=(xn4(i)*xi0v(i)+yn4(i)*yi0v(i)+zn4(i)*zi0v(i))*nn
1237 yp=yi(i)+lambda*ny(i)
1238 zp=zi(i)+lambda*nz(i)
1240 xi0v(i) = x0(i) - xp
1241 yi0v(i) = y0(i) - yp
1242 zi0v(i) = z0(i) - zp
1252 sx1(i) = yi0v(i)*zi1(i) - zi0v(i)*yi1(i)
1253 sy1(i) = zi0v(i)*xi1(i) - xi0v(i)*zi1(i)
1254 sz1(i) = xi0v(i)*yi1(i) - yi0v(i)*xi1(i)
1256 sx2(i) = yi0v(i)*zi2(i) - zi0v(i)*yi2(i)
1257 sy2(i) = zi0v(i)*xi2(i) - xi0v(i)*zi2(i)
1258 sz2(i) = xi0v(i)*yi2(i) - yi0v(i)*xi2(i)
1261 .
max(em30,(xn4(i)*xn4(i)+ yn4(i)*yn4(i)+ zn4(i)*zn4(i)))
1262 lb4(i) = -(xn4(i)*sx2(i) + yn4(i)*sy2(i) + zn4(i)*sz2(i))*nn
1263 lc4(i) = (xn4(i)*sx1(i) + yn4(i)*sy1(i) + zn4(i)*sz1(i))*nn
1274 lb =
min(one,
max(lb4(i),zero))
1275 lc =
min(one,
max(lc4(i),zero))
1276 la =
min(one,
max(one-lb4(i)-lc4(i),zero))
1278 sl=one/
max(em20,la+lb+lc)
1283 nx4(i) = xi(i)-(la*x0(i) + lb*x4(i) + lc
1284 ny4(i) = yi(i)-(la*y0(i) + lb*y4(i) + lc*y1(i))
1285 nz4(i) = zi(i)-(la*z0(i) + lb*z4(i) + lc*z1(i))
1286 p4(i) = nx4(i)*nx4(i) + ny4(i)*ny4(i) +nz4(i)*nz4(i)
1288 side=sign(one,nx4(i)*xn4(i)+ny4(i)*yn4(i)+nz4(i)*zn4(i))
1289 IF((side >= zero .AND. p4(i) < gap2(i)) .OR.
1290 . (side < zero .AND. p4(i) < depth2))
THEN
1291 IF(lb4(i) < -zep05 .OR. lc4(i) < -zep05 .OR.
1292 . lb4(i)+lc4(i) > onep05) cycle
1293 crit = abs(third-lb4(i))
1294 . + abs(third-lc4(i))
1295 . + abs(two_third-lb4(i)-lc4(i))
1299 crito = abs(third-lbo
1301 . + abs(two_third-lbo-lco)
1302 IF(crit < crito)
THEN
1304 la =one-lb4(i)-lc4(i)
1305 nx(i)=lb4(i)*nnx4(i)+lc4(i
1306 ny(i)=lb4(i)*nny4(i)+lc4(i)*nny1(i)+la*nny0(i)
1307 nz(i)=lb4(i)*nnz4(i)+lc4(i)*nnz1(i)+la*nnz0(i)
1308 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
1313 nx4(i) = xi(i)-(x0(i) + lb4(i)*x04(i) + lc4(i)*x01(i))
1314 ny4(i) = yi(i)-(y0(i) + lb4(i)*y04(i) + lc4(i)*y01(i))
1315 nz4(i) = zi(i)-(z0(i) + lb4(i)*z04(i) + lc4(i)*z01(i))
1317 dist =nx4(i)*nx(i)+ny4(i)*ny(i)+nz4(i)*nz(i)
1318 pene(i)=gapv(i)-dist
1320 irtlm_l(1,i) = cand_e(i)
1321 irtlm_l(2,i) = nint(four*side)
1322 csts_l(1,i) = lb4(i)
1323 csts_l(2,i) = lc4(i)
1325 ELSEIF(side >= zero .AND. p4(i) < drad2)
THEN
1326 IF(lb4(i) < -zep05 .OR. lc4(i) < -zep05 .OR.
1328 crit = abs(third-lb4(i))
1329 . + abs(third-lc4(i))
1330 . + abs(two_third-lb4(i)-lc4(i))
1334 crito = abs(third-lbo)
1336 . + abs(two_third-lbo-lco)
1339 la =one-lb4(i)-lc4(i)
1340 nx(i)=lb4(i)*nnx4(i)+lc4(i)*nnx1(i)+la*nnx0(i)
1341 ny(i)=lb4(i)*nny4(i)+lc4(i)*nny1(i)+la*nny0(i)
1342 nz(i)=lb4(i)*nnz4(i)+lc4(i)*nnz1(i)+la*nnz0(i)
1343 nn=one/
max(em20,sqrt(nx(i)*nx(i)+ny(i)*ny(i)+nz(i)*nz(i)))
1348 nx4(i) = xi(i)-(x0(i) + lb4(i)*x04(i) + lc4(i)*x01(i))
1349 ny4(i) = yi(i)-(y0(i) + lb4(i)*y04(i) + lc4(i)*y01(i))
1350 nz4(i) = zi(i)-(z0(i) + lb4(i)*z04(i) + lc4(i)*z01(i))
1352 dist =nx4(i)*nx(i)+ny4(i)*ny(i)+nz4(i)*nz(i)
1353 pene(i)=gapv(i)-dist
1355 irtlm_l(1,i) = -cand_e(i)
1356 irtlm_l(2,i) = nint(four*side)
1357 csts_l(1,i) = lb4(i)
1358 csts_l(2,i) = lc4(i)
1367 IF(irtlm_l(1,i)/=0)
THEN
1370 crit = abs(third-lb)
1372 . + abs(two_third-lb-lc)
1373 lbo = csts(1,cand_n(i))
1374 lco = csts(2,cand_n(i))
1375 crito = abs(third-lbo)
1377 . + abs(two_third-lbo-lco)
1379 IF(crit < crito)
THEN
1381 peni(cand_n(i)) =
max(pene(i),zero)
1382 IF(irtlm(1,cand_n(i)) > 0) ifpen(cand_n(i)) = 1
1384 irtlm(1,cand_n(i)) = irtlm_l(1,i)
1386 irtlm(2,cand_n(i)) = irtlm_l(2,i)
1387 csts(1,cand_n(i)) = lb
1388 csts(2,cand_n(i)) = lc