PartMC  2.6.1
Functions/Subroutines
pmc_mpi Module Reference

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...
 

Detailed Description

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).

Function/Subroutine Documentation

◆ pmc_mpi_abort()

subroutine pmc_mpi::pmc_mpi_abort ( integer, intent(in)  status)

Abort the program.

Parameters
[in]statusStatus flag to abort with.

Definition at line 70 of file mpi.F90.

◆ pmc_mpi_allequal_integer()

logical function pmc_mpi::pmc_mpi_allequal_integer ( integer, intent(in)  val)

Returns whether all processors have the same value.

Parameters
[in]valValue to compare.

Definition at line 1420 of file mpi.F90.

◆ pmc_mpi_allequal_real()

logical function pmc_mpi::pmc_mpi_allequal_real ( real(kind=dp), intent(in)  val)

Returns whether all processors have the same value.

Parameters
[in]valValue to compare.

Definition at line 1444 of file mpi.F90.

◆ pmc_mpi_allgather_integer_array()

subroutine pmc_mpi::pmc_mpi_allgather_integer_array ( integer, dimension(:), intent(in)  send,
integer, dimension(:,:), intent(out)  recv 
)

Does an allgather of integer arrays (must be the same size on all processes).

Parameters
[in]sendValues to send on each process.
[out]recvValues to receive (will be the same on all processes.

Definition at line 1491 of file mpi.F90.

◆ pmc_mpi_allgather_real_array()

subroutine pmc_mpi::pmc_mpi_allgather_real_array ( real(kind=dp), dimension(:), intent(in)  send,
real(kind=dp), dimension(:,:), intent(out)  recv 
)

Does an allgather of real arrays (must be the same size on all processes).

Parameters
[in]sendValues to send on each process.
[out]recvValues to receive (will be the same on all processes.

Definition at line 1526 of file mpi.F90.

◆ pmc_mpi_allreduce_average_real()

subroutine pmc_mpi::pmc_mpi_allreduce_average_real ( real(kind=dp), intent(in)  val,
real(kind=dp), intent(out)  val_avg 
)

Computes the average of val across all processes, storing the result in val_avg on all processes.

Parameters
[in]valValue to average.
[out]val_avgResult.

Definition at line 1280 of file mpi.F90.

◆ pmc_mpi_allreduce_average_real_array()

subroutine pmc_mpi::pmc_mpi_allreduce_average_real_array ( real(kind=dp), dimension(:), intent(in)  val,
real(kind=dp), dimension(:), intent(out)  val_avg 
)

Computes the average of val across all processes, storing the result in val_avg on all processes.

Parameters
[in]valValue to average.
[out]val_avgResult.

Definition at line 1304 of file mpi.F90.

◆ pmc_mpi_allreduce_max_integer()

subroutine pmc_mpi::pmc_mpi_allreduce_max_integer ( integer, intent(in)  val,
integer, intent(out)  val_max 
)

Computes the maximum of val across all processes, storing the result in val_max on all processes.

Parameters
[in]valValue to maximize.
[out]val_maxResult.

Definition at line 1352 of file mpi.F90.

◆ pmc_mpi_allreduce_max_real()

subroutine pmc_mpi::pmc_mpi_allreduce_max_real ( real(kind=dp), intent(in)  val,
real(kind=dp), intent(out)  val_max 
)

Computes the maximum of val across all processes, storing the result in val_max on all processes.

Parameters
[in]valValue to maximize.
[out]val_maxResult.

Definition at line 1398 of file mpi.F90.

◆ pmc_mpi_allreduce_min_integer()

subroutine pmc_mpi::pmc_mpi_allreduce_min_integer ( integer, intent(in)  val,
integer, intent(out)  val_min 
)

Computes the minimum of val across all processes, storing the result in val_min on all processes.

Parameters
[in]valValue to minimize.
[out]val_minResult.

Definition at line 1329 of file mpi.F90.

◆ pmc_mpi_allreduce_min_real()

subroutine pmc_mpi::pmc_mpi_allreduce_min_real ( real(kind=dp), intent(in)  val,
real(kind=dp), intent(out)  val_min 
)

Computes the minimum of val across all processes, storing the result in val_min on all processes.

Parameters
[in]valValue to minimize.
[out]val_minResult.

Definition at line 1375 of file mpi.F90.

◆ pmc_mpi_allreduce_sum_integer()

subroutine pmc_mpi::pmc_mpi_allreduce_sum_integer ( integer, intent(in)  val,
integer, intent(out)  val_sum 
)

Computes the sum of val across all processes, storing the result in val_sum on all processes.

Parameters
[in]valValue to sum.
[out]val_sumResult.

Definition at line 1202 of file mpi.F90.

◆ pmc_mpi_alltoall_integer()

subroutine pmc_mpi::pmc_mpi_alltoall_integer ( integer, dimension(:), intent(in)  send,
integer, dimension(size(send)), intent(out)  recv 
)

Does an all-to-all transfer of integers.

Parameters
[in]sendValues to send (must be one per process).
[out]recvValues to receive (must be one per process).

Definition at line 1468 of file mpi.F90.

◆ pmc_mpi_barrier()

subroutine pmc_mpi::pmc_mpi_barrier

Synchronize all processes.

Definition at line 102 of file mpi.F90.

◆ pmc_mpi_bcast_integer()

subroutine pmc_mpi::pmc_mpi_bcast_integer ( integer, intent(inout)  val)

Broadcast the given value from process 0 to all other processes.

Parameters
[in,out]valValue to broadcast.

Definition at line 287 of file mpi.F90.

◆ pmc_mpi_bcast_packed()

subroutine pmc_mpi::pmc_mpi_bcast_packed ( character, dimension(:), intent(inout)  val)

Broadcast the given value from process 0 to all other processes.

Parameters
[in,out]valValue to broadcast.

Definition at line 325 of file mpi.F90.

◆ pmc_mpi_bcast_string()

subroutine pmc_mpi::pmc_mpi_bcast_string ( character(len=*), intent(inout)  val)

Broadcast the given value from process 0 to all other processes.

Parameters
[in,out]valValue to broadcast.

Definition at line 306 of file mpi.F90.

◆ pmc_mpi_check_ierr()

subroutine pmc_mpi::pmc_mpi_check_ierr ( integer, intent(in)  ierr)

Dies if ierr is not ok.

Parameters
[in]ierrMPI status code.

Definition at line 39 of file mpi.F90.

◆ pmc_mpi_finalize()

subroutine pmc_mpi::pmc_mpi_finalize

Shut down MPI.

Definition at line 88 of file mpi.F90.

◆ pmc_mpi_init()

subroutine pmc_mpi::pmc_mpi_init

Initialize MPI.

Definition at line 55 of file mpi.F90.

◆ pmc_mpi_pack_complex()

subroutine pmc_mpi::pmc_mpi_pack_complex ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
complex(kind=dc), intent(in)  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 662 of file mpi.F90.

◆ pmc_mpi_pack_integer()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 560 of file mpi.F90.

◆ pmc_mpi_pack_integer_array()

subroutine pmc_mpi::pmc_mpi_pack_integer_array ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
integer, dimension(:), intent(in), allocatable  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 687 of file mpi.F90.

◆ pmc_mpi_pack_logical()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 637 of file mpi.F90.

◆ pmc_mpi_pack_real()

subroutine pmc_mpi::pmc_mpi_pack_real ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
real(kind=dp), intent(in)  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 585 of file mpi.F90.

◆ pmc_mpi_pack_real_array()

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 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 719 of file mpi.F90.

◆ pmc_mpi_pack_real_array_2d()

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 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 783 of file mpi.F90.

◆ pmc_mpi_pack_size_complex()

integer function pmc_mpi::pmc_mpi_pack_size_complex ( complex(kind=dc), intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 426 of file mpi.F90.

◆ pmc_mpi_pack_size_integer()

integer function pmc_mpi::pmc_mpi_pack_size_integer ( integer, intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 344 of file mpi.F90.

◆ pmc_mpi_pack_size_integer_array()

integer function pmc_mpi::pmc_mpi_pack_size_integer_array ( integer, dimension(:), intent(in), allocatable  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 446 of file mpi.F90.

◆ pmc_mpi_pack_size_logical()

integer function pmc_mpi::pmc_mpi_pack_size_logical ( logical, intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 406 of file mpi.F90.

◆ pmc_mpi_pack_size_real()

integer function pmc_mpi::pmc_mpi_pack_size_real ( real(kind=dp), intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 364 of file mpi.F90.

◆ pmc_mpi_pack_size_real_array()

integer function pmc_mpi::pmc_mpi_pack_size_real_array ( real(kind=dp), dimension(:), intent(in), allocatable  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 476 of file mpi.F90.

◆ pmc_mpi_pack_size_real_array_2d()

integer function pmc_mpi::pmc_mpi_pack_size_real_array_2d ( real(kind=dp), dimension(:,:), intent(in), allocatable  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 529 of file mpi.F90.

◆ pmc_mpi_pack_size_string()

integer function pmc_mpi::pmc_mpi_pack_size_string ( character(len=*), intent(in)  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 384 of file mpi.F90.

◆ pmc_mpi_pack_size_string_array()

integer function pmc_mpi::pmc_mpi_pack_size_string_array ( character(len=*), dimension(:), intent(in), allocatable  val)

Determines the number of bytes required to pack the given value.

Parameters
[in]valValue to pack.

Definition at line 506 of file mpi.F90.

◆ pmc_mpi_pack_string()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 610 of file mpi.F90.

◆ pmc_mpi_pack_string_array()

subroutine pmc_mpi::pmc_mpi_pack_string_array ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
character(len=*), dimension(:), intent(in), allocatable  val 
)

Packs the given value into the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 751 of file mpi.F90.

◆ pmc_mpi_rank()

integer function pmc_mpi::pmc_mpi_rank

Returns the rank of the current process.

Definition at line 116 of file mpi.F90.

◆ pmc_mpi_reduce_avg_real()

subroutine pmc_mpi::pmc_mpi_reduce_avg_real ( real(kind=dp), intent(in)  val,
real(kind=dp), intent(out)  val_avg 
)

Computes the average of val across all processes, storing the result in val_avg on the root process.

Parameters
[in]valValue to average.
[out]val_avgResult.

Definition at line 1075 of file mpi.F90.

◆ pmc_mpi_reduce_avg_real_array()

subroutine pmc_mpi::pmc_mpi_reduce_avg_real_array ( real(kind=dp), dimension(:), intent(in)  val,
real(kind=dp), dimension(:), intent(out)  val_avg 
)

Computes the average of val across all processes, storing the result in val_avg on the root process.

Parameters
[in]valValue to average.
[out]val_avgResult.

Definition at line 1225 of file mpi.F90.

◆ pmc_mpi_reduce_avg_real_array_2d()

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 
)

Computes the average of val across all processes, storing the result in val_avg on the root process.

Parameters
[in]valValue to average.
[out]val_avgResult.

Definition at line 1252 of file mpi.F90.

◆ pmc_mpi_reduce_sum_integer()

subroutine pmc_mpi::pmc_mpi_reduce_sum_integer ( integer, intent(in)  val,
integer, intent(out)  val_sum 
)

Computes the sum of val across all processes, storing the result in val_sum on the root process.

Parameters
[in]valValue to sum.
[out]val_sumResult.

Definition at line 1179 of file mpi.F90.

◆ pmc_mpi_size()

integer function pmc_mpi::pmc_mpi_size

Returns the total number of processes.

Definition at line 133 of file mpi.F90.

◆ pmc_mpi_support()

logical function pmc_mpi::pmc_mpi_support

Whether MPI support is compiled in.

Definition at line 26 of file mpi.F90.

◆ pmc_mpi_test()

subroutine pmc_mpi::pmc_mpi_test

Perform basic sanity checks on send/receive.

Definition at line 150 of file mpi.F90.

◆ pmc_mpi_transfer_integer()

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 
)

Transfer the value between the given processes.

Parameters
[in]from_valValue to send.
[out]to_valVariable to send to.
[in]from_procProcess to send from.
[in]to_procProcess to send to.

Definition at line 1139 of file mpi.F90.

◆ pmc_mpi_transfer_real()

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 
)

Transfer the value between the given processes.

Parameters
[in]from_valValue to send.
[out]to_valVariable to send to.
[in]from_procProcess to send from.
[in]to_procProcess to send to.

Definition at line 1100 of file mpi.F90.

◆ pmc_mpi_unpack_complex()

subroutine pmc_mpi::pmc_mpi_unpack_complex ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
complex(kind=dc), intent(out)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[out]valValue to pack.

Definition at line 920 of file mpi.F90.

◆ pmc_mpi_unpack_integer()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[out]valValue to pack.

Definition at line 817 of file mpi.F90.

◆ pmc_mpi_unpack_integer_array()

subroutine pmc_mpi::pmc_mpi_unpack_integer_array ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
integer, dimension(:), intent(inout), allocatable  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 945 of file mpi.F90.

◆ pmc_mpi_unpack_logical()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[out]valValue to pack.

Definition at line 895 of file mpi.F90.

◆ pmc_mpi_unpack_real()

subroutine pmc_mpi::pmc_mpi_unpack_real ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
real(kind=dp), intent(out)  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[out]valValue to pack.

Definition at line 842 of file mpi.F90.

◆ pmc_mpi_unpack_real_array()

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 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 977 of file mpi.F90.

◆ pmc_mpi_unpack_real_array_2d()

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 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 1041 of file mpi.F90.

◆ pmc_mpi_unpack_string()

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.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[out]valValue to pack.

Definition at line 867 of file mpi.F90.

◆ pmc_mpi_unpack_string_array()

subroutine pmc_mpi::pmc_mpi_unpack_string_array ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
character(len=*), dimension(:), intent(inout), allocatable  val 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 1009 of file mpi.F90.