11 #ifndef OOPS_INTERFACE_MODELAUXCONTROL_H_
12 #define OOPS_INTERFACE_MODELAUXCONTROL_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"
32 template <
typename MODEL>
34 private util::ObjectCounter<ModelAuxControl<MODEL> > {
39 static const std::string
classname() {
return "oops::ModelAuxControl";}
51 void read(
const eckit::Configuration &);
52 void write(
const eckit::Configuration &)
const;
57 void print(std::ostream &)
const;
58 std::unique_ptr<ModelAuxControl_>
aux_;
63 template<
typename MODEL>
65 const eckit::Configuration & conf) : aux_()
67 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl starting" << std::endl;
68 util::Timer timer(
classname(),
"ModelAuxControl");
70 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl done" << std::endl;
75 template<
typename MODEL>
79 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl interpolated starting" << std::endl;
80 util::Timer timer(
classname(),
"ModelAuxControl");
82 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl interpolated done" << std::endl;
87 template<
typename MODEL>
89 const bool copy) : aux_()
91 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl copy starting" << std::endl;
92 util::Timer timer(
classname(),
"ModelAuxControl");
94 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl copy done" << std::endl;
99 template<
typename MODEL>
101 Log::trace() <<
"ModelAuxControl<MODEL>::~ModelAuxControl starting" << std::endl;
102 util::Timer timer(classname(),
"~ModelAuxControl");
104 Log::trace() <<
"ModelAuxControl<MODEL>::~ModelAuxControl done" << std::endl;
109 template<
typename MODEL>
111 Log::trace() <<
"ModelAuxControl<MODEL>::read starting" << std::endl;
112 util::Timer timer(classname(),
"read");
114 Log::trace() <<
"ModelAuxControl<MODEL>::read done" << std::endl;
119 template<
typename MODEL>
121 Log::trace() <<
"ModelAuxControl<MODEL>::write starting" << std::endl;
122 util::Timer timer(classname(),
"write");
124 Log::trace() <<
"ModelAuxControl<MODEL>::write done" << std::endl;
129 template<
typename MODEL>
131 Log::trace() <<
"ModelAuxControl<MODEL>::norm starting" << std::endl;
132 util::Timer timer(classname(),
"norm");
133 double zz = aux_->norm();
134 Log::trace() <<
"ModelAuxControl<MODEL>::norm done" << std::endl;
140 template<
typename MODEL>
142 Log::trace() <<
"ModelAuxControl<MODEL>::print starting" << std::endl;
143 util::Timer timer(classname(),
"print");
145 Log::trace() <<
"ModelAuxControl<MODEL>::print done" << std::endl;
Geometry class used in oops; subclass of interface class interface::Geometry.
MODEL::ModelAuxControl ModelAuxControl_
const ModelAuxControl_ & modelauxcontrol() const
Interfacing.
ModelAuxControl & operator=(const ModelAuxControl &)
ModelAuxControl(const Geometry_ &, const eckit::Configuration &)
void read(const eckit::Configuration &)
I/O and diagnostics.
static const std::string classname()
void write(const eckit::Configuration &) const
Geometry< MODEL > Geometry_
void print(std::ostream &) const
ModelAuxControl_ & modelauxcontrol()
std::unique_ptr< ModelAuxControl_ > aux_
const Geometry_ & geometry() const
IODA_DL void copy(const ObjectSelection &from, ObjectSelection &to, const ScaleMapping &scale_map)
Generic data copying function.
The namespace for the main oops code.