! passOneF.f90 program main include "mpif.h" double precision PI25DT parameter (PI25DT = 3.141592653589793238462643d0) double precision pi integer rank, size, count integer ierr, status(MPI_STATUS_SIZE) call MPI_INIT(ierr) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr) call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr) count = 1; if (rank .eq. 0) then call MPI_RECV(pi, 1, MPI_DOUBLE_PRECISION, 1, 10, & MPI_COMM_WORLD, status, ierr) print *, 'Data received from process 1: ', pi else if (rank .eq. 1) then if (rank .eq. 1) then pi = PI25DT; call MPI_Send(pi, count, MPI_DOUBLE_PRECISION, & 0, 10, MPI_COMM_WORLD, ierr) end if end if call MPI_FINALIZE(ierr); end program ! Cray SV1 version: ! f90 passOneF.f90 ! mpirun -np 2 a.out ! Data received from process 1: 3.14159265358979323846264300001E+0