FV3 Bundle
VarChaC2MFV3JEDI.cc
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 
9 
10 #include <ostream>
11 #include <string>
12 
13 #include "eckit/config/Configuration.h"
14 #include "GeometryFV3JEDI.h"
15 #include "IncrementFV3JEDI.h"
16 #include "StateFV3JEDI.h"
17 #include "oops/util/Logger.h"
19 
20 namespace fv3jedi {
21 // -----------------------------------------------------------------------------
23  const StateFV3JEDI & fg,
24  const GeometryFV3JEDI & resol,
25  const eckit::Configuration & conf):
26  geom_(new GeometryFV3JEDI(resol))
27 {
28  const eckit::Configuration * configc = &conf;
30  bg.toFortran(),
31  fg.toFortran(),
32  &configc);
33  oops::Log::trace() << "VarChaC2MFV3JEDI created" << std::endl;
34 }
35 // -----------------------------------------------------------------------------
38  oops::Log::trace() << "ChangeFV3JEDI destructed" << std::endl;
39 }
40 // -----------------------------------------------------------------------------
42  IncrementFV3JEDI & dxm) const {
44  dxa.toFortran(),
45  dxm.toFortran());
46 }
47 // -----------------------------------------------------------------------------
49  IncrementFV3JEDI & dxa) const {
51  dxm.toFortran(),
52  dxa.toFortran());
53 }
54 // -----------------------------------------------------------------------------
56  IncrementFV3JEDI & dxa) const {
58  dxm.toFortran(),
59  dxa.toFortran());
60 }
61 // -----------------------------------------------------------------------------
63  IncrementFV3JEDI & dxm) const {
65  geom_->toFortran(),
66  dxm.toFortran(),
67  dxa.toFortran());
68 }
69 // -----------------------------------------------------------------------------
70 void VarChaC2MFV3JEDI::print(std::ostream & os) const {
71  os << "FV3JEDI change variable";
72 }
73 // -----------------------------------------------------------------------------
74 } // namespace fv3jedi
75 
void fv3jedi_varcha_c2m_multiply_f90(const F90vcc2m &, const F90geom &, const F90inc &, const F90inc &)
void fv3jedi_varcha_c2m_multiplyinverse_f90(const F90vcc2m &, const F90geom &, const F90inc &, const F90inc &)
VarChaC2MFV3JEDI(const StateFV3JEDI &, const StateFV3JEDI &, const GeometryFV3JEDI &, const eckit::Configuration &)
void fv3jedi_varcha_c2m_setup_f90(const F90vcc2m &, const F90geom &, const F90state &, const F90state &, const eckit::Configuration *const *)
Definition: conf.py:1
void fv3jedi_varcha_c2m_multiplyinverseadjoint_f90(const F90vcc2m &, const F90geom &, const F90inc &, const F90inc &)
void multiplyInverse(const IncrementFV3JEDI &, IncrementFV3JEDI &) const
boost::shared_ptr< const GeometryFV3JEDI > geom_
void multiply(const IncrementFV3JEDI &, IncrementFV3JEDI &) const
Perform linear multiplications.
void fv3jedi_varcha_c2m_delete_f90(F90vcc2m &)
void print(std::ostream &) const override
void multiplyInverseAD(const IncrementFV3JEDI &, IncrementFV3JEDI &) const
void multiplyAD(const IncrementFV3JEDI &, IncrementFV3JEDI &) const
GeometryFV3JEDI handles geometry for FV3JEDI model.
void fv3jedi_varcha_c2m_multiplyadjoint_f90(const F90vcc2m &, const F90geom &, const F90inc &, const F90inc &)