8 #include "oops/util/abor1_cpp.h" 
   22   const ufo::Locations & locs, 
const eckit::Configuration & 
config)
 
   23   : locs_(locs), geom_(new 
GeometryMPAS(geom)), linearmodel2geovars_(),
 
   25   oops::Log::trace() << 
"LinearGetValues::LinearGetValues starting" 
   30   util::Timer timervc(
classname(), 
"VarChaModel2GeoVars");
 
   36   util::Timer timergv(
classname(), 
"LinearGetValues");
 
   42   oops::Log::trace() << 
"LinearGetValues::LinearGetValues done" << std::endl;
 
   48   oops::Log::trace() << 
"LinearGetValues::~LinearGetValues starting" 
   52   util::Timer timergv(
classname(), 
"~LinearGetValues");
 
   58   util::Timer timervc(
classname(), 
"~LinVarChaModel2GeoVars");
 
   65   oops::Log::trace() << 
"LinearGetValues::~LinearGetValues done" << std::endl;
 
   73     oops::Log::error() << 
"LinearGetValues::getLinVarCha: linear variable change not available " <<
 
   74                           "at time " << t1 << std::endl;
 
   75     ABORT(
"LinearGetValues::getLinVarCha: linear variable change not available");
 
   83   const util::DateTime & t1, 
const util::DateTime & t2,
 
   84   ufo::GeoVaLs & geovals) {
 
   85   oops::Log::trace() << 
"LinearGetValues::setTrajectory starting" << std::endl;
 
   93   util::Timer timervc(
classname(), 
"LinearVarChaModel2GeoVars");
 
   96   eckit::LocalConfiguration dummyconfig(sep);
 
  103   util::Timer timergv(
classname(), 
"SetTrajectory");
 
  107     t1, t2, 
locs_, geovals.toFortran());
 
  110   oops::Log::trace() << 
"LinearGetValues::setTrajectory done" << std::endl;
 
  116   const util::DateTime & t1, 
const util::DateTime & t2,
 
  117   ufo::GeoVaLs & geovals)
 const {
 
  118   oops::Log::trace() << 
"LinearGetValues::fillGeoVaLsTL starting" << std::endl;
 
  124   util::Timer timervc(
classname(), 
"multiply");
 
  126   linearmodel2geovars->
multiply(inc, incgeovars);
 
  130   util::Timer timergv(
classname(), 
"fillGeoVaLsTL");
 
  133     t1, t2, 
locs_, geovals.toFortran());
 
  136   oops::Log::trace() << 
"LinearGetValues::fillGeoVaLsTL done" << std::endl;
 
  142   const util::DateTime & t1, 
const util::DateTime & t2,
 
  143   const ufo::GeoVaLs & geovals)
 const {
 
  144   oops::Log::trace() << 
"LinearGetValues::fillGeoVaLsAD starting" << std::endl;
 
  150   util::Timer timergv(
classname(), 
"fillGeoVaLsAD");
 
  154     t1, t2, 
locs_, geovals.toFortran());
 
  159   util::Timer timervc(
classname(), 
"multiplyAD");
 
  161   linearmodel2geovars->
multiplyAD(incgeovars, inc);
 
  164   oops::Log::trace() << 
"LinearGetValues::fillGeoVaLsAD done" << std::endl;
 
  170   os << 
" LinearGetValues for mpas-jedi" << std::endl;
 
GeometryMPAS handles geometry for MPAS model.
 
Increment Class: Difference between two states.
 
const util::DateTime & validTime() const
 
void multiply(const IncrementMPAS &, IncrementMPAS &) const
 
void multiplyAD(const IncrementMPAS &, IncrementMPAS &) const
 
LinearGetValues(const GeometryMPAS &, const ufo::Locations &, const eckit::Configuration &)
 
std::map< util::DateTime, LinVarChaModel2GeoVars * >::const_iterator lvcIterCnst
 
std::unique_ptr< VarChaModel2GeoVars > model2geovars_
 
std::map< util::DateTime, LinVarChaModel2GeoVars * > linearmodel2geovars_
 
std::shared_ptr< const GeometryMPAS > geom_
 
virtual ~LinearGetValues()
 
static const std::string classname()
 
void setTrajectory(const StateMPAS &state, const util::DateTime &t1, const util::DateTime &t2, ufo::GeoVaLs &geovals)
 
F90lineargetvalues keyLinearGetValues_
 
std::map< util::DateTime, LinVarChaModel2GeoVars * >::iterator lvcIter
 
void fillGeoVaLsTL(const IncrementMPAS &inc, const util::DateTime &t1, const util::DateTime &t2, ufo::GeoVaLs &geovals) const
 
void print(std::ostream &) const
 
const LinVarChaModel2GeoVars * getLinVarCha(const util::DateTime &) const
 
void fillGeoVaLsAD(IncrementMPAS &inc, const util::DateTime &t1, const util::DateTime &t2, const ufo::GeoVaLs &geovals) const
 
const util::DateTime & validTime() const
 
void mpas_lineargetvalues_fill_geovals_tl_f90(const F90lineargetvalues &, const F90geom &, const F90inc &, const util::DateTime &, const util::DateTime &, const ufo::Locations &, const F90goms &)
 
void mpas_lineargetvalues_create_f90(F90lineargetvalues &, const F90geom &, const ufo::Locations &, const eckit::Configuration &)
 
void mpas_lineargetvalues_fill_geovals_ad_f90(const F90lineargetvalues &, const F90geom &, const F90inc &, const util::DateTime &, const util::DateTime &, const ufo::Locations &, const F90goms &)
 
void mpas_lineargetvalues_set_trajectory_f90(const F90lineargetvalues &, const F90geom &, const F90state &, const util::DateTime &, const util::DateTime &, const ufo::Locations &, const F90goms &)
 
void mpas_lineargetvalues_delete_f90(F90lineargetvalues &)