! 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