1 | call MPI_COMM_RANK( comm, rank, ierr ) |
2 | if (rank .eq. 0) then |
3 | read *, n |
4 | end if |
5 | call MPI_BCAST(n, 1, MPI_INTEGER, 0, comm, ierr ) |
6 | # Each process computes its range of numbers to sum |
7 | lo = rank*n+1 |
8 | hi = lo+n-1 |
9 | sum = 0.0d0 |
10 | do i = lo, hi |
11 | sum = sum + 1.0d0 / i |
12 | end do |
13 | call MPI_REDUCEALL( sum, sumout, 1, MPI_DOUBLE, |
14 | & MPI_ADD_DOUBLE, comm, ierr) |