8 #ifndef OOPS_BASE_GETVALUETLADS_H_
9 #define OOPS_BASE_GETVALUETLADS_H_
18 #include "oops/util/DateTime.h"
19 #include "oops/util/Duration.h"
25 template <
typename MODEL,
typename OBS>
29 typedef std::shared_ptr<GetValueTLAD<MODEL, OBS>>
GetValPtr_;
32 GetValueTLADs(
const util::DateTime &,
const util::DateTime &);
55 template <
typename MODEL,
typename OBS>
59 Log::trace() <<
"GetValueTLADs::GetValueTLADs" << std::endl;
62 template <
typename MODEL,
typename OBS>
64 Log::trace() <<
"GetValuePosts::append start" << std::endl;
65 getvals_.push_back(getval);
66 Log::trace() <<
"GetValuePosts::append done" << std::endl;
69 template <
typename MODEL,
typename OBS>
71 const util::Duration & tstep) {
72 Log::trace() <<
"GetValueTLADs::doInitializeTraj start" << std::endl;
73 for (
GetValPtr_ getval : getvals_) getval->initializeTraj(tstep);
74 Log::trace() <<
"GetValueTLADs::doInitializeTraj done" << std::endl;
77 template <
typename MODEL,
typename OBS>
79 Log::trace() <<
"GetValueTLADs::doProcessingTraj start" << std::endl;
81 for (
GetValPtr_ getval : getvals_) getval->processTraj(xx);
82 Log::trace() <<
"GetValueTLADs::doProcessingTraj done" << std::endl;
85 template <
typename MODEL,
typename OBS>
87 const util::Duration & tstep) {
88 Log::trace() <<
"GetValueTLADs::doInitializeTL start" << std::endl;
89 for (
GetValPtr_ getval : getvals_) getval->initializeTL(tstep);
90 Log::trace() <<
"GetValueTLADs::doInitializeTL done" << std::endl;
93 template <
typename MODEL,
typename OBS>
95 Log::trace() <<
"GetValueTLADs::doProcessingTL start" << std::endl;
97 for (
GetValPtr_ getval : getvals_) getval->processTL(dx);
98 Log::trace() <<
"GetValueTLADs::doProcessingTL done" << std::endl;
101 template <
typename MODEL,
typename OBS>
103 const util::Duration & tstep) {
104 Log::trace() <<
"GetValueTLADs::doFirstAD start" << std::endl;
105 for (
GetValPtr_ getval : getvals_) getval->initializeAD(tstep);
106 Log::trace() <<
"GetValueTLADs::doFirstAD done" << std::endl;
109 template <
typename MODEL,
typename OBS>
111 Log::trace() <<
"GetValueTLADs::doProcessingAD start" << std::endl;
113 for (
GetValPtr_ getval : getvals_) getval->processAD(dx);
114 Log::trace() <<
"GetValueTLADs::doProcessingAD done" << std::endl;
Computes observation equivalent TL and AD to/from increments.
void doProcessingTL(const Increment_ &) override
std::vector< GetValPtr_ > getvals_
void doFirstAD(Increment_ &, const util::DateTime &, const util::Duration &) override
void doProcessingAD(Increment_ &) override
Increment< MODEL > Increment_
GetValueTLADs(const util::DateTime &, const util::DateTime &)
void doInitializeTraj(const State_ &, const util::DateTime &, const util::Duration &) override
void doFinalizeTL(const Increment_ &) override
void doInitializeTL(const Increment_ &, const util::DateTime &, const util::Duration &) override
std::shared_ptr< GetValueTLAD< MODEL, OBS > > GetValPtr_
void doLastAD(Increment_ &) override
void doFinalizeTraj(const State_ &) override
void doProcessingTraj(const State_ &) override
Increment class used in oops.
Handles post-processing of model fields related to cost function.
State class used in oops; subclass of interface class interface::State.
The namespace for the main oops code.