31 . DEGTANG2,KNOTLOCPC,KNOTLOCEL,
32 . TAB_ELCUT,L_TAB_ELCUT,
33 . TAB_NEWEL,L_TAB_NEWEL,
34 . TAB_FCTCUT,L_TAB_FCTCUT,
35 . TAB_REMOVE,TAB_NEWFCT,EL_CONNECT,
36 . TABCONPATCH,IDFILS,FLAG_PRE,FLAG_DEBUG)
50#include "implicit_f.inc"
60 INTEGER IXIG3D(*),KXIG3D(NIXIG3D,*),TAB_NEWFCT(*),TAB_REMOVE(*),
62 . TAB_FCTCUT(*),EL_CONNECT(*),
64 TYPE(TABCONPATCH_IG3D_) TABCONPATCH
65 INTEGER L_TAB_FCTCUT,L_TAB_NEWEL,L_TAB_ELCUT,
66 . deg,degtang1,degtang2,dir,flag_pre,flag_debug
67 my_real knotlocpc(deg_max,3,*),knotlocel(2,3,*)
71 INTEGER I,J,K,L,IAD_IXIG3D,OFFSET_KNOT,DIRTANG1,DIRTANG2,
72 . INCTRL,IOUT,DECALGEO,ITNCTRL,IEL,JEL,ITFILS
96 DO j=1,tabconpatch%L_TAB_IG3D
97 iel=tabconpatch%TAB_IG3D(j)
98 DO itnctrl=1,kxig3d(3,iel)
99 IF(ixig3d(kxig3d(4,iel)+itnctrl-1)==inctrl)
THEN
100 ixig3d(kxig3d(4,iel)+itnctrl-1) = 0
105 DO itnctrl=1,kxig3d(3,jel)
106 IF(ixig3d(kxig3d(4,jel)+itnctrl-1)==inctrl)
THEN
107 ixig3d(kxig3d(4,jel)+itnctrl-1) = 0
120 DO i=1,tabconpatch%L_TAB_IG3D
121 iel=tabconpatch%TAB_IG3D(i)
124 decalgeo=(tabconpatch%PID-1)*(numnod+nbnewx_tmp)
125 DO WHILE(j<=kxig3d(3,iel))
126 DO WHILE (ixig3d(kxig3d(4,iel)+j-1)==0.AND.j<=kxig3d(3,iel))
127 DO WHILE (ixig3d(kxig3d(4,iel)+j-1)==0.AND.k<=l_tab_newfct-1)
133 inctrl = tab_newfct(k)
135 IF(tab_remove(l)==inctrl)
GOTO 1000
138 IF(ixig3d(kxig3d(4,iel)+l-1)==inctrl)
GOTO 1000
141 IF(knotlocel(1,dir,iel)<(knotlocpc(1,dir,decalgeo+inctrl)-tol).OR.
142 . knotlocel(2,dir,iel)>(knotlocpc(deg+1,dir,decalgeo+inctrl)+tol)) cycle
143 IF(knotlocel(1,dirtang1,iel)<(knotlocpc(1,dirtang1,decalgeo+inctrl)-tol).OR.
144 . knotlocel(2,dirtang1,iel)>(knotlocpc(degtang1+1,dirtang1,decalgeo+inctrl)+tol)) cycle
145 IF(knotlocel(1,dirtang2,iel)<(knotlocpc(1,dirtang2,decalgeo+inctrl)-tol).OR.
146 . knotlocel(2,dirtang2,iel)>(knotlocpc(degtang2+1,dirtang2,decalgeo+inctrl)+tol)) cycle
147 ixig3d(kxig3d(4,iel)+j-1) = inctrl
158 DO itfils=1,idfils(1,iel)
159 jel=idfils(itfils+1,iel)
162 decalgeo=(tabconpatch%PID-1)*(numnod+nbnewx_tmp)
163 DO WHILE(j<=kxig3d(3,jel))
164 DO WHILE (ixig3d(kxig3d(4,jel)+j-1)==0.AND.j<=kxig3d(3,jel))
165 DO WHILE (ixig3d(kxig3d(4,jel)+j-1)==0.AND.k
171 inctrl = tab_newfct(k)
173 IF(tab_remove(l)==inctrl)
GOTO 2000
176 IF(ixig3d(kxig3d(4,jel)+l-1)==inctrl)
GOTO 2000
179 IF(knotlocel(1,dir,jel)<(knotlocpc(1,dir,decalgeo+inctrl)-tol).OR.
180 . knotlocel(2,dir,jel)>(knotlocpc(deg+1,dir,decalgeo+inctrl)+tol)) cycle
181 IF(knotlocel(1,dirtang1,jel)<(knotlocpc(1,dirtang1,decalgeo+inctrl)-tol).OR.
182 . knotlocel(2,dirtang1,jel)>(knotlocpc(degtang1+1,dirtang1,decalgeo+inctrl)+tol)) cycle
183 IF(knotlocel(1,dirtang2,jel)<(knotlocpc(1,dirtang2,decalgeo+inctrl)-tol).OR.
184 . knotlocel(2,dirtang2,jel)>(knotlocpc(degtang2+1,dirtang2,decalgeo+inctrl)+tol)) cycle
185 ixig3d(kxig3d(4,jel)+j-1) = inctrl
200 IF(flag_debug==1)
THEN
201 DO i=1,sixig3d+addsixig3d
202 IF(ixig3d(i)==0) print*,
'IL Y A ONE ZERO', ixig3d(i), i
subroutine rebuild_ig3d(ixig3d, kxig3d, dir, deg, degtang1, degtang2, knotlocpc, knotlocel, tab_elcut, l_tab_elcut, tab_newel, l_tab_newel, tab_fctcut, l_tab_fctcut, tab_remove, tab_newfct, el_connect, tabconpatch, idfils, flag_pre, flag_debug)