Go to the documentation of this file.
15 geom_(new
Geometry(geom)), linearmodel2geovals_(), model2geovals_() {
16 oops::Log::trace() <<
"LinearGetValues::LinearGetValues starting" << std::endl;
20 util::Timer timervc(
classname(),
"VarChaModel2GeoVaLs");
22 eckit::LocalConfiguration dummyconfig(sep);
28 util::Timer timergv(
classname(),
"LinearGetValues");
31 oops::Log::trace() <<
"LinearGetValues::LinearGetValues done" << std::endl;
37 oops::Log::trace() <<
"LinearGetValues::~LinearGetValues starting" << std::endl;
40 util::Timer timergv(
classname(),
"~GetValues");
45 util::Timer timervc(
classname(),
"~LinVarChaModel2GeoVaLs");
51 oops::Log::trace() <<
"LinearGetValues::~LinearGetValues done" << std::endl;
59 oops::Log::error() <<
"LinearGetValues.getLinVarCha: linear variable change not available " <<
60 "at time " << t1 << std::endl;
61 ABORT(
"LinearGetValues.getLinVarCha: linear variable change not available");
69 const util::DateTime & t2, ufo::GeoVaLs & geovals) {
70 oops::Log::trace() <<
"LinearGetValues::setTrajectory starting" << std::endl;
78 util::Timer timervc(
classname(),
"LinearVarChaModel2GeoVaLs");
81 eckit::LocalConfiguration dummyconfig(sep);
87 const util::DateTime * t1p = &t1;
88 const util::DateTime * t2p = &t2;
91 util::Timer timergv(
classname(),
"SetTrajectory");
94 locs_.toFortran(), geovals.toFortran());
96 oops::Log::trace() <<
"LinearGetValues::setTrajectory done" << std::endl;
102 const util::DateTime & t2, ufo::GeoVaLs & geovals)
const {
103 oops::Log::trace() <<
"LinearGetValues::fillGeovalsTL starting" << std::endl;
109 util::Timer timervc(
classname(),
"multiply");
111 linearmodel2geovals->
multiply(inc, incgeovalvars);
114 const util::DateTime * t1p = &t1;
115 const util::DateTime * t2p = &t2;
117 util::Timer timergv(
classname(),
"fillGeoVaLsTL");
120 locs_.toFortran(), geovals.toFortran());
122 oops::Log::trace() <<
"LinearGetValues::fillGeovalsTL done" << std::endl;
128 const util::DateTime & t2,
const ufo::GeoVaLs & geovals)
const {
129 oops::Log::trace() <<
"LinearGetValues::fillGeovalsAD starting" << std::endl;
134 const util::DateTime * t1p = &t1;
135 const util::DateTime * t2p = &t2;
137 util::Timer timergv(
classname(),
"fillGeoVaLsAD");
140 locs_.toFortran(), geovals.toFortran());
145 util::Timer timervc(
classname(),
"multiplyAD");
147 linearmodel2geovals->
multiplyAD(incgeovalvars, inc);
150 oops::Log::trace() <<
"LinearGetValues::fillGeovalsAD done" << std::endl;
156 os <<
" LinearGetValues for fv3-jedi" << std::endl;
void fillGeoVaLsTL(const Increment &inc, const util::DateTime &t1, const util::DateTime &t2, ufo::GeoVaLs &geovals) const
void multiplyAD(const Increment &, Increment &) const
void setTrajectory(const State &state, const util::DateTime &t1, const util::DateTime &t2, ufo::GeoVaLs &geovals)
void fv3jedi_lineargetvalues_fill_geovals_tl_f90(const F90lineargetvalues &, const F90geom &, const F90inc &, const util::DateTime **, const util::DateTime **, const F90locs &, const F90goms &)
LinearGetValues(const Geometry &, const ufo::Locations &)
void print(std::ostream &) const
std::shared_ptr< const Geometry > geom_
const LinVarChaModel2GeoVaLs * getLinVarCha(const util::DateTime &) const
void multiply(const Increment &, Increment &) const
static const std::string classname()
void fv3jedi_lineargetvalues_fill_geovals_ad_f90(const F90lineargetvalues &, const F90geom &, const F90inc &, const util::DateTime **, const util::DateTime **, const F90locs &, const F90goms &)
void fv3jedi_lineargetvalues_create_f90(F90lineargetvalues &, const F90geom &, const F90locs &)
const util::DateTime & validTime() const
const util::DateTime & validTime() const
Geometry handles geometry for FV3JEDI model.
void fv3jedi_lineargetvalues_set_trajectory_f90(const F90lineargetvalues &, const F90geom &, const F90state &, const util::DateTime **, const util::DateTime **, const F90locs &, const F90goms &)
void fv3jedi_lineargetvalues_delete_f90(F90lineargetvalues &)
std::map< util::DateTime, LinVarChaModel2GeoVaLs * >::const_iterator lvcIterCnst
F90lineargetvalues keyLinearGetValues_
std::unique_ptr< VarChaModel2GeoVaLs > model2geovals_
std::map< util::DateTime, LinVarChaModel2GeoVaLs * >::iterator lvcIter
Configuration files should be formatted as e.g.
virtual ~LinearGetValues()
void fillGeoVaLsAD(Increment &inc, const util::DateTime &t1, const util::DateTime &t2, const ufo::GeoVaLs &geovals) const
std::map< util::DateTime, LinVarChaModel2GeoVaLs * > linearmodel2geovals_