Go to the documentation of this file.
11 #ifndef OOPS_ASSIMILATION_CONTROLVARIABLE_H_
12 #define OOPS_ASSIMILATION_CONTROLVARIABLE_H_
18 #include "eckit/config/Configuration.h"
25 #include "oops/util/ObjectCounter.h"
26 #include "oops/util/Printable.h"
44 template<
typename MODEL,
typename OBS>
46 private util::ObjectCounter<ControlVariable<MODEL, OBS> > {
54 static const std::string
classname() {
return "oops::ControlVariable";}
64 void read(
const eckit::Configuration &);
65 void write(
const eckit::Configuration &)
const;
82 void print(std::ostream &)
const;
91 template<
typename MODEL,
typename OBS>
94 : state_(resol,
eckit::LocalConfiguration(conf,
"background")),
95 modbias_(resol, conf.getSubConfiguration(
"model aux control")),
98 Log::trace() <<
"ControlVariable contructed" << std::endl;
103 template<
typename MODEL,
typename OBS>
107 modbias_(statein.geometry(), conf.getSubConfiguration(
"model aux control")),
110 Log::trace() <<
"ControlVariable contructed" << std::endl;
115 template<
typename MODEL,
typename OBS>
117 : state_(other.state_), modbias_(other.modbias_), obsbias_(other.obsbias_)
119 Log::trace() <<
"ControlVariable copied" << std::endl;
124 template<
typename MODEL,
typename OBS>
126 Log::trace() <<
"ControlVariable destructed" << std::endl;
131 template<
typename MODEL,
typename OBS>
134 modbias_.read(config);
135 obsbias_.read(config);
140 template<
typename MODEL,
typename OBS>
142 state_.write(config);
143 modbias_.write(config);
144 obsbias_.write(config);
149 template <
typename MODEL,
typename OBS>
158 template<
typename MODEL,
typename OBS>
160 double zz = state_.norm();
162 zz = modbias_.norm();
164 zz = obsbias_.norm();
172 #endif // OOPS_ASSIMILATION_CONTROLVARIABLE_H_
void read(const eckit::Configuration &)
I/O and diagnostics.
The namespace for the main oops code.
ObsAuxControls< OBS > ObsAuxCtrls_
ObsAuxCtrls_ & obsVar()
Get augmented observation control variable.
const ModelAux_ & modVar() const
ModelAuxControl< MODEL > ModelAux_
void print(std::ostream &) const
Geometry< MODEL > Geometry_
ModelAux_ & modVar()
Get augmented model control variable.
ObsSpaces< OBS > ObsSpaces_
void write(const eckit::Configuration &) const
const State_ & state() const
ControlVariable & operator=(const ControlVariable &)
ControlVariable(const eckit::Configuration &, const Geometry_ &, const ObsSpaces_ &)
The arguments define the number of sub-windows and the resolution.
Geometry class used in oops; subclass of interface class above.
Encapsulates the model state.
const ObsAuxCtrls_ & obsVar() const
static const std::string classname()
State_ & state()
Get state control variable.