| 整数::my_rank num_procs |
| 整数,可分配,维度(:)::& |
| displs my_first my_last,计数 |
| 调用mpi_comm_size (MPI_COMM_WORLD num_procs ierr) |
| 调用mpi_comm_rank (MPI_COMM_WORLD my_rank ierr) |
| 分配(my_first (num_procs), my_last (num_procs) & |
| 计数(num_procs) displs (num_procs)) |
| my_first (my_rank + 1) =lbound(sn, 2) |
| my_last (my_rank + 1) =ubound(sn, 2) |
| 调用mpi_allgather (MPI_IN_PLACE 1 MPI_INTEGER & |
| my_first, 1 MPI_INTEGER MPI_COMM_WORLD ierr) |
| 调用mpi_allgather (MPI_IN_PLACE 1 MPI_INTEGER & |
| my_last, 1 MPI_INTEGER MPI_COMM_WORLD ierr) |
| 做我= 1,num_procs |
| displs (i) = my_first (i)−1 |
| 计数(i) = my_last (i)−my_first (i) + 1 |
| 最后做 |
| 调用mpi_allgatherv (sn, 5 * (my_rank + 1), & |
| MPI_DOUBLE_PRECISION sn_global 5 *, & |
| 5 * displs MPI_DOUBLE_PRECISION MPI_COMM_WORLD ierr) |
| 调用mpi_allgatherv (cr, 5 * (my_rank + 1), & |
| MPI_DOUBLE_PRECISION cr_global 5 *, & |
| 5 * displs MPI_DOUBLE_PRECISION MPI_COMM_WORLD ierr) |