Ice Sheet System Model
4.18
Code documentation
src
c
shared
Elements
NyeCO2.cpp
Go to the documentation of this file.
1
/* \file NyeCO2.cpp
2
* \brief figure out B of CO2 ice for a certain temperature
3
* INPUT function B=NyeCO2(temperature)
4
* where rigidigty (in s^(1/n)Pa) is the flow law paramter in the flow law sigma=B*e(1/n) (Nye, p2000).
5
*/
6
7
#include "../io/io.h"
8
#include <math.h>
9
#include "../Numerics/types.h"
10
11
IssmDouble
NyeCO2
(
IssmDouble
temperature){
12
13
/*Coefficients*/
14
const
IssmPDouble
Rg = 8.3144598;
/* J mol^-1 K^-1 */
15
const
IssmPDouble
A_const = pow(10.,13.0);
/* s^-1 MPa */
16
const
IssmPDouble
Q = 66900.;
/* J mol^-1 */
17
const
IssmPDouble
n = 8.;
/* Glen's exponent */
18
19
/*Arrhenius Law*/
20
IssmDouble
A = A_const *exp(-Q/(temperature*Rg));
/* s^-1 MPa */
21
IssmDouble
B = 1e6*pow(A,-1/n);
/* s^(1/n) Pa */
22
23
/*Beyond-melting-point cases*/
24
if
((temperature>200.)&&(temperature<220.))
_printf0_
(
"CO2 ICE - POSSIBLE MELTING. Some temperature values are between 200K and 220K.\n"
);
25
else
if
(temperature>=220.)
_printf0_
(
"CO2 ICE - GUARANTEED MELTING. Some temperature values are beyond 220K.\n"
);
26
27
/*Return output*/
28
return
B;
29
}
IssmDouble
double IssmDouble
Definition:
types.h:37
_printf0_
#define _printf0_(StreamArgs)
Definition:
Print.h:29
NyeCO2
IssmDouble NyeCO2(IssmDouble temperature)
Definition:
NyeCO2.cpp:11
IssmPDouble
IssmDouble IssmPDouble
Definition:
types.h:38
Generated on Thu Jul 2 2020 08:09:19 for Ice Sheet System Model by
1.8.19