FV3-JEDI
GetValues.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 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 #pragma once
9 
10 #include <fstream>
11 #include <memory>
12 #include <ostream>
13 #include <string>
14 #include <vector>
15 
16 #include "eckit/config/Configuration.h"
17 #include "eckit/exception/Exceptions.h"
18 
19 #include "oops/util/DateTime.h"
20 #include "oops/util/Logger.h"
21 #include "oops/util/ObjectCounter.h"
22 #include "oops/util/Printable.h"
23 #include "oops/util/Timer.h"
24 
25 #include "ufo/GeoVaLs.h"
26 #include "ufo/Locations.h"
27 
30 #include "fv3jedi/State/State.h"
32 
33 // -------------------------------------------------------------------------------------------------
34 
35 namespace eckit {
36  class Configuration;
37 }
38 
39 namespace ufo {
40  class GeoVaLs;
41  class Locations;
42 }
43 
44 namespace fv3jedi {
45  class State;
46  class Geometry;
47 
48 // -------------------------------------------------------------------------------------------------
49 
50 class GetValues : public util::Printable, private util::ObjectCounter<GetValues> {
51  public:
52  static const std::string classname() {return "fv3jedi::GetValues";}
53 
54  GetValues(const Geometry &, const ufo::Locations &);
55  virtual ~GetValues();
56 
57  void fillGeoVaLs(const State &, const util::DateTime &, const util::DateTime &,
58  ufo::GeoVaLs &) const;
59 
60  private:
61  void print(std::ostream &) const;
63  ufo::Locations locs_;
64  std::shared_ptr<const Geometry> geom_;
65  std::unique_ptr<VarChaModel2GeoVaLs> model2geovals_;
66 };
67 
68 // -------------------------------------------------------------------------------------------------
69 
70 } // namespace fv3jedi
fv3jedi::GetValues::GetValues
GetValues(const Geometry &, const ufo::Locations &)
Definition: GetValues.cc:14
fv3jedi::GetValues::locs_
ufo::Locations locs_
Definition: GetValues.h:63
fv3jedi::GetValues::fillGeoVaLs
void fillGeoVaLs(const State &, const util::DateTime &, const util::DateTime &, ufo::GeoVaLs &) const
Definition: GetValues.cc:44
Geometry.h
fv3jedi::GetValues::classname
static const std::string classname()
Definition: GetValues.h:52
ufo
Definition: GetValues.h:39
VarChaModel2GeoVaLs.h
GetValues.interface.h
fv3jedi::GetValues::~GetValues
virtual ~GetValues()
Definition: GetValues.cc:36
eckit
Definition: FieldsMetadata.h:25
fv3jedi::GetValues::keyGetValues_
F90getvalues keyGetValues_
Definition: GetValues.h:62
fv3jedi::GetValues::geom_
std::shared_ptr< const Geometry > geom_
Definition: GetValues.h:64
fv3jedi::Geometry
Geometry handles geometry for FV3JEDI model.
Definition: Geometry.h:41
fv3jedi::GetValues
Definition: GetValues.h:50
fv3jedi::State
Definition: State.h:45
fv3jedi::GetValues::print
void print(std::ostream &) const
Definition: GetValues.cc:71
fv3jedi
Configuration files should be formatted as e.g.
Definition: ErrorCovariance.cc:20
fv3jedi::F90getvalues
int F90getvalues
Definition: interface.h:46
State.h
fv3jedi::GetValues::model2geovals_
std::unique_ptr< VarChaModel2GeoVaLs > model2geovals_
Definition: GetValues.h:65