35 1 J_STOK,IRECT ,XA ,NSV ,II_STOK,
36 2 CAND_N,CAND_E ,MULNSN,NOINT ,MARGE ,
37 3 I_MEM ,PROV_N ,PROV_E,ESHIFT,INACTI ,
38 4 IFQ ,CAND_A ,CAND_P,IFPEN ,NSN ,
39 5 OLDNUM,NSNROLD,IGAP ,GAP ,GAP_S ,
40 6 GAP_M ,GAPMIN ,GAPMAX,CURV_MAX ,NIN ,
41 7 GAP_SH,NBINFLG,MBINFLG,ISYM )
49#include "implicit_f.inc"
58 INTEGER I_MEM, NSN, NSNROLD,IGAP,NIN,ISYM
59 INTEGER J_STOK,,NOINT,INACTI,IFQ,ESHIFT
60 INTEGER IRECT(4,*),NSV(*),CAND_N(*),CAND_E(*),CAND_A(*)
61 INTEGER PROV_N(MVSIZ),PROV_E(MVSIZ),IFPEN(*), OLDNUM(*),
62 . NBINFLG(*),MBINFLG(*),II_STOK
65 . xa(3,*), cand_p(*), gap_s(*), gap_m(*), gap_sh(*),
66 . marge, gap, gapmin, gapmax,curv_max(*)
70 INTEGER I,K_STOK,I_STOK,N,NE,J,ISS1,ISS2,IMS1,IMS2
71 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ)
74 . X1(MVSIZ), X2(MVSIZ), X3(MVSIZ), X4(MVSIZ),
75 . Y1(MVSIZ), Y2(MVSIZ), Y3(MVSIZ), Y4(MVSIZ),
76 . Z1(MVSIZ), Z2(MVSIZ), Z3(MVSIZ), Z4(MVSIZ),
77 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
78 . pene(mvsiz), gapv(mvsiz)
82 CALL i20cor3t(j_stok ,xa ,irect ,nsv ,prov_e ,
83 1 prov_n ,igap ,gap ,x1 ,x2 ,
84 2 x3 ,x4 ,y1 ,y2 ,y3 ,
85 3 y4 ,z1 ,z2 ,z3 ,z4 ,
86 4 xi ,yi ,zi ,stif ,ix1 ,
87 5 ix2 ,ix3 ,ix4 ,nsn ,gap_s ,
88 6 gap_m ,gapv ,gapmax,gapmin,curv_max,
91 CALL i7pen3(j_stok ,marge ,x1 ,x2 ,x3 ,
92 . x4 ,y1 ,y2 ,y3 ,y4 ,
93 . z1 ,z2 ,z3 ,z4 ,xi ,
94 . yi ,zi ,pene ,ix1 ,ix2 ,
95 . ix3 ,ix4 ,igap ,gap ,gapv )
102 ne = prov_e(i)+eshift
103 ims1 = bitget(mbinflg(ne),0)
104 ims2 = bitget(mbinflg(ne),1)
106 iss1 = bitget(nbinflg(nsv(n)),0)
107 iss2 = bitget(nbinflg(nsv(n)),1)
109 iss1 = bitget(nint(xrem(12,n-nsn)),0)
110 iss2 = bitget(nint(xrem(12,n-nsn)),1)
112 IF((ims1 == 0 .and. iss1==0).or.
113 . (ims2 == 0 .and. iss2==0))
THEN
121 IF(inacti==5.OR.inacti==6.OR.inacti==7.OR.ifq>0)
THEN
123 IF(pene(i)/=zero)
THEN
125 ne = prov_e(i)+eshift
128 n = oldnum(n-nsn)+nsn
132 DO WHILE(j<=cand_a(n+1)-1)
133 IF(cand_e(j)==ne)
THEN
146 IF(pene(i)/=zero) k_stok = k_stok + 1
152 IF(i_stok+k_stok>mulnsn)
THEN
154#include "lockoff.inc"
157 ii_stok = i_stok + k_stok
158#include "lockoff.inc"
161 . (inacti == 5 .OR. inacti ==6 .OR. inacti ==7))
THEN
165 cand_n(i_stok) = prov_n(i)
166 cand_e(i_stok) = prov_e(i)+eshift
168 cand_p(i_stok) = zero
173 IF(pene(i)/=zero)
THEN
175 cand_n(i_stok) = prov_n(i)
176 cand_e(i_stok) = prov_e(i)+eshift
180 ELSEIF(inacti==5.OR.inacti==6.OR.inacti==7)
THEN
182 IF(pene(i)/=zero)
THEN
184 cand_n(i_stok) = prov_n(i)
185 cand_e(i_stok) = prov_e(i)+eshift
186 cand_p(i_stok) = zero
191 IF(pene(i)/=zero)
THEN
193 cand_n(i_stok) = prov_n(i)
194 cand_e(i_stok) = prov_e(i)+eshift
209 1 J_STOK,IXLINS,IXLINM,XA ,II_STOKE,
210 2 CAND_S,CAND_M,NSN4 ,NOINT ,TZINF ,
211 3 I_MEM ,PROV_S,PROV_M,ESHIFT,ADDCM,
212 4 CHAINE,NLINSA ,NIN )
216#include "implicit_f.inc"
217#include "comlock.inc"
221#include "mvsiz_p.inc"
225 INTEGER I_MEM, NLINSA, NIN
226 INTEGER J_STOK,NSN4,NOINT
227 INTEGER IXLINS(2,*),IXLINM(2,*),CAND_S(*),CAND_M(*),ADDCM(*),
229 INTEGER PROV_S(MVSIZ),PROV_M(MVSIZ),ESHIFT,II_STOKE
236 INTEGER I,J,K_STOK,I_STOK,IAD0,IAD,IADFIN
242 . ixlins,ixlinm,pene ,nlinsa ,nin )
256 DO WHILE(iad/=0.AND.j<nsn4)
258 IF(chaine(1,iad)==prov_s(i))
THEN
271#include "lockoff.inc"
275 chaine(1,iadfin)=prov_s(i)
277 IF(addcm(prov_m(i))==0)
THEN
278 addcm(prov_m(i))=iadfin
280 chaine(2,iad0)=iadfin
287#include "lockoff.inc"
294 cand_s(i_stok) = prov_s(i)
295 cand_m(i_stok) = prov_m(i)+eshift
299#include "lockoff.inc"
312 . IXLINS,IXLINM,PENE ,NLINSA,NIN )
320#include "implicit_f.inc"
324#include "mvsiz_p.inc"
332 INTEGER IXLINS(2,*), IXLINM(2,*),CAND_N(*),CAND_E(*)
336 . XA(3,*), PENE(MVSIZ)
340 INTEGER I, IG,N1,N2,M1,M2,NI,L
342 . XS12,YS12,ZS12,XM12,YM12,ZM12,XXA,XXB,
343 . xs2,xm2,xsm,xs2m2,ys2,ym2,ysm,ys2m2,zs2,zm2,zsm,zs2m2,
344 . xx,yy,zz,als,alm,det,
345 . gap2, x11, x12, x13, x21, x22, x23,
346 . xmax1,ymax1,zmax1,xmax2,ymax2,zmax2,
347 . xmin1,ymin1,zmin1,xmin2,ymin2,zmin2,dd
382 n1=ixlins(1,cand_n(i))
383 n2=ixlins(2,cand_n(i)
399 m1=ixlinm(1,cand_e(i))
400 m2=ixlinm(2,cand_e(i))
407 xmax2 =
max(xa(1,m1),xa(1,m2))
408 ymax2 =
max(xa(2,m1),xa(2,m2))
409 zmax2 =
max(xa(3,m1),xa(3,m2))
413 xmin2 =
min(xa(1,m1),xa(1,m2))
414 ymin2 =
min(xa(2,m1),xa(2,m2))
415 zmin2 =
min(xa(3,m1),xa(3,m2))
416 dd =
max(xmin1-xmax2,ymin1-ymax2,zmin1-zmax2,
417 . xmin2-xmax1,ymin2-ymax1,zmin2-zmax1)
431 xs2 = xs12*xs12 + ys12*ys12 + zs12*zs12
432 xm12 = xa(1,m2)-xa(1,m1)
433 ym12 = xa(2,m2)-xa(2,m1)
434 zm12 = xa(3,m2)-xa(3,m1)
436 xsm = - (xs12*xm12 + ys12*ym12 + zs12*zm12)
437 xxa = xs12*xs2m2 + ys12*ys2m2 + zs12*zs2m2
438 xxb = -xm12*xs2m2 - ym12*ys2m2 - zm12*zs2m2
439 det = xm2*xs2 - xsm*xsm
442 als = (xxb*xsm-xxa*xm2) / det
443 alm = (xxa*xsm-xxb*xs2) / det
451 als = -(xxa + xsm) / xs2
459 alm = -(xxb + xsm) / xm2
467 xx = als*x11 + (one-als)*x21
468 . - alm*xa(1,m1) - (one-alm)*xa(1,m2)
469 yy = als*x12 + (one-als)*x22
470 . - alm*xa(2,m1) - (one-alm)*xa(2,m2)
471 zz = als*x13 + (one-als)*x23
472 . - alm*xa(3,m1) - (one-alm)*xa(3,m2)
473 pene(i) = gap2- xx*xx - yy*yy - zz*zz
subroutine i20cor3t(jlt, xa, irect, nsv, cand_e, cand_n, igap, gap, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, ix1, ix2, ix3, ix4, nsn, gap_s, gap_m, gapv, gapmax, gapmin, curv_max, nin, gap_sh)
subroutine i20sto(j_stok, irect, xa, nsv, ii_stok, cand_n, cand_e, mulnsn, noint, marge, i_mem, prov_n, prov_e, eshift, inacti, ifq, cand_a, cand_p, ifpen, nsn, oldnum, nsnrold, igap, gap, gap_s, gap_m, gapmin, gapmax, curv_max, nin, gap_sh, nbinflg, mbinflg, isym)
subroutine i24dst3e(jlt, a, x, cand_n, cand_e, mbinflg, iseadd, isedge, nsvg, nin, ixx, stif, jlt_new, inacti, xi, yi, zi, xx, yy, zz, pmax_gap, fskyi, isky, cand_t, fcont, h3d_data)
subroutine i25sto(j_stok, irect, x, nsv, local_i_stok, local_cand_n, local_cand_e, marge, prov_n, prov_e, eshift, nsn, nrtm, gap_s, gap_m, nbinflg, mbinflg, ilev, msegtyp, igap, gap_s_l, gap_m_l, edge_l2, icode, iskew, drad, dgapload, nrtmt)
subroutine i7pen3(marge, gapv, n1, n2, n3, pene, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, last)