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, LinVarChaC2A> >
29 const eckit::Configuration & conf):
32 util::Timer timer(
classname(),
"LinVarChaC2A");
33 oops::Log::trace() <<
classname() <<
" constructor starting" << std::endl;
34 const eckit::Configuration * configc = &conf;
37 oops::Log::trace() <<
classname() <<
" constructor done" << std::endl;
41 util::Timer timer(
classname(),
"~LinVarChaC2A");
42 oops::Log::trace() <<
classname() <<
" destructor starting" << std::endl;
44 oops::Log::trace() <<
classname() <<
" destructor done" << std::endl;
48 util::Timer timer(
classname(),
"multiply");
49 oops::Log::trace() <<
classname() <<
" multiply starting" << std::endl;
52 oops::Log::trace() <<
classname() <<
" multiply starting" << std::endl;
56 util::Timer timer(
classname(),
"multiplyInverse");
57 oops::Log::trace() <<
classname() <<
" multiplyInverse starting" << std::endl;
60 oops::Log::trace() <<
classname() <<
" multiplyInverse starting" << std::endl;
64 util::Timer timer(
classname(),
"multiplyAD");
65 oops::Log::trace() <<
classname() <<
" multiplyAD starting" << std::endl;
68 oops::Log::trace() <<
classname() <<
" multiplyAD starting" << std::endl;
72 util::Timer timer(
classname(),
"multiplyInverseAD");
73 oops::Log::trace() <<
classname() <<
" multiplyInverseAD starting" << std::endl;
76 oops::Log::trace() <<
classname() <<
" multiplyInverseAD starting" << std::endl;
std::shared_ptr< const Geometry > geom_
void multiplyInverseAD(const Increment &, Increment &) const
static const std::string classname()
void fv3jedi_linvarcha_c2a_multiplyinverse_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
LinVarChaC2A(const State &, const State &, const Geometry &, const eckit::Configuration &)
void multiplyInverse(const Increment &, Increment &) const
void fv3jedi_linvarcha_c2a_multiplyadjoint_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
void print(std::ostream &) const override
void fv3jedi_linvarcha_c2a_create_f90(const F90lvc_C2A &, const F90geom &, const F90state &, const F90state &, const eckit::Configuration *const *)
void fv3jedi_linvarcha_c2a_multiply_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
Geometry handles geometry for FV3JEDI model.
static oops::LinearVariableChangeMaker< Traits, oops::LinearVariableChange< Traits, LinVarChaC2A > > makerLinVarChaC2A_("Control2Analysis")
void multiply(const Increment &, Increment &) const
void fv3jedi_linvarcha_c2a_multiplyinverseadjoint_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
Configuration files should be formatted as e.g.
void fv3jedi_linvarcha_c2a_delete_f90(F90lvc_C2A &)
void multiplyAD(const Increment &, Increment &) const