multrec_filtering Subroutine

private subroutine multrec_filtering(this)

Applying in-place filtering on the workspace

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mm_multrec_type), intent(inout) :: this

Source Code

   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