11 #ifndef OOPS_ASSIMILATION_CONTROLVARIABLE_H_ 12 #define OOPS_ASSIMILATION_CONTROLVARIABLE_H_ 18 #include "eckit/config/Configuration.h" 24 #include "oops/util/ObjectCounter.h" 25 #include "oops/util/Printable.h" 43 template<
typename MODEL>
45 private util::ObjectCounter<ControlVariable<MODEL> > {
52 static const std::string
classname() {
return "oops::ControlVariable";}
60 void read(
const eckit::Configuration &);
61 void write(
const eckit::Configuration &)
const;
78 void print(std::ostream &)
const;
87 template<
typename MODEL>
91 modbias_(resol,
conf.getSubConfiguration(
"ModelBias")),
92 obsbias_(
conf.getSubConfiguration(
"ObsBias"))
94 Log::trace() <<
"ControlVariable contructed" << std::endl;
99 template<
typename MODEL>
101 : state4d_(other.state4d_), modbias_(other.modbias_), obsbias_(other.obsbias_)
103 Log::trace() <<
"ControlVariable copied" << std::endl;
108 template<
typename MODEL>
110 Log::trace() <<
"ControlVariable destructed" << std::endl;
115 template<
typename MODEL>
117 state4d_.read(config);
118 modbias_.read(config);
119 obsbias_.read(config);
124 template<
typename MODEL>
126 state4d_.write(config);
127 modbias_.write(config);
128 obsbias_.write(config);
133 template <
typename MODEL>
142 template<
typename MODEL>
144 double zz = state4d_.norm();
146 zz = modbias_.norm();
148 zz = obsbias_.norm();
156 #endif // OOPS_ASSIMILATION_CONTROLVARIABLE_H_ State4D_ & state()
Get state control variable.
void write(const eckit::Configuration &) const
ControlVariable(const eckit::Configuration &, const Variables &, const Geometry_ &)
The arguments define the number of sub-windows and the resolution.
State4D< MODEL > State4D_
ModelAuxControl< MODEL > ModelAux_
static const std::string classname()
const State4D_ & state() const
const ObsAuxCtrl_ & obsVar() const
ControlVariable & operator=(const ControlVariable &)
The namespace for the main oops code.
ModelAux_ & modVar()
Get augmented model control variable.
const ModelAux_ & modVar() const
void read(const eckit::Configuration &)
I/O and diagnostics.
Geometry< MODEL > Geometry_
void print(std::ostream &) const
ObsAuxControl< MODEL > ObsAuxCtrl_
ObsAuxCtrl_ & obsVar()
Get augmented observation control variable.