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
26 < MPASTraits, oops::LinearVariableChange<MPASTraits, LinVarChaC2A> >
32 const eckit::Configuration &
config)
34 util::Timer timer(
classname(),
"LinVarChaC2A");
35 oops::Log::trace() <<
classname() <<
" constructor starting" << std::endl;
39 oops::Log::trace() <<
classname() <<
" constructor done" << std::endl;
43 util::Timer timer(
classname(),
"~LinVarChaC2A");
44 oops::Log::trace() <<
classname() <<
" destructor starting" << std::endl;
46 oops::Log::trace() <<
classname() <<
" destructor done" << std::endl;
51 util::Timer timer(
classname(),
"multiply");
52 oops::Log::trace() <<
classname() <<
" multiply starting" << std::endl;
55 oops::Log::trace() <<
classname() <<
" multiply done" << std::endl;
60 util::Timer timer(
classname(),
"multiplyInverse");
61 oops::Log::trace() <<
classname() <<
" multiplyInverse starting" << std::endl;
64 oops::Log::trace() <<
classname() <<
" multiplyInverse done" << std::endl;
69 util::Timer timer(
classname(),
"multiplyAD");
70 oops::Log::trace() <<
classname() <<
" multiplyAD starting" << std::endl;
73 oops::Log::trace() <<
classname() <<
" multiplyAD done" << std::endl;
78 util::Timer timer(
classname(),
"multiplyInverseAD");
79 oops::Log::trace() <<
classname() <<
" multiplyInverseAD starting" << std::endl;
82 oops::Log::trace() <<
classname() <<
" multiplyInverseAD done" << std::endl;
GeometryMPAS handles geometry for MPAS model.
Increment Class: Difference between two states.
void multiplyInverse(const IncrementMPAS &, IncrementMPAS &) const
static const std::string classname()
void multiply(const IncrementMPAS &, IncrementMPAS &) const
void multiplyAD(const IncrementMPAS &, IncrementMPAS &) const
std::shared_ptr< const GeometryMPAS > geom_
void multiplyInverseAD(const IncrementMPAS &, IncrementMPAS &) const
LinVarChaC2A(const StateMPAS &, const StateMPAS &, const GeometryMPAS &, const eckit::Configuration &)
void print(std::ostream &) const override
static oops::LinearVariableChangeMaker< MPASTraits, oops::LinearVariableChange< MPASTraits, LinVarChaC2A > > makerLinVarChaC2A_("Control2Analysis")
void mpasjedi_linvarcha_c2a_multiply_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
void mpasjedi_linvarcha_c2a_multiplyadjoint_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
void mpasjedi_linvarcha_c2a_create_f90(const F90lvc_C2A &, const F90geom &, const F90state &, const F90state &, const eckit::Configuration &, const oops::Variables &)
void mpasjedi_linvarcha_c2a_multiplyinverse_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)
void mpasjedi_linvarcha_c2a_delete_f90(F90lvc_C2A &)
void mpasjedi_linvarcha_c2a_multiplyinverseadjoint_f90(const F90lvc_C2A &, const F90geom &, const F90inc &, const F90inc &)