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