diff --git a/src/OCE/LBC/lib_mpp.F90 b/src/OCE/LBC/lib_mpp.F90 index eeec13051a35c3131a0ef17f8caa1201a488fc1f..35d87d400327691fd366e0bc5e0932d8e9f73754 100644 --- a/src/OCE/LBC/lib_mpp.F90 +++ b/src/OCE/LBC/lib_mpp.F90 @@ -253,22 +253,13 @@ CONTAINS IF( ierr /= MPI_SUCCESS ) CALL ctl_stop( 'STOP', ' lib_mpp: Error in routine mpi_init' ) ENDIF - IF( PRESENT(localComm) ) THEN - IF( Agrif_Root() ) THEN - mpi_comm_oce = localComm - ENDIF - ELSE -# if defined key_agrif - IF( Agrif_Root() ) THEN -# endif - CALL mpi_comm_dup( mpi_comm_world, mpi_comm_oce, ierr) - IF( ierr /= MPI_SUCCESS ) CALL ctl_stop( 'STOP', ' lib_mpp: Error in routine mpi_comm_dup' ) # if defined key_agrif - ELSE - mpi_comm_oce = Agrif_MPI_get_grid_comm() - ENDIF + IF( Agrif_Root() ) CALL Agrif_MPI_Init(localComm) + mpi_comm_oce = Agrif_MPI_get_grid_comm() ! works for parent and children +# else + mpi_comm_oce = mpi_comm_world ! default + IF( PRESENT(localComm) ) mpi_comm_oce = localComm # endif - ENDIF CALL mpi_comm_rank( mpi_comm_oce, mpprank, ierr ) CALL mpi_comm_size( mpi_comm_oce, mppsize, ierr )