FV3 Bundle
FortranBndGSI.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 UFO_ATMOSPHERE_GNSSRO_BNDGSI_FORTRANBNDGSI_H_
9 #define UFO_ATMOSPHERE_GNSSRO_BNDGSI_FORTRANBNDGSI_H_
10 
11 #include "ioda/ObsSpace.h"
12 #include "ufo/Fortran.h"
13 
14 namespace ufo {
15 
16 /// Interface to Fortran UFO routines
17 /*!
18  * The core of the UFO is coded in Fortran.
19  * Here we define the interfaces to the Fortran code.
20  */
21 
22 extern "C" {
23 // -----------------------------------------------------------------------------
24 // Gnssro observation operators-bending angle (GSI) and their tl/ad
25 // -----------------------------------------------------------------------------
26  void ufo_gnssro_bndgsi_setup_f90(F90hop &, const eckit::Configuration * const *);
28  void ufo_gnssro_bndgsi_simobs_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &,
29  const int &, double &, const F90obias &);
30  void ufo_gnssro_bndgsi_tlad_setup_f90(F90hop &, const eckit::Configuration * const *);
32  void ufo_gnssro_bndgsi_tlad_settraj_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &);
33  void ufo_gnssro_bndgsi_simobs_tl_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &,
34  const int &, double &);
35  void ufo_gnssro_bndgsi_simobs_ad_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &,
36  const int &, const double &);
37 // -----------------------------------------------------------------------------
38 
39 } // extern C
40 
41 } // namespace ufo
42 #endif // UFO_ATMOSPHERE_GNSSRO_BNDGSI_FORTRANBNDGSI_H_
void ufo_gnssro_bndgsi_tlad_delete_f90(F90hop &)
Wrapper around ObsHelpQG, mostly to hide the factory.
void ufo_gnssro_bndgsi_setup_f90(F90hop &, const eckit::Configuration *const *)
Interface to Fortran UFO routines.
void ufo_gnssro_bndgsi_tlad_settraj_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &)
void ufo_gnssro_bndgsi_simobs_tl_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &, const int &, double &)
void ufo_gnssro_bndgsi_simobs_ad_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &, const int &, const double &)
void ufo_gnssro_bndgsi_tlad_setup_f90(F90hop &, const eckit::Configuration *const *)
void ufo_gnssro_bndgsi_delete_f90(F90hop &)
void ufo_gnssro_bndgsi_simobs_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &, const int &, double &, const F90obias &)