dbcsr_isendrecv_any Subroutine

public subroutine dbcsr_isendrecv_any(msgin, dest, msgout, source, grp, send_request, recv_request)

Send/Recv function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: msgin
integer, intent(in) :: dest
type(dbcsr_data_obj), intent(inout) :: msgout
integer, intent(in) :: source
type(mp_comm_type), intent(in) :: grp
type(mp_request_type), intent(out) :: send_request
type(mp_request_type), intent(out) :: recv_request

Source Code

   SUBROUTINE dbcsr_isendrecv_any(msgin, dest, msgout, source, grp, send_request, recv_request)
      !! Send/Recv function of encapsulated data.
      TYPE(dbcsr_data_obj), INTENT(IN)                   :: msgin
      INTEGER, INTENT(IN)                                :: dest
      TYPE(dbcsr_data_obj), INTENT(INOUT)                :: msgout
      INTEGER, INTENT(IN)                                :: source
      TYPE(mp_comm_type), INTENT(IN)                     :: grp
      TYPE(mp_request_type), INTENT(OUT)                 :: send_request, recv_request

      IF (dbcsr_data_get_type(msgin) .NE. dbcsr_data_get_type(msgout)) &
         DBCSR_ABORT("Different data type for msgin and msgout")

      SELECT CASE (dbcsr_data_get_type(msgin))
      CASE (dbcsr_type_real_4)
         CALL mp_isendrecv(msgin%d%r_sp, dest, &
                           msgout%d%r_sp, source, &
                           grp, send_request, recv_request)
      CASE (dbcsr_type_real_8)
         CALL mp_isendrecv(msgin%d%r_dp, dest, &
                           msgout%d%r_dp, source, &
                           grp, send_request, recv_request)
      CASE (dbcsr_type_complex_4)
         CALL mp_isendrecv(msgin%d%c_sp, dest, &
                           msgout%d%c_sp, source, &
                           grp, send_request, recv_request)
      CASE (dbcsr_type_complex_8)
         CALL mp_isendrecv(msgin%d%c_dp, dest, &
                           msgout%d%c_dp, source, &
                           grp, send_request, recv_request)
      CASE default
         DBCSR_ABORT("Incorrect data type")
      END SELECT
   END SUBROUTINE dbcsr_isendrecv_any