PartMC
2.6.1
|
Wrapper functions for MPI. More...
Functions/Subroutines | |
logical function | pmc_mpi_support () |
Whether MPI support is compiled in. More... | |
subroutine | pmc_mpi_check_ierr (ierr) |
Dies if ierr is not ok. More... | |
subroutine | pmc_mpi_init () |
Initialize MPI. More... | |
subroutine | pmc_mpi_abort (status) |
Abort the program. More... | |
subroutine | pmc_mpi_finalize () |
Shut down MPI. More... | |
subroutine | pmc_mpi_barrier () |
Synchronize all processes. More... | |
integer function | pmc_mpi_rank () |
Returns the rank of the current process. More... | |
integer function | pmc_mpi_size () |
Returns the total number of processes. More... | |
subroutine | pmc_mpi_test () |
Perform basic sanity checks on send/receive. More... | |
subroutine | pmc_mpi_bcast_integer (val) |
Broadcast the given value from process 0 to all other processes. More... | |
subroutine | pmc_mpi_bcast_string (val) |
Broadcast the given value from process 0 to all other processes. More... | |
subroutine | pmc_mpi_bcast_packed (val) |
Broadcast the given value from process 0 to all other processes. More... | |
integer function | pmc_mpi_pack_size_integer (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_real (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_string (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_logical (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_complex (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_integer_array (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_real_array (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_string_array (val) |
Determines the number of bytes required to pack the given value. More... | |
integer function | pmc_mpi_pack_size_real_array_2d (val) |
Determines the number of bytes required to pack the given value. More... | |
subroutine | pmc_mpi_pack_integer (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_real (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_string (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_logical (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_complex (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_integer_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_real_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_string_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_pack_real_array_2d (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_integer (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_real (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_string (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_logical (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_complex (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_integer_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_real_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_string_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_real_array_2d (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | pmc_mpi_reduce_avg_real (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on the root process. More... | |
subroutine | pmc_mpi_transfer_real (from_val, to_val, from_proc, to_proc) |
Transfer the value between the given processes. More... | |
subroutine | pmc_mpi_transfer_integer (from_val, to_val, from_proc, to_proc) |
Transfer the value between the given processes. More... | |
subroutine | pmc_mpi_reduce_sum_integer (val, val_sum) |
Computes the sum of val across all processes, storing the result in val_sum on the root process. More... | |
subroutine | pmc_mpi_allreduce_sum_integer (val, val_sum) |
Computes the sum of val across all processes, storing the result in val_sum on all processes. More... | |
subroutine | pmc_mpi_reduce_avg_real_array (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on the root process. More... | |
subroutine | pmc_mpi_reduce_avg_real_array_2d (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on the root process. More... | |
subroutine | pmc_mpi_allreduce_average_real (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on all processes. More... | |
subroutine | pmc_mpi_allreduce_average_real_array (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on all processes. More... | |
subroutine | pmc_mpi_allreduce_min_integer (val, val_min) |
Computes the minimum of val across all processes, storing the result in val_min on all processes. More... | |
subroutine | pmc_mpi_allreduce_max_integer (val, val_max) |
Computes the maximum of val across all processes, storing the result in val_max on all processes. More... | |
subroutine | pmc_mpi_allreduce_min_real (val, val_min) |
Computes the minimum of val across all processes, storing the result in val_min on all processes. More... | |
subroutine | pmc_mpi_allreduce_max_real (val, val_max) |
Computes the maximum of val across all processes, storing the result in val_max on all processes. More... | |
logical function | pmc_mpi_allequal_integer (val) |
Returns whether all processors have the same value. More... | |
logical function | pmc_mpi_allequal_real (val) |
Returns whether all processors have the same value. More... | |
subroutine | pmc_mpi_alltoall_integer (send, recv) |
Does an all-to-all transfer of integers. More... | |
subroutine | pmc_mpi_allgather_integer_array (send, recv) |
Does an allgather of integer arrays (must be the same size on all processes). More... | |
subroutine | pmc_mpi_allgather_real_array (send, recv) |
Does an allgather of real arrays (must be the same size on all processes). More... | |
Wrapper functions for MPI.
All of these functions can be called irrespective of whether MPI support was compiled in or not. If MPI support is not enabled then they do the obvious trivial thing (normally nothing).
subroutine pmc_mpi::pmc_mpi_abort | ( | integer, intent(in) | status | ) |
logical function pmc_mpi::pmc_mpi_allequal_integer | ( | integer, intent(in) | val | ) |
logical function pmc_mpi::pmc_mpi_allequal_real | ( | real(kind=dp), intent(in) | val | ) |
subroutine pmc_mpi::pmc_mpi_allgather_integer_array | ( | integer, dimension(:), intent(in) | send, |
integer, dimension(:,:), intent(out) | recv | ||
) |
subroutine pmc_mpi::pmc_mpi_allgather_real_array | ( | real(kind=dp), dimension(:), intent(in) | send, |
real(kind=dp), dimension(:,:), intent(out) | recv | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_average_real | ( | real(kind=dp), intent(in) | val, |
real(kind=dp), intent(out) | val_avg | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_average_real_array | ( | real(kind=dp), dimension(:), intent(in) | val, |
real(kind=dp), dimension(:), intent(out) | val_avg | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_max_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_max | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_max_real | ( | real(kind=dp), intent(in) | val, |
real(kind=dp), intent(out) | val_max | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_min_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_min | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_min_real | ( | real(kind=dp), intent(in) | val, |
real(kind=dp), intent(out) | val_min | ||
) |
subroutine pmc_mpi::pmc_mpi_allreduce_sum_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_sum | ||
) |
subroutine pmc_mpi::pmc_mpi_alltoall_integer | ( | integer, dimension(:), intent(in) | send, |
integer, dimension(size(send)), intent(out) | recv | ||
) |
subroutine pmc_mpi::pmc_mpi_barrier |
subroutine pmc_mpi::pmc_mpi_bcast_integer | ( | integer, intent(inout) | val | ) |
subroutine pmc_mpi::pmc_mpi_bcast_packed | ( | character, dimension(:), intent(inout) | val | ) |
subroutine pmc_mpi::pmc_mpi_bcast_string | ( | character(len=*), intent(inout) | val | ) |
subroutine pmc_mpi::pmc_mpi_check_ierr | ( | integer, intent(in) | ierr | ) |
subroutine pmc_mpi::pmc_mpi_pack_complex | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
complex(kind=dc), intent(in) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_integer | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, intent(in) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_integer_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, dimension(:), intent(in), allocatable | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_logical | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
logical, intent(in) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_real | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), intent(in) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_real_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:), intent(in), allocatable | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_real_array_2d | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:,:), intent(in), allocatable | val | ||
) |
integer function pmc_mpi::pmc_mpi_pack_size_complex | ( | complex(kind=dc), intent(in) | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_integer | ( | integer, intent(in) | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_integer_array | ( | integer, dimension(:), intent(in), allocatable | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_logical | ( | logical, intent(in) | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_real | ( | real(kind=dp), intent(in) | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_real_array | ( | real(kind=dp), dimension(:), intent(in), allocatable | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_real_array_2d | ( | real(kind=dp), dimension(:,:), intent(in), allocatable | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_string | ( | character(len=*), intent(in) | val | ) |
integer function pmc_mpi::pmc_mpi_pack_size_string_array | ( | character(len=*), dimension(:), intent(in), allocatable | val | ) |
subroutine pmc_mpi::pmc_mpi_pack_string | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), intent(in) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_pack_string_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), dimension(:), intent(in), allocatable | val | ||
) |
integer function pmc_mpi::pmc_mpi_rank |
subroutine pmc_mpi::pmc_mpi_reduce_avg_real | ( | real(kind=dp), intent(in) | val, |
real(kind=dp), intent(out) | val_avg | ||
) |
subroutine pmc_mpi::pmc_mpi_reduce_avg_real_array | ( | real(kind=dp), dimension(:), intent(in) | val, |
real(kind=dp), dimension(:), intent(out) | val_avg | ||
) |
subroutine pmc_mpi::pmc_mpi_reduce_avg_real_array_2d | ( | real(kind=dp), dimension(:,:), intent(in) | val, |
real(kind=dp), dimension(:,:), intent(out) | val_avg | ||
) |
subroutine pmc_mpi::pmc_mpi_reduce_sum_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_sum | ||
) |
integer function pmc_mpi::pmc_mpi_size |
logical function pmc_mpi::pmc_mpi_support |
subroutine pmc_mpi::pmc_mpi_test |
subroutine pmc_mpi::pmc_mpi_transfer_integer | ( | integer, intent(in) | from_val, |
integer, intent(out) | to_val, | ||
integer, intent(in) | from_proc, | ||
integer, intent(in) | to_proc | ||
) |
subroutine pmc_mpi::pmc_mpi_transfer_real | ( | real(kind=dp), intent(in) | from_val, |
real(kind=dp), intent(out) | to_val, | ||
integer, intent(in) | from_proc, | ||
integer, intent(in) | to_proc | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_complex | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
complex(kind=dc), intent(out) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_integer | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, intent(out) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_integer_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, dimension(:), intent(inout), allocatable | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_logical | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
logical, intent(out) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_real | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), intent(out) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_real_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:), intent(inout), allocatable | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_real_array_2d | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:,:), intent(inout), allocatable | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_string | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), intent(out) | val | ||
) |
subroutine pmc_mpi::pmc_mpi_unpack_string_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), dimension(:), intent(inout), allocatable | val | ||
) |