UFO
ObsRadianceRTTOV.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2017-2018 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 
9 
10 #include <algorithm>
11 #include <ostream>
12 #include <set>
13 #include <string>
14 #include <vector>
15 
16 #include "ioda/ObsVector.h"
17 
18 #include "oops/base/Variables.h"
19 #include "oops/util/IntSetParser.h"
20 
21 #include "ufo/GeoVaLs.h"
22 #include "ufo/ObsBias.h"
23 #include "ufo/ObsDiagnostics.h"
24 
25 namespace ufo {
26 
27 // -----------------------------------------------------------------------------
29 
30 // -----------------------------------------------------------------------------
31 
32 ObsRadianceRTTOV::ObsRadianceRTTOV(const ioda::ObsSpace & odb,
33  const eckit::Configuration & config)
34  : ObsOperatorBase(odb, config), keyOperRadianceRTTOV_(0),
35  odb_(odb), varin_()
36 {
37  // parse channels from the config and create variable names
38  const oops::Variables & observed = odb.obsvariables();
39  std::vector<int> channels_list = observed.channels();
40 
41  // call Fortran setup routine
43  channels_list.size(), channels_list[0], varin_);
44 
45  oops::Log::info() << "ObsRadianceRTTOV channels: " << channels_list << std::endl;
46  oops::Log::trace() << "ObsRadianceRTTOV created." << std::endl;
47 }
48 
49 // -----------------------------------------------------------------------------
50 
53  oops::Log::trace() << "ObsRadianceRTTOV destructed" << std::endl;
54 }
55 
56 // -----------------------------------------------------------------------------
57 
58 void ObsRadianceRTTOV::simulateObs(const GeoVaLs & gom, ioda::ObsVector & ovec,
59  ObsDiagnostics & dvec) const {
61  ovec.nvars(), ovec.nlocs(), ovec.toFortran(),
62  dvec.toFortran());
63  oops::Log::trace() << "ObsRadianceRTTOV simulateObs done." << std::endl;
64 }
65 
66 // -----------------------------------------------------------------------------
67 
68 void ObsRadianceRTTOV::print(std::ostream & os) const {
69  os << "ObsRadianceRTTOV::print not implemented";
70 }
71 
72 // -----------------------------------------------------------------------------
73 
74 } // namespace ufo
ObsBias.h
ufo::ObsRadianceRTTOV::print
void print(std::ostream &) const override
Definition: ObsRadianceRTTOV.cc:68
ufo
Definition: RunCRTM.h:27
ufo::ObsOperatorBase
Base class for observation operators.
Definition: ObsOperatorBase.h:37
ufo::GeoVaLs::toFortran
int & toFortran()
Definition: src/ufo/GeoVaLs.h:80
ufo::ufo_radiancerttov_simobs_f90
void ufo_radiancerttov_simobs_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &, const int &, const int &, double &, const F90goms &)
ufo::ObsRadianceRTTOV::ObsRadianceRTTOV
ObsRadianceRTTOV(const ioda::ObsSpace &, const eckit::Configuration &)
Definition: ObsRadianceRTTOV.cc:32
ufo::ObsRadianceRTTOV::~ObsRadianceRTTOV
virtual ~ObsRadianceRTTOV()
Definition: ObsRadianceRTTOV.cc:51
ufo::ObsDiagnostics::toFortran
int & toFortran()
Definition: src/ufo/ObsDiagnostics.h:46
ufo::ObsRadianceRTTOV::keyOperRadianceRTTOV_
F90hop keyOperRadianceRTTOV_
Definition: ObsRadianceRTTOV.h:56
ufo::ObsRadianceRTTOV::varin_
oops::Variables varin_
Definition: ObsRadianceRTTOV.h:58
ufo::ObsDiagnostics
Definition: src/ufo/ObsDiagnostics.h:35
ufo::makerRTTOV_
static ObsOperatorMaker< ObsRadianceRTTOV > makerRTTOV_("RTTOV")
ufo::ObsRadianceRTTOV::odb_
const ioda::ObsSpace & odb_
Definition: ObsRadianceRTTOV.h:57
ufo::ObsOperatorMaker
Definition: ObsOperatorBase.h:78
ObsRadianceRTTOV.h
ufo::ufo_radiancerttov_setup_f90
void ufo_radiancerttov_setup_f90(F90hop &, const eckit::Configuration &, const int &, const int &, oops::Variables &)
Interface to Fortran UFO routines.
ufo::GeoVaLs
GeoVaLs: geophysical values at locations.
Definition: src/ufo/GeoVaLs.h:39
ufo::ufo_radiancerttov_delete_f90
void ufo_radiancerttov_delete_f90(F90hop &)
ufo::ObsRadianceRTTOV::simulateObs
void simulateObs(const GeoVaLs &, ioda::ObsVector &, ObsDiagnostics &) const override
Obs Operator.
Definition: ObsRadianceRTTOV.cc:58