Sets the correct source matrix, row, column and possible data transposition for a given matrix and matrix logical row and column.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(in) | :: | matrix |
DBCSR matrix |
||
integer, | intent(in) | :: | row |
input is logical row input is logical column |
||
integer, | intent(in) | :: | column |
input is logical row input is logical column |
||
integer, | intent(out), | optional | :: | processor |
returns the processor on which this block resides |
PURE SUBROUTINE dbcsr_get_stored_coordinates(matrix, row, column, processor) !! Sets the correct source matrix, row, column and possible data !! transposition for a given matrix and matrix logical row and !! column. TYPE(dbcsr_type), INTENT(IN) :: matrix !! DBCSR matrix INTEGER, INTENT(IN) :: row, column !! input is logical row !! input is logical column INTEGER, INTENT(OUT), OPTIONAL :: processor !! returns the processor on which this block resides ! --------------------------------------------------------------------------- ! SM-compatible way IF (PRESENT(processor)) THEN IF (matrix%symmetry .AND. checker_tr(row, column)) THEN ! The transposed way. processor = dbcsr_distribution_processor(matrix%dist, column, row) ELSE ! The default way. processor = dbcsr_distribution_processor(matrix%dist, row, column) END IF END IF END SUBROUTINE dbcsr_get_stored_coordinates