Send/Recv function of encapsulated data.
Type | Intent | Optional | 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 |
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