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" 32 const eckit::Configuration & tlConf)
33 : keyConfig_(0), tstep_(), resol_(resol), traj_(),
34 lrmodel_(resol_,
eckit::LocalConfiguration(tlConf,
"trajectory")),
35 linvars_(
std::vector<
std::string>{
"ua",
"va",
"t",
"ps",
36 "q",
"qi",
"ql",
"o3"})
38 tstep_ = util::Duration(tlConf.getString(
"tstep"));
40 const eckit::Configuration * configc = &tlConf;
44 oops::Log::trace() <<
"TlmFV3JEDI created" << std::endl;
52 oops::Log::trace() <<
"TlmFV3JEDI destructed" << std::endl;
63 std::vector<double> zstat(15);
67 for (
unsigned int jj = 0; jj < 5; ++jj) {
69 <<
", RMS=" << zstat[3*jj+2] << std::endl;
82 if (itra ==
traj_.end()) {
85 ABORT(
"TlmFV3JEDI: trajectory not available");
107 if (itra ==
traj_.end()) {
110 ABORT(
"TlmFV3JEDI: trajectory not available");
123 os <<
"FV3JEDI TLM Trajectory, nstep=" <<
traj_.size() << std::endl;
124 typedef std::map< util::DateTime, int >::const_iterator
trajICst;
125 if (
traj_.size() > 0) {
126 os <<
"FV3JEDI TLM Trajectory: times are:";
128 os <<
" " << jtra->first;
void fv3jedi_tlm_delete_f90(F90tlm &)
void stepTL(IncrementFV3JEDI &, const ModelBiasIncrementFV3JEDI &) const override
void stageFv3Files(const eckit::Configuration &conf)
void initializeAD(IncrementFV3JEDI &) const override
TlmFV3JEDI(const GeometryFV3JEDI &, const eckit::Configuration &)
subroutine std(a, mean, stdv, area)
void print(std::ostream &) const override
const ModelFV3JEDI lrmodel_
std::map< util::DateTime, int >::iterator trajIter
Model error for the FV3JEDI model.
void fv3jedi_tlm_initialize_tl_f90(const F90geom &, const F90tlm &, const F90inc &)
void changeResolution(const StateFV3JEDI &xx)
Interpolate full state.
void initializeTL(IncrementFV3JEDI &) const override
Run TLM and its adjoint.
void fv3jedi_tlm_create_f90(const eckit::Configuration *const *, const F90geom &, F90tlm &)
void fv3jedi_tlm_step_tl_f90(const F90geom &, const F90tlm &, const F90inc &, const F90traj &)
void fv3jedi_tlm_step_ad_f90(const F90geom &, const F90tlm &, const F90inc &, const F90traj &)
static oops::LinearModelMaker< FV3JEDITraits, TlmFV3JEDI > makerFV3JEDITLM_("FV3JEDITLM")
void stepAD(IncrementFV3JEDI &, ModelBiasIncrementFV3JEDI &) const override
const util::DateTime & validTime() const
void fv3jedi_tlm_initialize_ad_f90(const F90geom &, const F90tlm &, const F90inc &)
std::map< util::DateTime, F90traj > traj_
std::map< util::DateTime, int >::const_iterator trajICst
const GeometryFV3JEDI resol_
void finalizeAD(IncrementFV3JEDI &) const override
int saveTrajectory(StateFV3JEDI &, const ModelBiasFV3JEDI &) const
GeometryFV3JEDI handles geometry for FV3JEDI model.
void finalizeTL(IncrementFV3JEDI &) const override
void fv3jedi_tlm_finalize_ad_f90(const F90geom &, const F90tlm &, const F90inc &)
void fv3jedi_traj_wipe_f90(F90traj &)
void setTrajectory(const StateFV3JEDI &, StateFV3JEDI &, const ModelBiasFV3JEDI &) override
Model trajectory computation.
void fv3jedi_tlm_finalize_tl_f90(const F90geom &, const F90tlm &, const F90inc &)
const util::DateTime & validTime() const