8 #ifndef SRC_INCREMENT_INCREMENTFV3JEDI_H_ 9 #define SRC_INCREMENT_INCREMENTFV3JEDI_H_ 14 #include <boost/scoped_ptr.hpp> 15 #include <boost/shared_ptr.hpp> 22 #include "oops/util/DateTime.h" 23 #include "oops/util/dot_product.h" 24 #include "oops/util/Duration.h" 25 #include "oops/util/ObjectCounter.h" 26 #include "oops/util/Printable.h" 42 class UnstructuredGrid;
46 class ModelBiasIncrementFV3JEDI;
47 class ErrorCovarianceFV3JEDI;
49 class GetValuesTrajFV3JEDI;
56 public util::Printable,
57 private util::ObjectCounter<IncrementFV3JEDI> {
59 static const std::string
classname() {
return "fv3jedi::IncrementFV3JEDI";}
63 const util::DateTime &);
72 void zero(
const util::DateTime &);
81 void dirac(
const eckit::Configuration &);
95 void read(
const eckit::Configuration &);
96 void write(
const eckit::Configuration &)
const;
118 void print(std::ostream &)
const;
120 boost::shared_ptr<const GeometryFV3JEDI>
geom_;
128 #endif // SRC_INCREMENT_INCREMENTFV3JEDI_H_ IncrementFV3JEDI(const GeometryFV3JEDI &, const oops::Variables &, const util::DateTime &)
Constructor, destructor.
util::DateTime & validTime()
void jnormgrad(const StateFV3JEDI &, const eckit::Configuration &)
void dirac(const eckit::Configuration &)
IncrementFV3JEDI & operator+=(const IncrementFV3JEDI &)
void accumul(const double &, const StateFV3JEDI &)
Other.
static const std::string classname()
virtual ~IncrementFV3JEDI()
void getValuesTL(const ioda::Locations &, const oops::Variables &, ufo::GeoVaLs &, const GetValuesTrajFV3JEDI &) const
Get increment values at observation locations.
void read(const eckit::Configuration &)
I/O and diagnostics.
IncrementFV3JEDI & operator=(const IncrementFV3JEDI &)
void field_from_ug(const oops::UnstructuredGrid &)
void schur_product_with(const IncrementFV3JEDI &)
void field_to_ug(oops::UnstructuredGrid &, const int &) const
The namespace for the main oops code.
GeoVaLs: geophysical values at locations.
const int & toFortran() const
void ug_coord(oops::UnstructuredGrid &, const int &) const
Unstructured grid.
boost::shared_ptr< const GeometryFV3JEDI > geometry() const
void print(std::ostream &) const
double dot_product_with(const IncrementFV3JEDI &) const
IncrementFV3JEDI & operator-=(const IncrementFV3JEDI &)
const util::DateTime & time() const
void axpy(const double &, const IncrementFV3JEDI &, const bool check=true)
Locations class to handle locations for IODA.
void write(const eckit::Configuration &) const
void getValuesAD(const ioda::Locations &, const oops::Variables &, const ufo::GeoVaLs &, const GetValuesTrajFV3JEDI &)
IncrementFV3JEDI & operator*=(const double &)
GeometryFV3JEDI handles geometry for FV3JEDI model.
Abstract base class for quantities.
boost::shared_ptr< const GeometryFV3JEDI > geom_
void updateTime(const util::Duration &dt)
void diff(const StateFV3JEDI &, const StateFV3JEDI &)
Basic operators.
const util::DateTime & validTime() const