32 SUBROUTINE destroy_cell(NIN,IB,ICELL_TARGET,ICELLv,IBv,J,Jv, IXS, ITASK)
69 use element_mod ,
only : nixs
73#include "implicit_f.inc"
77 INTEGER,
INTENT(IN) :: IB,ICELL_TARGET,ICELLv,IBv,J,Jv, IXS(NIXS,*),NIN,ITASK
81 INTEGER :: NCELL,ICELL, NAdjv,IADJv,ID,NBCUT,ICELL_DEST,IADJ
82INTEGER :: WhichCell_Node(8),INOD, I, NumNODES_Cell, NumIntP,NumPOINT_Face(6),ListNodID(8)
84 TYPE (BRICK_ENTITY) :: CUTCELL_TMP
96 write (*,fmt=
'(A,I10,A1,I1)')
"destroying cell", ixs(11,ie),
"."
100 IF(ncell==0 .OR. (nbcut>1.AND.icell_target==9) )
THEN
101 print *,
"**error inter22 : unexpected situation, elem id=", ixs(11,id)
104 IF(icell_target==9)
THEN
121 brick_list(nin,ib)%POLY(1)%FACE(1:6)%NumPOINT = 4
122 brick_list(nin,ib)%POLY(9)%FACE(1:6)%NumPOINT = 0
124 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Adjacent_Cell
125 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Adjacent_Cell(2) = 0
126 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Adjacent_Cell(3) = 0
127 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Adjacent_Cell(4) = 0
128 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Adjacent_Cell(5) = 0
130 brick_list(nin,ib)%POLY(9)%FACE(1:6)%NAdjCell = 0
131 brick_list(nin,ib)%POLY(1)%ListNodID(1:8) = (/1,2,3,4,5,6,7,8/)
137 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Surf = zero
145 brick_list(nin,ib)%SECTYPE(1) =
'REMOVED 0-CELL'
147 brick_list(nin,ib)%POLY(1)%WhereIsMain(1:2) = 0
148 brick_list(nin,ib)%POLY(1)%WhereIsMain(3) = id
149 brick_list(nin,ib)%POLY(1)%WhereIsMain(4) = ib
173 ELSEIF(nbcut==1 .AND. icell_target==1)
THEN
193 brick_list(nin,ib)%POLY(9)%FACE(1:6)%NumPOINT = 0
195 brick_list(nin,ib)%POLY(1)%WhereIsMain(1:2) = 0
196 brick_list(nin,ib)%POLY(1)%WhereIsMain(3) = id
197 brick_list(nin,ib)%POLY(1)%WhereIsMain(4) = ib
200 brick_list(nin,ib)%POLY(1)%FACE(k)%Adjacent_Cell(1) =
brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(1)
201 brick_list(nin,ib)%POLY(1)%FACE(k)%Adjacent_Cell(2) =
brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(2)
202 brick_list(nin,ib)%POLY(1)%FACE(k)%Adjacent_Cell(3) =
brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(3)
203 brick_list(nin,ib)%POLY(1)%FACE(k)%Adjacent_Cell(4) =
brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(4)
204 brick_list(nin,ib)%POLY(1)%FACE(k)%Adjacent_Cell(5) =
brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(5)
208 brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(1) = 0
209 brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell
210 brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(3) = 0
212 brick_list(nin,ib)%POLY(9)%FACE(k)%Adjacent_Cell(5) = 0
216 brick_list(nin,ib)%POLY(9)%FACE(1:6)%NAdjCell = 0
218 brick_list(nin,ib)%POLY(1)%ListNodID(1:8) = (/1,2,3,4,5,6,7,8/)
226 brick_list(nin,ib)%POLY(9)%FACE(1:6)%Surf = zero
237 brick_list(nin,ib)%SECTYPE(1) =
'REMOVED 0-CELL'
239!optim : no time to optim, will be treated later, meanwhile a
second pass is done in sinit22.f
270 face_cell(1:6) =
brick_list(nin,ib)%POLY(icell_target)%FACE(1:6)%Surf
271 numnodes_cell =
brick_list(nin,ib)%POLY(icell_target)%NumNOD
272 numintp =
brick_list(nin,ib)%POLY(icell_target)%NumPOINT - numnodes_cell
273 numpoint_face(1:6) =
brick_list(nin,ib)%POLY(icell_target)%FACE(1:6)%NumPOINT
274 listnodid(1:8) =
brick_list(nin,ib)%POLY(icell_target)%ListNodID(1:8)
276 icell = icell_target - 1
278 DO WHILE (icell<=ncell)
280 IF (icell>=ncell)
EXIT
284 brick_list(nin,ib)%POLY(icell)%FACE(1:6)%NumPOINT =
brick_list(nin,ib)%POLY(icell+1)%FACE(1:6)%NumPOINT
286 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(1) =
brick_list(nin,ib)%POLY(icell+1)%FACE(k)%Adjacent_Cell(1)
287 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(2) =
brick_list(nin,ib)%POLY(icell+1)%FACE(k)%Adjacent_Cell(2)
288 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(3) =
brick_list(nin,ib)%POLY(icell+1)%FACE(k)%Adjacent_Cell(3)
289 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(4) =
brick_list(nin,ib)%POLY(icell+1)%FACE(k)%Adjacent_Cell(4)
290 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(5) =
brick_list(nin,ib)%POLY(icell+1)%FACE(k)%Adjacent_Cell(5)
303 brick_list(nin,ib)%POLY(icell)%CellCENTER(1:3) =
brick_list(nin,ib)%POLY(icell+1)%CellCENTER(1:3)
310 brick_list(nin,ib)%POLY(icell)%FACE(1:6)%NumPOINT = 0
312 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(1) = 0
313 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(2) = 0
314 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(3) = 0
315 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(4) = 0
316 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(5) = 0
318 brick_list(nin,ib)%POLY(icell)%FACE(1:6)%NAdjCell = 0
319 brick_list(nin,ib)%POLY(icell)%ListNodID(1:8) = 0
321 brick_list(nin,ib)%POLY(icell)%FACE(1:6)%Surf = zero
322 brick_list(nin,ib)%POLY(icell)%FACE0%Surf = zero
327 brick_list(nin,ib)%PCUT(icell)%P(1:3,1:6) = zero
329 brick_list(nin,ib)%SECTYPE(icell) =
'REMOVED 0-CELL'
333 IF(
brick_list(nin,ib)%NODE(inod)%WhichCell==icell_target)
brick_list(nin,ib)%NODE(inod)%WhichCell=9
337 brick_list(nin,ib)%POLY(9)%FACE(i)%Surf =
brick_list(nin,ib)%POLY(9)%FACE(i)%Surf + face_cell(i)
343 brick_list(nin,ib)%POLY(9)%FACE(i)%NumPOINT =
brick_list(nin,ib)%POLY(9)%FACE(i)%NumPOINT + numpoint_face(i)
345 brick_list(nin,ib)%POLY(9)%ListNodID(nlistnod9+1:8) = listnodid(1:numnodes_cell)