Make the reduction of the 3D layers in the local multrec object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mm_multrec_type), | intent(inout) | :: | this | |||
integer, | intent(in), | DIMENSION(:) | :: | meta_buffer | ||
type(dbcsr_data_obj), | intent(in) | :: | data_buffer | |||
integer(kind=int_8), | intent(inout) | :: | flop | |||
integer, | intent(in), | DIMENSION(:) | :: | g2l_map_rows | ||
integer, | intent(in), | DIMENSION(:) | :: | g2l_map_cols |
SUBROUTINE dbcsr_mm_multrec_red3D(this, meta_buffer, data_buffer, flop, g2l_map_rows, g2l_map_cols)
!! Make the reduction of the 3D layers in the local multrec object
TYPE(dbcsr_mm_multrec_type), INTENT(inout) :: this
INTEGER, DIMENSION(:), INTENT(IN) :: meta_buffer
TYPE(dbcsr_data_obj), INTENT(IN) :: data_buffer
INTEGER(KIND=int_8), INTENT(INOUT) :: flop
INTEGER, DIMENSION(:), INTENT(IN) :: g2l_map_rows, g2l_map_cols
CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_mm_multrec_red3D'
INTEGER :: handle
CALL timeset(routineN, handle)
IF (.NOT. this%initialized) &
DBCSR_ABORT("multrec not initialized.")
CALL dbcsr_mm_csr_red3D(this%csr, meta_buffer, data_buffer, flop, &
m_sizes=this%m_sizes, n_sizes=this%n_sizes, &
g2l_map_rows=g2l_map_rows, &
g2l_map_cols=g2l_map_cols, &
original_lastblk=this%original_lastblk, &
keep_sparsity=this%keep_sparsity)
CALL timestop(handle)
END SUBROUTINE dbcsr_mm_multrec_red3D