program reduction include 'mpif.h' integer numtasks, rank, count, source, ierr real*4 sendbuf, recvbuf C Fortran stores this array in column major order, so the C scatter will actually scatter columns, not rows. call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, numtasks, ierr) sendbuf= rank count=1 source=0 call MPI_ALLREDUCE(sendbuf, recvbuf,count,MPI_REAL, & MPI_SUM, MPI_COMM_WORLD, ierr) print *, 'rank= ',rank,' Results: ',recvbuf call MPI_FINALIZE(ierr) end