Applying in-place filtering on the workspace
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_mm_multrec_type), | intent(inout) | :: | this |
SUBROUTINE multrec_filtering(this)
!! Applying in-place filtering on the workspace
TYPE(dbcsr_mm_multrec_type), INTENT(inout) :: this
CHARACTER(len=*), PARAMETER :: routineN = 'multrec_filtering'
INTEGER :: handle
CALL timeset(routineN, handle)
SELECT CASE (this%product_wm%data_area%d%data_type)
CASE (dbcsr_type_real_4)
CALL multrec_filtering_s(this%eps, &
this%product_wm%lastblk, &
this%product_wm%row_i, &
this%product_wm%col_i, &
this%product_wm%blk_p, &
this%m_global_sizes, this%n_global_sizes, &
this%product_wm%datasize_after_filtering, &
this%product_wm%data_area%d%r_sp)
CASE (dbcsr_type_real_8)
CALL multrec_filtering_d(this%eps, &
this%product_wm%lastblk, &
this%product_wm%row_i, &
this%product_wm%col_i, &
this%product_wm%blk_p, &
this%m_global_sizes, this%n_global_sizes, &
this%product_wm%datasize_after_filtering, &
this%product_wm%data_area%d%r_dp)
CASE (dbcsr_type_complex_4)
CALL multrec_filtering_c(this%eps, &
this%product_wm%lastblk, &
this%product_wm%row_i, &
this%product_wm%col_i, &
this%product_wm%blk_p, &
this%m_global_sizes, this%n_global_sizes, &
this%product_wm%datasize_after_filtering, &
this%product_wm%data_area%d%c_sp)
CASE (dbcsr_type_complex_8)
CALL multrec_filtering_z(this%eps, &
this%product_wm%lastblk, &
this%product_wm%row_i, &
this%product_wm%col_i, &
this%product_wm%blk_p, &
this%m_global_sizes, this%n_global_sizes, &
this%product_wm%datasize_after_filtering, &
this%product_wm%data_area%d%c_dp)
CASE DEFAULT
DBCSR_ABORT("Invalid data type.")
END SELECT
CALL timestop(handle)
END SUBROUTINE multrec_filtering