OOPS
GetValuesQG.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019-2020 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 QG_MODEL_GETVALUESQG_H_
9 #define QG_MODEL_GETVALUESQG_H_
10 
11 #include <memory>
12 #include <ostream>
13 #include <string>
14 
15 #include "oops/util/DateTime.h"
16 #include "oops/util/ObjectCounter.h"
17 #include "oops/util/Printable.h"
18 
19 #include "oops/qg/LocationsQG.h"
20 #include "oops/qg/QgFortran.h"
21 
22 namespace qg {
23  class GomQG;
24  class GeometryQG;
25  class StateQG;
26 
27 /// \brief used for getting state values at observation locations
28 // -----------------------------------------------------------------------------
29 class GetValuesQG : public util::Printable,
30  private util::ObjectCounter<GetValuesQG> {
31  public:
32  static const std::string classname() {return "qg::GetValuesQG";}
33 
34 /// \brief saves all locations \p locs to use during filling GeoVaLs
35  GetValuesQG(const GeometryQG &, const LocationsQG & locs);
37 
38 /// \brief fills in \p geovals for all observations in the timeframe (\p t1, \p t2],
39 /// \p geovals are interpolated trilinearly from \p state at the nearest gridpoints
40  void fillGeoVaLs(const StateQG &, const util::DateTime & t1,
41  const util::DateTime & t2, GomQG &) const;
42 
43  private:
44  void print(std::ostream &) const;
46 };
47 // -----------------------------------------------------------------------------
48 
49 } // namespace qg
50 
51 #endif // QG_MODEL_GETVALUESQG_H_
qg
The namespace for the qg model.
Definition: qg/model/AnalyticInit.cc:13
qg::StateQG
QG model state.
Definition: StateQG.h:42
qg::GetValuesQG
used for getting state values at observation locations
Definition: GetValuesQG.h:30
qg::GetValuesQG::fillGeoVaLs
void fillGeoVaLs(const StateQG &, const util::DateTime &t1, const util::DateTime &t2, GomQG &) const
fills in geovals for all observations in the timeframe (t1, t2], geovals are interpolated trilinearly...
Definition: GetValuesQG.cc:30
qg::LocationsQG
LocationsQG class to handle locations for QG model.
Definition: LocationsQG.h:36
qg::GetValuesQG::print
void print(std::ostream &) const
Definition: GetValuesQG.cc:36
qg::GomQG
GomQG class to handle local model values for QG model.
Definition: GomQG.h:33
qg::GetValuesQG::locs_
LocationsQG locs_
Definition: GetValuesQG.h:45
qg::GetValuesQG::classname
static const std::string classname()
Definition: GetValuesQG.h:32
qg::GeometryQG
GeometryQG handles geometry for QG model.
Definition: GeometryQG.h:54
qg::GetValuesQG::~GetValuesQG
~GetValuesQG()
Definition: GetValuesQG.h:36
qg::GetValuesQG::GetValuesQG
GetValuesQG(const GeometryQG &, const LocationsQG &locs)
saves all locations locs to use during filling GeoVaLs
Definition: GetValuesQG.cc:25