sparse_row_data_procedures Submodule

Contains module procedures associated with the sparse row data class


Uses


Module Functions

pure module function multElementwise(mat1, mat2) result(res)

Sparse row data Object initialization routine. If indices are supplied initializes values to 0.

Arguments

Type IntentOptional Attributes Name
class(SparseRowData), intent(in) :: mat1
class(SparseRowData), intent(in) :: mat2

Return Value type(SparseRowData)

pure module function multElementwiseRArray(mat1, mat2) result(res)

Arguments

Type IntentOptional Attributes Name
type(RealArray), intent(in), dimension(:) :: mat1
class(SparseRowData), intent(in) :: mat2

Return Value type(RealArray), allocatable, dimension(:)


Module Subroutines

pure module subroutine initSparseRowData(this, rowIndices, colVectors)

Sparse row data Object initialization routine. If indices are supplied initializes values to 0.

Arguments

Type IntentOptional Attributes Name
class(SparseRowData), intent(inout) :: this
integer(kind=ik), intent(in), optional, dimension(:) :: rowIndices

Row indices of each sparse row vector

type(IntArray), intent(in), optional, dimension(:) :: colVectors

Arrays of column indices for each row

pure module subroutine addRow(this, rowIndex, columnIndices, values)

Add sparse row vector to data Object and initialize its values to 0, unless value vector is supplied

Arguments

Type IntentOptional Attributes Name
class(SparseRowData), intent(inout) :: this
integer(kind=ik), intent(in) :: rowIndex

Row index of added vector

integer(kind=ik), intent(in), dimension(:) :: columnIndices

Column indices of nonzeros in row

real(kind=rk), intent(in), optional, dimension(:) :: values

Values of nonzeros in row