36 . NEED_COMM_INT25_SOLID_EROSION,COMM_INT25_SOLID_EROSION )
57 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
58#include "implicit_f.inc"
74 integer,
intent(in) :: NBINTC
75 integer,
dimension(NINTER),
intent(in) :: INTLIST
76 integer,
dimension(NPARI,NINTER),
intent(in) :: IPARI
77 integer,
dimension(NINTER+1,NSPMD+1),
intent(in) :: ISENDTO,IRCVFROM
78 TYPE(),
DIMENSION(NINTER),
INTENT(inout) :: SORT_COMM
80 LOGICAL,
INTENT(inout) :: NEED_COMM_INT25_SOLID_EROSION
81 INTEGER,
INTENT(inout) :: COMM_INT25_SOLID_EROSION
88 INTEGER :: KEY,CODE,I,P
90 INTEGER :: COLOR_INACTI,
91 INTEGER :: INACTI,IFQ,ITIED
92 INTEGER :: IDEL,IDELKEEP,ITY,SOLID_EROSION
103 need_comm_int25_solid_erosion = .false.
115 ALLOCATE(sort_comm(nin)%PROC_LIST(nspmd))
120 IF(ircvfrom(nin,p)/=0.or.isendto(nin,p)/=0)
THEN
125 sort_comm(nin)%PROC_LIST(1:nspmd) =
comm_tri7vox(nin)%PROC_LIST(1:nspmd)
127 sort_comm(nin)%PROC_NUMBER = i
136 IF(ircvfrom(nin,ispmd+1)==0.and.isendto(nin,ispmd+1)==0)
THEN
152 inacti = ipari(22,nin)
154 itied = ipari(85,nin)
155 IF(impl_s==0.OR.neig==0)
THEN
156 IF( inacti==5.OR.inacti==6.OR.ifq>0.OR.itied/=0)
THEN
167 solid_erosion = ipari(100,nin)
169 idelkeep = ipari(61,nin)
170 IF(nty==25.AND.ipari(100,nin)>0.AND.idelkeep/=1)
THEN
173 IF(isendto(nin,ispmd+1)>0.OR.ircvfrom(nin,ispmd+1)>0)
THEN
174 need_comm_int25_solid_erosion = .true.
196 IF(.NOT.need_comm_int25_solid_erosion)
THEN
197 color_int25_solid_erosion = 0
200 color_int25_solid_erosion = 1
204 CALL mpi_comm_split(spmd_comm_world,color_int25_solid_erosion,key,comm_int25_solid_erosion,code)
subroutine spmd_split_comm_inter(nbintc, intlist, ipari, isendto, ircvfrom, sort_comm, need_comm_int25_solid_erosion, comm_int25_solid_erosion)