8 #ifndef SABER_OOPS_ERRORCOVARIANCEID_H_
9 #define SABER_OOPS_ERRORCOVARIANCEID_H_
15 #include "oops/base/ModelSpaceCovarianceBase.h"
16 #include "oops/base/Variables.h"
17 #include "oops/interface/Geometry.h"
18 #include "oops/interface/Increment.h"
19 #include "oops/interface/State.h"
20 #include "oops/util/Logger.h"
21 #include "oops/util/ObjectCounter.h"
22 #include "oops/util/Printable.h"
23 #include "oops/util/Timer.h"
26 class LocalConfiguration;
40 template <
typename MODEL>
42 public util::Printable,
43 private util::ObjectCounter<ErrorCovarianceID<MODEL>> {
49 static const std::string
classname() {
return "saber::ErrorCovarianceID";}
63 void print(std::ostream &)
const override;
68 template<
typename MODEL>
70 const eckit::Configuration & conf,
const State_ & xb,
72 :
oops::ModelSpaceCovarianceBase<MODEL>(xb, fg, resol, conf)
74 oops::Log::trace() <<
"ErrorCovarianceID::ErrorCovarianceID starting" << std::endl;
75 oops::Log::trace() <<
"ErrorCovarianceID::ErrorCovarianceID done" << std::endl;
80 template<
typename MODEL>
82 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::~ErrorCovarianceID starting" << std::endl;
83 util::Timer timer(classname(),
"~ErrorCovarianceID");
84 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::~ErrorCovarianceID done" << std::endl;
89 template<
typename MODEL>
91 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doRandomize starting" << std::endl;
92 util::Timer timer(classname(),
"doRandomize");
94 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doRandomize done" << std::endl;
99 template<
typename MODEL>
101 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doMultiply starting" << std::endl;
102 util::Timer timer(classname(),
"doMultiply");
104 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doMultiply done" << std::endl;
109 template<
typename MODEL>
111 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doInverseMultiply starting" << std::endl;
112 util::Timer timer(classname(),
"doInverseMultiply");
114 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::doInverseMultiply done" << std::endl;
119 template<
typename MODEL>
121 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::print starting" << std::endl;
122 util::Timer timer(classname(),
"print");
123 os <<
"ErrorCovarianceID<MODEL> B = I";
124 oops::Log::trace() <<
"ErrorCovarianceID<MODEL>::print done" << std::endl;
131 #endif // SABER_OOPS_ERRORCOVARIANCEID_H_