c broadcast
n
starttime = MPI_WTIME()
call
MPI_BCAST(n,1,MPI_INTEGER,0,MPI_COMM_WORLD,ierr)
c check for
quit signal
if ( n .le. 0 ) goto 30
c calculate the
interval size
h =
1.0d0/n
sum = 0.0d0
do 20 i =
myid+1, n, numprocs
x = h * (dble(i) - 0.5d0)
sum = sum + f(x)
20continue
mypi = h * sum
c collect all
the partial sums
call
MPI_REDUCE(mypi,pi,1,MPI_DOUBLE_PRECISION,MPI_SUM,0,
& MPI_COMM_WORLD,ierr)
c node 0 prints
the answer.
endtime = MPI_WTIME()