UFO
ObsAtmSfcInterp.interface.h
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 
8 #ifndef UFO_ATMSFCINTERP_OBSATMSFCINTERP_INTERFACE_H_
9 #define UFO_ATMSFCINTERP_OBSATMSFCINTERP_INTERFACE_H_
10 
11 #include "ioda/ObsSpace.h"
12 
13 #include "ufo/Fortran.h"
14 
15 namespace ufo {
16 
17 /// Interface to Fortran UFO atmsfcinterp routines
18 
19 extern "C" {
20 
21 // -----------------------------------------------------------------------------
22 
23 // -----------------------------------------------------------------------------
24 // AtmSfcInterp observation operator
25 // -----------------------------------------------------------------------------
26 
27  /// \param operatorVars
28  /// Variables to be simulated by this operator.
29  /// \param operatorVarIndices
30  /// Indices of the variables from \p operatorVar in the list of all simulated
31  /// variables in the ObsSpace.
32  /// \param numOperatorVarIndices
33  /// Size of the \p operatorVarIndices array (must be the same as the number of variables in
34  /// \p operatorVars).
35  /// \param[out] requiredVars
36  /// GeoVaLs required for the simulation of the variables \p operatorVars.
37  ///
38  /// Example: if the list of simulated variables in the ObsSpace is
39  /// [air_temperature, northward_wind, eastward_wind] and \p operatorVars is
40  /// [northward_wind, eastward_wind], then \p operatorVarIndices should be set to [1, 2].
41 
42  void ufo_atmsfcinterp_setup_f90(F90hop &, const eckit::Configuration &,
43  const oops::Variables &operatorVars,
44  const int *operatorVarIndices, const int numOperatorVarIndices,
45  oops::Variables &requiredVars);
47  void ufo_atmsfcinterp_simobs_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &,
48  const int &, const int &, double &);
49 
50 // -----------------------------------------------------------------------------
51 
52 } // extern C
53 
54 } // namespace ufo
55 #endif // UFO_ATMSFCINTERP_OBSATMSFCINTERP_INTERFACE_H_
Definition: RunCRTM.h:27
void ufo_atmsfcinterp_delete_f90(F90hop &)
int F90goms
Definition: Fortran.h:16
void ufo_atmsfcinterp_simobs_f90(const F90hop &, const F90goms &, const ioda::ObsSpace &, const int &, const int &, double &)
void ufo_atmsfcinterp_setup_f90(F90hop &, const eckit::Configuration &, const oops::Variables &operatorVars, const int *operatorVarIndices, const int numOperatorVarIndices, oops::Variables &requiredVars)
Interface to Fortran UFO atmsfcinterp routines.
int F90hop
Definition: Fortran.h:18