FV3-JEDI
ModelGEOS.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017 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 #ifndef FV3JEDI_MODEL_GEOS_MODELGEOS_H_
9 #define FV3JEDI_MODEL_GEOS_MODELGEOS_H_
10 
11 #include <ostream>
12 #include <string>
13 
14 #include "oops/base/ModelBase.h"
15 #include "oops/base/Variables.h"
16 #include "oops/util/Duration.h"
17 #include "oops/util/ObjectCounter.h"
18 #include "oops/util/Printable.h"
19 
23 
24 // Forward declarations
25 namespace eckit {
26  class Configuration;
27 }
28 
29 namespace fv3jedi {
30  class ModelBias;
31  class Increment;
32  class State;
33 
34 // -----------------------------------------------------------------------------
35 /// FV3JEDI model definition.
36 /*!
37  * FV3JEDI nonlinear model definition and configuration parameters.
38  */
39 
40 class ModelGEOS: public oops::ModelBase<Traits>,
41  private util::ObjectCounter<ModelGEOS> {
42  public:
43  static const std::string classname() {return "fv3jedi::ModelGEOS";}
44 
45  ModelGEOS(const Geometry &, const eckit::Configuration &);
46  ~ModelGEOS();
47 
48 /// Prepare model integration
49  void initialize(State &) const;
50 
51 /// Model integration
52  void step(State &, const ModelBias &) const;
53 
54 /// Finish model integration
55  void finalize(State &) const;
56 
57 /// Utilities
58  const util::Duration & timeResolution() const {return tstep_;}
59  const oops::Variables & variables() const {return vars_;}
60 
61  private:
62  void print(std::ostream &) const;
64  util::Duration tstep_;
65  const Geometry geom_;
66  const oops::Variables vars_;
67  char jedidir_[10000];
68  char geosscrdir_[10000];
69 };
70 // -----------------------------------------------------------------------------
71 
72 } // namespace fv3jedi
73 #endif // FV3JEDI_MODEL_GEOS_MODELGEOS_H_
fv3jedi::ModelGEOS::timeResolution
const util::Duration & timeResolution() const
Utilities.
Definition: ModelGEOS.h:58
Traits.h
fv3jedi::ModelGEOS::geom_
const Geometry geom_
Definition: ModelGEOS.h:65
fv3jedi::ModelGEOS::vars_
const oops::Variables vars_
Definition: ModelGEOS.h:66
fv3jedi::ModelGEOS::~ModelGEOS
~ModelGEOS()
Definition: ModelGEOS.cc:53
fv3jedi::ModelGEOS::step
void step(State &, const ModelBias &) const
Model integration.
Definition: ModelGEOS.cc:67
fv3jedi::ModelGEOS::tstep_
util::Duration tstep_
Definition: ModelGEOS.h:64
fv3jedi::ModelGEOS::jedidir_
char jedidir_[10000]
Definition: ModelGEOS.h:67
fv3jedi::F90model
int F90model
Definition: interface.h:28
fv3jedi::ModelGEOS::variables
const oops::Variables & variables() const
Definition: ModelGEOS.h:59
fv3jedi::ModelGEOS::geosscrdir_
char geosscrdir_[10000]
Definition: ModelGEOS.h:68
Geometry.h
fv3jedi::ModelGEOS::ModelGEOS
ModelGEOS(const Geometry &, const eckit::Configuration &)
Definition: ModelGEOS.cc:29
fv3jedi::ModelGEOS::initialize
void initialize(State &) const
Prepare model integration.
Definition: ModelGEOS.cc:60
fv3jedi::ModelBias
Model error for the FV3JEDI model.
Definition: ModelBias.h:41
ModelGEOS.interface.h
eckit
Definition: FieldsMetadata.h:25
fv3jedi::ModelGEOS
FV3JEDI model definition.
Definition: ModelGEOS.h:41
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::ModelGEOS::print
void print(std::ostream &) const
Definition: ModelGEOS.cc:84
fv3jedi::ModelGEOS::classname
static const std::string classname()
Definition: ModelGEOS.h:43
fv3jedi::State
Definition: State.h:45
fv3jedi::ModelGEOS::keyConfig_
F90model keyConfig_
Definition: ModelGEOS.h:63
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::ModelGEOS::finalize
void finalize(State &) const
Finish model integration.
Definition: ModelGEOS.cc:77