11 #ifndef OOPS_RUNS_GENENSPERTB_H_ 12 #define OOPS_RUNS_GENENSPERTB_H_ 17 #include <boost/scoped_ptr.hpp> 19 #include "eckit/config/Configuration.h" 31 #include "oops/util/DateTime.h" 32 #include "oops/util/Duration.h" 33 #include "oops/util/Logger.h" 47 instantiateCovarFactory<MODEL>();
52 int execute(
const eckit::Configuration & fullConfig)
const {
54 const eckit::LocalConfiguration resolConfig(fullConfig,
"resolution");
58 const eckit::LocalConfiguration varConfig(fullConfig,
"variables");
62 const eckit::LocalConfiguration modelConfig(fullConfig,
"model");
66 const eckit::LocalConfiguration initialConfig(fullConfig,
"initial");
67 const State_ xx(resol,
model.variables(), initialConfig);
68 Log::test() <<
"Initial state: " << xx << std::endl;
71 const ModelAux_ moderr(resol, initialConfig);
74 const util::Duration fclength(fullConfig.getString(
"forecast_length"));
75 const util::DateTime bgndate(xx.validTime());
76 const util::DateTime enddate(bgndate + fclength);
77 Log::info() <<
"Running forecast from " << bgndate <<
" to " << enddate << std::endl;
80 const eckit::LocalConfiguration covar(fullConfig,
"Covariance");
81 boost::scoped_ptr< ModelSpaceCovarianceBase<MODEL> >
86 const int members = fullConfig.getInt(
"members");
87 for (
int jm = 0;
jm < members; ++
jm) {
98 eckit::LocalConfiguration outConfig(fullConfig,
"output");
99 outConfig.set(
"member",
jm+1);
104 model.forecast(xp, moderr, fclength, post);
105 Log::test() <<
"Member " <<
jm <<
" final state: " << xp << std::endl;
119 #endif // OOPS_RUNS_GENENSPERTB_H_
Handles writing-out of forecast fields.
Encapsulates the model state.
The namespace for the main oops code.
Increment< MODEL > Increment_
Geometry< MODEL > Geometry_
subroutine, public info(self)
Encapsulates the nonlinear forecast model.
Increment Class: Difference between two states.
Control model post processing.
ModelAuxControl< MODEL > ModelAux_
std::string appname() const
void enrollProcessor(PostBase_ *pp)
int execute(const eckit::Configuration &fullConfig) const