Documentation for module dbcsr_data_operations

DBCSR data operations

source: dbcsr_data_operations.F
Loading...

public Subroutines/Functions:

Sorts the data in a matrix so that the data blocks follow sequentially and does various transposing options.
Copies a data area, converting data type
Copies a data area, deep by default.
Sorts the data in a matrix so that the data blocks follow sequentially.
Sets the data area of a matrix

SUBROUTINEdbcsr_copy_sort_data(blk_p, old_blk_p, row_p, col_i, rbs, cbs, dst, src, mark_transposed, transpose_blocks)

Sorts the data in a matrix so that the data blocks follow sequentially and does various transposing options.

Arguments:
INTEGER,
INTENT(inout)
:: blk_p(:) re-arranged block pointers reflecting the new data order
INTEGER,
INTENT(in)
:: old_blk_p(:) current block pointers
INTEGER,
INTENT(in)
:: row_p(:) index
INTEGER,
INTENT(in)
:: col_i(:) index
INTEGER,
INTENT(in)
:: rbs(:) sizes of the blocked rows
INTEGER,
INTENT(in)
:: cbs(:) sizes of the blocked columns
INTENT(inout)
:: dst sorted data
INTENT(in)
:: src existing unordered data
LOGICAL,
INTENT(in),
OPTIONAL
:: mark_transposed mark data as transposed by negating the blk_p index entries
LOGICAL,
INTENT(in),
OPTIONAL
:: transpose_blocks transpose data blocks

SUBROUTINEdbcsr_data_convert(target_area, source_area, drop_real, multiply_by_i)

Copies a data area, converting data type

Arguments:
INTENT(inout)
:: target_area target data area
INTENT(in)
:: source_area source data area
LOGICAL,
INTENT(in),
OPTIONAL
:: drop_real drops real part of complex numbers instead of the imaginary part; default is false
LOGICAL,
INTENT(in),
OPTIONAL
:: multiply_by_i converts real to complex by placing into imaginary instead of real part

SUBROUTINEdbcsr_data_copyall(target_area, source_area, shallow)

Copies a data area, deep by default.

Arguments:
INTENT(inout)
:: target_area target data area
INTENT(in)
:: source_area source data area
LOGICAL,
INTENT(in),
OPTIONAL
:: shallow shallow copy (default is deep)

SUBROUTINEdbcsr_sort_data(blk_p, old_blk_p, sizes, dsts, src, srcs, old_blk_d)

Sorts the data in a matrix so that the data blocks follow sequentially.

Arguments:
INTEGER,
INTENT(inout)
:: blk_p(:) re-arranged block pointers reflecting the new data order
INTEGER,
INTENT(in)
:: old_blk_p(:) current block pointers
INTEGER,
INTENT(in)
:: sizes(:) sizes of the data blocks
INTENT(inout)
:: dsts sorted data
INTENT(in)
:: src existing unordered data
INTENT(in),
OPTIONAL
:: srcs(:) multiple source areas
INTEGER,
INTENT(in),
OPTIONAL
:: old_blk_d(:) ...

SUBROUTINEdbcsr_switch_data_area(matrix, data_area, previous_data_area)

Sets the data area of a matrix

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix matrix for which to set the data area
INTENT(in)
:: data_area data area to set
INTENT(out),
OPTIONAL
:: previous_data_area previous data area