SOCA
IncrementFortran.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_INCREMENT_INCREMENTFORTRAN_H_
9 #define SOCA_INCREMENT_INCREMENTFORTRAN_H_
10 
11 #include "oops/base/Variables.h"
12 #include "soca/Fortran.h"
13 
14 // Forward declarations
15 namespace atlas {
16  namespace field {
17  class FieldSetImpl;
18  }
19 }
20 namespace eckit {
21  class Configuration;
22 }
23 
24 namespace util {
25  class DateTime;
26  class Duration;
27 }
28 
29 namespace soca {
30 
31  extern "C" {
33  const oops::Variables &);
35  void soca_increment_copy_f90(const F90flds &, const F90flds &);
40  void soca_increment_self_mul_f90(const F90flds &, const double &);
41  void soca_increment_accumul_f90(const F90flds &, const double &,
42  const F90flds &);
43  void soca_increment_axpy_f90(const F90flds &, const double &,
44  const F90flds &);
46  double &);
50  const eckit::Configuration * const &);
52  const F90flds &);
55  const eckit::Configuration * const &,
56  util::DateTime * const *);
58  const eckit::Configuration * const &,
59  const util::DateTime * const *);
61  const F90geom &,
62  const oops::Variables &,
63  atlas::field::FieldSetImpl *);
65  const F90geom &,
66  const oops::Variables &,
67  atlas::field::FieldSetImpl *);
69  const F90geom &,
70  const oops::Variables &,
71  atlas::field::FieldSetImpl *);
72  void soca_increment_gpnorm_f90(const F90flds &, const int &, double &);
73  void soca_increment_getpoint_f90(const F90flds &, const F90iter &, double &,
74  const int &);
75  void soca_increment_setpoint_f90(F90flds &, const F90iter &, const double &,
76  const int &);
77  void soca_increment_sizes_f90(const F90flds &, int &,
78  int &, int &, int &);
79  void soca_increment_rms_f90(const F90flds &, double &);
81  const F90geom &,
82  size_t &);
84  const F90geom &,
85  const size_t &,
86  double[]);
88  const F90geom &,
89  const size_t &,
90  const double[],
91  size_t &);
92  }
93 } // namespace soca
94 #endif // SOCA_INCREMENT_INCREMENTFORTRAN_H_
Definition: Geometry.h:31
void soca_increment_setpoint_f90(F90flds &, const F90iter &, const double &, const int &)
void soca_increment_sizes_f90(const F90flds &, int &, int &, int &, int &)
int F90geom
key type for soca_geom_mod::soca_geom
Definition: Fortran.h:14
void soca_increment_serialize_f90(const F90flds &, const F90geom &, const size_t &, double[])
void soca_increment_self_mul_f90(const F90flds &, const double &)
void soca_increment_getpoint_f90(const F90flds &, const F90iter &, double &, const int &)
void soca_increment_dot_prod_f90(const F90flds &, const F90flds &, double &)
void soca_increment_copy_f90(const F90flds &, const F90flds &)
void soca_increment_change_resol_f90(const F90flds &, const F90flds &)
void soca_increment_to_atlas_f90(const F90flds &, const F90geom &, const oops::Variables &, atlas::field::FieldSetImpl *)
void soca_increment_gpnorm_f90(const F90flds &, const int &, double &)
void soca_increment_write_file_f90(const F90flds &, const eckit::Configuration *const &, const util::DateTime *const *)
void soca_increment_axpy_f90(const F90flds &, const double &, const F90flds &)
void soca_increment_delete_f90(F90flds &)
void soca_increment_deserialize_f90(const F90flds &, const F90geom &, const size_t &, const double[], size_t &)
void soca_increment_set_atlas_f90(const F90flds &, const F90geom &, const oops::Variables &, atlas::field::FieldSetImpl *)
int F90iter
key type for soca_geom_iter_mod::soca_geom_iter
Definition: Fortran.h:17
void soca_increment_from_atlas_f90(const F90flds &, const F90geom &, const oops::Variables &, atlas::field::FieldSetImpl *)
void soca_increment_random_f90(const F90flds &)
void soca_increment_rms_f90(const F90flds &, double &)
void soca_increment_accumul_f90(const F90flds &, const double &, const F90flds &)
void soca_increment_self_add_f90(const F90flds &, const F90flds &)
void soca_increment_self_schur_f90(const F90flds &, const F90flds &)
void soca_increment_serial_size_f90(const F90flds &, const F90geom &, size_t &)
void soca_increment_self_sub_f90(const F90flds &, const F90flds &)
int F90flds
key type for soca_fields_mod::soca_fields
Definition: Fortran.h:26
void soca_increment_diff_incr_f90(const F90flds &, const F90flds &, const F90flds &)
void soca_increment_create_f90(F90flds &, const F90geom &, const oops::Variables &)
void soca_increment_ones_f90(const F90flds &)
void soca_increment_zero_f90(const F90flds &)
void soca_increment_read_file_f90(const F90flds &, const eckit::Configuration *const &, util::DateTime *const *)
void soca_increment_dirac_f90(const F90flds &, const eckit::Configuration *const &)