13 use,
INTRINSIC :: iso_c_binding, only: c_int, c_int64_t, c_ptr, c_char, c_bool, c_double
50 TYPE(c_ptr) :: comin_keyval_c
55 TYPE(c_ptr),
VALUE,
INTENT(in) :: comin_keyval_c
60 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
61 INTEGER(KIND=c_int),
INTENT(out) :: idx
62 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
67 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
68 INTEGER(KIND=c_int),
VALUE,
INTENT(in) :: val
69 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
74 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
75 INTEGER(KIND=c_int),
INTENT(out) :: val
76 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
80 IMPORT c_ptr, c_double
81 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
82 REAL(KIND=c_double),
VALUE,
INTENT(in) :: val
83 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
87 IMPORT c_ptr, c_double
88 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
89 REAL(KIND=c_double),
INTENT(out) :: val
90 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
95 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
96 TYPE(c_ptr),
VALUE,
INTENT(in) :: cval
97 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
102 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
104 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
109 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
110 LOGICAL(KIND=c_bool),
VALUE,
INTENT(in) :: val
111 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
116 TYPE(c_ptr),
VALUE,
INTENT(in) :: ckey
117 LOGICAL(KIND=c_bool),
INTENT(out) :: val
118 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
123 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
124 TYPE(c_ptr) :: iterator
129 TYPE(c_ptr),
VALUE,
INTENT(in) :: keyval_c
130 TYPE(c_ptr) :: iterator
135 TYPE(c_ptr),
VALUE,
INTENT(in) :: iterator
141 TYPE(c_ptr),
VALUE,
INTENT(in) :: iterator
146 TYPE(c_ptr),
VALUE,
INTENT(in) :: iterator
151 TYPE(c_ptr),
VALUE,
INTENT(in) :: iterator1, iterator2
160 TYPE(c_ptr),
INTENT(OUT) :: map
164 TYPE(c_ptr),
VALUE :: map
166 TYPE(c_ptr) FUNCTION comin_varmap_get_c (map, name, len, id)
BIND(C)
167 IMPORT c_ptr, c_int64_t, c_char, c_int
168 TYPE(c_ptr),
VALUE,
INTENT(IN) :: map
169 INTEGER(c_int64_t),
VALUE,
INTENT(IN) :: len
170 CHARACTER(kind=c_char),
INTENT(IN) :: name(len)
171 INTEGER(c_int),
VALUE,
INTENT(IN) :: id
173 SUBROUTINE comin_varmap_put_c (map, name, len, id, ptr)
BIND(C)
174 IMPORT c_ptr, c_int64_t, c_char, c_int
175 TYPE(c_ptr),
VALUE :: map
176 INTEGER(c_int64_t),
VALUE,
INTENT(IN) :: len
177 CHARACTER(kind=c_char),
INTENT(IN) :: name(len)
178 INTEGER(c_int),
VALUE,
INTENT(IN) :: id
179 TYPE(c_ptr),
VALUE,
INTENT(IN) :: ptr
183 TYPE(c_ptr),
VALUE :: map
184 TYPE(c_ptr),
INTENT(OUT) :: it
188 TYPE(c_ptr),
VALUE :: it
192 TYPE(c_ptr),
VALUE :: it
196 TYPE(c_ptr),
VALUE,
INTENT(IN) :: map
197 TYPE(c_ptr),
VALUE,
INTENT(IN) :: it
201 TYPE(c_ptr),
VALUE,
INTENT(IN) :: it
202 TYPE(c_ptr),
INTENT(OUT) :: ptr
209 TYPE(c_ptr),
INTENT(INOUT) :: map
210 CHARACTER(kind=c_char, len=*),
INTENT(IN) :: name
211 INTEGER(c_int),
INTENT(IN) :: id
212 TYPE(c_ptr),
INTENT(IN) :: ptr
214 CALL comin_varmap_put_c(map, name, len(name, kind=c_int64_t), id, ptr)
218 TYPE(c_ptr),
INTENT(IN) :: map
219 CHARACTER(kind=c_char, len=*),
INTENT(IN) :: name
220 INTEGER(c_int),
INTENT(IN) :: id
222 comin_varmap_get = comin_varmap_get_c(map, name, len(name, kind=c_int64_t), id)
subroutine, public comin_varmap_put(map, name, id, ptr)
type(c_ptr) function, public comin_varmap_get(map, name, id)