dbcsr_data_operations Module

DBCSR data operations



Variables

Type Visibility Attributes Name Initial
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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