Looks up a block's index given logical coordinates.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(in) | :: | matrix |
DBCSR matrix |
||
integer, | intent(in) | :: | row |
logical row logical column |
||
integer, | intent(in) | :: | column |
logical row logical column |
||
integer, | intent(out) | :: | stored_row |
row where block is actually stored column where block is actually stored |
||
integer, | intent(out) | :: | stored_column |
row where block is actually stored column where block is actually stored |
||
logical, | intent(out) | :: | transpose |
whether the data must be transposed whether the block was found |
||
logical, | intent(out) | :: | found |
whether the data must be transposed whether the block was found |
||
integer, | intent(out) | :: | block_number |
returns the block number of the row and column |
||
integer, | intent(out), | optional | :: | data_offset |
data offset for the block; 0 if nonexistent |
PURE SUBROUTINE dbcsr_get_block_index(matrix, row, column, stored_row, &
stored_column, transpose, found, block_number, data_offset)
!! Looks up a block's index given logical coordinates.
TYPE(dbcsr_type), INTENT(IN) :: matrix
!! DBCSR matrix
INTEGER, INTENT(IN) :: row, column
!! logical row
!! logical column
INTEGER, INTENT(OUT) :: stored_row, stored_column
!! row where block is actually stored
!! column where block is actually stored
LOGICAL, INTENT(OUT) :: transpose, found
!! whether the data must be transposed
!! whether the block was found
INTEGER, INTENT(OUT) :: block_number
!! returns the block number of the row and column
INTEGER, INTENT(OUT), OPTIONAL :: data_offset
!! data offset for the block; 0 if nonexistent
! ---------------------------------------------------------------------------
stored_row = row
stored_column = column
transpose = .FALSE.
CALL dbcsr_get_stored_coordinates(matrix, stored_row, stored_column)
CALL dbcsr_get_stored_block_info(matrix, stored_row, stored_column, &
found, block_number, data_offset=data_offset, transposed=transpose)
END SUBROUTINE dbcsr_get_block_index