SOCA
StateFortran.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020-2021 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 SOCA_STATE_STATEFORTRAN_H_
9 #define SOCA_STATE_STATEFORTRAN_H_
10 
11 #include "soca/Fortran.h"
12 
13 #include "oops/base/Variables.h"
14 
15 // Forward declarations
16 namespace eckit {
17  class Configuration;
18 }
19 
20 namespace util {
21  class DateTime;
22 }
23 
24 namespace soca {
25 
26  extern "C" {
28  const oops::Variables &);
30  void soca_state_copy_f90(const F90flds &, const F90flds &);
32  void soca_state_axpy_f90(const F90flds &, const double &, const F90flds &);
33  void soca_state_add_incr_f90(const F90flds &, const F90flds &);
35  const eckit::Configuration * const &,
36  util::DateTime * const *);
38  const eckit::Configuration * const &,
39  const util::DateTime * const *);
41  const oops::Variables &,
42  const oops::Variables &);
44  const oops::Variables &,
45  const oops::Variables &);
46  void soca_state_logtrans_f90(const F90flds &, const oops::Variables &);
47  void soca_state_expontrans_f90(const F90flds &, const oops::Variables &);
48  void soca_state_gpnorm_f90(const F90flds &, const int &, double &);
49  void soca_state_sizes_f90(const F90flds &, int &,
50  int &, int &, int &);
51  void soca_state_rms_f90(const F90flds &, double &);
54  const F90geom &,
55  size_t &);
57  const F90geom &,
58  const size_t &,
59  double[]);
61  const F90geom &,
62  const size_t &,
63  const double[],
64  size_t &);
65  }
66 } // namespace soca
67 #endif // SOCA_STATE_STATEFORTRAN_H_
void soca_state_add_incr_f90(const F90flds &, const F90flds &)
void soca_state_sizes_f90(const F90flds &, int &, int &, int &, int &)
int F90geom
key type for soca_geom_mod::soca_geom
Definition: Fortran.h:14
void soca_state_create_f90(F90flds &, const F90geom &, const oops::Variables &)
void soca_state_rotate2grid_f90(const F90flds &, const oops::Variables &, const oops::Variables &)
void soca_state_gpnorm_f90(const F90flds &, const int &, double &)
void soca_state_deserialize_f90(const F90flds &, const F90geom &, const size_t &, const double[], size_t &)
void soca_state_write_file_f90(const F90flds &, const eckit::Configuration *const &, const util::DateTime *const *)
void soca_state_serial_size_f90(const F90flds &, const F90geom &, size_t &)
void soca_state_logtrans_f90(const F90flds &, const oops::Variables &)
void soca_state_axpy_f90(const F90flds &, const double &, const F90flds &)
void soca_state_expontrans_f90(const F90flds &, const oops::Variables &)
void soca_state_zero_f90(const F90flds &)
void soca_state_copy_f90(const F90flds &, const F90flds &)
void soca_state_delete_f90(F90flds &)
int F90flds
key type for soca_fields_mod::soca_fields
Definition: Fortran.h:26
void soca_state_change_resol_f90(const F90flds &, const F90flds &)
void soca_state_read_file_f90(const F90flds &, const eckit::Configuration *const &, util::DateTime *const *)
void soca_state_rms_f90(const F90flds &, double &)
void soca_state_rotate2north_f90(const F90flds &, const oops::Variables &, const oops::Variables &)
void soca_state_serialize_f90(const F90flds &, const F90geom &, const size_t &, double[])