Just as an experiment, try replacing use mpi
with include 'mpif.h' If that fixes the problem, you can confront the OpenMPI experts T. Rosmond On Fri, 2013-09-06 at 23:14 -0400, Hugo Gagnon wrote: > Thanks for the input but it still doesn't work for me... Here's the > version without MPI_IN_PLACE that does work: > > program test > use mpi > integer :: ierr, myrank, a(2), a_loc(2) = 0 > call MPI_Init(ierr) > call MPI_Comm_rank(MPI_COMM_WORLD,myrank,ierr) > if (myrank == 0) then > a_loc(1) = 1 > a_loc(2) = 2 > else > a_loc(1) = 3 > a_loc(2) = 4 > endif > call MPI_Allreduce(a_loc,a,2,MPI_INTEGER,MPI_SUM,MPI_COMM_WORLD,ierr) > write(*,*) myrank, a(:) > call MPI_Finalize(ierr) > end program test > > $ openmpif90 test.f90 > $ openmpirun -np 2 a.out > 0 4 6 > 1 4 6 > > Now I'd be curious to know why your OpenMPI implementation handles > MPI_IN_PLACE correctly and not mine! >