Scatter function of encapsulated data.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_data_obj), | intent(in) | :: | base | |||
integer, | intent(in), | DIMENSION(:), CONTIGUOUS | :: | counts | ||
integer, | intent(in), | DIMENSION(:), CONTIGUOUS | :: | displs | ||
type(dbcsr_data_obj), | intent(inout) | :: | msg | |||
integer, | intent(in) | :: | recvcount | |||
integer, | intent(in) | :: | root | |||
integer, | intent(in) | :: | grp | |||
integer, | intent(inout) | :: | request |
SUBROUTINE dbcsr_iscatterv_any(base, counts, displs, msg, recvcount, root, grp, request)
!! Scatter function of encapsulated data.
TYPE(dbcsr_data_obj), INTENT(IN) :: base
INTEGER, DIMENSION(:), INTENT(IN), CONTIGUOUS :: counts, displs
TYPE(dbcsr_data_obj), INTENT(INOUT) :: msg
INTEGER, INTENT(IN) :: recvcount, root, grp
INTEGER, INTENT(INOUT) :: request
IF (dbcsr_data_get_type(base) .NE. dbcsr_data_get_type(msg)) &
DBCSR_ABORT("Different data type for msgin and msgout")
SELECT CASE (dbcsr_data_get_type(base))
CASE (dbcsr_type_real_4)
CALL mp_iscatter(base%d%r_sp, counts, displs, msg%d%r_sp, recvcount, root, grp, request)
CASE (dbcsr_type_real_8)
CALL mp_iscatter(base%d%r_dp, counts, displs, msg%d%r_dp, recvcount, root, grp, request)
CASE (dbcsr_type_complex_4)
CALL mp_iscatter(base%d%c_sp, counts, displs, msg%d%c_sp, recvcount, root, grp, request)
CASE (dbcsr_type_complex_8)
CALL mp_iscatter(base%d%c_dp, counts, displs, msg%d%c_dp, recvcount, root, grp, request)
CASE default
DBCSR_ABORT("Incorrect data type")
END SELECT
END SUBROUTINE dbcsr_iscatterv_any