dbcsr_data_operations Module

DBCSR data operations



Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=*), private, parameter:: moduleN ='dbcsr_data_operations'

Subroutines

public subroutine dbcsr_switch_data_area(matrix, data_area, previous_data_area)

Sets the data area of a matrix

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_type), intent(inout) :: matrix

matrix for which to set the data area

type(dbcsr_data_obj), intent(in) :: data_area

data area to set

type(dbcsr_data_obj), intent(out), optional :: previous_data_area

previous data area

public subroutine dbcsr_data_copyall(target_area, source_area, shallow)

Copies a data area, deep by default.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_data_obj), intent(inout) :: target_area

target data area

type(dbcsr_data_obj), intent(in) :: source_area

source data area

logical, intent(in), optional :: shallow

shallow copy (default is deep)

public subroutine dbcsr_data_convert(target_area, source_area, drop_real, multiply_by_i)

Copies a data area, converting data type

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_data_obj), intent(inout) :: target_area

target data area

type(dbcsr_data_obj), 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 converts real to complex by placing into imaginary instead of real part

logical, intent(in), optional :: multiply_by_i

drops real part of complex numbers instead of the imaginary part; default is false converts real to complex by placing into imaginary instead of real part

public subroutine dbcsr_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. As opposed to dbcsr_sort_data, this routine calculates block sizes

Arguments

TypeIntentOptionalAttributesName
integer, intent(inout), DIMENSION(:):: blk_p

re-arranged block pointers reflecting the new data order

integer, intent(in), DIMENSION(:):: old_blk_p

current block pointers index index sizes of the blocked rows sizes of the blocked columns

integer, intent(in), DIMENSION(:):: row_p

current block pointers index index sizes of the blocked rows sizes of the blocked columns

integer, intent(in), DIMENSION(:):: col_i

current block pointers index index sizes of the blocked rows sizes of the blocked columns

integer, intent(in), DIMENSION(:):: rbs

current block pointers index index sizes of the blocked rows sizes of the blocked columns

integer, intent(in), DIMENSION(:):: cbs

current block pointers index index sizes of the blocked rows sizes of the blocked columns

type(dbcsr_data_obj), intent(inout) :: dst

sorted data

type(dbcsr_data_obj), intent(in) :: src

existing unordered data

logical, intent(in), optional :: mark_transposed

mark data as transposed by negating the blk_p index entries transpose data blocks

logical, intent(in), optional :: transpose_blocks

mark data as transposed by negating the blk_p index entries transpose data blocks

public subroutine dbcsr_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

TypeIntentOptionalAttributesName
integer, intent(inout), DIMENSION(:):: blk_p

re-arranged block pointers reflecting the new data order

integer, intent(in), DIMENSION(:):: old_blk_p

current block pointers sizes of the data blocks

integer, intent(in), DIMENSION(:):: sizes

current block pointers sizes of the data blocks

type(dbcsr_data_obj), intent(inout) :: dsts

sorted data

type(dbcsr_data_obj), intent(in) :: src

existing unordered data

type(dbcsr_data_obj), intent(in), optional DIMENSION(:):: srcs

multiple source areas

integer, intent(in), optional DIMENSION(:):: old_blk_d