DBCSR data operations
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=*), | private, | parameter | :: | moduleN | = | 'dbcsr_data_operations' |
Sets the data area of a matrix
Type | Intent | Optional | 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 |
Copies a data area, deep by default.
Type | Intent | Optional | 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) |
Copies a data area, converting data type
Type | Intent | Optional | 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 |
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
Type | Intent | Optional | 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 |
Sorts the data in a matrix so that the data blocks follow sequentially.
Type | Intent | Optional | 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 |