program reduction include 'mpif.h' integer SIZE 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_REDUCE(sendbuf, recvbuf,count,MPI_REAL, & MPI_SUM, source, MPI_COMM_WORLD, ierr) If(rank.eq.0)then print *, 'rank= ',rank,' Results: ',recvbuf endif call MPI_FINALIZE(ierr) end