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 | |||
type(mp_comm_type), | intent(in) | :: | grp | |||
type(mp_request_type), | 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 TYPE(mp_comm_type), INTENT(IN) :: grp TYPE(mp_request_type), 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