dbcsr_iscatterv_any Subroutine

public subroutine dbcsr_iscatterv_any(base, counts, displs, msg, recvcount, root, grp, request)

Scatter function of encapsulated data.

Arguments

Type IntentOptional 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

Source Code

   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