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, VertConv> >
37 const eckit::Configuration & conf) :
38 bkg_lr_(geom, bkg), geom_(geom) {
39 oops::Log::trace() <<
"soca::VertConv::setup " << std::endl;
40 const eckit::Configuration * configc = &conf;
50 oops::Log::trace() <<
"soca::VertConv::delete " << std::endl;
56 oops::Log::trace() <<
"soca::VertConv::multiply " << std::endl;
61 oops::Log::trace() <<
"soca::VertConv::multiplyInverse " << std::endl;
67 oops::Log::trace() <<
"soca::VertConv::multiplyAD " << std::endl;
73 oops::Log::trace() <<
"soca::VertConv::multiplyInverseAD " << std::endl;
78 os <<
"SOCA change variable: VertConv";
Geometry handles geometry for SOCA model.
Increment Class: Difference between two states.
VertConv(const State &, const State &, const Geometry &, const eckit::Configuration &)
void multiplyAD(const Increment &, Increment &) const
void multiply(const Increment &, Increment &) const
Perform linear transforms.
void multiplyInverseAD(const Increment &, Increment &) const
void multiplyInverse(const Increment &, Increment &) const
void print(std::ostream &) const override
void soca_vertconv_mult_f90(const F90balopmat &, F90balopmat &, const F90balopmat &)
void soca_vertconv_setup_f90(F90balopmat &, const eckit::Configuration *const *, const F90flds &, const F90geom &)
void soca_vertconv_delete_f90(F90balopmat &)
void soca_vertconv_multad_f90(const F90balopmat &, F90balopmat &, const F90balopmat &)
static oops::LinearVariableChangeMaker< Traits, oops::LinearVariableChange< Traits, VertConv > > makerLinearVariableCHangeVertConv_("VertConvSOCA")