table_m Module

Implements a table with contiguously stored rows.


Uses

  • module~~table_m~~UsesGraph module~table_m table_m module~constants_m constants_m module~table_m->module~constants_m module~vector_m vector_m module~table_m->module~vector_m iso_fortran_env iso_fortran_env module~constants_m->iso_fortran_env module~vector_m->module~constants_m module~qsort_m qsort_m module~vector_m->module~qsort_m module~qsort_m->module~constants_m

Used by

  • module~~table_m~~UsedByGraph module~table_m table_m module~connectivity_m connectivity_m module~connectivity_m->module~table_m module~pairtab_m pairtab_m module~pairtab_m->module~table_m module~pairtab_m->module~connectivity_m module~interaction_m interaction_m module~interaction_m->module~table_m module~interaction_m->module~pairtab_m module~bd_solver_m bd_solver_m module~bd_solver_m->module~interaction_m module~setup_m setup_m module~setup_m->module~interaction_m module~setup_m->module~bd_solver_m program~main main program~main->module~setup_m

Contents


Derived Types

type, public :: itable_t

Components

TypeVisibility AttributesNameInitial
integer, public :: num_rows =0
type(ivector_t), public :: buffer
integer, public, dimension(:), allocatable:: row_indx

Type-Bound Procedures

procedure, public :: delete => itbl_delete
procedure, public :: clear => itbl_clear
procedure, public :: append => itbl_append
procedure, public :: set_val => itbl_set_val
procedure, public :: is_in => itbl_is_in
procedure, public :: get_val => itbl_get_val
procedure, public :: get_row => itbl_get_row
procedure, public :: shrink_to_fit => itbl_shrink_to_fit
procedure, public :: print => itbl_print

Functions

private function itbl_is_in(this, irow, val) result(res)

Returns .true. if val is in row irow, .false. otherwise.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(in) :: this
integer, intent(in) :: irow
integer, intent(in) :: val

Return Value logical

private function itbl_get_val(this, irow, j) result(res)

Returns the jth element of row irow

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(in) :: this
integer, intent(in) :: irow
integer, intent(in) :: j

Return Value integer


Subroutines

public subroutine itbl_init(this, num_rows, ierr)

Creates an empty itable_t with num_rows rows and all rows having zero elements.

Arguments

Type IntentOptional AttributesName
type(itable_t), intent(inout) :: this
integer, intent(in) :: num_rows

Must be > 0

integer, intent(out), optional :: ierr

private subroutine itbl_delete(this)

Deletes an itable_t. No access is allowed to this object after this call.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(inout) :: this

private subroutine itbl_clear(this)

Clears all rows. Does not deallocate memory.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(inout) :: this

private subroutine itbl_append(this, irow, val)

Appends an element val to row irow.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(inout) :: this
integer, intent(in) :: irow
integer, intent(in) :: val

private subroutine itbl_set_val(this, irow, j, val)

Sets the value of the jth element of row irow.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(inout) :: this
integer, intent(in) :: irow
integer, intent(in) :: j
integer, intent(in) :: val

private subroutine itbl_get_row(this, irow, res)

Returns a pointer to the row data of irow. No bounds checking is performed.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(in), target:: this
integer, intent(in) :: irow
integer, intent(out), dimension(:), pointer:: res

private subroutine itbl_shrink_to_fit(this, ierr)

Releases additional memory to fit underlying data.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(inout) :: this
integer, intent(out), optional :: ierr

private subroutine itbl_print(this)

Prints an itable_t.

Arguments

Type IntentOptional AttributesName
class(itable_t), intent(in) :: this