32 . NB_CELL_X,NB_CELL_Y,NB_CELL_Z,SURFACE_NUMBER,
33 . MIN_MAX_POSITION,CELL,X,IGRSURF,INIVOL,CELL_POSITION,
34 . ALE_NODE_NUMBER,LIST_ALE_NODE)
53#include "implicit_f.inc"
57 INTEGER,
INTENT(IN) :: NSURF,NUMNOD
58 INTEGER,
INTENT(IN) :: NB_CELL_X,NB_CELL_Y,NB_CELL_Z
59 INTEGER,
INTENT(IN) :: SURFACE_NUMBER
60 TYPE(
array_type),
DIMENSION(SURFACE_NUMBER),
INTENT(INOUT) :: CELL
61 my_real,
DIMENSION(6),
INTENT(IN) :: min_max_position
62 my_real,
DIMENSION(3,NUMNOD),
INTENT(IN) :: x
63 INTEGER,
DIMENSION(3,NUMNOD),
INTENT(INOUT) :: CELL_POSITION
64 TYPE (SURF_),
DIMENSION(NSURF),
INTENT(IN) :: IGRSURF
66 INTEGER,
INTENT(IN) :: ALE_NODE_NUMBER
67 INTEGER,
DIMENSION(ALE_NODE_NUMBER),
INTENT(IN)
73 INTEGER,
DIMENSION(5) :: IX,IY,IZ
74 INTEGER :: SURFACE_ID,SURFACE_NODE_NUMBER,SURFACE_TYPE
75 INTEGERDIMENSION(4) :: NODE_ID
84 xmax = min_max_position(4)
85 xmin = min_max_position(1)
86 ymax = min_max_position(5)
87 ymin = min_max_position(2)
88 zmax = min_max_position(6)
89 zmin = min_max_position(3)
97 cell(i)%SIZE_INT_ARRAY_3D(1) = nb_cell_x
98 cell(i)%SIZE_INT_ARRAY_3D(2) = nb_cell_y
99 cell(i)%SIZE_INT_ARRAY_3D(3) = nb_cell_z
101 cell(i)%INT_ARRAY_3D(1:nb_cell_x,1:nb_cell_y,1:nb_cell_z) = 0
105 surface_id = inivol%CONTAINER(i)%SURF_ID
106 surface_node_number = igrsurf(surface_id)%NSEG
107 surface_type = igrsurf(surface_id)%TYPE
108 IF(surface_type/=200.AND.surface_type/=101)
THEN
109 DO k=1,surface_node_number
113 node_id(j) = igrsurf(surface_id)%NODES(k,j)
114 ix(j)=
max(1,1+int(nb_cell_x*(x(1,node_id(j))-xmin)/(xmax-xmin)))
115 iy(j)=
max(1,1+int(nb_cell_y*(x(2,node_id(j))-ymin)/(
ymax-ymin)))
116 iz(j)=
max(1,1+int(nb_cell_z*(x(3,node_id(j))-zmin)/(zmax-zmin)))
135 low_x = nb_cell_x + 1
137 low_y = nb_cell_y + 1
139 low_z = nb_cell_z + 1
142 low_z =
min(low_z,iz(j))
143 up_z =
max(up_z,iz(j+1))
144 low_y =
min(low_y,iy(j))
145 up_y =
max(up_y,iy(j+1))
146 low_x =
min(low_x,ix(j))
147 up_x =
max(up_x,ix(j+1))
150 up_z =
min(nb_cell_z,up_z)
152 up_y =
min(nb_cell_y,up_y)
154 up_x =
min(nb_cell_x,up_x)
161 IF(cell(i)%INT_ARRAY_3D(ii,jj,kk)/=2)
THEN
162 cell(i)%INT_ARRAY_3D(ii,jj,kk) = 2
177 DO j=1,ale_node_number
179 cell_position(1,i) =
max(1,1+int(nb_cell_x*(x(1,i)-xmin)/(xmax-xmin)))
180 cell_position(2,i) =
max(1,1+int(nb_cell_y*(x(2,i)-ymin)/(
ymax-ymin)))
181 cell_position(3,i) =
max(1,1+int(nb_cell_z*(x(3,i)-zmin)/(zmax
184 ! cell(single precision issue)
185 cell_position(1,i) =
min(cell_position(1,i),nb_cell_x)
186 cell_position(2,i) =
min(cell_position(2,i),nb_cell_y)
subroutine ale_box_coloration(nsurf, numnod, nb_cell_x, nb_cell_y, nb_cell_z, surface_number, min_max_position, cell, x, igrsurf, inivol, cell_position, ale_node_number, list_ale_node)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)