11 #ifndef OOPS_INTERFACE_OBSOPERATOR_H_ 12 #define OOPS_INTERFACE_OBSOPERATOR_H_ 16 #include <boost/noncopyable.hpp> 17 #include <boost/scoped_ptr.hpp> 24 #include "oops/util/DateTime.h" 25 #include "oops/util/Logger.h" 26 #include "oops/util/ObjectCounter.h" 27 #include "oops/util/Printable.h" 28 #include "oops/util/Timer.h" 34 template <
typename MODEL>
36 private boost::noncopyable,
37 private util::ObjectCounter<ObsOperator<MODEL> > {
45 static const std::string
classname() {
return "oops::ObsOperator";}
60 void print(std::ostream &)
const;
61 boost::scoped_ptr<ObsOperator_>
oper_;
66 template <
typename MODEL>
68 Log::trace() <<
"ObsOperator<MODEL>::ObsOperator starting" << std::endl;
69 util::Timer timer(
classname(),
"ObsOperator");
71 Log::trace() <<
"ObsOperator<MODEL>::ObsOperator done" << std::endl;
76 template <
typename MODEL>
78 Log::trace() <<
"ObsOperator<MODEL>::~ObsOperator starting" << std::endl;
79 util::Timer timer(classname(),
"~ObsOperator");
81 Log::trace() <<
"ObsOperator<MODEL>::~ObsOperator done" << std::endl;
86 template <
typename MODEL>
89 Log::trace() <<
"ObsOperator<MODEL>::simulateObs starting" << std::endl;
90 util::Timer timer(classname(),
"simulateObs");
92 Log::trace() <<
"ObsOperator<MODEL>::simulateObs done" << std::endl;
97 template <
typename MODEL>
99 Log::trace() <<
"ObsOperator<MODEL>::variables starting" << std::endl;
100 util::Timer timer(classname(),
"variables");
101 return oper_->variables();
106 template<
typename MODEL>
108 Log::trace() <<
"ObsOperator<MODEL>::print starting" << std::endl;
109 util::Timer timer(classname(),
"print");
111 Log::trace() <<
"ObsOperator<MODEL>::print done" << std::endl;
118 #endif // OOPS_INTERFACE_OBSOPERATOR_H_ const GeoVaLs_ & geovals() const
Interfacing.
const ObsOperator_ & obsoperator() const
Interfacing.
const Variables & variables() const
Other.
MODEL::ObsOperator ObsOperator_
static const std::string classname()
const eckit::Configuration & config() const
The namespace for the main oops code.
boost::scoped_ptr< ObsOperator_ > oper_
GeoVaLs< MODEL > GeoVaLs_
ObsVector< MODEL > ObsVector_
ObsVector_ & obsvector()
Interfacing.
ObservationSpace< MODEL > ObsSpace_
void print(std::ostream &) const
ObsOperator(const ObsSpace_ &)
ObsSpace_ & observationspace() const
Interfacing.
ObsAuxControl< MODEL > ObsAuxControl_
const ObsAuxControl_ & obsauxcontrol() const
Interfacing.
void simulateObs(const GeoVaLs_ &, ObsVector_ &, const ObsAuxControl_ &) const
Obs Operator.