UFO
src/ufo/utils/OperatorUtils.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 Met Office UK
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_UTILS_OPERATORUTILS_H_
9 #define UFO_UTILS_OPERATORUTILS_H_
10 
11 #include <vector>
12 
13 namespace eckit {
14 class Configuration;
15 }
16 
17 namespace oops {
18 class Variables;
19 }
20 
21 namespace ioda {
22 class ObsSpace;
23 }
24 
25 namespace ufo {
26  /// Fill the list of variables to be simulated by an obs operator.
27  ///
28  /// \param conf
29  /// Configuration of the obs operator.
30  /// \param simulatedVariables
31  /// List of all simulated variables in the obs space associated with the obs operator.
32  /// \param[out] operatorVariables
33  /// Set to the list of variables taken from the `variables` option in \p conf if this
34  /// option is present or to \p simulatedVariables if not.
35  /// \param[out] operatorVariableIndices
36  /// Indices of the elements of \p simulatedVariables corresponding to the variables in
37  /// \p operatorVariables.
38  void getOperatorVariables(const eckit::Configuration &conf,
39  const oops::Variables &simulatedVariables,
40  oops::Variables &operatorVariables,
41  std::vector<int> &operatorVariableIndices);
42 } // namespace ufo
43 
44 #endif // UFO_UTILS_OPERATORUTILS_H_
Forward declarations.
Definition: ObsAodExt.h:21
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27
void getOperatorVariables(const eckit::Configuration &conf, const oops::Variables &simulatedVariables, oops::Variables &operatorVariables, std::vector< int > &operatorVariableIndices)