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