15 use,
INTRINSIC :: iso_c_binding, only: c_bool, c_ptr, c_f_pointer
50 TYPE(c_ptr),
VALUE,
INTENT(IN) :: it
51 LOGICAL(c_bool) :: is_end
57 TYPE(c_ptr),
VALUE,
INTENT(IN) :: it
64 TYPE(c_ptr),
INTENT(INOUT) :: it
72 SUBROUTINE comin_var_request_add_c(var_descriptor, lmodexclusive) &
73 &
BIND(C, name="comin_var_request_add")
75 TYPE (t_comin_var_descriptor_c),
VALUE,
INTENT(IN) :: var_descriptor
76 LOGICAL(C_BOOL),
VALUE,
INTENT(IN) :: lmodexclusive
77 END SUBROUTINE comin_var_request_add_c
79 FUNCTION comin_var_request_get_metadata_c(request)
RESULT(ptr) &
80 & bind(c, name=
'comin_var_request_get_metadata')
82 TYPE(c_ptr),
VALUE,
INTENT(IN) :: request
84 END FUNCTION comin_var_request_get_metadata_c
86 FUNCTION comin_var_request_get_descriptor_c(request)
RESULT(ptr) &
87 & bind(c, name=
'comin_var_request_get_descriptor')
89 TYPE(c_ptr),
VALUE,
INTENT(IN) :: request
91 END FUNCTION comin_var_request_get_descriptor_c
95 & bind(c, name=
'comin_var_request_find')
121 LOGICAL,
INTENT(IN) :: lmodexclusive
123 CALL comin_var_request_add_c( &
129 TYPE(c_ptr),
VALUE,
INTENT(IN) :: req
132 metadata%comin_metadata_c = comin_var_request_get_metadata_c(req)
137 TYPE(c_ptr),
VALUE,
INTENT(IN) :: req
142 CALL c_f_pointer(comin_var_request_get_descriptor_c(req), descr_c)
comin::keyval::Map * comin_var_request_get_metadata(t_comin_request_item *req)
void comin_var_request_add(t_comin_var_descriptor var_desc, bool lmodexclusive)
t_comin_request_item * comin_var_request_find(const t_comin_var_descriptor *var_desc)
t_comin_var_descriptor * comin_var_request_get_descriptor(t_comin_request_item *req)
Create a new request list iterator, at the begin of the list.
Delete the request list iterator.
Compare the request list iterator with the end of the list.
Advance the iterator to the next element, returning the current one.
Return the request item for the given C descriptor.