45#include "implicit_f.inc"
55 INTEGER,
INTENT(in) ::
56 INTEGER,
DIMENSION(NPARI,NINTER),
INTENT(in) :: IPARI
57 TYPE(intbuf_struct_),
DIMENSION(NINTER),
INTENT(in) :: INTBUF_TAB
58 my_real,
DIMENSION(3,NUMNOD),
INTENT(in),
TARGET :: x
65 INTEGER :: FIRST, LAST
83 IF(
ALLOCATED( sort_comm(nin)%NEXT_NOD ) )
DEALLOCATE(sort_comm(nin)%NEXT_NOD)
84 IF(
ALLOCATED( sort_comm(nin)%LAST_NOD ) )
DEALLOCATE(sort_comm(nin)%LAST_NOD)
86 IF(
ALLOCATED( sort_comm(nin)%IIX ) )
DEALLOCATE(sort_comm(nin)%IIX)
87 IF(
ALLOCATED( sort_comm(nin)%IIY ) )
DEALLOCATE(sort_comm(nin)%IIY)
88 IF(
ALLOCATED( sort_comm(nin)%IIZ ) )
DEALLOCATE(sort_comm(nin)%IIZ)
89 IF(
ALLOCATED( sort_comm(nin)%VOXEL ) )
DEALLOCATE(sort_comm(nin)%VOXEL)
91 ALLOCATE(sort_comm(nin)%NEXT_NOD(nsn))
92 ALLOCATE(sort_comm(nin)%LAST_NOD(nsn))
93 ALLOCATE(sort_comm(nin)%IIX(nsn))
94 ALLOCATE(sort_comm(nin)%IIY(nsn))
95 ALLOCATE(sort_comm(nin)%IIZ(nsn))
106 sort_comm(nin)%IIX(i)=0
107 sort_comm(nin)%IIY(i)=0
108 sort_comm(nin)%IIZ(i)=0
109 IF(intbuf_tab(nin)%STFNS(i)==zero)cycle
110 j=intbuf_tab(nin)%NSV(i)
114 sort_comm(nin)%IIX(i)=int(
nb_cell_x*(x(1,j)-xminb)/(xmaxb-xminb))
115 sort_comm(nin)%IIY(i)=int(
nb_cell_y*(x(2,j)-yminb)/(ymaxb-yminb))
116 sort_comm(nin)%IIZ(i)=int(
nb_cell_z*(x(3,j)-zminb)/(zmaxb-zminb))
121 first = sort_comm(nin)%VOXEL( sort_comm(nin)%IIX(i),
122 . sort_comm(nin)%IIY(i),
123 . sort_comm(nin)%IIZ(i) )
127 sort_comm(nin)%VOXEL( sort_comm(nin)%IIX(i),
128 . sort_comm(nin)%IIY(i),
129 . sort_comm(nin)%IIZ(i)) = i
130 sort_comm(nin)%NEXT_NOD(i) = 0
131 sort_comm(nin)%LAST_NOD(i) = 0
132 ELSEIF(sort_comm(nin)%LAST_NOD(first) == 0)
THEN
134 sort_comm(nin)%NEXT_NOD(first) = i
135 sort_comm(nin)%LAST_NOD(first) = i
136 sort_comm(nin)%NEXT_NOD(i) = 0
140 last = sort_comm(nin)%LAST_NOD(first)
141 sort_comm(nin)%NEXT_NOD(last) = i
142 sort_comm(nin)%LAST_NOD(first) = i
143 sort_comm(nin)%NEXT_NOD(i) = 0