SNOWPACK  20230213.7108bd0
Constants.h
Go to the documentation of this file.
1 /*
2  * SNOWPACK stand-alone
3  *
4  * Copyright WSL Institute for Snow and Avalanche Research SLF, DAVOS, SWITZERLAND
5 */
6 /* This file is part of Snowpack.
7  Snowpack is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Snowpack is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Snowpack. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
27 #ifndef CONSTANTS_H
28 #define CONSTANTS_H
29 
30 #include <cstddef> //needed for size_t
31 
36 #ifndef SN_VERSION
37  //here below, the double-expansion stringification macro trick...
38  #define STR1(x) #x
39  #define STR2(x) STR1(x)
40  #define SN_VERSION STR2( _VERSION )
41 #endif
42 
44 #define INIT_STABILITY 999.
45 
46 namespace Constants {
47  const double undefined = -999.;
48  const int iundefined = -999;
49  const size_t stundefined = static_cast<size_t>(-999);
50  const double min_percent_values = 0.9;
51 
52  const double pi = 3.14159265358979323846;
53  const double g = 9.80665;
54  const double stefan_boltzmann = 5.67051e-8;
55 
56  const double solcon = 1366.1;
57 
58  const double gas_constant = 461.9;
59  const double gas_constant_air = 287.0;
60  const double gas_constant_mol = 8.31;
61  const double karman = 0.4;
62 
64 
65  const double min_albedo = 0.3;
66  const double max_albedo = 0.9;
67  const double glacier_albedo = 0.3;
69 
71  const double emissivity_snow = 0.98;
72  const double emissivity_soil = 0.95;
73 
75 
77  const double density_air = 1.1;
78  const double density_ice = 917.0;
79  const double density_water = 1000.0;
80  const double density_vapor = 1.0;
81 
83 
84  const double specific_heat_ice = 2100.0;
85  const double specific_heat_water = 4190.0;
86  const double specific_heat_air = 1004.67;
88 
90 
91  const double conductivity_ice = 2.2;
92  const double conductivity_water = 0.598;
93  const double conductivity_air = 0.026;
95 
97 
98  const double diffusion_coefficient_in_air = 22.0e-6;
100  const double diffusion_coefficient_in_snow = 85.0e-6;
102 
104 
105  const double meltfreeze_tk = 273.15;
106  const double triple_point_t = 273.16;
107  const double triple_point_p = 611.73;
108  const double lh_sublimation = 2.838e6;
109  const double lh_vaporization = 2.504e6;
110  const double lh_fusion = 3.34e5;
112 
114 
115  const double min_slope_angle = 3.;
116 
118  const double eps = 1.e-6;
119  const double eps2 = eps*eps;
120  const double big = 1.0e200;
122 }
123 
124 #endif
Definition: Constants.h:46
const double density_air
Approximation: use ideal gas law.
Definition: Constants.h:77
const double density_ice
At T = 0 degC.
Definition: Constants.h:78
const size_t stundefined
Definition: Constants.h:49
const double pi
Definition: Constants.h:52
const double min_slope_angle
Smallest angle a flat field may show (deg)
Definition: Constants.h:115
const double conductivity_ice
(W m-1 K-1)
Definition: Constants.h:91
const double conductivity_water
(W m-1 K-1)
Definition: Constants.h:92
const int iundefined
This is the snowpack undefined value.
Definition: Constants.h:48
const double triple_point_p
(Pa)
Definition: Constants.h:107
const double stefan_boltzmann
Definition: Constants.h:54
const double specific_heat_air
see Stull "Meteorology for scientists and engineers" p44
Definition: Constants.h:86
const double emissivity_soil
Definition: Constants.h:72
const double eps
Small numbers for comparisons and to avoid divisions by zero.
Definition: Constants.h:118
const double diffusion_coefficient_in_air
This value was taken from: Colbeck, S.C., 1993. The vapor diffusion coefficient for snow,...
Definition: Constants.h:99
const double specific_heat_water
at T = 0 degC
Definition: Constants.h:85
const double undefined
This is the snowpack undefined value.
Definition: Constants.h:47
const double triple_point_t
(K)
Definition: Constants.h:106
const double max_albedo
Definition: Constants.h:66
const double conductivity_air
(W m-1 K-1)
Definition: Constants.h:93
const double density_water
At T = 0 degC.
Definition: Constants.h:79
const double diffusion_coefficient_in_snow
It is larger (see Colbeck) according to work prior to 2008!
Definition: Constants.h:100
const double min_albedo
Definition: Constants.h:65
const double solcon
Total Solar Irradiance (W m-2) (Froehlich, 2006)
Definition: Constants.h:56
const double gas_constant_mol
(J mol-1 K-1)
Definition: Constants.h:60
const double meltfreeze_tk
(K)
Definition: Constants.h:105
const double gas_constant_air
for air (J kg-1 K-1)
Definition: Constants.h:59
const double lh_sublimation
(J kg-1) (solid to vapor)
Definition: Constants.h:108
const double g
Definition: Constants.h:53
const double eps2
Definition: Constants.h:119
const double lh_vaporization
(J kg-1) (liquid to vapor)
Definition: Constants.h:109
const double gas_constant
(J kg-1 K-1)
Definition: Constants.h:58
const double specific_heat_ice
at T = 0 degC
Definition: Constants.h:84
const double karman
Karman constant.
Definition: Constants.h:61
const double big
used for Dirichlet boundary conditions
Definition: Constants.h:120
const double density_vapor
Approximation: use ideal gas law.
Definition: Constants.h:80
const double lh_fusion
(J kg-1) (solid to liquid)
Definition: Constants.h:110
const double glacier_albedo
Definition: Constants.h:67
const double emissivity_snow
Definition: Constants.h:71
const double min_percent_values
Definition: Constants.h:50