PartMC  2.6.1
Data Types | Functions/Subroutines
pmc_integer_varray Module Reference

The integer_varray_t structure and assocated subroutines. More...

Data Types

type  integer_varray_t
 A variable-length 1D array of integers. More...
 

Functions/Subroutines

elemental integer function integer_varray_n_entry (integer_varray)
 Return the current number of entries. More...
 
subroutine integer_varray_realloc (integer_varray, new_length)
 Changes the given integer_varray to exactly the given new_length. More...
 
elemental subroutine integer_varray_zero (integer_varray)
 Resets an integer_varray to have zero entries. More...
 
subroutine integer_varray_enlarge (integer_varray, n)
 Enlarges the given array so that it is at least of size n. More...
 
subroutine integer_varray_shrink (integer_varray)
 Possibly shrinks the storage of the given array, ensuring that it can still store the used entries. More...
 
subroutine integer_varray_append (integer_varray, val)
 Adds the given number to the end of the array. More...
 
subroutine integer_varray_remove_entry (integer_varray, index)
 Removes the entry at the given index, repacking values to maintain contiguous data. More...
 
integer function pmc_mpi_pack_size_integer_varray (val)
 Determines the number of bytes required to pack the given value. More...
 
subroutine pmc_mpi_pack_integer_varray (buffer, position, val)
 Packs the given value into the buffer, advancing position. More...
 
subroutine pmc_mpi_unpack_integer_varray (buffer, position, val)
 Unpacks the given value from the buffer, advancing position. More...
 

Detailed Description

The integer_varray_t structure and assocated subroutines.

Function/Subroutine Documentation

◆ integer_varray_append()

subroutine pmc_integer_varray::integer_varray_append ( type(integer_varray_t), intent(inout)  integer_varray,
integer, intent(in)  val 
)

Adds the given number to the end of the array.

Parameters
[in,out]integer_varrayArray to add to.
[in]valValue to add.

Definition at line 131 of file integer_varray.F90.

◆ integer_varray_enlarge()

subroutine pmc_integer_varray::integer_varray_enlarge ( type(integer_varray_t), intent(inout)  integer_varray,
integer, intent(in)  n 
)

Enlarges the given array so that it is at least of size n.

Parameters
[in,out]integer_varrayArray to enlarge.
[in]nMinimum new size of array.

Definition at line 90 of file integer_varray.F90.

◆ integer_varray_n_entry()

elemental integer function pmc_integer_varray::integer_varray_n_entry ( type(integer_varray_t), intent(in)  integer_varray)

Return the current number of entries.

Parameters
[in]integer_varrayArray.

Definition at line 30 of file integer_varray.F90.

◆ integer_varray_realloc()

subroutine pmc_integer_varray::integer_varray_realloc ( type(integer_varray_t), intent(inout)  integer_varray,
integer, intent(in)  new_length 
)

Changes the given integer_varray to exactly the given new_length.

This function should not be called directly, but rather use integer_varray_enlarge(), integer_varray_shrink().

Parameters
[in,out]integer_varrayArray to reallocate.
[in]new_lengthNew length of the array.

Definition at line 49 of file integer_varray.F90.

◆ integer_varray_remove_entry()

subroutine pmc_integer_varray::integer_varray_remove_entry ( type(integer_varray_t), intent(inout)  integer_varray,
integer, intent(in)  index 
)

Removes the entry at the given index, repacking values to maintain contiguous data.

Parameters
[in,out]integer_varrayArray to remove from.
[in]indexIndex of entry to remove.

Definition at line 151 of file integer_varray.F90.

◆ integer_varray_shrink()

subroutine pmc_integer_varray::integer_varray_shrink ( type(integer_varray_t), intent(inout)  integer_varray)

Possibly shrinks the storage of the given array, ensuring that it can still store the used entries.

Parameters
[in,out]integer_varrayArray to shrink.

Definition at line 112 of file integer_varray.F90.

◆ integer_varray_zero()

elemental subroutine pmc_integer_varray::integer_varray_zero ( type(integer_varray_t), intent(inout)  integer_varray)

Resets an integer_varray to have zero entries.

Parameters
[in,out]integer_varrayStructure to zero.

Definition at line 75 of file integer_varray.F90.

◆ pmc_mpi_pack_integer_varray()

subroutine pmc_integer_varray::pmc_mpi_pack_integer_varray ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(integer_varray_t), 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 199 of file integer_varray.F90.

◆ pmc_mpi_pack_size_integer_varray()

integer function pmc_integer_varray::pmc_mpi_pack_size_integer_varray ( type(integer_varray_t), intent(in)  val)

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

Parameters
[in]valValue to pack.

Definition at line 176 of file integer_varray.F90.

◆ pmc_mpi_unpack_integer_varray()

subroutine pmc_integer_varray::pmc_mpi_unpack_integer_varray ( character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  position,
type(integer_varray_t), intent(inout)  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 229 of file integer_varray.F90.