1 | function tprofile=robintemperature(heatflux,accumrate,thickness,surftemp,z)
|
---|
2 | %ROBINTEMPERATURE - compute vertical temperature profile of an ice sheet (Robin, 1955)
|
---|
3 | %
|
---|
4 | % This routine computes the vertical temperature profile of an
|
---|
5 | % ice sheet according to the solution of Robin (1955), neglecting
|
---|
6 | % friction and horizontal advection. The solution is thus most
|
---|
7 | % appropriate at an ice divide.
|
---|
8 | %
|
---|
9 | % The coordinate system for the solution runs from z=0 at the base
|
---|
10 | % to z=H at the surface of the ice.
|
---|
11 | %
|
---|
12 | % Parameters (SI units):
|
---|
13 | % -heatflux Geothermal heat flux (W m^-2)
|
---|
14 | % -accumrate Surface accumulation rate (m s^-1 ice equivalent)
|
---|
15 | % -thickness Ice thickness (m)
|
---|
16 | % -surftemp Surface temperature (K)
|
---|
17 | % -z Vertical position at which to calculate temperature
|
---|
18 | % (z can be a scalar or a vector)
|
---|
19 | %
|
---|
20 | % Returns a vector the same length as z containing the temperature in K
|
---|
21 | %
|
---|
22 | % Usage:
|
---|
23 | % tprofile=robintemperature(heatflux,accumrate,thickness,surftemp,z)
|
---|
24 |
|
---|
25 | %checks
|
---|
26 | if nargin~=5
|
---|
27 | help robintemperature
|
---|
28 | error('bad usage - wrong number of arguments.')
|
---|
29 | end
|
---|
30 |
|
---|
31 | %some constants (from Holland and Jenkins, 1999)
|
---|
32 | alphaT=1.14e-6; % thermal diffusivity (m^2 s^-1)
|
---|
33 | c=2009; % specific heat capacity (J kg^-1 K^-1)
|
---|
34 | rho=917; % ice density (kg m^-3)
|
---|
35 |
|
---|
36 | %create vertical coordinate variable
|
---|
37 | zstar=sqrt(2*alphaT*thickness./accumrate);
|
---|
38 |
|
---|
39 | tprofile=surftemp+sqrt(2*thickness*pi./accumrate/alphaT).*(-heatflux)/2/rho/c.*(erf(z./zstar)-erf(thickness./zstar));
|
---|
40 |
|
---|
41 | % difference between surface and base temperature for check (Cuffey2010 p412):
|
---|
42 | % tprofile-surftemp
|
---|