Go to the documentation of this file.
15 #include "eckit/mpi/Comm.h"
17 #include "oops/base/Variables.h"
18 #include "oops/util/ObjectCounter.h"
19 #include "oops/util/Printable.h"
39 private util::ObjectCounter<GeoVaLs> {
41 static const std::string
classname() {
return "ufo::GeoVaLs";}
43 explicit GeoVaLs(
const eckit::mpi::Comm &);
45 GeoVaLs(
const eckit::Configuration &,
const ioda::ObsSpace &,
46 const oops::Variables &);
63 void reorderzdir(
const std::string &,
const std::string &);
68 bool has(
const std::string & var)
const {
return vars_.has(var);}
71 size_t nlevs(
const std::string & var)
const;
72 void get(std::vector<float> &,
const std::string &)
const;
73 void get(std::vector<float> &,
const std::string &,
const int)
const;
74 void get(std::vector<double> &,
const std::string &,
const int)
const;
75 void put(
const std::vector<double> &,
const std::string &,
const int)
const;
77 void read(
const eckit::Configuration &,
const ioda::ObsSpace &);
78 void write(
const eckit::Configuration &)
const;
84 void print(std::ostream &)
const;
95 #endif // UFO_GEOVALS_H_
void split(GeoVaLs &, GeoVaLs &) const
Split two GeoVaLs.
void random()
Randomize GeoVaLs.
const oops::Variables & getVars() const
void reorderzdir(const std::string &, const std::string &)
Reorder GeoVaLs in vertical dimension based on vertical coordinate variable.
const eckit::mpi::Comm & comm_
void zero()
Zero out the GeoVaLs.
Locations class to handle locations for UFO.
void get(std::vector< float > &, const std::string &) const
Return all values for a specific 2D variable.
GeoVaLs & operator-=(const GeoVaLs &)
Subtract another GeoVaLs.
double normalizedrms(const GeoVaLs &) const
Calculate normalized rms.
const int & toFortran() const
GeoVaLs & operator=(const GeoVaLs &)
Copy operator.
GeoVaLs(const eckit::mpi::Comm &)
Default constructor - does not allocate fields.
static const std::string classname()
void put(const std::vector< double > &, const std::string &, const int) const
Put values for a specific variable and level.
GeoVaLs & operator+=(const GeoVaLs &)
Add another GeoVaLs.
GeoVaLs: geophysical values at locations.
void write(const eckit::Configuration &) const
Write GeoVaLs to the file.
bool has(const std::string &var) const
double rms() const
Calculate rms.
void print(std::ostream &) const
Output GeoVaLs to a stream.
void read(const eckit::Configuration &, const ioda::ObsSpace &)
Read GeoVaLs from the file.
size_t nlevs(const std::string &var) const
Return number of levels for a specified variable.
void merge(const GeoVaLs &, const GeoVaLs &)
Merge two GeoVaLs.
double dot_product_with(const GeoVaLs &) const
Scalar product of two GeoVaLs.
GeoVaLs & operator*=(const double)
Multiply by a constant scalar.