FV3-JEDI
ModelGEOS.cc
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 #include <unistd.h>
9 
10 #include <string>
11 #include <vector>
12 
13 #include "eckit/config/Configuration.h"
14 
15 #include "oops/util/abor1_cpp.h"
16 #include "oops/util/DateTime.h"
17 #include "oops/util/Logger.h"
18 
22 #include "fv3jedi/State/State.h"
24 
25 namespace fv3jedi {
26 // -----------------------------------------------------------------------------
27 static oops::ModelMaker<Traits, ModelGEOS> makermodel_("GEOS");
28 // -----------------------------------------------------------------------------
30  const eckit::Configuration & mconf)
31  : keyConfig_(0), tstep_(0), geom_(resol), vars_(mconf, "model variables")
32 {
33  oops::Log::trace() << "ModelGEOS::ModelGEOS" << std::endl;
34  tstep_ = util::Duration(mconf.getString("tstep"));
35  const eckit::Configuration * configc = &mconf;
36 
37  // JEDI to GEOS directory
38  getcwd(jedidir_, 10000);
39 
40  std::string sGEOSSCRDIR = mconf.getString("geos_run_directory");
41  strcpy(geosscrdir_, sGEOSSCRDIR.c_str());
42  chdir(geosscrdir_);
43 
44  // Create the model
46 
47  // GEOS to JEDI directory
48  chdir(jedidir_);
49 
50  oops::Log::trace() << "ModelGEOS created" << std::endl;
51 }
52 // -----------------------------------------------------------------------------
54  chdir(geosscrdir_);
56  chdir(jedidir_);
57  oops::Log::trace() << "ModelGEOS destructed" << std::endl;
58 }
59 // -----------------------------------------------------------------------------
60 void ModelGEOS::initialize(State & xx) const {
61  chdir(geosscrdir_);
63  chdir(jedidir_);
64  oops::Log::trace() << "ModelGEOS::initialize" << std::endl;
65 }
66 // -----------------------------------------------------------------------------
67 void ModelGEOS::step(State & xx, const ModelBias &) const {
68  oops::Log::trace() << "ModelGEOS::step starting" << xx.validTime() << std::endl;
69  xx.validTime() += tstep_;
70  util::DateTime * dtp = &xx.validTime();
71  chdir(geosscrdir_);
73  chdir(jedidir_);
74  oops::Log::trace() << "ModelGEOS::step done" << xx.validTime() << std::endl;
75 }
76 // -----------------------------------------------------------------------------
77 void ModelGEOS::finalize(State & xx) const {
78  chdir(geosscrdir_);
80  chdir(jedidir_);
81  oops::Log::trace() << "ModelGEOS::finalize" << std::endl;
82 }
83 // -----------------------------------------------------------------------------
84 void ModelGEOS::print(std::ostream & os) const {
85  os << "ModelGEOS::print not implemented";
86 }
87 // -----------------------------------------------------------------------------
88 } // namespace fv3jedi
fv3jedi::ModelGEOS::geom_
const Geometry geom_
Definition: ModelGEOS.h:65
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
Utilities.h
fv3jedi::fv3jedi_geos_delete_f90
void fv3jedi_geos_delete_f90(F90model &)
fv3jedi::ModelGEOS::jedidir_
char jedidir_[10000]
Definition: ModelGEOS.h:67
fv3jedi::Geometry::toFortran
F90geom & toFortran()
Definition: Geometry.h:53
fv3jedi::fv3jedi_geos_finalize_f90
void fv3jedi_geos_finalize_f90(const F90model &, const F90inc &)
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
fv3jedi::State::toFortran
int & toFortran()
Definition: State.h:87
fv3jedi::State::validTime
const util::DateTime & validTime() const
Definition: State.h:83
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
ModelBias.h
fv3jedi::ModelGEOS::print
void print(std::ostream &) const
Definition: ModelGEOS.cc:84
ModelGEOS.h
fv3jedi::State
Definition: State.h:45
fv3jedi::fv3jedi_geos_create_f90
void fv3jedi_geos_create_f90(const eckit::Configuration *const *, const F90geom &, F90model &)
fv3jedi::ModelGEOS::keyConfig_
F90model keyConfig_
Definition: ModelGEOS.h:63
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::fv3jedi_geos_step_f90
void fv3jedi_geos_step_f90(const F90model &, const F90state &, util::DateTime *const *)
fv3jedi::fv3jedi_geos_initialize_f90
void fv3jedi_geos_initialize_f90(const F90model &, const F90state &)
fv3jedi::ModelGEOS::finalize
void finalize(State &) const
Finish model integration.
Definition: ModelGEOS.cc:77
State.h
fv3jedi::makermodel_
static oops::ModelMaker< Traits, ModelFV3LM > makermodel_("FV3LM")