11 #include "eckit/config/Configuration.h"
13 #include "oops/interface/LinearVariableChange.h"
14 #include "oops/util/Logger.h"
29 static oops::LinearVariableChangeMaker<Traits,
30 oops::LinearVariableChange<Traits, Balance> >
37 const eckit::Configuration & conf) {
38 oops::Log::trace() <<
"soca::Balance::setup " << std::endl;
39 const eckit::Configuration * configc = &conf;
42 State traj_at_geomres(geom, traj);
52 oops::Log::trace() <<
"soca::Balance::delete " << std::endl;
58 oops::Log::trace() <<
"soca::Balance::multiply " << std::endl;
64 oops::Log::trace() <<
"soca::Balance::multiplyInverse " << std::endl;
70 oops::Log::trace() <<
"soca::Balance::multiplyAD " << std::endl;
77 oops::Log::trace() <<
"soca::Balance::multiplyInverseAD " << std::endl;
82 os <<
"SOCA change variable: Balance";
Balance(const State &, const State &, const Geometry &, const eckit::Configuration &)
void multiplyAD(const Increment &, Increment &) const
void print(std::ostream &) const override
void multiplyInverseAD(const Increment &, Increment &) const
void multiplyInverse(const Increment &, Increment &) const
void multiply(const Increment &, Increment &) const
Perform linear transforms.
Geometry handles geometry for SOCA model.
Increment Class: Difference between two states.
static oops::LinearVariableChangeMaker< Traits, oops::LinearVariableChange< Traits, Balance > > makerLinearVariableChangeBalance_("BalanceSOCA")
void soca_balance_delete_f90(F90balopmat &)
void soca_balance_multad_f90(const F90balopmat &, const F90balopmat &, F90balopmat &)
void soca_balance_multinv_f90(const F90balopmat &, const F90balopmat &, F90balopmat &)
void soca_balance_multinvad_f90(const F90balopmat &, const F90balopmat &, F90balopmat &)
void soca_balance_mult_f90(const F90balopmat &, const F90balopmat &, F90balopmat &)
void soca_balance_setup_f90(F90balopmat &, const eckit::Configuration *const *, const F90flds &, const F90geom &)