Ice Sheet System Model
4.18
Code documentation
src
c
shared
Elements
Arrhenius.cpp
Go to the documentation of this file.
1
/* \file Arrhenius.cpp
2
* \brief figure out B of ice for a certain temperature
3
*/
4
5
#include <math.h>
6
#include "../Numerics/types.h"
7
#include "../Exceptions/exceptions.h"
8
9
IssmDouble
Arrhenius
(
IssmDouble
temperature,
IssmDouble
depth,
IssmDouble
n){
10
/*Use EISMINT Parameterization for the rheology: Payne2000
11
*
12
* A(T*) = A0 exp(-Q/RT*)
13
*
14
* A0 constant of proportionality
15
* = 3.61 * 10^-13 if T*<263.15K
16
* = 1.73 * 10^3 if T*>263.15K
17
* Q Activation energy for creep
18
* = 6.0 * 10^4 if T*<263.15K
19
* = 13.9 * 10^4 if T*>263.15K
20
* R Universal gas constant
21
* = 8.314
22
* T* Absolute temperature corrected for the dependence of Tpmp on P
23
* = T - beta (s-z)
24
*
25
* Convert A to B : B = A^(-1/n) */
26
27
/*Some physical constants (Payne2000)*/
28
IssmDouble
beta=8.66*1.e-4;
29
IssmDouble
R
=8.314;
30
31
/*Intermediaries*/
32
IssmDouble
A,B,Tstar;
33
34
/*convert temperature to absolute temperature*/
35
_assert_
(depth>0);
36
Tstar=temperature-beta*depth;
37
_assert_
(Tstar>0);
38
39
/*Get A*/
40
if
(Tstar<263.15){
41
A=3.61e-13*exp( -6.e+4/(
R
*Tstar));
42
}
43
else
{
44
A=1.73e+3 *exp(-13.9e+4/(
R
*Tstar));
45
}
46
47
/*Convert to B*/
48
B=pow(A,-1./n);
49
50
return
B;
51
}
_assert_
#define _assert_(ignore)
Definition:
exceptions.h:37
IssmDouble
double IssmDouble
Definition:
types.h:37
R
const double R
Definition:
Gembx.cpp:30
Arrhenius
IssmDouble Arrhenius(IssmDouble temperature, IssmDouble depth, IssmDouble n)
Definition:
Arrhenius.cpp:9
Generated on Thu Jul 2 2020 08:09:19 for Ice Sheet System Model by
1.8.19