35
36
37
38
39
40
41
42
43
44
45
46
47 USE intbufdef_mod
49
50
51
52#include "implicit_f.inc"
53#include "comlock.inc"
54
55
56
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "param_c.inc"
60#include "task_c.inc"
61
62
63
64 INTEGER, INTENT(in) :: ITASK
65 INTEGER, INTENT(in) :: NB_INTER_SORTED
66 INTEGER, DIMENSION(NB_INTER_SORTED), INTENT(in) :: LIST_INTER_SORTED
67 INTEGER, DIMENSION(NPARI,NINTER), INTENT(in) :: IPARI
68 my_real,
DIMENSION(3,NUMNOD),
INTENT(in),
TARGET :: x
69 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER), INTENT(in) :: INTBUF_TAB
70 TYPE(sorting_comm_type), DIMENSION(NINTER), INTENT(inout) ::
71
72
73
74 INTEGER :: KK,I,J
75 INTEGER :: NIN,NEXT
76 INTEGER :: IX,IY,IZ
77 INTEGER :: NSN
78 INTEGER :: FIRST,LAST
82
83
84
85 IF(itask==0) THEN
88 ENDIF
90
91
92 DO kk=1,nb_inter_sorted
93 nin = list_inter_sorted(kk)
94 nsn = ipari(5,nin)
95
96
97 IF(sort_comm(nin)%PROC_NUMBER>nspmd/2) THEN
98 first = 1 + itask*nsn/nthread
99 last = (itask+1)*nsn/nthread
100 xmaxb = box_limit(1)
101 ymaxb = box_limit(2)
102 zmaxb = box_limit(3)
103 xminb = box_limit(4)
104 yminb = box_limit(5)
105 zminb = box_limit(6)
108
109
110 DO i=first,last
111 j=intbuf_tab(nin)%NSV(i)
122 ENDDO
124
125
126 IF(itask==0) THEN
127 IF(.NOT.ALLOCATED(sort_comm(nin)%COARSE_GRID)) THEN
129 ENDIF
131 next = 0
136 next = next + 1
137 sort_comm(nin)%COARSE_GRID(next) =
139 ENDIF
140 ENDDO
141 ENDDO
142 ENDDO
144 ENDIF
146
147 ENDIF
148
149 ENDDO
150
151
153 IF(itask==0) THEN
155 ENDIF
156
157 RETURN
logical, dimension(:,:,:), allocatable cell_bool
integer, parameter nb_box_coarse_grid