30 . TAB_ELCUT, L_TAB_ELCUT,
31 . TAB_COINKNOT,L_TAB_COINKNOT,
32 . TAB_FCTCUT,L_TAB_FCTCUT,DECALGEO,FLAG)
43#include "implicit_f.inc"
52 INTEGER IXIG3D(*),KXIG3D(NIXIG3D,*),DEGTANG1,DEGTANG2
59 INTEGER I,J,K,DIRTANG1,DIRTANG2,
61 . WORK(70000),SIZ_LIST_FCTTOT,IDFCT,IOUT
62 my_real det, t1, t2, xa(5),ya(5),coin(2,2),
63 . xb, yb, xc, yc, xd, yd, tol
64 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX, LIST_FCTTOT, LIST_FCTTRI
80 dirtang1 = -huge(dirtang1)
81 dirtang2 = -huge(dirtang2)
89 siz_list_fcttot = l_tab_elcut*kxig3d(3,tab_elcut(1))
90 ALLOCATE(list_fcttot(siz_list_fcttot))
91 ALLOCATE(list_fcttri(siz_list_fcttot))
97 list_fcttot((i-1)*kxig3d(3,iel)+j) = ixig3d(kxig3d(4,iel)+j-1)
101 ALLOCATE(index(2*siz_list_fcttot))
104 DO i=1,siz_list_fcttot
105 list_fcttri(i)=list_fcttot(index(i))
108 DEALLOCATE(list_fcttot)
111 coin(1,1) = minval(tab_coinknot(1,1:(l_tab_coinknot)))
112 coin(2,1) = minval(tab_coinknot(2,1:(l_tab_coinknot)))
113 coin(1,2) = maxval(tab_coinknot(1,1:(l_tab_coinknot
114 coin(2,2) = maxval(tab_coinknot(2,1:(l_tab_coinknot)))
116 DO i=1,siz_list_fcttot
119 IF(list_fcttri(i-1)==list_fcttri(i)) cycle
122 idfct = list_fcttri(i)
130 xa(1) = knotlocpc(1,dirtang1,decalgeo+idfct) + tol
131 xa(2) = knotlocpc(degtang1+1,dirtang1,decalgeo+idfct) - tol
132 xa(3) = knotlocpc(degtang1+1
133 xa(4) = knotlocpc(1,dirtang1,decalgeo+idfct) + tol
136 ya(1) = knotlocpc(1,dirtang2,decalgeo+idfct) + tol
137 ya(2) = knotlocpc(1,dirtang2,decalgeo+idfct) + tol
138 ya(3) = knotlocpc(degtang2+1,dirtang2,decalgeo+idfct) - tol
139 ya(4) = knotlocpc(degtang2+1,dirtang2,decalgeo+idfct) - tol
146 IF(xa(1)<coin(1,1).OR.ya(1)<coin(2,1)) cycle
147 IF(xa(3)>coin(1,2).OR.ya(3)>coin(2,2)) cycle
157 DO k=1,l_tab_coinknot
160 xd=tab_coinknot(1,k+1)
161 yd=tab_coinknot(2,k+1)
162 det = (xb-xa(j))*(yc-yd) - (xc-xd)*(yb-ya(j))
166 t1 = ((xc-xa(j))*(yc-yd)-(xc-xd)*(yc-ya(j)))/det
167 t2 = ((xb-xa(j))*(yc-ya(j))-(xc-xa(j))*(yb-ya(j)))/det
168 IF(t1>1.OR.t1<0.OR.t2>1.OR.t2<=0)
THEN
176 IF(mod(intersec,2)==0) iout=1
186 DO k=1,l_tab_coinknot-1
189 xd=tab_coinknot(1,k+1)
190 yd=tab_coinknot(2,k+1)
191 det = (xa(j+1)-xa(j))*(yc-yd) - (xc-xd)*(ya(j+1)-ya(j))
196 t2 = ((xa(j+1)-xa(j))*(yc-ya(j))-(xc-xa(j))*(ya(j+1)-ya(j)))/det
197 IF(t1>1.OR.t1<0.OR.t2>1.OR.t2<=0)
THEN
213 l_tab_fctcut = l_tab_fctcut + 1
215 l_tab_fctcut = l_tab_fctcut + 1
216 tab_fctcut(l_tab_fctcut) = idfct
222 DEALLOCATE(list_fcttri)
subroutine test_support_fct(ixig3d, kxig3d, knotlocpc, degtang1, degtang2, dir, tab_elcut, l_tab_elcut, tab_coinknot, l_tab_coinknot, tab_fctcut, l_tab_fctcut, decalgeo, flag)