dbcsr_block_transpose_a Subroutine

private subroutine dbcsr_block_transpose_a(area, row_size, col_size)

In-place transpose of encapsulated data There are no checks done for correctness!

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(inout) :: area

encapsulated data area

integer, intent(in) :: row_size

number of rows in existing block number of columns in existing block

integer, intent(in) :: col_size

number of rows in existing block number of columns in existing block


Source Code

   SUBROUTINE dbcsr_block_transpose_a(area, row_size, col_size)
      !! In-place transpose of encapsulated data
      !! There are no checks done for correctness!

      TYPE(dbcsr_data_obj), INTENT(INOUT)                :: area
         !! encapsulated data area
      INTEGER, INTENT(IN)                                :: row_size, col_size
         !! number of rows in existing block
         !! number of columns in existing block

      CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_block_transpose_a'

      INTEGER                                            :: handle
!     ---------------------------------------------------------------------------
      IF (careful_mod) &
         CALL timeset(routineN, handle)
      SELECT CASE (area%d%data_type)
      CASE (dbcsr_type_real_8)
         CALL dbcsr_block_transpose(area%d%r_dp, &
                                    row_size, col_size)
      CASE (dbcsr_type_real_4)
         CALL dbcsr_block_transpose(area%d%r_sp, &
                                    row_size, col_size)
      CASE (dbcsr_type_complex_8)
         CALL dbcsr_block_transpose(area%d%c_dp, &
                                    row_size, col_size)
      CASE (dbcsr_type_complex_4)
         CALL dbcsr_block_transpose(area%d%c_sp, &
                                    row_size, col_size)
      CASE default
         DBCSR_ABORT("Invalid data type")
      END SELECT
      IF (careful_mod) &
         CALL timestop(handle)
   END SUBROUTINE dbcsr_block_transpose_a