11 #ifndef OOPS_GENERIC_LINEARMODELID_H_ 12 #define OOPS_GENERIC_LINEARMODELID_H_ 24 #include "oops/util/Duration.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" 43 template <
typename MODEL>
49 typedef typename MODEL::State
State_;
52 static const std::string
classname() {
return "oops::LinearModelId";}
73 void print(std::ostream &)
const override {}
83 template<
typename MODEL>
85 : resol_(resol), tstep_(
util::Duration(tlConf.getString(
"tstep"))),
86 vars_(
std::vector<
std::string>{
""})
88 Log::trace() <<
"LinearModelId<MODEL>::LinearModelId done" << std::endl;
93 template<
typename MODEL>
95 Log::trace() <<
"LinearModelId<MODEL>::~LinearModelId done" << std::endl;
100 template<
typename MODEL>
103 Log::trace() <<
"LinearModelId<MODEL>::setTrajectory not set for identity model" << std::endl;
108 template<
typename MODEL>
110 Log::info() <<
"LinearModelId<MODEL>:initializeTL Starting " << std::endl;
111 Log::trace() <<
"LinearModelId<MODEL>::initializeTL done" << std::endl;
116 template<
typename MODEL>
118 Log::info() <<
"LinearModelId<MODEL>:stepTL Starting " << std::endl;
120 Log::trace() <<
"LinearModelId<MODEL>::stepTL done" << std::endl;
125 template<
typename MODEL>
127 Log::info() <<
"LinearModelId<MODEL>:finalizeTL Starting " << std::endl;
128 Log::trace() <<
"LinearModelId<MODEL>::finalizeTL done" << std::endl;
133 template<
typename MODEL>
135 Log::info() <<
"LinearModelId<MODEL>:initializeAD Starting " << std::endl;
136 Log::trace() <<
"LinearModelId<MODEL>::initializeAD done" << std::endl;
141 template<
typename MODEL>
143 Log::info() <<
"LinearModelId<MODEL>:stepAD Starting " << std::endl;
145 Log::trace() <<
"LinearModelId<MODEL>::stepAD done" << std::endl;
150 template<
typename MODEL>
152 Log::info() <<
"LinearModelId<MODEL>:finalizeAD Starting " << std::endl;
153 Log::trace() <<
"LinearModelId<MODEL>::finalizeAD done" << std::endl;
159 #endif // OOPS_GENERIC_LINEARMODELID_H_ MODEL::Geometry Geometry_
MODEL::Increment Increment_
MODEL::ModelAuxControl ModelAux_
void finalizeTL(Increment_ &) const override
const oops::Variables & variables() const override
subroutine std(a, mean, stdv, area)
void setTrajectory(const State_ &, State_ &, const ModelAux_ &) override
Encapsulates the linear forecast model.
void initializeTL(Increment_ &) const override
Encapsulates the model state.
void stepTL(Increment_ &dx, const ModelAuxIncr_ &) const override
MODEL::ModelAuxIncrement ModelAuxIncr_
void updateTime(const util::Duration &dt)
The namespace for the main oops code.
subroutine, public info(self)
Base class for encapsulation of the linear forecast model.
const util::Duration & timeResolution() const override
void stepAD(Increment_ &dx, ModelAuxIncr_ &) const override
Increment Class: Difference between two states.
static const std::string classname()
void print(std::ostream &) const override
const util::Duration tstep_
void initializeAD(Increment_ &) const override
void finalizeAD(Increment_ &) const override
LinearModelId(const Geometry_ &, const eckit::Configuration &)