CAMP 1.0.0
Chemistry Across Multiple Phases
|
Wrapper functions for MPI. More...
Functions/Subroutines | |
logical function | camp_mpi_support () |
Whether MPI support is compiled in. | |
subroutine | camp_mpi_check_ierr (ierr) |
Dies if ierr is not ok. | |
subroutine | camp_mpi_init () |
Initialize MPI. | |
subroutine | camp_mpi_abort (status) |
Abort the program. | |
subroutine | camp_mpi_finalize () |
Shut down MPI. | |
subroutine | camp_mpi_barrier (comm) |
Synchronize all processes. | |
integer function | camp_mpi_rank (comm) |
Returns the rank of the current process. | |
integer function | camp_mpi_size (comm) |
Returns the total number of processes. | |
subroutine | camp_mpi_test () |
Perform basic sanity checks on send/receive. | |
subroutine | camp_mpi_bcast_integer (val, comm) |
Broadcast the given value from process 0 to all other processes. | |
subroutine | camp_mpi_bcast_string (val, comm) |
Broadcast the given value from process 0 to all other processes. | |
subroutine | camp_mpi_bcast_packed (val, comm) |
Broadcast the given value from process 0 to all other processes. | |
integer function | camp_mpi_pack_size_integer (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_real (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_string (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_logical (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_complex (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_integer_array (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_real_array (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_string_array (val, comm) |
Determines the number of bytes required to pack the given value. | |
integer function | camp_mpi_pack_size_real_array_2d (val, comm) |
Determines the number of bytes required to pack the given value. | |
subroutine | camp_mpi_pack_integer (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_real (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_string (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_logical (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_complex (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_integer_array (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_real_array (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_string_array (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_pack_real_array_2d (buffer, position, val, comm) |
Packs the given value into the buffer, advancing position. | |
subroutine | camp_mpi_unpack_integer (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_real (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_string (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_logical (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_complex (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_integer_array (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_real_array (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_string_array (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_mpi_unpack_real_array_2d (buffer, position, val, comm) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | camp_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. | |
subroutine | camp_mpi_transfer_real (from_val, to_val, from_proc, to_proc) |
Transfer the value between the given processes. | |
subroutine | camp_mpi_transfer_integer (from_val, to_val, from_proc, to_proc) |
Transfer the value between the given processes. | |
subroutine | camp_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. | |
subroutine | camp_mpi_allreduce_sum_integer (val, val_sum) |
Computes the sum of val across all processes, storing the result in val_sum on all processes. | |
subroutine | camp_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. | |
subroutine | camp_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. | |
subroutine | camp_mpi_allreduce_average_real (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on all processes. | |
subroutine | camp_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. | |
subroutine | camp_mpi_allreduce_min_integer (val, val_min) |
Computes the minimum of val across all processes, storing the result in val_min on all processes. | |
subroutine | camp_mpi_allreduce_max_integer (val, val_max) |
Computes the maximum of val across all processes, storing the result in val_max on all processes. | |
subroutine | camp_mpi_allreduce_min_real (val, val_min) |
Computes the minimum of val across all processes, storing the result in val_min on all processes. | |
subroutine | camp_mpi_allreduce_max_real (val, val_max) |
Computes the maximum of val across all processes, storing the result in val_max on all processes. | |
logical function | camp_mpi_allequal_integer (val) |
Returns whether all processors have the same value. | |
logical function | camp_mpi_allequal_real (val) |
Returns whether all processors have the same value. | |
subroutine | camp_mpi_alltoall_integer (send, recv) |
Does an all-to-all transfer of integers. | |
subroutine | camp_mpi_allgather_integer_array (send, recv) |
Does an allgather of integer arrays (must be the same size on all processes). | |
subroutine | camp_mpi_allgather_real_array (send, recv) |
Does an allgather of real arrays (must be the same size on all processes). | |
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 camp_mpi::camp_mpi_abort | ( | integer, intent(in) | status | ) |
logical function camp_mpi::camp_mpi_allequal_integer | ( | integer, intent(in) | val | ) |
logical function camp_mpi::camp_mpi_allequal_real | ( | real(kind=dp), intent(in) | val | ) |
subroutine camp_mpi::camp_mpi_allgather_integer_array | ( | integer, dimension(:), intent(in) | send, |
integer, dimension(:,:), intent(out) | recv | ||
) |
subroutine camp_mpi::camp_mpi_allreduce_max_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_max | ||
) |
subroutine camp_mpi::camp_mpi_allreduce_min_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_min | ||
) |
subroutine camp_mpi::camp_mpi_allreduce_sum_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_sum | ||
) |
subroutine camp_mpi::camp_mpi_alltoall_integer | ( | integer, dimension(:), intent(in) | send, |
integer, dimension(size(send)), intent(out) | recv | ||
) |
subroutine camp_mpi::camp_mpi_barrier | ( | integer, intent(in), optional | comm | ) |
subroutine camp_mpi::camp_mpi_bcast_integer | ( | integer, intent(inout) | val, |
integer, intent(in), optional | comm | ||
) |
subroutine camp_mpi::camp_mpi_bcast_packed | ( | character, dimension(:), intent(inout) | val, |
integer, intent(in), optional | comm | ||
) |
subroutine camp_mpi::camp_mpi_bcast_string | ( | character(len=*), intent(inout) | val, |
integer, intent(in), optional | comm | ||
) |
subroutine camp_mpi::camp_mpi_check_ierr | ( | integer, intent(in) | ierr | ) |
subroutine camp_mpi::camp_mpi_finalize |
subroutine camp_mpi::camp_mpi_init |
subroutine camp_mpi::camp_mpi_pack_complex | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
complex(kind=dc), intent(in) | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 824 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_integer | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, intent(in) | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 690 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_integer_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, dimension(:), intent(in), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 857 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_logical | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
logical, intent(in) | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 791 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_real | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), intent(in) | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 723 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_real_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:), intent(in), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 898 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_real_array_2d | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:,:), intent(in), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_complex | ( | complex(kind=dc), intent(in) | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_integer | ( | integer, intent(in) | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_integer_array | ( | integer, dimension(:), intent(in), allocatable | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_logical | ( | logical, intent(in) | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_real | ( | real(kind=dp), intent(in) | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_real_array | ( | real(kind=dp), dimension(:), intent(in), allocatable | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_real_array_2d | ( | real(kind=dp), dimension(:,:), intent(in), allocatable | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_string | ( | character(len=*), intent(in) | val, |
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_pack_size_string_array | ( | character(len=*), dimension(:), intent(in), allocatable | val, |
integer, intent(in), optional | comm | ||
) |
subroutine camp_mpi::camp_mpi_pack_string | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), intent(in) | val, | ||
integer, intent(in), optional | comm | ||
) |
Packs the given value into the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 756 of file mpi.F90.
subroutine camp_mpi::camp_mpi_pack_string_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), dimension(:), intent(in), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
integer function camp_mpi::camp_mpi_rank | ( | integer, intent(in), optional | comm | ) |
subroutine camp_mpi::camp_mpi_reduce_sum_integer | ( | integer, intent(in) | val, |
integer, intent(out) | val_sum | ||
) |
integer function camp_mpi::camp_mpi_size | ( | integer, intent(in), optional | comm | ) |
logical function camp_mpi::camp_mpi_support |
subroutine camp_mpi::camp_mpi_test |
subroutine camp_mpi::camp_mpi_transfer_integer | ( | integer, intent(in) | from_val, |
integer, intent(out) | to_val, | ||
integer, intent(in) | from_proc, | ||
integer, intent(in) | to_proc | ||
) |
subroutine camp_mpi::camp_mpi_unpack_complex | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
complex(kind=dc), intent(out) | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1165 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_integer | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, intent(out) | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1022 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_integer_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
integer, dimension(:), intent(inout), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in,out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1200 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_logical | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
logical, intent(out) | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1130 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_real | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), intent(out) | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1057 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_real_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:), intent(inout), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[in,out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1241 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_real_array_2d | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
real(kind=dp), dimension(:,:), intent(inout), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |
subroutine camp_mpi::camp_mpi_unpack_string | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), intent(out) | val, | ||
integer, intent(in), optional | comm | ||
) |
Unpacks the given value from the buffer, advancing position.
[in,out] | buffer | Memory buffer. |
[in,out] | position | Current buffer position. |
[out] | val | Value to pack. |
[in] | comm | MPI communicator |
Definition at line 1092 of file mpi.F90.
subroutine camp_mpi::camp_mpi_unpack_string_array | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
character(len=*), dimension(:), intent(inout), allocatable | val, | ||
integer, intent(in), optional | comm | ||
) |