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,
26 oops::LinearVariableChange<Traits, LinVarChaModel2GeoVaLs> >
30 const Geometry & resol,
const eckit::Configuration & conf):
33 util::Timer timer(
classname(),
"LinVarChaModel2GeoVaLs");
34 oops::Log::trace() <<
classname() <<
" constructor starting" << std::endl;
35 const eckit::Configuration * configc = &conf;
38 oops::Log::trace() <<
classname() <<
" constructor done" << std::endl;
42 util::Timer timer(
classname(),
"~LinVarChaModel2GeoVaLs");
43 oops::Log::trace() <<
classname() <<
" destructor starting" << std::endl;
45 oops::Log::trace() <<
classname() <<
" destructor done" << std::endl;
49 util::Timer timer(
classname(),
"multiply");
50 oops::Log::trace() <<
classname() <<
" multiply starting" << std::endl;
53 oops::Log::trace() <<
classname() <<
" multiply done" << std::endl;
57 util::Timer timer(
classname(),
"multiplyInverse");
58 oops::Log::trace() <<
classname() <<
" multiplyInverse starting" << std::endl;
60 oops::Log::trace() <<
classname() <<
" multiplyInverse done" << std::endl;
64 util::Timer timer(
classname(),
"multiplyAD");
65 oops::Log::trace() <<
classname() <<
" multiplyAD starting" << std::endl;
68 oops::Log::trace() <<
classname() <<
" multiplyAD done" << std::endl;
72 util::Timer timer(
classname(),
"multiplyInverseAD");
73 oops::Log::trace() <<
classname() <<
" multiplyInverseAD starting" << std::endl;
75 oops::Log::trace() <<
classname() <<
" multiplyInverseAD done" << std::endl;
void multiplyAD(const Increment &, Increment &) const
LinVarChaModel2GeoVaLs(const State &, const State &, const Geometry &, const eckit::Configuration &)
static oops::LinearVariableChangeMaker< Traits, oops::LinearVariableChange< Traits, LinVarChaModel2GeoVaLs > > makerLinVarChaModel2GeoVaLs_("Model2GeoVaLs")
~LinVarChaModel2GeoVaLs()
void fv3jedi_lvc_model2geovals_multiply_f90(const F90lvc_M2G &, const F90geom &, const F90inc &, const F90inc &)
void fv3jedi_lvc_model2geovals_create_f90(const F90lvc_M2G &, const F90geom &, const F90state &, const F90state &, const eckit::Configuration *const *)
static const std::string classname()
void multiply(const Increment &, Increment &) const
void fv3jedi_lvc_model2geovals_delete_f90(F90lvc_M2G &)
void print(std::ostream &) const override
Geometry handles geometry for FV3JEDI model.
void multiplyInverseAD(const Increment &, Increment &) const
Configuration files should be formatted as e.g.
void fv3jedi_lvc_model2geovals_multiplyadjoint_f90(const F90lvc_M2G &, const F90geom &, const F90inc &, const F90inc &)
void multiplyInverse(const Increment &, Increment &) const
std::shared_ptr< const Geometry > geom_