IODA
obsspace_f.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017 UCAR
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef CORE_OBSSPACE_F_H_
9 #define CORE_OBSSPACE_F_H_
10 
11 #include "ioda/ObsSpace.h"
12 #include "oops/base/Variables.h"
13 #include "oops/mpi/mpi.h"
14 #include "oops/util/DateTime.h"
15 
16 // -----------------------------------------------------------------------------
17 // These functions provide a Fortran-callable interface to ObsSpace.
18 // -----------------------------------------------------------------------------
19 
20 namespace ioda {
21 
22 extern "C" {
23  const ObsSpace * obsspace_construct_f(const eckit::Configuration *, const util::DateTime *,
24  const util::DateTime *);
25  void obsspace_destruct_f(ObsSpace *);
26  const oops::Variables * obsspace_obsvariables_f(const ObsSpace &);
27  std::size_t obsspace_get_gnlocs_f(const ObsSpace &);
28  std::size_t obsspace_get_nlocs_f(const ObsSpace &);
29  std::size_t obsspace_get_nrecs_f(const ObsSpace &);
30  std::size_t obsspace_get_nvars_f(const ObsSpace &);
31  void obsspace_get_comm_f(const ObsSpace &, int &, char *);
32  void obsspace_get_recnum_f(const ObsSpace &, const std::size_t &, std::size_t *);
33  void obsspace_get_index_f(const ObsSpace &, const std::size_t &, std::size_t *);
34 
35  void obsspace_obsname_f(const ObsSpace &, size_t &, char *);
36 
37  bool obsspace_has_f(const ObsSpace &, const char *, const char *);
38 
39  void obsspace_get_int32_f(const ObsSpace &, const char *, const char *,
40  const std::size_t &, int32_t*);
41  void obsspace_get_int64_f(const ObsSpace &, const char *, const char *,
42  const std::size_t &, int64_t*);
43  void obsspace_get_real32_f(const ObsSpace &, const char *, const char *,
44  const std::size_t &, float*);
45  void obsspace_get_real64_f(const ObsSpace &, const char *, const char *,
46  const std::size_t &, double*);
47  void obsspace_get_datetime_f(const ObsSpace &, const char *, const char *,
48  const std::size_t &, int32_t*, int32_t*);
49 
50  void obsspace_put_int32_f(ObsSpace &, const char *, const char *,
51  const std::size_t &, int32_t*);
52  void obsspace_put_int64_f(ObsSpace &, const char *, const char *,
53  const std::size_t &, int64_t*);
54  void obsspace_put_real32_f(ObsSpace &, const char *, const char *,
55  const std::size_t &, float*);
56  void obsspace_put_real64_f(ObsSpace &, const char *, const char *,
57  const std::size_t &, double*);
58 }
59 
60 } // namespace ioda
61 
62 #endif // CORE_OBSSPACE_F_H_
ioda::obsspace_has_f
bool obsspace_has_f(const ObsSpace &obss, const char *group, const char *vname)
Definition: obsspace_f.cc:90
ioda::obsspace_obsvariables_f
const oops::Variables * obsspace_obsvariables_f(const ObsSpace &obss)
Definition: obsspace_f.cc:45
ioda::obsspace_get_int32_f
void obsspace_get_int32_f(const ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, int32_t *vec)
Definition: obsspace_f.cc:94
ObsSpace.h
ioda::obsspace_construct_f
const ObsSpace * obsspace_construct_f(const eckit::Configuration *conf, const util::DateTime *begin, const util::DateTime *end)
Definition: obsspace_f.cc:24
ioda::obsspace_get_nrecs_f
std::size_t obsspace_get_nrecs_f(const ObsSpace &obss)
Definition: obsspace_f.cc:58
ioda::obsspace_get_recnum_f
void obsspace_get_recnum_f(const ObsSpace &obss, const std::size_t &length, std::size_t *recnum)
Definition: obsspace_f.cc:72
ioda::obsspace_get_int64_f
void obsspace_get_int64_f(const ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, int64_t *vec)
Definition: obsspace_f.cc:104
ioda::obsspace_get_datetime_f
void obsspace_get_datetime_f(const ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, int32_t *date, int32_t *time)
Definition: obsspace_f.cc:130
ioda
Definition: IodaUtils.cc:13
ioda::obsspace_put_int32_f
void obsspace_put_int32_f(ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, int32_t *vec)
Definition: obsspace_f.cc:157
ioda::obsspace_get_nlocs_f
std::size_t obsspace_get_nlocs_f(const ObsSpace &obss)
Definition: obsspace_f.cc:54
ioda::obsspace_obsname_f
void obsspace_obsname_f(const ObsSpace &obss, size_t &lcname, char *cname)
Definition: obsspace_f.cc:37
ioda::obsspace_get_comm_f
void obsspace_get_comm_f(const ObsSpace &obss, int &lcname, char *cname)
Definition: obsspace_f.cc:66
ioda::obsspace_get_gnlocs_f
std::size_t obsspace_get_gnlocs_f(const ObsSpace &obss)
Definition: obsspace_f.cc:50
ioda::obsspace_put_int64_f
void obsspace_put_int64_f(ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, int64_t *vec)
Definition: obsspace_f.cc:167
ioda::obsspace_get_real64_f
void obsspace_get_real64_f(const ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, double *vec)
Definition: obsspace_f.cc:120
ioda::obsspace_destruct_f
void obsspace_destruct_f(ObsSpace *obss)
Definition: obsspace_f.cc:31
ioda::obsspace_put_real64_f
void obsspace_put_real64_f(ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, double *vec)
Definition: obsspace_f.cc:183
ioda::obsspace_get_nvars_f
std::size_t obsspace_get_nvars_f(const ObsSpace &obss)
Definition: obsspace_f.cc:62
ioda::obsspace_get_real32_f
void obsspace_get_real32_f(const ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, float *vec)
Definition: obsspace_f.cc:112
ioda::obsspace_get_index_f
void obsspace_get_index_f(const ObsSpace &obss, const std::size_t &length, std::size_t *index)
Definition: obsspace_f.cc:80
ioda::obsspace_put_real32_f
void obsspace_put_real32_f(ObsSpace &obss, const char *group, const char *vname, const std::size_t &length, float *vec)
Definition: obsspace_f.cc:175