OOPS
GomQG.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2009-2016 ECMWF.
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  * In applying this licence, ECMWF does not waive the privileges and immunities
7  * granted to it by virtue of its status as an intergovernmental organisation nor
8  * does it submit to any jurisdiction.
9  */
10 
11 #ifndef QG_MODEL_GOMQG_H_
12 #define QG_MODEL_GOMQG_H_
13 
14 #include <ostream>
15 #include <string>
16 #include <vector>
17 
18 #include "oops/util/ObjectCounter.h"
19 #include "oops/util/Printable.h"
20 
21 #include "oops/qg/QgFortran.h"
22 
23 namespace oops {
24  class Variables;
25 }
26 
27 namespace qg {
28  class LocationsQG;
29 
30 /// GomQG class to handle local model values for QG model.
31 
32 class GomQG : public util::Printable,
33  private util::ObjectCounter<GomQG> {
34  public:
35  static const std::string classname() {return "qg::GomQG";}
36 
37  GomQG(const LocationsQG &, const oops::Variables &);
38  GomQG(const eckit::Configuration &, const ObsSpaceQG &,
39  const oops::Variables &);
40  explicit GomQG(const GomQG &);
41 
42  GomQG(): keyGom_(0) {}
43  explicit GomQG(int & fgom): keyGom_(fgom) {}
44 
45  ~GomQG();
46 
47  void zero();
48  void random();
49  double rms() const;
50  double normalizedrms(const GomQG &) const;
51  GomQG & operator=(const GomQG &);
52  GomQG & operator*=(const double &);
53  GomQG & operator+=(const GomQG &);
54  GomQG & operator-=(const GomQG &);
55  GomQG & operator*=(const GomQG &);
56  double dot_product_with(const GomQG &) const;
57  void read(const eckit::Configuration &);
58  void write(const eckit::Configuration &) const;
59 
60  const int & toFortran() const {return keyGom_;}
61 
62  private:
63  void print(std::ostream &) const;
65 };
66 
67 } // namespace qg
68 
69 #endif // QG_MODEL_GOMQG_H_
oops
The namespace for the main oops code.
Definition: ErrorCovarianceL95.cc:22
qg
The namespace for the qg model.
Definition: qg/model/AnalyticInit.cc:13
qg::GomQG::GomQG
GomQG()
Definition: GomQG.h:42
qg::GomQG::random
void random()
Definition: GomQG.cc:66
qg::GomQG::keyGom_
F90gom keyGom_
Definition: GomQG.h:64
qg::GomQG::GomQG
GomQG(int &fgom)
Definition: GomQG.h:43
qg::GomQG::read
void read(const eckit::Configuration &)
Definition: GomQG.cc:102
qg::GomQG::normalizedrms
double normalizedrms(const GomQG &) const
Definition: GomQG.cc:56
qg::ObsSpaceQG
ObsSpace for QG model.
Definition: ObsSpaceQG.h:44
qg::LocationsQG
LocationsQG class to handle locations for QG model.
Definition: LocationsQG.h:36
qg::GomQG::classname
static const std::string classname()
Definition: GomQG.h:35
qg::GomQG::operator=
GomQG & operator=(const GomQG &)
Definition: GomQG.cc:70
qg::GomQG
GomQG class to handle local model values for QG model.
Definition: GomQG.h:33
qg::GomQG::print
void print(std::ostream &) const
Definition: GomQG.cc:110
qg::GomQG::rms
double rms() const
Definition: GomQG.cc:50
qg::GomQG::operator*=
GomQG & operator*=(const double &)
Definition: GomQG.cc:76
qg::GomQG::operator-=
GomQG & operator-=(const GomQG &)
Definition: GomQG.cc:86
qg::GomQG::zero
void zero()
Definition: GomQG.cc:62
qg::GomQG::toFortran
const int & toFortran() const
Definition: GomQG.h:60
qg::GomQG::operator+=
GomQG & operator+=(const GomQG &)
Definition: GomQG.cc:81
oops::Variables
Definition: oops/base/Variables.h:23
qg::GomQG::~GomQG
~GomQG()
Definition: GomQG.cc:46
qg::F90gom
int F90gom
Definition: QgFortran.h:49
qg::GomQG::dot_product_with
double dot_product_with(const GomQG &) const
Definition: GomQG.cc:96
qg::GomQG::write
void write(const eckit::Configuration &) const
Definition: GomQG.cc:106