8 #ifndef SOCA_STATE_STATE_H_
9 #define SOCA_STATE_STATE_H_
18 #include "oops/base/Variables.h"
19 #include "oops/util/DateTime.h"
20 #include "oops/util/ObjectCounter.h"
21 #include "oops/util/Printable.h"
22 #include "oops/util/Serializable.h"
46 class State :
public util::Printable,
47 public util::Serializable,
48 private util::ObjectCounter<State> {
50 static const std::string
classname() {
return "soca::State";}
54 const util::DateTime &);
65 void rotate2north(
const oops::Variables &,
const oops::Variables &)
const;
66 void rotate2grid(
const oops::Variables &,
const oops::Variables &)
const;
69 void logtrans(
const oops::Variables &)
const;
70 void expontrans(
const oops::Variables &)
const;
76 void read(
const eckit::Configuration &);
77 void write(
const eckit::Configuration &)
const;
84 void serialize(std::vector<double> &)
const override;
85 void deserialize(
const std::vector<double> &,
size_t &)
override;
90 std::shared_ptr<const Geometry>
geometry()
const;
98 void print(std::ostream &)
const override;
102 std::shared_ptr<const Geometry>
geom_;
Geometry handles geometry for SOCA model.
Increment Class: Difference between two states.
std::shared_ptr< const Geometry > geometry() const
void serialize(std::vector< double > &) const override
const int & toFortran() const
void updateTime(const util::Duration &dt)
Needed by PseudoModel.
void rotate2grid(const oops::Variables &, const oops::Variables &) const
void accumul(const double &, const State &)
const util::DateTime & validTime() const
void deserialize(const std::vector< double > &, size_t &) override
State & operator+=(const Increment &)
Interactions with Increment.
static const std::string classname()
void write(const eckit::Configuration &) const
State(const Geometry &, const oops::Variables &, const util::DateTime &)
Constructor, destructor.
void expontrans(const oops::Variables &) const
void print(std::ostream &) const override
size_t serialSize() const override
Serialize and deserialize.
void rotate2north(const oops::Variables &, const oops::Variables &) const
Rotations.
void logtrans(const oops::Variables &) const
Logarithmic and exponential transformations.
const oops::Variables & variables() const
std::shared_ptr< const Geometry > geom_
void read(const eckit::Configuration &)
I/O and diagnostics.
State & operator=(const State &)
Basic operators.
int F90flds
key type for soca_fields_mod::soca_fields