43! - count
the max number of secondary node in order to find
the main proc
54#include "implicit_f.inc"
63 INTEGER :: I,II,NS,LJ,K
66 INTEGER :: P,PROC_NUMBER,NB_NODE
67 INTEGER,
DIMENSION(NSPMD) :: PROC_LIST
68 INTEGER,
EXTERNAL :: NLOCAL
69 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: CHECK_MAIN
77 ALLOCATE( check_main(numnod) )
78 check_main(1:numnod) = .false.
82 check_main(n) = .true.
85 ALLOCATE( main_and_secondary(numnod) )
87 main_and_secondary(1:numnod)%ID_JOINT = 0
88 main_and_secondary(1:numnod)%NB_PROC = 0
91 proc_list(1:nspmd) = -1
95 cyl_join(i)%PROC(1:nspmd)%NB_NODE_WEIGHT = 0
100 proc_list(1:nspmd) = -1
119 IF(.NOT.
ALLOCATED(
cyl_join(i)%PROC(p)%NODE))
ALLOCATE(
cyl_join(i)%PROC(p)%NODE(ns) )
123 IF(.NOT.
ALLOCATED(
cyl_join(i)%PROC(p)%WEIGHT))
ALLOCATE(
cyl_join(i)%PROC(p)%WEIGHT(ns) )
125 IF(weight==1)
cyl_join(i)%PROC(p)%NB_NODE_WEIGHT =
cyl_join(i)%PROC(p)%NB_NODE_WEIGHT + 1
138 proc_list(1:nspmd) = -1
144 proc_list(1:nspmd) = 0
147 proc_number = proc_number + 1
148 proc_list(proc_number) = p
153 IF(nlocal(m1,p)==0)
THEN
167 cyl_join(i)%NUMBER_PROC = proc_number
168 ALLOCATE(
cyl_join(i)%LIST_PROC( proc_number ) )
169 cyl_join(i)%LIST_PROC(1:proc_number) = proc_list(1:proc_number)
176 proc_list(1:nspmd) = -1
182 proc_list(1:nspmd) = 0
185 proc_number = proc_number + 1
186 proc_list(proc_number) = p
191 IF(nlocal(m1,p)==0)
THEN
218! proc_list_1(1:nspmd) = 0
236 DEALLOCATE( main_and_secondary )
260#include "implicit_f.inc"
264#include "com01_c.inc"
265#include "com04_c.inc"
269 character(len=*) :: a
272 INTEGER :: P,PROC_NUMBER,NB_NODE
273 INTEGER,
DIMENSION(NSPMD) :: PROC_LIST
274 INTEGER,
EXTERNAL :: NLOCAL
282 proc_list(1:nspmd) = -1
289 proc_list(1:nspmd) = 0
305 print*,i,
' M1:',a,proc_list(1:proc_number)
308 print*,i,
' M2:',a,proc_list(1:proc_number)
void split(mapping_t *, PORD_INT, PORD_INT, PORD_INT, PORD_INT *, PORD_INT *, FLOAT *, PORD_INT)