13 use fckit_configuration_module,
only: fckit_configuration
16 use fckit_log_module,
only: fckit_log
29 subroutine qg_obsdb_setup_c(c_key_self,c_conf,c_winbgn,c_winend) bind(c,name='qg_obsdb_setup_f90')
34 integer(c_int),
intent(inout) :: c_key_self
35 type(c_ptr),
value,
intent(in) :: c_conf
36 type(c_ptr),
value,
intent(in) :: c_winbgn
37 type(c_ptr),
value,
intent(in) :: c_winend
40 type(fckit_configuration) :: f_conf
42 type(datetime) :: winbgn
43 type(datetime) :: winend
46 f_conf = fckit_configuration(c_conf)
50 call c_f_datetime(c_winbgn,winbgn)
51 call c_f_datetime(c_winend,winend)
64 integer(c_int),
intent(inout) :: c_key_self
81 subroutine qg_obsdb_get_c(c_key_self,lgrp,c_grp,lcol,c_col,c_key_ovec) bind(c,name='qg_obsdb_get_f90')
86 integer(c_int),
intent(in) :: c_key_self
87 integer(c_int),
intent(in) :: lgrp
88 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
89 integer(c_int),
intent(in) :: lcol
90 character(kind=c_char,len=1),
intent(in) :: c_col(lcol+1)
91 integer(c_int),
intent(in) :: c_key_ovec
96 character(len=lgrp) :: grp
97 character(len=lcol) :: col
101 call c_f_string(c_grp,grp)
102 call c_f_string(c_col,col)
106 call qg_obsdb_get(self,trim(grp),trim(col),ovec,.false.)
112 c_key_ovec) bind(c,name='qg_obsdb_get_local_f90')
116 integer(c_int),
intent(in) :: c_key_self
117 integer(c_int),
intent(in) :: lgrp
118 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
119 integer(c_int),
intent(in) :: lcol
120 character(kind=c_char,len=1),
intent(in) :: c_col(lcol+1)
121 integer(c_int),
intent(in) :: c_key_ovec
122 integer(c_int),
intent(in) :: c_idxsize
123 integer(c_int),
intent(in) :: c_idx(c_idxsize)
128 character(len=lgrp) :: grp
129 character(len=lcol) :: col
133 call c_f_string(c_grp,grp)
134 call c_f_string(c_col,col)
138 call qg_obsdb_get(self,trim(grp),trim(col),ovec,.true.,c_idx)
143 subroutine qg_obsdb_put_c(c_key_self,lgrp,c_grp,lcol,c_col,c_key_ovec) bind(c,name='qg_obsdb_put_f90')
148 integer(c_int),
intent(in) :: c_key_self
149 integer(c_int),
intent(in) :: lgrp
150 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
151 integer(c_int),
intent(in) :: lcol
152 character(kind=c_char,len=1),
intent(in) :: c_col(lcol+1)
153 integer(c_int),
intent(in) :: c_key_ovec
158 character(len=lgrp) :: grp
159 character(len=lcol) :: col
163 call c_f_string(c_grp,grp)
164 call c_f_string(c_col,col)
173 subroutine qg_obsdb_has_c(c_key_self,lgrp,c_grp,lcol,c_col,c_has) bind(c,name='qg_obsdb_has_f90')
178 integer(c_int),
intent(in) :: c_key_self
179 integer(c_int),
intent(in) :: lgrp
180 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
181 integer(c_int),
intent(in) :: lcol
182 character(kind=c_char,len=1),
intent(in) :: c_col(lcol+1)
183 integer(c_int),
intent(out) :: c_has
187 character(len=lgrp) :: grp
188 character(len=lcol) :: col
192 call c_f_string(c_grp,grp)
193 call c_f_string(c_col,col)
201 subroutine qg_obsdb_locations_c(c_key_self,lgrp,c_grp,c_t1,c_t2,c_fields,c_times) bind(c,name='qg_obsdb_locations_f90')
206 integer(c_int),
intent(in) :: c_key_self
207 integer(c_int),
intent(in) :: lgrp
208 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
209 type(c_ptr),
value,
intent(in) :: c_t1
210 type(c_ptr),
value,
intent(in) :: c_t2
211 type(c_ptr),
intent(in),
value :: c_fields
212 type(c_ptr),
intent(in),
value :: c_times
216 character(len=lgrp) :: grp
217 type(datetime) :: t1,t2
218 type(atlas_fieldset) :: fields
222 call c_f_string(c_grp,grp)
223 call c_f_datetime(c_t1,t1)
224 call c_f_datetime(c_t2,t2)
225 fields = atlas_fieldset(c_fields)
235 subroutine qg_obsdb_generate_c(c_key_self,lgrp,c_grp,c_conf,c_bgn,c_step,ktimes,kobs) bind(c,name='qg_obsdb_generate_f90')
240 integer(c_int),
intent(in) :: c_key_self
241 integer(c_int),
intent(in) :: lgrp
242 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
243 type(c_ptr),
value,
intent(in) :: c_conf
244 type(c_ptr),
value,
intent(in) :: c_bgn
245 type(c_ptr),
value,
intent(in) :: c_step
246 integer(c_int),
intent(in) :: ktimes
247 integer(c_int),
intent(inout) :: kobs
250 type(fckit_configuration) :: f_conf
252 character(len=lgrp) :: grp
253 type(datetime) :: bgn
254 type(duration) :: step
257 f_conf = fckit_configuration(c_conf)
259 call c_f_string(c_grp,grp)
260 call c_f_datetime(c_bgn,bgn)
261 call c_f_duration(c_step,step)
269 subroutine qg_obsdb_nobs_c(c_key_self,lgrp,c_grp,kobs) bind(c,name='qg_obsdb_nobs_f90')
274 integer(c_int),
intent(in) :: c_key_self
275 integer(c_int),
intent(in) :: lgrp
276 character(kind=c_char,len=1),
intent(in) :: c_grp(lgrp+1)
277 integer(c_int),
intent(inout) :: kobs
281 character(len=lgrp) :: grp
285 call c_f_string(c_grp,grp)