PartMC  2.4.0
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 71 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 1421 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 1445 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 1492 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 1527 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 1281 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 1305 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 1353 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 1399 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 1330 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 1376 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 1203 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 1469 of file mpi.F90.

◆ pmc_mpi_barrier()

subroutine pmc_mpi::pmc_mpi_barrier ( )

Synchronize all processes.

Definition at line 103 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 288 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 326 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 307 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 40 of file mpi.F90.

◆ pmc_mpi_finalize()

subroutine pmc_mpi::pmc_mpi_finalize ( )

Shut down MPI.

Definition at line 89 of file mpi.F90.

◆ pmc_mpi_init()

subroutine pmc_mpi::pmc_mpi_init ( )

Initialize MPI.

Definition at line 56 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 663 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 561 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 688 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 638 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 586 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 720 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 784 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 427 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 345 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 447 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 407 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 365 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 477 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 530 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 385 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 507 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 611 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 752 of file mpi.F90.

◆ pmc_mpi_rank()

integer function pmc_mpi::pmc_mpi_rank ( )

Returns the rank of the current process.

Definition at line 117 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 1076 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 1226 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 1253 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 1180 of file mpi.F90.

◆ pmc_mpi_size()

integer function pmc_mpi::pmc_mpi_size ( )

Returns the total number of processes.

Definition at line 134 of file mpi.F90.

◆ pmc_mpi_support()

logical function pmc_mpi::pmc_mpi_support ( )

Whether MPI support is compiled in.

Definition at line 27 of file mpi.F90.

◆ pmc_mpi_test()

subroutine pmc_mpi::pmc_mpi_test ( )

Perform basic sanity checks on send/receive.

Definition at line 151 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 1140 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 1101 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 921 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 818 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 946 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 896 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 843 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 978 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 1042 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 868 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 1010 of file mpi.F90.