11 #ifndef OOPS_INTERFACE_OBSAUXCONTROL_H_
12 #define OOPS_INTERFACE_OBSAUXCONTROL_H_
19 #include "oops/util/Logger.h"
20 #include "oops/util/ObjectCounter.h"
21 #include "oops/util/Printable.h"
22 #include "oops/util/Timer.h"
29 template <
typename OBS>
31 private util::ObjectCounter<ObsAuxControl<OBS> > {
37 static const std::string
classname() {
return "oops::ObsAuxControl";}
60 void print(std::ostream &)
const;
61 std::unique_ptr<ObsAuxControl_>
aux_;
66 template<
typename OBS>
70 Log::trace() <<
"ObsAuxControl<OBS>::ObsAuxControl starting" << std::endl;
71 util::Timer timer(
classname(),
"ObsAuxControl");
73 Log::trace() <<
"ObsAuxControl<OBS>::ObsAuxControl done" << std::endl;
78 template<
typename OBS>
81 Log::trace() <<
"ObsAuxControl<OBS>::ObsAuxControl copy starting" << std::endl;
82 util::Timer timer(
classname(),
"ObsAuxControl");
84 Log::trace() <<
"ObsAuxControl<OBS>::ObsAuxControl copy done" << std::endl;
89 template<
typename OBS>
91 Log::trace() <<
"ObsAuxControl<OBS>::~ObsAuxControl starting" << std::endl;
92 util::Timer timer(classname(),
"~ObsAuxControl");
94 Log::trace() <<
"ObsAuxControl<OBS>::~ObsAuxControl done" << std::endl;
99 template<
typename OBS>
101 Log::trace() <<
"ObsAuxControl<OBS>::read starting" << std::endl;
102 util::Timer timer(classname(),
"read");
104 Log::trace() <<
"ObsAuxControl<OBS>::read done" << std::endl;
109 template<
typename OBS>
111 Log::trace() <<
"ObsAuxControl<OBS>::write starting" << std::endl;
112 util::Timer timer(classname(),
"write");
114 Log::trace() <<
"ObsAuxControl<OBS>::write done" << std::endl;
119 template<
typename OBS>
121 Log::trace() <<
"ObsAuxControl<OBS>::norm starting" << std::endl;
122 util::Timer timer(classname(),
"norm");
123 double zz = aux_->norm();
124 Log::trace() <<
"ObsAuxControl<OBS>::norm done" << std::endl;
130 template<
typename OBS>
132 Log::trace() <<
"ObsAuxControl<OBS>::requiredVars starting" << std::endl;
133 util::Timer timer(classname(),
"requiredVars");
134 Log::trace() <<
"ObsAuxControl<OBS>::requiredVars done" << std::endl;
135 return aux_->requiredVars();
140 template<
typename OBS>
142 Log::trace() <<
"ObsAuxControl<OBS>::requiredHdiagnostics starting" << std::endl;
143 util::Timer timer(classname(),
"requiredHdiagnostics");
144 Log::trace() <<
"ObsAuxControl<OBS>::requiredHdiagnostics done" << std::endl;
145 return aux_->requiredHdiagnostics();
149 template<
typename OBS>
151 Log::trace() <<
"ObsAuxControl<OBS>::operator= starting" << std::endl;
152 util::Timer timer(classname(),
"operator=");
154 Log::trace() <<
"ObsAuxControl<OBS>::operator= done" << std::endl;
160 template<
typename OBS>
162 Log::trace() <<
"ObsAuxControl<OBS>::print starting" << std::endl;
163 util::Timer timer(classname(),
"print");
165 Log::trace() <<
"ObsAuxControl<OBS>::print done" << std::endl;
void read(const Parameters_ &)
I/O and diagnostics.
void write(const Parameters_ &) const
ObsAuxControl & operator=(const ObsAuxControl &)
Operator.
OBS::ObsAuxControl ObsAuxControl_
const Variables & requiredVars() const
Other.
ObsAuxControl_ & obsauxcontrol()
ObsAuxControl_::Parameters_ Parameters_
static const std::string classname()
const ObsAuxControl_ & obsauxcontrol() const
Interfacing.
std::unique_ptr< ObsAuxControl_ > aux_
void print(std::ostream &) const
ObsAuxControl(const ObsSpace< OBS > &, const Parameters_ ¶ms)
const Variables & requiredHdiagnostics() const
ObsSpace_ & obsspace() const
Interfacing.
IODA_DL void copy(const ObjectSelection &from, ObjectSelection &to, const ScaleMapping &scale_map)
Generic data copying function.
The namespace for the main oops code.