PartMC  2.2.1
Data Types | Public Member Functions
pmc_integer_varray Module Reference

The integer_varray_t structure and assocated subroutines. More...

List of all members.

Data Types

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

Public Member Functions

elemental subroutine integer_varray_allocate (integer_varray)
 Allocates an empty structure.
elemental subroutine integer_varray_allocate_size (integer_varray, n_entry)
 Allocates a structure with the given size.
elemental subroutine integer_varray_deallocate (integer_varray)
 Deallocates a previously allocated structure.
subroutine integer_varray_reallocate (integer_varray, new_length)
 Changes the given integer_varray to exactly the given new_length.
elemental subroutine integer_varray_zero (integer_varray)
 Resets an integer_varray to have zero particles per bin.
subroutine integer_varray_copy (integer_varray_from, integer_varray_to)
 Copies an integer_varray.
subroutine integer_varray_enlarge (integer_varray)
 Enlarges the given integer_varray by at least one element.
subroutine integer_varray_enlarge_to (integer_varray, n)
 Enlarges the given array so that it is at least of size n.
subroutine integer_varray_shrink (integer_varray)
 Possibly shrinks the storage of the given array, ensuring that it can still store the used entries.
subroutine integer_varray_append (integer_varray, val)
 Adds the given number to the end of the array.
subroutine integer_varray_remove_entry (integer_varray, index)
 Removes the entry at the given index, repacking values to maintain contiguous data.
integer function pmc_mpi_pack_size_integer_varray (val)
 Determines the number of bytes required to pack the given value.
subroutine pmc_mpi_pack_integer_varray (buffer, position, val)
 Packs the given value into the buffer, advancing position.
subroutine pmc_mpi_unpack_integer_varray (buffer, position, val)
 Unpacks the given value from the buffer, advancing position.

Detailed Description

The integer_varray_t structure and assocated subroutines.

Definition at line 9 of file integer_varray.F90.


Member Function/Subroutine Documentation

elemental subroutine pmc_integer_varray::integer_varray_allocate ( type(integer_varray_t), intent(out)  integer_varray)

Allocates an empty structure.

Parameters:
[out]integer_varrayStructure to initialize.

Definition at line 30 of file integer_varray.F90.

elemental subroutine pmc_integer_varray::integer_varray_allocate_size ( type(integer_varray_t), intent(out)  integer_varray,
integer, intent(in)  n_entry 
)

Allocates a structure with the given size.

Parameters:
[out]integer_varrayStructure to initialize.
[in]n_entryNumber of entries.

Definition at line 43 of file integer_varray.F90.

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 181 of file integer_varray.F90.

subroutine pmc_integer_varray::integer_varray_copy ( type(integer_varray_t), intent(in)  integer_varray_from,
type(integer_varray_t), intent(inout)  integer_varray_to 
)

Copies an integer_varray.

Parameters:
[in]integer_varray_fromStructure to copy from.
[in,out]integer_varray_toStructure to copy to.

Definition at line 108 of file integer_varray.F90.

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

Deallocates a previously allocated structure.

Parameters:
[in,out]integer_varrayStructure to deallocate.

Definition at line 59 of file integer_varray.F90.

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

Enlarges the given integer_varray by at least one element.

Currently this at least doubles the length.

Parameters:
[in,out]integer_varrayArray to enlarge.

Definition at line 128 of file integer_varray.F90.

subroutine pmc_integer_varray::integer_varray_enlarge_to ( 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 144 of file integer_varray.F90.

subroutine pmc_integer_varray::integer_varray_reallocate ( 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_enlarge_to() or integer_varray_shrink().

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

Definition at line 75 of file integer_varray.F90.

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 201 of file integer_varray.F90.

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 161 of file integer_varray.F90.

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

Resets an integer_varray to have zero particles per bin.

Parameters:
[in,out]integer_varrayStructure to zero.

Definition at line 95 of file integer_varray.F90.

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 242 of file integer_varray.F90.

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 225 of file integer_varray.F90.

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 266 of file integer_varray.F90.


The documentation for this module was generated from the following file: