40#include "implicit_f.inc"
52 INTEGER,
INTENT(IN) :: IX,IY,IZ
53 INTEGER,
INTENT(IN) :: NB_CELL_X,NB_CELL_Y,
54 INTEGER,
INTENT(IN) :: NB_BOX_LIMIT
55 INTEGER,
DIMENSION(NB_CELL_X,NB_CELL_Y,NB_CELL_Z),
INTENT(INOUT) :: CELL
59 LOGICAL :: X_PROPAGATION,Y_PROPAGATION,Z_PROPAGATION
62 INTEGER :: NEXT_X,NEXT_Y,NEXT_Z
64 INTEGER,
DIMENSION(NB_BOX_LIMIT) :: X_LIST,Y_LIST,Z_LIST
67 my_phase = cell(ix,iy,iz)
74 x_propagation = .true.
76 IF(i>nb_cell_x) x_propagation = .false.
77 DO WHILE( x_propagation )
78 IF(cell(i,iy,iz)==0)
THEN
79 cell(i,iy,iz) = my_phase
84 x_propagation = .false.
86 IF(i>nb_cell_x) x_propagation = .false.
92 x_propagation = .true.
94 IF(i<1) x_propagation = .false.
95 DO WHILE( x_propagation )
96 IF(cell(i,iy,iz)==0)
THEN
97 cell(i,iy,iz) = my_phase
102 x_propagation = .false.
104 IF(i<1) x_propagation = .false.
108 ! --------------------------
113 y_propagation = .true.
115 IF(j>nb_cell_y) y_propagation = .false.
118 DO WHILE( y_propagation )
119 IF(cell(i,j,iz)==0)
THEN
120 cell(i,j,iz) = my_phase
125 y_propagation = .false.
127 IF(j>nb_cell_y) y_propagation = .false.
132 z_propagation = .true.
134 IF(k>nb_cell_z) z_propagation = .false.
137 DO WHILE( z_propagation )
138 IF(cell(i,j,k)==0)
THEN
139 cell(i,j,k) = my_phase
142 z_propagation = .false.
144 IF(k>nb_cell_z) z_propagation = .false.
151 z_propagation = .true.
153 IF(k<1) z_propagation = .false.
156 DO WHILE( z_propagation )
157 IF(cell(i,j,k)==0)
THEN
158 cell(i,j,k) = my_phase
161 z_propagation = .false.
163 IF(k<1) z_propagation = .false.
173 y_propagation = .true.
175 IF(j<1) y_propagation = .false.
178 DO WHILE( y_propagation )
179 IF(cell(i,j,iz)==0)
THEN
180 cell(i,j,iz) = my_phase
185 y_propagation = .false.
187 IF(j<1) y_propagation = .false.
192 z_propagation = .true.
194 IF(k>nb_cell_z) z_propagation = .false.
197 DO WHILE( z_propagation )
198 IF(cell(i,j,k)==0)
THEN
199 cell(i,j,k) = my_phase
202 z_propagation = .false.
204 IF(k>nb_cell_z) z_propagation
211 z_propagation = .true.
213 IF(k<1) z_propagation = .false.
216 DO WHILE( z_propagation )
217 IF(cell(i,j,k)==0)
THEN
218 cell(i,j,k) = my_phase
221 z_propagation = .false.
223 IF(k<1) z_propagation = .false.
subroutine phase_propagation(ix, iy, iz, nb_cell_x, nb_cell_y, nb_cell_z, nb_box_limit, cell)