14 use,
intrinsic :: iso_c_binding
17 type(c_ptr),
value :: conf, tbegin, tend
21 use,
intrinsic :: iso_c_binding
23 type(c_ptr),
value :: obss
27 use,
intrinsic :: iso_c_binding, only : c_ptr
29 type(c_ptr),
value :: obss
33 use,
intrinsic :: iso_c_binding
36 type(c_ptr),
value :: obss
40 use,
intrinsic :: iso_c_binding
43 type(c_ptr),
value :: obss
47 use,
intrinsic :: iso_c_binding
50 type(c_ptr),
value :: obss
54 use,
intrinsic :: iso_c_binding
57 type(c_ptr),
value :: obss
61 use,
intrinsic :: iso_c_binding
64 type(c_ptr),
value :: obss
68 use,
intrinsic :: iso_c_binding
71 type(c_ptr),
value :: obss
72 integer(c_int),
intent(in) :: dim_id
73 integer(c_size_t),
intent(inout) :: len_dim_name
74 character(kind=c_char, len=1),
intent(inout) :: dim_name(*)
78 use,
intrinsic :: iso_c_binding
81 type(c_ptr),
value :: obss
82 integer(c_int),
intent(in) :: dim_id
86 use,
intrinsic :: iso_c_binding
89 type(c_ptr),
value :: obss
90 character(kind=c_char, len=1),
intent(in) :: dim_name(*)
94 use,
intrinsic :: iso_c_binding, only : c_ptr, c_char, c_size_t
96 type(c_ptr),
value :: obss
97 integer(c_size_t),
intent(inout) :: lcname
98 character(kind=c_char,len=1),
intent(inout) :: cname(*)
102 use,
intrinsic :: iso_c_binding
105 type(c_ptr),
value :: obss
106 integer(c_int),
intent(inout) :: lcname
107 character(kind=c_char,len=1),
intent(inout) :: cname(*)
111 & bind(c,name=
'obsspace_get_recnum_f')
112 use,
intrinsic :: iso_c_binding, only : c_ptr, c_size_t
114 type(c_ptr),
value :: obss
115 integer(c_size_t),
intent(in) :: length
116 integer(c_size_t),
intent(inout) :: recnum(length)
120 & bind(c,name=
'obsspace_get_index_f')
121 use,
intrinsic :: iso_c_binding, only : c_ptr, c_size_t
123 type(c_ptr),
value :: obss
124 integer(c_size_t),
intent(in) :: length
125 integer(c_size_t),
intent(inout) :: indx(length)
128 logical(kind=c_bool) function c_obsspace_has(obss, group, vname) bind(C,name='obsspace_has_f')
129 use,
intrinsic :: iso_c_binding
132 type(c_ptr),
value :: obss
133 character(kind=c_char, len=1),
intent(in) :: group(*)
134 character(kind=c_char, len=1),
intent(in) :: vname(*)
141 & bind(c,name=
'obsspace_get_int32_f')
142 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_int,c_size_t,c_int32_t
144 type(c_ptr),
value :: obss
145 character(kind=c_char, len=1),
intent(in) :: group(*)
146 character(kind=c_char, len=1),
intent(in) :: vname(*)
147 integer(c_size_t),
intent(in) :: length
148 integer(c_int32_t),
intent(inout) :: vect(length)
149 integer(c_size_t),
intent(in) :: len_cs
150 integer(c_int),
intent(in) :: chan_select(len_cs)
154 & bind(c,name=
'obsspace_get_int64_f')
155 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_int,c_size_t,c_int64_t
157 type(c_ptr),
value :: obss
158 character(kind=c_char, len=1),
intent(in) :: group(*)
159 character(kind=c_char, len=1),
intent(in) :: vname(*)
160 integer(c_size_t),
intent(in) :: length
161 integer(c_int64_t),
intent(inout) :: vect(length)
162 integer(c_size_t),
intent(in) :: len_cs
163 integer(c_int),
intent(in) :: chan_select(len_cs)
167 & bind(c,name=
'obsspace_get_real32_f')
168 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_int,c_size_t,c_float
170 type(c_ptr),
value :: obss
171 character(kind=c_char, len=1),
intent(in) :: group(*)
172 character(kind=c_char, len=1),
intent(in) :: vname(*)
173 integer(c_size_t),
intent(in) :: length
174 real(c_float),
intent(inout) :: vect(length)
175 integer(c_size_t),
intent(in) :: len_cs
176 integer(c_int),
intent(in) :: chan_select(len_cs)
180 & bind(c,name=
'obsspace_get_real64_f')
181 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_int,c_size_t,c_double
183 type(c_ptr),
value :: obss
184 character(kind=c_char, len=1),
intent(in) :: group(*)
185 character(kind=c_char, len=1),
intent(in) :: vname(*)
186 integer(c_size_t),
intent(in) :: length
187 real(c_double),
intent(inout) :: vect(length)
188 integer(c_size_t),
intent(in) :: len_cs
189 integer(c_int),
intent(in) :: chan_select(len_cs)
193 & bind(c,name=
'obsspace_get_datetime_f')
194 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_int,c_size_t,c_int32_t
196 type(c_ptr),
value :: obss
197 character(kind=c_char, len=1),
intent(in) :: group(*)
198 character(kind=c_char, len=1),
intent(in) :: vname(*)
199 integer(c_size_t),
intent(in) :: length
200 integer(c_int32_t),
intent(inout) :: date(length)
201 integer(c_int32_t),
intent(inout) :: time(length)
202 integer(c_size_t),
intent(in) :: len_cs
203 integer(c_int),
intent(in) :: chan_select(len_cs)
210 & bind(c,name=
'obsspace_put_int32_f')
211 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_size_t,c_int,c_int32_t
213 type(c_ptr),
value :: obss
214 character(kind=c_char, len=1),
intent(in) :: group(*)
215 character(kind=c_char, len=1),
intent(in) :: vname(*)
216 integer(c_size_t),
intent(in) :: length
217 integer(c_int32_t),
intent(in) :: vect(length)
218 integer(c_size_t),
intent(in) :: ndims
219 integer(c_int),
intent(in) :: dim_ids(ndims)
223 & bind(c,name=
'obsspace_put_int64_f')
224 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_size_t,c_int,c_int64_t
226 type(c_ptr),
value :: obss
227 character(kind=c_char, len=1),
intent(in) :: group(*)
228 character(kind=c_char, len=1),
intent(in) :: vname(*)
229 integer(c_size_t),
intent(in) :: length
230 integer(c_int64_t),
intent(in) :: vect(length)
231 integer(c_size_t),
intent(in) :: ndims
232 integer(c_int),
intent(in) :: dim_ids(ndims)
236 & bind(c,name=
'obsspace_put_real32_f')
237 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_size_t,c_int,c_float
239 type(c_ptr),
value :: obss
240 character(kind=c_char, len=1),
intent(in) :: group(*)
241 character(kind=c_char, len=1),
intent(in) :: vname(*)
242 integer(c_size_t),
intent(in) :: length
243 real(c_float),
intent(in) :: vect(length)
244 integer(c_size_t),
intent(in) :: ndims
245 integer(c_int),
intent(in) :: dim_ids(ndims)
249 & bind(c,name=
'obsspace_put_real64_f')
250 use,
intrinsic :: iso_c_binding, only : c_ptr,c_char,c_size_t,c_int,c_double
252 type(c_ptr),
value :: obss
253 character(kind=c_char, len=1),
intent(in) :: group(*)
254 character(kind=c_char, len=1),
intent(in) :: vname(*)
255 integer(c_size_t),
intent(in) :: length
256 real(c_double),
intent(in) :: vect(length)
257 integer(c_size_t),
intent(in) :: ndims
258 integer(c_int),
intent(in) :: dim_ids(ndims)
264 use,
intrinsic :: iso_c_binding, only: c_int
269 use,
intrinsic :: iso_c_binding, only: c_int
Define interface for C++ ObsSpace code called from Fortran.