Go to the documentation of this file.
11 #include "eckit/config/Configuration.h"
13 #include "oops/interface/LinearVariableChange.h"
14 #include "oops/util/Logger.h"
15 #include "oops/util/Timer.h"
25 static oops::LinearVariableChangeMaker<Traits, oops::LinearVariableChange<Traits, LinVarChaA2M> >
29 const eckit::Configuration & conf) : geom_(new
Geometry(resol))
31 util::Timer timer(
classname(),
"LinVarChaA2M");
32 oops::Log::trace() <<
classname() <<
" constructor starting" << std::endl;
33 const eckit::Configuration * configc = &conf;
36 oops::Log::trace() <<
classname() <<
" constructor done" << std::endl;
40 util::Timer timer(
classname(),
"~LinVarChaA2M");
41 oops::Log::trace() <<
classname() <<
" destructor starting" << std::endl;
43 oops::Log::trace() <<
classname() <<
" destructor done" << std::endl;
47 util::Timer timer(
classname(),
"multiply");
48 oops::Log::trace() <<
classname() <<
" multiply starting" << std::endl;
51 oops::Log::trace() <<
classname() <<
" multiply done" << std::endl;
56 util::Timer timer(
classname(),
"multiplyInverse");
57 oops::Log::trace() <<
classname() <<
" multiplyInverse starting" << std::endl;
60 oops::Log::trace() <<
classname() <<
" multiplyInverse done" << std::endl;
65 util::Timer timer(
classname(),
"multiplyAD");
66 oops::Log::trace() <<
classname() <<
" multiplyAD starting" << std::endl;
69 oops::Log::trace() <<
classname() <<
" multiplyAD done" << std::endl;
74 util::Timer timer(
classname(),
"multiplyInverseAD");
75 oops::Log::trace() <<
classname() <<
" multiplyInverseAD starting" << std::endl;
78 oops::Log::trace() <<
classname() <<
" multiplyInverseAD done" << std::endl;
static const std::string classname()
void fv3jedi_linvarcha_a2m_multiplyadjoint_f90(const F90lvc_A2M &, const F90geom &, const F90inc &, const F90inc &)
void multiply(const Increment &, Increment &) const
void fv3jedi_linvarcha_a2m_multiply_f90(const F90lvc_A2M &, const F90geom &, const F90inc &, const F90inc &)
void fv3jedi_linvarcha_a2m_multiplyinverseadjoint_f90(const F90lvc_A2M &, const F90geom &, const F90inc &, const F90inc &)
void multiplyAD(const Increment &, Increment &) const
void print(std::ostream &) const override
LinVarChaA2M(const State &, const State &, const Geometry &, const eckit::Configuration &)
void fv3jedi_linvarcha_a2m_create_f90(const F90lvc_A2M &, const F90geom &, const F90state &, const F90state &, const eckit::Configuration *const *)
const util::DateTime & validTime() const
Geometry handles geometry for FV3JEDI model.
void multiplyInverse(const Increment &, Increment &) const
static oops::LinearVariableChangeMaker< Traits, oops::LinearVariableChange< Traits, LinVarChaA2M > > makerLinVarChaA2M_("Analysis2Model")
void fv3jedi_linvarcha_a2m_multiplyinverse_f90(const F90lvc_A2M &, const F90geom &, const F90inc &, const F90inc &)
Configuration files should be formatted as e.g.
void fv3jedi_linvarcha_a2m_delete_f90(F90lvc_A2M &)
void multiplyInverseAD(const Increment &, Increment &) const
std::shared_ptr< const Geometry > geom_