From df396d01fe7f2723cb78071ee34294884a3ccdf3 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 2 Feb 2023 09:38:17 +0100
Subject: [PATCH] Philippe 02/02/2023: do not use MPI_IN_PLACE (because not
 implemented in MPIVIDE)

---
 src/MNH/aircraft_balloon.f90 | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/MNH/aircraft_balloon.f90 b/src/MNH/aircraft_balloon.f90
index 3f7e8384f..2d58999df 100644
--- a/src/MNH/aircraft_balloon.f90
+++ b/src/MNH/aircraft_balloon.f90
@@ -197,8 +197,18 @@ USE MODD_PRECISION,                  ONLY: MNHINT_MPI
 USE MODD_VAR_ll,                     ONLY: NMNH_COMM_WORLD
 
 INTEGER :: IERR
+INTEGER, DIMENSION(:), ALLOCATABLE :: IRANKNXT_AIRCRAFT_TMP
 
+#if 0
 CALL MPI_ALLREDUCE( MPI_IN_PLACE, NRANKNXT_AIRCRAFT, NAIRCRAFTS, MNHINT_MPI, MPI_MAX, NMNH_COMM_WORLD, IERR )
+#else
+!Do this to not use MPI_IN_PLACE (not yet implemented in MPIVIDE)
+ALLOCATE( IRANKNXT_AIRCRAFT_TMP, MOLD = NRANKNXT_AIRCRAFT )
+CALL MPI_ALLREDUCE( NRANKNXT_AIRCRAFT, IRANKNXT_AIRCRAFT_TMP, NAIRCRAFTS, MNHINT_MPI, MPI_MAX, NMNH_COMM_WORLD, IERR )
+NRANKNXT_AIRCRAFT = IRANKNXT_AIRCRAFT_TMP
+DEALLOCATE( IRANKNXT_AIRCRAFT_TMP )
+#endif
+
 DO JI = 1, NAIRCRAFTS
   IF ( NRANKNXT_AIRCRAFT(JI) /= NRANKCUR_AIRCRAFT(JI) ) THEN
     IF ( ISP == NRANKCUR_AIRCRAFT(JI) ) THEN
@@ -272,8 +282,17 @@ USE MODD_PRECISION,                  ONLY: MNHINT_MPI
 USE MODD_VAR_ll,                     ONLY: NMNH_COMM_WORLD
 
 INTEGER :: IERR
+INTEGER, DIMENSION(:), ALLOCATABLE :: IRANKNXT_BALLOON_TMP
 
+#if 0
 CALL MPI_ALLREDUCE( MPI_IN_PLACE, NRANKNXT_BALLOON, NBALLOONS, MNHINT_MPI, MPI_MAX, NMNH_COMM_WORLD, IERR )
+#else
+!Do this to not use MPI_IN_PLACE (not yet implemented in MPIVIDE)
+ALLOCATE( IRANKNXT_BALLOON_TMP, MOLD = NRANKNXT_BALLOON )
+CALL MPI_ALLREDUCE( NRANKNXT_BALLOON, IRANKNXT_BALLOON_TMP, NBALLOONS, MNHINT_MPI, MPI_MAX, NMNH_COMM_WORLD, IERR )
+NRANKNXT_BALLOON = IRANKNXT_BALLOON_TMP
+DEALLOCATE( IRANKNXT_BALLOON_TMP )
+#endif
 
 DO JI = 1, NBALLOONS
   IF ( NRANKNXT_BALLOON(JI) /= NRANKCUR_BALLOON(JI) ) THEN
-- 
GitLab