FV3 Bundle
ObsStreamQG.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_OBSSTREAMQG_H_
12 #define QG_MODEL_OBSSTREAMQG_H_
13 
14 #include <ostream>
15 #include <string>
16 
17 #include <boost/shared_ptr.hpp>
18 
19 #include "model/ObsOpBaseQG.h"
20 #include "model/ObsSpaceQG.h"
21 #include "model/QgTraits.h"
22 #include "oops/base/Variables.h"
23 #include "oops/util/ObjectCounter.h"
24 
25 // Forward declarations
26 namespace eckit {
27  class Configuration;
28 }
29 
30 namespace qg {
31  class GomQG;
32  class ObsBias;
33  class ObsBiasIncrement;
34  class ObsVecQG;
35 
36 // -----------------------------------------------------------------------------
37 /// Streamfunction observation for QG model.
38 
39 class ObsStreamQG : public ObsOpBaseQG,
40  private util::ObjectCounter<ObsStreamQG> {
41  public:
42  static const std::string classname() {return "qg::ObsStreamQG";}
43 
44  ObsStreamQG(const ObsSpaceQG &, const eckit::Configuration &);
45  virtual ~ObsStreamQG();
46 
47 // Obs Operator
48  void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &) const;
49 
50 // Other
51  const oops::Variables & variables() const override {return varin_;}
52 
53  int & toFortran() {return keyOperStrm_;}
54  const int & toFortran() const {return keyOperStrm_;}
55 
56  private:
57  void print(std::ostream &) const;
60 };
61 // -----------------------------------------------------------------------------
62 
63 } // namespace qg
64 #endif // QG_MODEL_OBSSTREAMQG_H_
GomQG class to handle local model values for QG model.
Definition: GomQG.h:31
Base class for observation operators.
Definition: ObsOpBaseQG.h:30
ObsStreamQG(const ObsSpaceQG &, const eckit::Configuration &)
Definition: ObsStreamQG.cc:29
const oops::Variables & variables() const override
Other.
Definition: ObsStreamQG.h:51
const int & toFortran() const
Definition: ObsStreamQG.h:54
Class to handle observation bias parameters.
virtual ~ObsStreamQG()
Definition: ObsStreamQG.cc:39
int F90hop
Definition: QgFortran.h:48
static const std::string classname()
Definition: ObsStreamQG.h:42
const oops::Variables varin_
Definition: ObsStreamQG.h:59
F90hop keyOperStrm_
Definition: ObsStreamQG.h:58
void simulateObs(const GomQG &, ObsVecQG &, const ObsBias &) const
Obs Operator.
Definition: ObsStreamQG.cc:46
int & toFortran()
Definition: ObsStreamQG.h:53
ObsVecQG class to handle vectors in observation space for QG model.
Definition: ObsVecQG.h:27
Wrapper around ObsHelpQG, mostly to hide the factory.
Definition: ObsSpaceQG.h:35
Streamfunction observation for QG model.
Definition: ObsStreamQG.h:39
The namespace for the qg model.
void print(std::ostream &) const
Definition: ObsStreamQG.cc:53