IODA Bundle
qg/model/GetValuesTLAD.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019-2020 UCAR
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #include<memory>
9 
10 #include "model/GetValuesTLAD.h"
11 
12 #include "oops/util/Logger.h"
13 
14 #include "model/GeometryQG.h"
15 #include "model/GomQG.h"
16 #include "model/IncrementQG.h"
17 #include "model/LocationsQG.h"
18 #include "model/StateQG.h"
19 
20 namespace qg {
21 
22 // -----------------------------------------------------------------------------
23 /// Constructor, destructor
24 // -----------------------------------------------------------------------------
26  const eckit::Configuration & linearGetValuesConf)
27  : locs_(locs)
28 {
29  oops::Log::trace() << "GetValuesTLAD create: linearGetValuesConf = " <<
30  linearGetValuesConf << std::endl;
31 }
32 // -----------------------------------------------------------------------------
33 void GetValuesTLAD::setTrajectory(const StateQG & state, const util::DateTime & t1,
34  const util::DateTime & t2, GomQG & geovals) {
36  t1, t2, geovals.toFortran());
37 }
38 // -----------------------------------------------------------------------------
39 /// Get increment values at observation locations
40 // -----------------------------------------------------------------------------
41 void GetValuesTLAD::fillGeoVaLsTL(const IncrementQG & inc, const util::DateTime & t1,
42  const util::DateTime & t2, GomQG & geovals) const {
44  t1, t2, geovals.toFortran());
45 }
46 // -----------------------------------------------------------------------------
47 void GetValuesTLAD::fillGeoVaLsAD(IncrementQG & inc, const util::DateTime & t1,
48  const util::DateTime & t2, const GomQG & geovals) const {
50  t1, t2, geovals.toFortran());
51 }
52 // -----------------------------------------------------------------------------
53 void GetValuesTLAD::print(std::ostream & os) const {
54  os << "QG GetValues TL/AD";
55 }
56 // -----------------------------------------------------------------------------
57 
58 } // namespace qg
const int & toFortran() const
Definition: FieldsQG.h:99
GeometryQG handles geometry for QG model.
Definition: GeometryQG.h:58
void fillGeoVaLsTL(const IncrementQG &inc, const util::DateTime &t1, const util::DateTime &t2, GomQG &geovals) const
fills in geovals for all observations in the timeframe (t1, t2],
void print(std::ostream &) const
Data.
GetValuesTLAD(const GeometryQG &, const LocationsQG &locs, const eckit::Configuration &)
saves all locations locs to use during filling GeoVaLs
void setTrajectory(const StateQG &state, const util::DateTime &t1, const util::DateTime &t2, GomQG &geovals)
fills in geovals for all observations in the timeframe (t1, t2],
void fillGeoVaLsAD(IncrementQG &inc, const util::DateTime &t1, const util::DateTime &t2, const GomQG &geovals) const
fills in inc as adjoint operator applied to geovals for all
GomQG class to handle local model values for QG model.
Definition: GomQG.h:35
const int & toFortran() const
Definition: GomQG.h:62
Increment Class: Difference between two states.
Definition: IncrementQG.h:64
FieldsQG & fields()
Access to fields.
Definition: IncrementQG.h:104
LocationsQG class to handle locations for QG model.
Definition: LocationsQG.h:36
QG model state.
Definition: StateQG.h:42
FieldsQG & fields()
Access to fields.
Definition: StateQG.h:69
The namespace for the qg model.
void qg_getvalues_interp_tl_f90(const LocationsQG &, const F90flds &, const util::DateTime &, const util::DateTime &, const F90gom &)
void qg_getvalues_interp_f90(const LocationsQG &, const F90flds &, const util::DateTime &, const util::DateTime &, const F90gom &)
void qg_getvalues_interp_ad_f90(const LocationsQG &, const F90flds &, const util::DateTime &, const util::DateTime &, const F90gom &)