Wrapper functions for MPI. More...
Functions | |
logical | pmc_mpi_support () |
Whether MPI support is compiled in. | |
subroutine | pmc_mpi_check_ierr (ierr) |
Dies if ierr is not ok. | |
subroutine | pmc_mpi_init () |
Initialize MPI. | |
subroutine | pmc_mpi_abort (status) |
Abort the program. | |
subroutine | pmc_mpi_finalize () |
Shut down MPI. | |
subroutine | pmc_mpi_barrier () |
Synchronize all processors. | |
integer | pmc_mpi_rank () |
Returns the rank of the current process. | |
integer | pmc_mpi_size () |
Returns the total number of processes. | |
subroutine | pmc_mpi_bcast_integer (val) |
Broadcast the given value from process 0 to all other processes. | |
subroutine | pmc_mpi_bcast_string (val) |
Broadcast the given value from process 0 to all other processes. | |
subroutine | pmc_mpi_bcast_packed (val) |
Broadcast the given value from process 0 to all other processes. | |
integer | pmc_mpi_pack_size_integer (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_real (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_string (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_logical (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_complex (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_integer_array (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_real_array (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_string_array (val) |
Determines the number of bytes required to pack the given value. | |
integer | pmc_mpi_pack_size_real_array_2d (val) |
Determines the number of bytes required to pack the given value. | |
subroutine | pmc_mpi_pack_integer (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_real (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_string (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_logical (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_complex (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_integer_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_real_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_string_array (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_pack_real_array_2d (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_integer (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_real (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_string (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_logical (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_complex (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_integer_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_real_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_string_array (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_real_array_2d (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
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. | |
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. | |
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. | |
subroutine | pmc_mpi_allreduce_average_real (val, val_avg) |
Computes the average of val across all processes, storing the result in val_avg on the root process. | |
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 the root process. |
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 | ) |
Abort the program.
status | Status flag to abort with. |
subroutine pmc_mpi::pmc_mpi_allreduce_average_real | ( | real*8,intent(in) | val, | |
real*8,intent(out) | val_avg | |||
) |
Computes the average of val across all processes, storing the result in val_avg on the root process.
val | Value to average. | |
val_avg | Result. |
subroutine pmc_mpi::pmc_mpi_allreduce_average_real_array | ( | real*8,dimension(:),intent(in) | val, | |
real*8,dimension(:),intent(out) | val_avg | |||
) |
Computes the average of val across all processes, storing the result in val_avg on the root process.
val | Value to average. | |
val_avg | Result. |
subroutine pmc_mpi::pmc_mpi_barrier | ( | ) |
Synchronize all processors.
subroutine pmc_mpi::pmc_mpi_bcast_integer | ( | integer,intent(inout) | val | ) |
Broadcast the given value from process 0 to all other processes.
val | Value to broadcast. |
subroutine pmc_mpi::pmc_mpi_bcast_packed | ( | character,dimension(:),intent(inout) | val | ) |
Broadcast the given value from process 0 to all other processes.
val | Value to broadcast. |
subroutine pmc_mpi::pmc_mpi_bcast_string | ( | character(len=*),intent(inout) | val | ) |
Broadcast the given value from process 0 to all other processes.
val | Value to broadcast. |
subroutine pmc_mpi::pmc_mpi_check_ierr | ( | integer,intent(in) | ierr | ) |
Dies if ierr
is not ok.
ierr | MPI status code. |
subroutine pmc_mpi::pmc_mpi_finalize | ( | ) |
Shut down MPI.
subroutine pmc_mpi::pmc_mpi_init | ( | ) |
Initialize MPI.
subroutine pmc_mpi::pmc_mpi_pack_complex | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
complex*16,intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_integer | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
integer,intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_integer_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
integer,dimension(:),intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_logical | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
logical,intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_real | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_real_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,dimension(:),intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_real_array_2d | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,dimension(:,:),intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_complex | ( | complex*16,intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_integer | ( | integer,intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_integer_array | ( | integer,dimension(:),intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_logical | ( | logical,intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_real | ( | real*8,intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_real_array | ( | real*8,dimension(:),intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_real_array_2d | ( | real*8,dimension(:,:),intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_string | ( | character(len=*),intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
integer pmc_mpi::pmc_mpi_pack_size_string_array | ( | character(len=*),dimension(:),intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_string | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
character(len=*),intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_pack_string_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
character(len=*),dimension(:),intent(in) | val | |||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
integer pmc_mpi::pmc_mpi_rank | ( | ) |
Returns the rank of the current process.
subroutine pmc_mpi::pmc_mpi_reduce_avg_real | ( | real*8,intent(in) | val, | |
real*8,intent(out) | val_avg | |||
) |
Computes the average of val across all processes, storing the result in val_avg on the root process.
val | Value to average. | |
val_avg | Result. |
subroutine pmc_mpi::pmc_mpi_reduce_avg_real_array | ( | real*8,dimension(:),intent(in) | val, | |
real*8,dimension(:),intent(out) | val_avg | |||
) |
Computes the average of val across all processes, storing the result in val_avg on the root process.
val | Value to average. | |
val_avg | Result. |
subroutine pmc_mpi::pmc_mpi_reduce_avg_real_array_2d | ( | real*8,dimension(:,:),intent(in) | val, | |
real*8,dimension(:,:),intent(out) | val_avg | |||
) |
Computes the average of val across all processes, storing the result in val_avg on the root process.
val | Value to average. | |
val_avg | Result. |
integer pmc_mpi::pmc_mpi_size | ( | ) |
Returns the total number of processes.
logical pmc_mpi::pmc_mpi_support | ( | ) |
Whether MPI support is compiled in.
subroutine pmc_mpi::pmc_mpi_unpack_complex | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
complex*16,intent(out) | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_integer | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
integer,intent(out) | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_integer_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
integer,dimension(:),pointer | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_logical | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
logical,intent(out) | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_real | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,intent(out) | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_real_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,dimension(:),pointer | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_real_array_2d | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
real*8,dimension(:,:),pointer | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_string | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
character(len=*),intent(out) | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |
subroutine pmc_mpi::pmc_mpi_unpack_string_array | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
character(len=*),dimension(:),pointer | val | |||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. | |
position | Current buffer position. | |
val | Value to pack. |