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