8 #ifndef OOPS_RUNS_ENSVARIANCE_H_
9 #define OOPS_RUNS_ENSVARIANCE_H_
16 #include "eckit/config/LocalConfiguration.h"
23 #include "oops/util/DateTime.h"
39 int execute(
const eckit::Configuration & fullConfig)
const {
41 const eckit::LocalConfiguration resolConfig(fullConfig,
"geometry");
45 const eckit::LocalConfiguration bkgConfig(fullConfig,
"background");
46 State_ xx(resol, bkgConfig);
50 const eckit::LocalConfiguration ensConfig(fullConfig,
"ensemble");
51 Variables vars(ensConfig,
"output variables");
52 Ensemble_ ens_k(ensConfig, xx, xx, resol, vars);
55 unsigned nm = ens_k.
size();
63 for (
unsigned jj = 0; jj < nm; ++jj) {
70 const double rk = 1.0/(
static_cast<double>(nm) - 1.0);
74 const eckit::LocalConfiguration varianceout(fullConfig,
"variance output");
75 sigb2.
write(varianceout);
76 Log::test() <<
"Variance: " << std::endl << sigb2 << std::endl;
83 return "oops::EnsVariance<" + MODEL::name() +
">";
const eckit::mpi::Comm & getComm() const
EnsVariance(const eckit::mpi::Comm &comm=oops::mpi::world())
IncrementEnsemble< MODEL > Ensemble_
int execute(const eckit::Configuration &fullConfig) const
std::string appname() const
Increment< MODEL > Increment_
Geometry< MODEL > Geometry_
Geometry class used in oops; subclass of interface class interface::Geometry.
size_t size() const
Accessors.
Increment class used in oops.
State class used in oops; subclass of interface class interface::State.
void schur_product_with(const Increment &other)
Compute Schur product of this Increment with other, assign to this Increment.
void write(const eckit::Configuration &) const
Write this Increment out to file.
void zero()
Zero out this Increment.
const eckit::mpi::Comm & world()
Default communicator with all MPI tasks (ie MPI_COMM_WORLD)
The namespace for the main oops code.