PISM, A Parallel Ice Sheet Model
stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
src
coupler
surface
Formulas.hh
Go to the documentation of this file.
1
/* Copyright (C) 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2023 PISM Authors
2
*
3
* This file is part of PISM.
4
*
5
* PISM is free software; you can redistribute it and/or modify it under the
6
* terms of the GNU General Public License as published by the Free Software
7
* Foundation; either version 3 of the License, or (at your option) any later
8
* version.
9
*
10
* PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13
* details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with PISM; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
#ifndef _PSFORMULAS_H_
21
#define _PSFORMULAS_H_
22
23
#include "pism/coupler/SurfaceModel.hh"
24
25
namespace
pism
{
26
namespace
surface {
27
28
/** Base class for surface models that compute climate inputs using
29
* formulas.
30
*
31
* Used by EISMINTII and Verification.
32
*/
33
class
PSFormulas
:
public
SurfaceModel
{
34
public
:
35
PSFormulas
(std::shared_ptr<const Grid>
g
);
36
~PSFormulas
() =
default
;
37
protected
:
38
39
virtual
void
define_model_state_impl
(
const
File
&output)
const
;
40
virtual
void
write_model_state_impl
(
const
File
&output)
const
;
41
42
const
array::Scalar
&
mass_flux_impl
()
const
;
43
const
array::Scalar
&
temperature_impl
()
const
;
44
45
const
array::Scalar
&
accumulation_impl
()
const
;
46
const
array::Scalar
&
melt_impl
()
const
;
47
const
array::Scalar
&
runoff_impl
()
const
;
48
49
std::shared_ptr<array::Scalar>
m_mass_flux
;
50
std::shared_ptr<array::Scalar>
m_temperature
;
51
};
52
53
54
}
// end of namespace surface
55
}
// end of namespace pism
56
57
#endif
/* _PSFORMULAS_H_ */
pism::File
High-level PISM I/O class.
Definition:
File.hh:56
pism::array::Scalar
Definition:
Scalar.hh:31
pism::surface::PSFormulas::m_temperature
std::shared_ptr< array::Scalar > m_temperature
Definition:
Formulas.hh:50
pism::surface::PSFormulas::write_model_state_impl
virtual void write_model_state_impl(const File &output) const
The default (empty implementation).
Definition:
Formulas.cc:64
pism::surface::PSFormulas::mass_flux_impl
const array::Scalar & mass_flux_impl() const
Definition:
Formulas.cc:37
pism::surface::PSFormulas::temperature_impl
const array::Scalar & temperature_impl() const
Definition:
Formulas.cc:41
pism::surface::PSFormulas::PSFormulas
PSFormulas(std::shared_ptr< const Grid > g)
Definition:
Formulas.cc:27
pism::surface::PSFormulas::melt_impl
const array::Scalar & melt_impl() const
Definition:
Formulas.cc:49
pism::surface::PSFormulas::define_model_state_impl
virtual void define_model_state_impl(const File &output) const
The default (empty implementation).
Definition:
Formulas.cc:57
pism::surface::PSFormulas::runoff_impl
const array::Scalar & runoff_impl() const
Definition:
Formulas.cc:53
pism::surface::PSFormulas::accumulation_impl
const array::Scalar & accumulation_impl() const
Definition:
Formulas.cc:45
pism::surface::PSFormulas::~PSFormulas
~PSFormulas()=default
pism::surface::PSFormulas::m_mass_flux
std::shared_ptr< array::Scalar > m_mass_flux
Definition:
Formulas.hh:49
pism::surface::PSFormulas
Definition:
Formulas.hh:33
pism::surface::SurfaceModel
The interface of PISM's surface models.
Definition:
SurfaceModel.hh:42
pism::g
static const double g
Definition:
exactTestP.cc:36
pism
Definition:
AgeColumnSystem.cc:23
Generated by
1.9.1