program SendArray use mpi implicit none integer ierr, me, nprocs, errcode, sndto,rcvfrom integer status(MPI_STATUS_SIZE) integer,parameter :: ndata = 10000 real :: a(ndata) real :: b(ndata) call MPI_INIT(ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, me, ierr) !$ Initialize data a = me !$ Send and Receive data sndto = me+1; if ( sndto > nprocs-1 ) sndto=0 rcvfrom = me-1; if ( rcvfrom < 0 ) rcvfrom=nprocs-1 call MPI_SENDRECV(a,ndata,MPI_REAL,sndto,0,b,ndata,MPI_REAL,rcvfrom,0,MPI_COMM_WORLD,status,ierr) print *,'I am proc ',me,' and I have received b(1) = ',b(1) !$ Finalize MPI call MPI_FINALIZE(ierr) end program sendarray