8 #ifndef OOPS_RUNS_ADDINCREMENT_H_
9 #define OOPS_RUNS_ADDINCREMENT_H_
14 #include "eckit/config/LocalConfiguration.h"
20 #include "oops/util/DateTime.h"
21 #include "oops/util/Duration.h"
22 #include "oops/util/Logger.h"
37 int execute(
const eckit::Configuration & fullConfig)
const {
39 const eckit::LocalConfiguration stateResolConf(fullConfig,
"state geometry");
42 const eckit::LocalConfiguration incResolConf(fullConfig,
"increment geometry");
46 const eckit::LocalConfiguration stateConf(fullConfig,
"state");
47 State_ xx(stateResol, stateConf);
48 Log::test() <<
"State: " << xx << std::endl;
51 const eckit::LocalConfiguration incConf(fullConfig,
"increment");
52 std::vector<std::string> incvv;
53 incConf.get(
"added variables", incvv);
57 Log::test() <<
"Increment: " << dx << std::endl;
60 if (incConf.has(
"scaling factor")) {
61 dx *= incConf.getDouble(
"scaling factor");
62 Log::test() <<
"Scaled the increment: " << dx << std::endl;
72 const eckit::LocalConfiguration outputConfig(fullConfig,
"output");
73 xx.
write(outputConfig);
75 Log::test() <<
"State plus increment: " << xx << std::endl;
82 return "oops::AddIncrement<" + MODEL::name() +
">";
std::string appname() const
AddIncrement(const eckit::mpi::Comm &comm=oops::mpi::world())
Geometry< MODEL > Geometry_
int execute(const eckit::Configuration &fullConfig) const
Increment< MODEL > Increment_
const eckit::mpi::Comm & getComm() const
Geometry class used in oops; subclass of interface class interface::Geometry.
Increment class used in oops.
State class used in oops; subclass of interface class interface::State.
void read(const eckit::Configuration &)
Read this Increment from file.
const util::DateTime validTime() const
Accessor to the time of this Increment.
const util::DateTime validTime() const
Accessor to the time of this State.
void write(const eckit::Configuration &) const
Write this State out to file.
const eckit::mpi::Comm & world()
Default communicator with all MPI tasks (ie MPI_COMM_WORLD)
The namespace for the main oops code.