C----------------------------------------------------------------------------- C MPI tutorial example code: Blocking Send/Receive C FILE: mpi_ping.f C AUTHOR: Blaise Barney C LAST REVISED: C----------------------------------------------------------------------------- program ping include 'mpif.h' integer numtasks, rank, dest, source, tag, ierr integer stat(MPI_STATUS_SIZE) character inmsg, outmsg tag = 1 call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, numtasks, ierr) if (rank .eq. 0) then dest = 1 source = 1 outmsg = 'x' call MPI_SEND(outmsg, 1, MPI_CHARACTER, dest, tag, & MPI_COMM_WORLD, ierr) call MPI_RECV(inmsg, 1, MPI_CHARACTER, source, tag, & MPI_COMM_WORLD, stat, ierr) print *, 'Task ',rank,' sent and received from task ',dest else if (rank .eq. 1) then dest = 0 source = 0 call MPI_RECV(inmsg, 1, MPI_CHARACTER, source, tag, & MPI_COMM_WORLD, stat, err) call MPI_SEND(outmsg, 1, MPI_CHARACTER, dest, tag, & MPI_COMM_WORLD, err) print *, 'Task ',rank,' sent and received from task ',dest endif call MPI_FINALIZE(ierr) end