Go to the documentation of this file.
10 #include "eckit/config/LocalConfiguration.h"
12 #include "oops/util/abor1_cpp.h"
13 #include "oops/util/DateTime.h"
14 #include "oops/util/Logger.h"
28 static oops::LinearModelMaker<Traits, Tlm>
makerTLM_(
"FV3JEDITLM");
30 Tlm::Tlm(
const Geometry & resol,
const eckit::Configuration & tlConf) : keySelf_(0), tstep_(),
31 trajmap_(), linvars_(tlConf,
"tlm variables")
33 oops::Log::trace() <<
"Tlm::Tlm starting" << std::endl;
36 tstep_ = util::Duration(tlConf.getString(
"tstep"));
39 const eckit::Configuration * configc = &tlConf;
46 oops::Log::trace() <<
"Tlm::Tlm done" << std::endl;
50 oops::Log::trace() <<
"Tlm::~Tlm starting" << std::endl;
59 oops::Log::trace() <<
"Tlm::~Tlm done" << std::endl;
63 oops::Log::trace() <<
"Tlm::setTrajectory starting" << std::endl;
74 oops::Log::trace() <<
"Tlm::setTrajectory done" << std::endl;
78 oops::Log::trace() <<
"Tlm::initializeTL starting" << std::endl;
83 oops::Log::trace() <<
"Tlm::initializeTL done" << std::endl;
87 oops::Log::trace() <<
"Tlm::stepTL starting" << std::endl;
94 oops::Log::error() <<
"Tlm: trajectory not available at time " << dx.
validTime() << std::endl;
95 ABORT(
"Tlm: trajectory not available");
104 oops::Log::trace() <<
"Tlm::stepTL done" << std::endl;
108 oops::Log::trace() <<
"Tlm::finalizeTL starting" << std::endl;
113 oops::Log::trace() <<
"Tlm::finalizeTL done" << std::endl;
117 oops::Log::trace() <<
"Tlm::initializeAD starting" << std::endl;
122 oops::Log::trace() <<
"Tlm::initializeAD done" << std::endl;
126 oops::Log::trace() <<
"Tlm::stepAD starting" << std::endl;
136 oops::Log::error() <<
"Tlm: trajectory not available at time " << dx.
validTime() << std::endl;
137 ABORT(
"Tlm: trajectory not available");
143 oops::Log::trace() <<
"Tlm::stepAD done" << std::endl;
147 oops::Log::trace() <<
"Tlm::finalizeAD starting" << std::endl;
152 oops::Log::trace() <<
"Tlm::finalizeAD done" << std::endl;
156 oops::Log::trace() <<
"Tlm::print starting" << std::endl;
159 os <<
"FV3JEDI TLM Trajectory, nstep=" <<
trajmap_.size() << std::endl;
160 typedef std::map< util::DateTime, int >::const_iterator
trajICst;
162 os <<
"FV3JEDI TLM Trajectory: times are:";
164 os <<
" " << jtra->first;
168 oops::Log::trace() <<
"Tlm::print done" << std::endl;
void finalizeAD(Increment &) const override
void setTrajectory(const State &, State &, const ModelBias &) override
void fv3jedi_traj_set_f90(F90traj &, const F90state &)
const eckit::mpi::Comm & getComm() const
void stepAD(Increment &, ModelBiasIncrement &) const override
void fv3jedi_tlm_create_f90(F90tlm &, const F90geom &, const eckit::Configuration *const *)
void finalizeTL(Increment &) const override
static oops::LinearModelMaker< Traits, Tlm > makerTLM_("FV3JEDITLM")
Tlm(const Geometry &, const eckit::Configuration &)
void fv3jedi_tlm_delete_f90(F90tlm &)
void print(std::ostream &) const override
void fv3jedi_tlm_initialize_ad_f90(const F90tlm &, const F90inc &)
void fv3jedi_tlm_step_tl_f90(const F90tlm &, const F90inc &, const F90traj &)
std::map< util::DateTime, int >::iterator trajIter
void changeResolution(const State &xx)
void fv3jedi_tlm_finalize_ad_f90(const F90tlm &, const F90inc &)
void initializeAD(Increment &) const override
Model error for the FV3JEDI model.
void fv3jedi_tlm_finalize_tl_f90(const F90tlm &, const F90inc &)
const util::DateTime & validTime() const
void fv3jedi_tlm_initialize_tl_f90(const F90tlm &, const F90inc &)
void fv3jedi_tlm_step_ad_f90(const F90tlm &, const F90inc &, const F90traj &)
const util::DateTime & validTime() const
Geometry handles geometry for FV3JEDI model.
void stepTL(Increment &, const ModelBiasIncrement &) const override
std::map< util::DateTime, F90traj > trajmap_
void stageFv3Files(const eckit::Configuration &conf, const eckit::mpi::Comm &comm)
void fv3jedi_traj_wipe_f90(F90traj &)
void initializeTL(Increment &) const override
Configuration files should be formatted as e.g.
void removeFv3Files(const eckit::mpi::Comm &comm)
std::map< util::DateTime, int >::const_iterator trajICst