11 #ifndef OOPS_INTERFACE_MODELAUXCONTROL_H_ 12 #define OOPS_INTERFACE_MODELAUXCONTROL_H_ 17 #include <boost/scoped_ptr.hpp> 20 #include "oops/util/Logger.h" 21 #include "oops/util/ObjectCounter.h" 22 #include "oops/util/Printable.h" 23 #include "oops/util/Timer.h" 33 template <
typename MODEL>
35 private util::ObjectCounter<ModelAuxControl<MODEL> > {
40 static const std::string
classname() {
return "oops::ModelAuxControl";}
52 void read(
const eckit::Configuration &);
53 void write(
const eckit::Configuration &)
const;
58 void print(std::ostream &)
const;
59 boost::scoped_ptr<ModelAuxControl_>
aux_;
64 template<
typename MODEL>
66 const eckit::Configuration &
conf) : aux_()
68 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl starting" << std::endl;
69 util::Timer timer(
classname(),
"ModelAuxControl");
71 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl done" << std::endl;
76 template<
typename MODEL>
80 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl interpolated starting" << std::endl;
81 util::Timer timer(
classname(),
"ModelAuxControl");
83 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl interpolated done" << std::endl;
88 template<
typename MODEL>
90 const bool copy) : aux_()
92 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl copy starting" << std::endl;
93 util::Timer timer(
classname(),
"ModelAuxControl");
95 Log::trace() <<
"ModelAuxControl<MODEL>::ModelAuxControl copy done" << std::endl;
100 template<
typename MODEL>
102 Log::trace() <<
"ModelAuxControl<MODEL>::~ModelAuxControl starting" << std::endl;
103 util::Timer timer(classname(),
"~ModelAuxControl");
105 Log::trace() <<
"ModelAuxControl<MODEL>::~ModelAuxControl done" << std::endl;
110 template<
typename MODEL>
112 Log::trace() <<
"ModelAuxControl<MODEL>::read starting" << std::endl;
113 util::Timer timer(classname(),
"read");
115 Log::trace() <<
"ModelAuxControl<MODEL>::read done" << std::endl;
120 template<
typename MODEL>
122 Log::trace() <<
"ModelAuxControl<MODEL>::write starting" << std::endl;
123 util::Timer timer(classname(),
"write");
125 Log::trace() <<
"ModelAuxControl<MODEL>::write done" << std::endl;
130 template<
typename MODEL>
132 Log::trace() <<
"ModelAuxControl<MODEL>::norm starting" << std::endl;
133 util::Timer timer(classname(),
"norm");
134 double zz = aux_->norm();
135 Log::trace() <<
"ModelAuxControl<MODEL>::norm done" << std::endl;
141 template<
typename MODEL>
143 Log::trace() <<
"ModelAuxControl<MODEL>::print starting" << std::endl;
144 util::Timer timer(classname(),
"print");
146 Log::trace() <<
"ModelAuxControl<MODEL>::print done" << std::endl;
153 #endif // OOPS_INTERFACE_MODELAUXCONTROL_H_ ModelAuxControl(const Geometry_ &, const eckit::Configuration &)
ModelAuxControl_ & modelauxcontrol()
MODEL::ModelAuxControl ModelAuxControl_
subroutine, public copy(self, rhs)
void read(const eckit::Configuration &)
I/O and diagnostics.
void write(const eckit::Configuration &) const
The namespace for the main oops code.
boost::scoped_ptr< ModelAuxControl_ > aux_
ModelAuxControl & operator=(const ModelAuxControl &)
const ModelAuxControl_ & modelauxcontrol() const
Interfacing.
Geometry< MODEL > Geometry_
const Geometry_ & geometry() const
Interfacing.
void print(std::ostream &) const
static const std::string classname()