hybrid_alltoall_any Subroutine

public subroutine hybrid_alltoall_any(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
type(dbcsr_data_obj), intent(inout) :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env
logical, intent(in), optional :: most_ptp
logical, intent(in), optional :: remainder_ptp
logical, intent(in), optional :: no_hybrid

Source Code

   SUBROUTINE hybrid_alltoall_any(sb, scount, sdispl, &
                                  rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)
      TYPE(dbcsr_data_obj), INTENT(IN)                   :: sb
      INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN)      :: scount, sdispl
      TYPE(dbcsr_data_obj), INTENT(INOUT)                :: rb
      INTEGER, DIMENSION(:), CONTIGUOUS, INTENT(IN)      :: rcount, rdispl
      TYPE(dbcsr_mp_obj), INTENT(IN)                     :: mp_env
      LOGICAL, INTENT(in), OPTIONAL                      :: most_ptp, remainder_ptp, no_hybrid

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

      INTEGER                                            :: error_handle

!   ---------------------------------------------------------------------------

      CALL timeset(routineN, error_handle)

      SELECT CASE (dbcsr_data_get_type(sb))
      CASE (dbcsr_type_real_4)
         CALL hybrid_alltoall_s1(sb%d%r_sp, scount, sdispl, &
                                 rb%d%r_sp, rcount, rdispl, mp_env, &
                                 most_ptp, remainder_ptp, no_hybrid)
      CASE (dbcsr_type_real_8)
         CALL hybrid_alltoall_d1(sb%d%r_dp, scount, sdispl, &
                                 rb%d%r_dp, rcount, rdispl, mp_env, &
                                 most_ptp, remainder_ptp, no_hybrid)
      CASE (dbcsr_type_complex_4)
         CALL hybrid_alltoall_c1(sb%d%c_sp, scount, sdispl, &
                                 rb%d%c_sp, rcount, rdispl, mp_env, &
                                 most_ptp, remainder_ptp, no_hybrid)
      CASE (dbcsr_type_complex_8)
         CALL hybrid_alltoall_z1(sb%d%c_dp, scount, sdispl, &
                                 rb%d%c_dp, rcount, rdispl, mp_env, &
                                 most_ptp, remainder_ptp, no_hybrid)
      CASE default
         DBCSR_ABORT("Invalid data type")
      END SELECT

      CALL timestop(error_handle)
   END SUBROUTINE hybrid_alltoall_any