dbcsr_get_stored_coordinates Subroutine

public 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.

Arguments

TypeIntentOptionalAttributesName
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


Contents


Source Code

   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