30 . TAB_COINKNOT,L_TAB_COINKNOT,TAB_NEWFCT,
31 . TAB_NEWFCTCUT,L_TAB_NEWFCTCUT,DECALGEO,TAB_REMOVE,FLAG)
41#include "implicit_f.inc"
49 INTEGER DIRDEG,DEGTANG1,DEGTANG2,DIR,DECALGEO,
50 . L_TAB_COINKNOT,TAB_NEWFCT(*),
51 . TAB_NEWFCTCUT(L_TAB_NEWFCTCUT),L_TAB_NEWFCTCUT,FLAG,TAB_REMOVE(*)
52 my_real knotlocpc(deg_max,3,*),tab_coinknot(2,*),newknot
56 INTEGER :: I,J,K,DIRTANG1,DIRTANG2,INTERSEC,IDFCT,IOUT
57 my_real :: DET, T1, T2, XA(5),YA(5),COIN(2,2),XB, YB, XC, YC, XD, YD, TOL
100 coin(1,1) = minval(tab_coinknot(1,1:(l_tab_coinknot)))
101 coin(2,1) = minval(tab_coinknot(2,1:(l_tab_coinknot)))
102 coin(1,2) = maxval(tab_coinknot(1,1:(l_tab_coinknot)))
103 coin(2,2) = maxval(tab_coinknot(2,1:(l_tab_coinknot)))
107 idfct = tab_newfct(offset_newfct+i)
112 IF(tab_remove(j)==idfct)
EXIT
114 IF(j<=l_tab_remove) cycle
116 IF(knotlocpc(1,dir,decalgeo+idfct)>=newknot) cycle
117 IF(knotlocpc(dirdeg+1,dir,decalgeo+idfct)<=newknot) cycle
124 IF(knotlocpc(j,dir,decalgeo+idfct)==newknot)
EXIT
134 xa(1) = knotlocpc(1,dirtang1
135 xa(2) = knotlocpc(degtang1+1,dirtang1,decalgeo+idfct) - tol
136 xa(3) = knotlocpc(degtang1+1,dirtang1,decalgeo+idfct) - tol
137 xa(4) = knotlocpc(1,dirtang1,decalgeo+idfct) + tol
139 ya(1) = knotlocpc(1,dirtang2,decalgeo+idfct) + tol
140 ya(2) = knotlocpc(1,dirtang2,decalgeo+idfct) + tol
141 ya(3) = knotlocpc(degtang2+1,dirtang2,decalgeo+idfct) - tol
145 IF(xa(1)<coin(1,1).OR.ya(1)<coin(2,1)) cycle
146 IF(xa(3)>coin(1,2).OR.ya(3)>coin(2,2)) cycle
153 DO k=1,l_tab_coinknot-1
156 xd=tab_coinknot(1,k+1)
157 yd=tab_coinknot(2,k+1)
158 det = (xb-xa(j))*(yc-yd) - (xc-xd)*(yb-ya(j))
161 t1 = ((xc-xa(j))*(yc-yd)-(xc-xd)*(yc-ya(j)))/det
162 t2 = ((xb-xa(j))*(yc-ya(j))-(xc-xa(j))*(yb-ya(j)))/det
163 IF(t1>1.OR.t1<0.OR.t2>1.OR.t2<=0)
THEN
165 intersec = intersec + 1
169 IF(mod(intersec,2)==0) iout=1
173 DO k=1,l_tab_coinknot-1
176 xd=tab_coinknot(1,k+1)
177 yd=tab_coinknot(2,k+1)
178 det = (xa(j+1)-xa(j))*(yc-yd) - (xc-xd)*(ya(j+1)-ya(j))
181 t1 = ((xc-xa(j))*(yc-yd)-(xc-xd)*(yc-ya(j)))/det
182 t2 = ((xa(j+1)-xa(j))*(yc-ya(j))-(xc-xa(j))*(ya(j+1)-ya(j)))/det
183 IF(t1>1.OR.t1<0.OR.t2>1.OR.t2<=0)
THEN
199 l_tab_newfctcut = l_tab_newfctcut + 1
201 l_tab_newfctcut = l_tab_newfctcut + 1
202 tab_newfctcut(l_tab_newfctcut)=idfct