PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
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 
20 namespace pism {
21 
22 class Config;
23 
24 namespace ocean {
25 
26 struct TocBox1 {
27  bool failed;
28  double value;
29 };
30 
31 class PicoPhysics {
32 public:
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 
61 private:
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 
77  double m_meltFactor;
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
Definition: PicoPhysics.cc:90
double overturning_coeff() const
Definition: PicoPhysics.cc:195
double ice_density() const
Definition: PicoPhysics.cc:207
double S_dummy() const
Definition: PicoPhysics.cc:203
TocBox1 Toc_box1(double area, double T_star, double Soc_box0, double Toc_box0) const
Definition: PicoPhysics.cc:95
double Toc(double box_area, double temperature, double T_star, double overturning, double salinity) const
Definition: PicoPhysics.cc:120
double gamma_T() const
Definition: PicoPhysics.cc:191
double continental_shelf_depth() const
Definition: PicoPhysics.cc:211
double p_coeff(double g1, double s1) const
Definition: PicoPhysics.cc:183
double melt_rate(double pm_point, double Toc) const
equation 8 in the PICO paper.
Definition: PicoPhysics.cc:155
double overturning(double Soc_box0, double Soc, double Toc_box0, double Toc) const
equation 3 in the PICO paper. See also equation 4.
Definition: PicoPhysics.cc:169
double theta_pm(double salinity, double pressure) const
Definition: PicoPhysics.cc:142
double Soc_box1(double Toc_box0, double Soc_box0, double Toc) const
Definition: PicoPhysics.cc:129
double T_pm(double salinity, double pressure) const
Definition: PicoPhysics.cc:149
double melt_rate_beckmann_goosse(double pot_pm_point, double Toc) const
Beckmann & Goosse meltrate.
Definition: PicoPhysics.cc:161
double T_star(double salinity, double temperature, double pressure) const
See equation A6 and lines before in PICO paper.
Definition: PicoPhysics.cc:175
PicoPhysics(const Config &config)
Definition: PicoPhysics.cc:30
double T_dummy() const
Definition: PicoPhysics.cc:199
double Soc(double salinity, double temperature, double Toc) const
Definition: PicoPhysics.cc:134
bool ocean(int M)
An ocean cell (floating ice or ice-free).
Definition: Mask.hh:40