call MPI_COMM_RANK( comm, rank, ierr ) |
if (rank .eq. 0) then |
read *, n |
end if |
call MPI_BCAST(n, 1, MPI_INTEGER, 0, comm, ierr ) |
# Each process computes its range of numbers to sum |
lo = rank*n+1 |
hi = lo+n-1 |
sum = 0.0d0 |
do i = lo, hi |
sum = sum + 1.0d0 / i |
end do |
call MPI_REDUCEALL( sum, sumout, 1, MPI_DOUBLE, |
& MPI_ADD_DOUBLE, comm, ierr) |