tem_tools_module Module

Additional methods for the TreElM module


Uses

  • module~~tem_tools_module~~UsesGraph module~tem_tools_module tem_tools_module module~env_module env_module module~tem_tools_module->module~env_module aotus_module aotus_module module~env_module->aotus_module flu_binding flu_binding module~env_module->flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi

Used by

  • module~~tem_tools_module~~UsedByGraph module~tem_tools_module tem_tools_module module~hvs_output_module hvs_output_module module~hvs_output_module->module~tem_tools_module module~hvs_vtk_module hvs_vtk_module module~hvs_vtk_module->module~tem_tools_module module~tem_aux_module tem_aux_module module~tem_aux_module->module~tem_tools_module module~tem_balance_module tem_balance_module module~tem_balance_module->module~tem_tools_module module~tem_bc_header_module tem_bc_header_module module~tem_bc_header_module->module~tem_tools_module module~tem_canonicalnd_module tem_canonicalND_module module~tem_canonicalnd_module->module~tem_tools_module module~tem_construction_module tem_construction_module module~tem_construction_module->module~tem_tools_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_tools_module module~tem_debug_module tem_debug_module module~tem_debug_module->module~tem_tools_module module~tem_depend_module tem_depend_module module~tem_depend_module->module~tem_tools_module module~tem_general_module tem_general_module module~tem_general_module->module~tem_tools_module module~tem_geometry_module tem_geometry_module module~tem_geometry_module->module~tem_tools_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_tools_module module~tem_output_module tem_output_module module~tem_output_module->module~tem_tools_module module~tem_reduction_spatial_module tem_reduction_spatial_module module~tem_reduction_spatial_module->module~tem_tools_module module~tem_restart_module tem_restart_module module~tem_restart_module->module~tem_tools_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_tools_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_tools_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_tools_module module~tem_stencil_module tem_stencil_module module~tem_stencil_module->module~tem_tools_module module~tem_stl_module tem_stl_module module~tem_stl_module->module~tem_tools_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_tools_module module~tem_timecontrol_module tem_timeControl_module module~tem_timecontrol_module->module~tem_tools_module module~tem_timer_module tem_timer_module module~tem_timer_module->module~tem_tools_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_tools_module module~tem_transformation_module tem_transformation_module module~tem_transformation_module->module~tem_tools_module module~tem_variable_module tem_variable_module module~tem_variable_module->module~tem_tools_module module~tem_vrtx_module tem_vrtx_module module~tem_vrtx_module->module~tem_tools_module module~treelmesh_module treelmesh_module module~treelmesh_module->module~tem_tools_module

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: InitialSize = 8

initial size of arrays, if size was 0


Interfaces

public interface tem_positioninsorted

  • private function tem_positioninsorted_long(me, val, lower, upper) result(pos)

    return the position of a value in 'me', which is an array with sorted entries. if the value was not found, - return 0 if nextifnotfound = .false. - return position at the end if nextifnotfound = .true.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(in) :: me(:)

    array to search in

    integer(kind=long_k), intent(in) :: val

    value to look for

    integer, intent(in), optional :: lower

    lower search limit

    integer, intent(in), optional :: upper

    upper search limit

    Return Value integer

    position of val in the sorted list, 0 if not found

public interface append

Todo

append position should be only int type. Only the value should be long_k

  • private subroutine tem_appendIntList(firstEntry, entryPos)

    append an entry at the end of the integer list If the first entry is zero, write into that one

    Arguments

    Type IntentOptional Attributes Name
    type(tem_intList), pointer :: firstEntry

    linked list of resulting elements building the neighbor

    integer(kind=int_k), intent(in) :: entryPos

    Add that element

  • private subroutine tem_appendLongList(firstEntry, entryPos)

    append an entry at the end of the integer list If the first entry is zero, write into that one

    Arguments

    Type IntentOptional Attributes Name
    type(tem_longList), pointer :: firstEntry

    linked list of resulting elements building the neighbor

    integer(kind=long_k), intent(in) :: entryPos

    Add that element

  • private subroutine tem_appendInt1dArray(Array, Position, Value)

    append an entry to an allocatable array 1d with single integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(inout), allocatable :: Array(:)

    array to append value to

    integer, intent(in) :: Position

    position the value is appended to

    integer(kind=int_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendInt2dArray(Array, Position1, Position2, Value)

    append an entry to an allocatable array 1d with single integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(inout), allocatable :: Array(:,:)

    array to append value to

    integer, intent(in) :: Position1
    integer, intent(in) :: Position2
    integer(kind=int_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendIntLong1dArray(Array, Position, Value)

    append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:)

    array to append value to

    integer, intent(in) :: Position

    position the value is appended to

    integer(kind=long_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendIntLong2dArray(Array, Position1, Position2, Value)

    append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:,:)

    array to append value to

    integer(kind=long_k), intent(in) :: Position1
    integer(kind=long_k), intent(in) :: Position2
    integer(kind=long_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendSp1dArray(Array, Position, Value)

    append an entry to an allocatable array 1d with single precision If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=single_k), intent(inout), allocatable :: Array(:)

    array to append value to

    integer, intent(in) :: Position

    position the value is appended to

    real(kind=single_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendSp2dArray(Array, Position1, Position2, Value)

    append an entry to an allocatable array 1d with single precision If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=single_k), intent(inout), allocatable :: Array(:,:)

    array to append value to

    integer, intent(in) :: Position1
    integer, intent(in) :: Position2
    real(kind=single_k), intent(in) :: Value

    value to append

  • private subroutine tem_appendDp1dArray(Array, Position, Value)

    append an entry to an allocatable array 1d with double precision If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), intent(inout), allocatable :: Array(:)

    array to append value to

    integer, intent(in) :: Position

    position the value is appended to

    real(kind=rk), intent(in) :: Value

    value to append

  • private subroutine tem_appendDp2dArray(Array, Position1, Position2, Value)

    append an entry to an allocatable array 1d with double precision If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), intent(inout), allocatable :: Array(:,:)

    array to append value to

    integer, intent(in) :: Position1
    integer, intent(in) :: Position2
    real(kind=rk), intent(in) :: Value

    value to append

  • private subroutine tem_appendIntLongArrayTo1dArray(Array, ArrayToAppend)

    append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:)

    array to append to

    integer(kind=long_k), intent(in) :: ArrayToAppend(:)

    array to append

public interface appendUnique

  • private subroutine tem_appendIntListUnique(firstEntry, entryPos, nItems, added)

    append an entry at the end of the integer list If the first entry is zero, write into that one Check, if the current entry already exists Count, how many elements there are in the list

    Arguments

    Type IntentOptional Attributes Name
    type(tem_intList), pointer :: firstEntry

    linked list of resulting elements building the neighbor

    integer(kind=int_k), intent(in) :: entryPos

    Add that element

    integer, intent(inout) :: nItems

    how many items are in list

    logical, intent(out), optional :: added

    has the current item been added?

  • private subroutine tem_appendLongListUnique(firstEntry, entryPos, nItems, added)

    append an entry at the end of the integer list If the first entry is zero, write into that one Check, if the current entry already exists Count, how many elements there are in the list

    Arguments

    Type IntentOptional Attributes Name
    type(tem_longList), pointer :: firstEntry

    linked list of resulting elements building the neighbor

    integer(kind=long_k), intent(in) :: entryPos

    Add that element

    integer, intent(inout) :: nItems

    how many items are in list

    logical, intent(out), optional :: added

    has the current item been added?

  • private subroutine tem_appendInt1dArrayUnique(Array, Value, nElems, Pos, Added)

    append an entry to an allocatable array 1d with single integer at the end If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(inout), allocatable :: Array(:)

    array to append value to

    integer(kind=int_k), intent(in) :: Value

    The value to add as an entry in Array

    integer, intent(inout) :: nElems

    Number of entries in the array (changes, if added = .true.)

    integer, intent(out) :: Pos

    position the value was appended

    logical, intent(out) :: Added

    new entry in array added?

  • private subroutine tem_appendIntLong1dArrayUnique(Array, Value, nElems, Pos, Added)

    append an entry to an allocatable array 1d with single integer at the end If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:)

    array to append value to

    integer(kind=long_k), intent(in) :: Value

    The value to add as an entry in Array

    integer, intent(inout) :: nElems

    Number of entries in the array (changes, if added = .true.)

    integer, intent(out) :: Pos

    position the value was appended

    logical, intent(out) :: Added

    new entry in array added?

public interface resize

  • private subroutine tem_resizeInt1dArray(Array, Newsize)

    append an entry to an allocatable array 1d with integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(inout), allocatable :: Array(:)

    array to resize

    integer, intent(in) :: Newsize

    new size of the array

  • private subroutine tem_resizeInt2dArray(Array, Newsize1, Newsize2)

    append an entry to an allocatable array 2d with integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(inout), allocatable :: Array(:,:)

    array to resize

    integer, intent(in) :: Newsize1

    first new size

    integer, intent(in) :: Newsize2

    second new size

  • private subroutine tem_resizeIntLong1dArray(Array, Newsize)

    append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:)

    array to resize

    integer, intent(in) :: Newsize

    new size of the array

  • private subroutine tem_resizeIntLong2dArray(Array, Newsize1, Newsize2)

    append an entry to an allocatable array 2d with long integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), intent(inout), allocatable :: Array(:,:)

    array to resize

    integer, intent(in) :: Newsize1

    first new size

    integer, intent(in) :: Newsize2

    second new size

  • private subroutine tem_resizeDp1dArray(Array, Newsize)

    append an entry to an allocatable array 1d with integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), intent(inout), allocatable :: Array(:)

    array to resize

    integer, intent(in) :: Newsize

    new size of the array

  • private subroutine tem_resizeDp2dArray(Array, Newsize1, Newsize2)

    append an entry to an allocatable array 2d with integer If the array is too small, reallocate with double size

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), intent(inout), allocatable :: Array(:,:)

    array to resize

    integer, intent(in) :: Newsize1

    first new size

    integer, intent(in) :: Newsize2

    second new size

public interface destroy

  • private pure subroutine tem_destroyIntList(ElemList)

    Destroy complete list

    Arguments

    Type IntentOptional Attributes Name
    type(tem_intList), intent(inout), pointer :: ElemList

    linked list of resulting elements building the neighbor

  • private pure subroutine tem_destroyLongList(ElemList)

    Destroy complete list

    Arguments

    Type IntentOptional Attributes Name
    type(tem_longList), intent(inout), pointer :: ElemList

    linked list of resulting elements building the neighbor

public interface tem_getOptValOrDef

  • private function tem_getoptvalordef_logical(value, default) result(res)

    returns the optional value, if present, or the default.

    this convenience routine encapsulates the check for an optional argument.

    Arguments

    Type IntentOptional Attributes Name
    logical, optional :: value

    the optional value to check for

    logical :: default

    the default to use when the optional value is not present.

    Return Value logical

    the result

  • private function tem_getoptvalordef_int(value, default) result(res)

    returns the optional value, if present, or the default.

    this convenience routine encapsulates the check for an optional argument.

    Arguments

    Type IntentOptional Attributes Name
    integer, optional :: value

    the optional value to check for

    integer :: default

    the default to use when the optional value is not present.

    Return Value integer

    the result

  • private function tem_getoptvalordef_long(value, default) result(res)

    returns the optional value, if present, or the default.

    this convenience routine encapsulates the check for an optional argument.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=long_k), optional :: value

    the optional value to check for

    integer(kind=long_k) :: default

    the default to use when the optional value is not present.

    Return Value integer(kind=long_k)

    the result

  • private function tem_getoptvalordef_real(value, default) result(res)

    returns the optional value, if present, or the default.

    this convenience routine encapsulates the check for an optional argument.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=rk), optional :: value

    the optional value to check for

    real(kind=rk) :: default

    the default to use when the optional value is not present.

    Return Value real(kind=rk)

    the result

  • private function tem_getoptvalordef_char(value, default) result(res)

    returns the optional value, if present, or the default.

    this convenience routine encapsulates the check for an optional argument.

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), optional :: value

    the optional value to check for

    character(len=1) :: default

    the default to use when the optional value is not present.

    Return Value character(len=1)

    the result

private interface tem_positioninsorted

  • private function tem_positioninsorted_int(me, val, lower, upper) result(pos)

    return the position of a value in 'me', which is an array with sorted entries. if the value was not found, - return 0 if nextifnotfound = .false. - return position at the end if nextifnotfound = .true.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int_k), intent(in) :: me(:)

    array to search in

    integer(kind=int_k), intent(in) :: val

    value to look for

    integer, intent(in), optional :: lower

    lower search limit

    integer, intent(in), optional :: upper

    upper search limit

    Return Value integer

    position of val in the sorted list, 0 if not found


Derived Types

type, public ::  tem_intList

linked list of integers

Components

Type Visibility Attributes Name Initial
integer, public :: elem
type(tem_intList), public, pointer :: next => null()

type, public ::  tem_longList

linked list of long integers

Components

Type Visibility Attributes Name Initial
integer(kind=long_k), public :: elem
type(tem_longList), public, pointer :: next => null()

Functions

public function upper_to_lower(string) result(result_string)

Function to turn all upper case characters to lower case.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*) :: string

string to be converted

Return Value character(len=len)

converted string

private function tem_getoptvalordef_logical(value, default) result(res)

returns the optional value, if present, or the default.

Read more…

Arguments

Type IntentOptional Attributes Name
logical, optional :: value

the optional value to check for

logical :: default

the default to use when the optional value is not present.

Return Value logical

the result

private function tem_getoptvalordef_int(value, default) result(res)

returns the optional value, if present, or the default.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, optional :: value

the optional value to check for

integer :: default

the default to use when the optional value is not present.

Return Value integer

the result

private function tem_getoptvalordef_long(value, default) result(res)

returns the optional value, if present, or the default.

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), optional :: value

the optional value to check for

integer(kind=long_k) :: default

the default to use when the optional value is not present.

Return Value integer(kind=long_k)

the result

private function tem_getoptvalordef_real(value, default) result(res)

returns the optional value, if present, or the default.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=rk), optional :: value

the optional value to check for

real(kind=rk) :: default

the default to use when the optional value is not present.

Return Value real(kind=rk)

the result

private function tem_getoptvalordef_char(value, default) result(res)

returns the optional value, if present, or the default.

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=1), optional :: value

the optional value to check for

character(len=1) :: default

the default to use when the optional value is not present.

Return Value character(len=1)

the result

private function tem_positioninsorted_long(me, val, lower, upper) result(pos)

return the position of a value in 'me', which is an array with sorted entries. if the value was not found, - return 0 if nextifnotfound = .false. - return position at the end if nextifnotfound = .true.

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(in) :: me(:)

array to search in

integer(kind=long_k), intent(in) :: val

value to look for

integer, intent(in), optional :: lower

lower search limit

integer, intent(in), optional :: upper

upper search limit

Return Value integer

position of val in the sorted list, 0 if not found

private function tem_positioninsorted_int(me, val, lower, upper) result(pos)

return the position of a value in 'me', which is an array with sorted entries. if the value was not found, - return 0 if nextifnotfound = .false. - return position at the end if nextifnotfound = .true.

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(in) :: me(:)

array to search in

integer(kind=int_k), intent(in) :: val

value to look for

integer, intent(in), optional :: lower

lower search limit

integer, intent(in), optional :: upper

upper search limit

Return Value integer

position of val in the sorted list, 0 if not found


Subroutines

public subroutine tem_horizontalSpacer(fUnit, before, after, toFile, str)

write out a message with the defined string+real content

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: fUnit

output unit

integer, intent(in), optional :: before

optional white lines before print

integer, intent(in), optional :: after

optional white lines after print

logical, intent(in), optional :: toFile

output goes to debug file

character(len=*), intent(in), optional :: str

String to be printed at the beginning of the spacer

public subroutine tem_printArray(me, itemLength, title, lineLength, nUnit)

print an array to the debugunit

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(in) :: me(:)

long array to write to debug file

integer, optional :: itemLength

how many characters needs each item of the array to output

character(len=*), optional :: title

Array title in debug output for easy identification in the file

integer, optional :: lineLength

how long should the line be

integer :: nUnit

to which unit to output

public subroutine tem_file_to_string(funit, string, iError)

Read a file from a connected unit into a string.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: funit

File unit to read, has to be opened sequential and formatted.

character(len=*), intent(out) :: string

String to fill with the content of the file.

integer, intent(out) :: iError

Error code:

Read more…

private subroutine tem_appendLongListUnique(firstEntry, entryPos, nItems, added)

append an entry at the end of the integer list If the first entry is zero, write into that one Check, if the current entry already exists Count, how many elements there are in the list

Arguments

Type IntentOptional Attributes Name
type(tem_longList), pointer :: firstEntry

linked list of resulting elements building the neighbor

integer(kind=long_k), intent(in) :: entryPos

Add that element

integer, intent(inout) :: nItems

how many items are in list

logical, intent(out), optional :: added

has the current item been added?

private subroutine tem_appendLongList(firstEntry, entryPos)

append an entry at the end of the integer list If the first entry is zero, write into that one

Arguments

Type IntentOptional Attributes Name
type(tem_longList), pointer :: firstEntry

linked list of resulting elements building the neighbor

integer(kind=long_k), intent(in) :: entryPos

Add that element

private pure subroutine tem_destroyLongList(ElemList)

Destroy complete list

Arguments

Type IntentOptional Attributes Name
type(tem_longList), intent(inout), pointer :: ElemList

linked list of resulting elements building the neighbor

private subroutine tem_appendIntListUnique(firstEntry, entryPos, nItems, added)

append an entry at the end of the integer list If the first entry is zero, write into that one Check, if the current entry already exists Count, how many elements there are in the list

Arguments

Type IntentOptional Attributes Name
type(tem_intList), pointer :: firstEntry

linked list of resulting elements building the neighbor

integer(kind=int_k), intent(in) :: entryPos

Add that element

integer, intent(inout) :: nItems

how many items are in list

logical, intent(out), optional :: added

has the current item been added?

private subroutine tem_appendIntList(firstEntry, entryPos)

append an entry at the end of the integer list If the first entry is zero, write into that one

Arguments

Type IntentOptional Attributes Name
type(tem_intList), pointer :: firstEntry

linked list of resulting elements building the neighbor

integer(kind=int_k), intent(in) :: entryPos

Add that element

private pure subroutine tem_destroyIntList(ElemList)

Destroy complete list

Arguments

Type IntentOptional Attributes Name
type(tem_intList), intent(inout), pointer :: ElemList

linked list of resulting elements building the neighbor

private subroutine tem_appendIntLongArrayTo1dArray(Array, ArrayToAppend)

append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:)

array to append to

integer(kind=long_k), intent(in) :: ArrayToAppend(:)

array to append

private subroutine tem_appendIntLong1dArray(Array, Position, Value)

append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:)

array to append value to

integer, intent(in) :: Position

position the value is appended to

integer(kind=long_k), intent(in) :: Value

value to append

private subroutine tem_appendIntLong2dArray(Array, Position1, Position2, Value)

append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:,:)

array to append value to

integer(kind=long_k), intent(in) :: Position1
integer(kind=long_k), intent(in) :: Position2
integer(kind=long_k), intent(in) :: Value

value to append

private subroutine tem_appendInt1dArrayUnique(Array, Value, nElems, Pos, Added)

append an entry to an allocatable array 1d with single integer at the end If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(inout), allocatable :: Array(:)

array to append value to

integer(kind=int_k), intent(in) :: Value

The value to add as an entry in Array

integer, intent(inout) :: nElems

Number of entries in the array (changes, if added = .true.)

integer, intent(out) :: Pos

position the value was appended

logical, intent(out) :: Added

new entry in array added?

private subroutine tem_appendIntLong1dArrayUnique(Array, Value, nElems, Pos, Added)

append an entry to an allocatable array 1d with single integer at the end If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:)

array to append value to

integer(kind=long_k), intent(in) :: Value

The value to add as an entry in Array

integer, intent(inout) :: nElems

Number of entries in the array (changes, if added = .true.)

integer, intent(out) :: Pos

position the value was appended

logical, intent(out) :: Added

new entry in array added?

private subroutine tem_appendInt1dArray(Array, Position, Value)

append an entry to an allocatable array 1d with single integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(inout), allocatable :: Array(:)

array to append value to

integer, intent(in) :: Position

position the value is appended to

integer(kind=int_k), intent(in) :: Value

value to append

private subroutine tem_appendInt2dArray(Array, Position1, Position2, Value)

append an entry to an allocatable array 1d with single integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(inout), allocatable :: Array(:,:)

array to append value to

integer, intent(in) :: Position1
integer, intent(in) :: Position2
integer(kind=int_k), intent(in) :: Value

value to append

private subroutine tem_appendSp1dArray(Array, Position, Value)

append an entry to an allocatable array 1d with single precision If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=single_k), intent(inout), allocatable :: Array(:)

array to append value to

integer, intent(in) :: Position

position the value is appended to

real(kind=single_k), intent(in) :: Value

value to append

private subroutine tem_appendSp2dArray(Array, Position1, Position2, Value)

append an entry to an allocatable array 1d with single precision If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=single_k), intent(inout), allocatable :: Array(:,:)

array to append value to

integer, intent(in) :: Position1
integer, intent(in) :: Position2
real(kind=single_k), intent(in) :: Value

value to append

private subroutine tem_appendDp1dArray(Array, Position, Value)

append an entry to an allocatable array 1d with double precision If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(inout), allocatable :: Array(:)

array to append value to

integer, intent(in) :: Position

position the value is appended to

real(kind=rk), intent(in) :: Value

value to append

private subroutine tem_appendDp2dArray(Array, Position1, Position2, Value)

append an entry to an allocatable array 1d with double precision If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(inout), allocatable :: Array(:,:)

array to append value to

integer, intent(in) :: Position1
integer, intent(in) :: Position2
real(kind=rk), intent(in) :: Value

value to append

private subroutine tem_resizeInt1dArray(Array, Newsize)

append an entry to an allocatable array 1d with integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(inout), allocatable :: Array(:)

array to resize

integer, intent(in) :: Newsize

new size of the array

private subroutine tem_resizeInt2dArray(Array, Newsize1, Newsize2)

append an entry to an allocatable array 2d with integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=int_k), intent(inout), allocatable :: Array(:,:)

array to resize

integer, intent(in) :: Newsize1

first new size

integer, intent(in) :: Newsize2

second new size

private subroutine tem_resizeIntLong1dArray(Array, Newsize)

append an entry to an allocatable array 1d with long integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:)

array to resize

integer, intent(in) :: Newsize

new size of the array

private subroutine tem_resizeIntLong2dArray(Array, Newsize1, Newsize2)

append an entry to an allocatable array 2d with long integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
integer(kind=long_k), intent(inout), allocatable :: Array(:,:)

array to resize

integer, intent(in) :: Newsize1

first new size

integer, intent(in) :: Newsize2

second new size

private subroutine tem_resizeDp1dArray(Array, Newsize)

append an entry to an allocatable array 1d with integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(inout), allocatable :: Array(:)

array to resize

integer, intent(in) :: Newsize

new size of the array

private subroutine tem_resizeDp2dArray(Array, Newsize1, Newsize2)

append an entry to an allocatable array 2d with integer If the array is too small, reallocate with double size

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(inout), allocatable :: Array(:,:)

array to resize

integer, intent(in) :: Newsize1

first new size

integer, intent(in) :: Newsize2

second new size