UFO
Constants.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2018-2019 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 
8 #ifndef UFO_UTILS_CONSTANTS_H_
9 #define UFO_UTILS_CONSTANTS_H_
10 
11 #include <cmath>
12 
13 //------------------------------------------------------------------------------------------------------
14 
15 namespace ufo {
16 
17 //------------------------------------------------------------------------------------------------------
18 
19 /// Some useful constants
20 struct Constants {
21  static constexpr double deg2rad = M_PI / 180.;
22  static constexpr double rad2deg = 180. * M_1_PI;
23  static constexpr double grav = 9.80665e+0;
24  static constexpr double t0c = 2.7315e+2; // temperature at zero celsius (K)
25  static constexpr double ttp = 2.7316e+2; // temperature at h2o triple point (K)
26  static constexpr double rd = 2.8705e2;
27  static constexpr double rv = 4.6150e2;
28  static constexpr double cp = 1.0046e3; // heat capacity at constant pressure
29  // for air
30  static constexpr double cv = 7.1760e2; // heat capacity at constant volume
31  // for air
32  static constexpr double pref = 1.0e5; // Reference pressure for calculating
33  // exner
34  static constexpr double rd_over_rv = rd/rv;
35  static constexpr double rd_over_cp = rd/cp;
36  static constexpr double cv_over_cp = cv/cp;
37  static constexpr double rv_over_rd = rv/rd;
38  static constexpr double rd_over_g = rd/grav;
39  static constexpr double mean_earth_rad = 6371.0;
40  static constexpr double zero = 0.0;
41  static constexpr double quarter = 0.25;
42  static constexpr double half = 0.5;
43  static constexpr double one = 1.0;
44  static constexpr double two = 2.0;
45  static constexpr double four = 4.0;
46  static constexpr double five = 5.0;
47  static constexpr double ten = 10.0;
48  static constexpr double k_t = 0.65; // Thermal conductivity of water
49  static constexpr double L_e = 2.26e+06; // Latent heat of vaporization
50  static constexpr double eps = 0.1; // Albedo of sea water
51  static constexpr double sig = 5.67e-6; // Stefan-Boltzmann constant
52  static constexpr double alpha = 2.7e-4; // Water thermal expansion coefficient
53  static constexpr double cw = 0.015; // Water specific heat
54  static constexpr double v_w = 0.8e-6; // Water kinematic viscosity
55  static constexpr double S_B = 0.026;
56  static constexpr double gr = 9.81;
57  static constexpr double Rou = 1000.0;
58  static constexpr double DU = 21.4e-6; // Dobson unit, kg O3/m**2
59  static constexpr double Lclr = 0.0065; // constant lapse rate
60  static constexpr double t2tv = 0.608; // constant lapse rate
61  static constexpr double von_karman = 0.41; // Von Karman Constant
62  static constexpr double es_w_0 = 611.2; // saturation vapor pressure of water at
63  // 0degC
64  static constexpr double euzc_0 = 34.0; // constant for estimating euphotic layer
65  static constexpr double euzc_1 = -0.39; // constant for estimating euphotic layer
66 };
67 //------------------------------------------------------------------------------------------------------
68 } // namespace ufo
69 
70 #endif // UFO_UTILS_CONSTANTS_H_
ufo::Constants::v_w
static constexpr double v_w
Definition: Constants.h:54
ufo::Constants::eps
static constexpr double eps
Definition: Constants.h:50
ufo::Constants::von_karman
static constexpr double von_karman
Definition: Constants.h:61
ufo::Constants::es_w_0
static constexpr double es_w_0
Definition: Constants.h:62
ufo::Constants::grav
static constexpr double grav
Definition: Constants.h:23
ufo::Constants::rd_over_rv
static constexpr double rd_over_rv
Definition: Constants.h:34
ufo::Constants::Lclr
static constexpr double Lclr
Definition: Constants.h:59
ufo::Constants::t0c
static constexpr double t0c
Definition: Constants.h:24
ufo::Constants::cv_over_cp
static constexpr double cv_over_cp
Definition: Constants.h:36
ufo::Constants::cv
static constexpr double cv
Definition: Constants.h:30
ufo::Constants::DU
static constexpr double DU
Definition: Constants.h:58
ufo::Constants::gr
static constexpr double gr
Definition: Constants.h:56
ufo::Constants::L_e
static constexpr double L_e
Definition: Constants.h:49
ufo::Constants::one
static constexpr double one
Definition: Constants.h:43
ufo
Definition: RunCRTM.h:27
ufo::Constants::rad2deg
static constexpr double rad2deg
Definition: Constants.h:22
ufo::Constants::mean_earth_rad
static constexpr double mean_earth_rad
Definition: Constants.h:39
ufo::Constants::rv
static constexpr double rv
Definition: Constants.h:27
ufo::Constants::ttp
static constexpr double ttp
Definition: Constants.h:25
ufo::Constants::four
static constexpr double four
Definition: Constants.h:45
ufo::Constants::rd_over_g
static constexpr double rd_over_g
Definition: Constants.h:38
ufo::Constants::five
static constexpr double five
Definition: Constants.h:46
ufo::Constants::half
static constexpr double half
Definition: Constants.h:42
ufo::Constants::alpha
static constexpr double alpha
Definition: Constants.h:52
ufo::Constants::two
static constexpr double two
Definition: Constants.h:44
ufo::Constants::S_B
static constexpr double S_B
Definition: Constants.h:55
ufo::Constants::sig
static constexpr double sig
Definition: Constants.h:51
ufo::Constants::deg2rad
static constexpr double deg2rad
Definition: Constants.h:21
ufo::Constants::rd_over_cp
static constexpr double rd_over_cp
Definition: Constants.h:35
ufo::Constants::k_t
static constexpr double k_t
Definition: Constants.h:48
ufo::Constants::cp
static constexpr double cp
Definition: Constants.h:28
ufo::Constants::quarter
static constexpr double quarter
Definition: Constants.h:41
ufo::Constants::pref
static constexpr double pref
Definition: Constants.h:32
ufo::Constants::rd
static constexpr double rd
Definition: Constants.h:26
ufo::Constants::ten
static constexpr double ten
Definition: Constants.h:47
ufo::Constants::euzc_1
static constexpr double euzc_1
Definition: Constants.h:65
ufo::Constants::euzc_0
static constexpr double euzc_0
Definition: Constants.h:64
ufo::Constants::zero
static constexpr double zero
Definition: Constants.h:40
ufo::Constants
Some useful constants.
Definition: Constants.h:20
ufo::Constants::cw
static constexpr double cw
Definition: Constants.h:53
ufo::Constants::t2tv
static constexpr double t2tv
Definition: Constants.h:60
ufo::Constants::Rou
static constexpr double Rou
Definition: Constants.h:57
ufo::Constants::rv_over_rd
static constexpr double rv_over_rd
Definition: Constants.h:37