50 USE iso_c_binding,
ONLY: c_null_ptr, c_ptr, c_associated, c_int
54 TYPE,
BIND(C),
PUBLIC :: xt_request
58 TYPE(c_ptr) :: cptr = c_null_ptr
70 TYPE(xt_request),
INTENT(in) :: request
76 TYPE(xt_request),
INTENT(inout) :: request
84 MODULE PROCEDURE xt_request_is_null
85 END INTERFACE xt_is_null
91 TYPE(c_ptr),
INTENT(in) :: cptr
98 LOGICAL,
INTENT(out) :: flag
99 INTEGER(c_int) :: flag_c
101 SUBROUTINE xt_request_test_c(request_c, flag_c) &
102 bind(c, name=
'xt_request_test')
103 import:: c_ptr, c_int
104 TYPE(c_ptr),
INTENT(inout) :: request_c
105 INTEGER(c_int),
INTENT(out) :: flag_c
106 END SUBROUTINE xt_request_test_c
108 CALL xt_request_test_c(request%cptr, flag_c)
112 FUNCTION xt_request_is_null(request)
RESULT(p)
115 p = .NOT. c_associated(request%cptr)
116 END FUNCTION xt_request_is_null
subroutine, public xt_request_init(request, cptr)
type(xt_request), parameter, public xt_request_null
void xt_request_wait(Xt_request *request)
void xt_request_test(Xt_request *request, int *flag)