Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PicoPhysics.hh
Go to the documentation of this file.
1/* Copyright (C) 2018 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
20namespace pism {
21
22class Config;
23
24namespace ocean {
25
26struct TocBox1 {
27 bool failed;
28 double value;
29};
30
32public:
33 PicoPhysics(const Config &config);
34
35 double pressure(double ice_thickness) const;
36 double T_star(double salinity, double temperature, double pressure) const;
37
38 TocBox1 Toc_box1(double area, double T_star, double Soc_box0, double Toc_box0) const;
39 double Soc_box1(double Toc_box0, double Soc_box0, double Toc) const;
40
41 double Toc(double box_area, double temperature, double T_star, double overturning, double salinity) const;
42
43 double Soc(double salinity, double temperature, double Toc) const;
44
45 double theta_pm(double salinity, double pressure) const;
46 double T_pm(double salinity, double pressure) const;
47
48 double melt_rate(double pm_point, double Toc) const;
49
50 double melt_rate_beckmann_goosse(double pot_pm_point, double Toc) const;
51
52 double overturning(double Soc_box0, double Soc, double Toc_box0, double Toc) const;
53
54 double gamma_T() const;
55 double overturning_coeff() const;
56 double T_dummy() const;
57 double S_dummy() const;
58 double ice_density() const;
59 double continental_shelf_depth() const;
60
61private:
62 double p_coeff(double g1, double s1) const;
63
66
68
69 double m_lambda;
70
71 // coefficients of the parameterization of the potential temperature
73
74 // coefficients of the parameterization of the in situ temperature
76
78};
79
80} // end of namespace ocean
81} // end of namespace pism
A class for storing and accessing PISM configuration flags and parameters.
double pressure(double ice_thickness) const
double overturning_coeff() const
double ice_density() const
TocBox1 Toc_box1(double area, double T_star, double Soc_box0, double Toc_box0) const
double Toc(double box_area, double temperature, double T_star, double overturning, double salinity) const
double continental_shelf_depth() const
double p_coeff(double g1, double s1) const
double melt_rate(double pm_point, double Toc) const
equation 8 in the PICO paper.
double overturning(double Soc_box0, double Soc, double Toc_box0, double Toc) const
equation 3 in the PICO paper. See also equation 4.
double theta_pm(double salinity, double pressure) const
double Soc_box1(double Toc_box0, double Soc_box0, double Toc) const
double T_pm(double salinity, double pressure) const
double melt_rate_beckmann_goosse(double pot_pm_point, double Toc) const
Beckmann & Goosse meltrate.
double T_star(double salinity, double temperature, double pressure) const
See equation A6 and lines before in PICO paper.
double Soc(double salinity, double temperature, double Toc) const
bool ocean(int M)
An ocean cell (floating ice or ice-free).
Definition Mask.hh:40