Difference between revisions of "Model mass balance"

From SourceWiki
Jump to navigation Jump to search
 
(98 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
== Degree day method ==
 
== Degree day method ==
The degree day method is the simplest method to calculate the ablation.
+
The degree day method is the simplest method to calculate the ablation. In this type of model the potential ablation is determined as a linear function of the excess of daily mean air temperature above 0 °C. This potential ablation is transformed into an amount of melt through the application of degree day factors. The positive degree-day factor parameterises the physical processes that characterise the exchange of energy between the atmosphere and the surface. As a parameterisation of complex surface interchanges, degree-day factors are spatially and temporally variable. The degree day factor for snow and ice are two of the free parameters that are specified in '''[[Readoptimfile]]'''.
 +
 
 
=== function rainorsnw ===
 
=== function rainorsnw ===
  
Line 14: Line 15:
 
 
 
 
 
which can be rearranged to give time of day <math>t^{'}</math> (in radians) at which the threshold <math>T^{'}</math>  is reached, <br>
 
which can be rearranged to give time of day <math>t^{'}</math> (in radians) at which the threshold <math>T^{'}</math>  is reached, <br>
 +
 
<math>t^{'}=\cos^{-1}\left({\frac{\bar{T}-T^{'}}{\Delta\,T}}\right)</math> .<br>
 
<math>t^{'}=\cos^{-1}\left({\frac{\bar{T}-T^{'}}{\Delta\,T}}\right)</math> .<br>
 +
 
The proportion of the day for which temperatures exceed the threshold is therefore <math>(\pi\,-t^{'})/\pi\, </math> .  If we assume that there is an equal probability of the precipitation falling at any time during the day then we simply need to multiply by the daily precipitation total to get the amount of rainfall.
 
The proportion of the day for which temperatures exceed the threshold is therefore <math>(\pi\,-t^{'})/\pi\, </math> .  If we assume that there is an equal probability of the precipitation falling at any time during the day then we simply need to multiply by the daily precipitation total to get the amount of rainfall.
  
Line 20: Line 23:
  
 
This function finds the number of positive day degrees (''d'') during a day using air temperature.  If it is called with the flag not equal to 1, the number of day degrees is simply the daily mean temperature if its is above zero, or none if the temperature is below zero.   
 
This function finds the number of positive day degrees (''d'') during a day using air temperature.  If it is called with the flag not equal to 1, the number of day degrees is simply the daily mean temperature if its is above zero, or none if the temperature is below zero.   
If the function is called with flag set to 1, it estimates the number of positive day degrees by assuming a cosine for the diurnal variation of temperature about its mean ( ) with prescribed range ( from mean to peak NOT peak to peak)
+
If the function is called with flag set to 1, it estimates the number of positive day degrees by assuming a cosine for the diurnal variation of temperature about its mean (<math>t^{'}</math>) with prescribed range, <math>\Delta\,T</math>, (the range is from the mean to the peak, NOT peak to peak),<br>
<math>T(t)=\bar{T}-\Delta\,T \cos(t)</math>  
+
 
which can be rearranged to give time of day   (in radians) at which the temperature equals zero  
+
<math>T(t)=\bar{T}-\Delta\,T \cos(t)</math>  
.
+
 
We now need to integrate   from the this time to midday ( ) and scale from radians into fractions of a day
+
which can be rearranged to give time of day, <math>t^{'}</math>, (in radians) at which the temperature equals zero, <br>
 +
 
 +
<math>t^{'}=\cos^{-1}\left({\frac{\bar{T}}{\Delta\,T}}\right)</math> .<br>
 +
 
 +
We now need to integrate ''T(t)'' from the this time to midday <math>\left({\pi\,}\right)</math> and scale from radians into fractions of a day,<br>
 +
 
 +
<math>d=\frac{1}{\pi\,} \int\limits_{t^{'}}^{\pi\,}\bar{T}-\Delta\,T\cos(t)dt</math>
 +
 
 +
:<math>=\frac{1}{\pi\,}\left[{\bar{T}\left({\pi\,-t^{'}}\right)+\Delta\,T\sin\left({t^{'}}\right)}\right]</math>.
  
 
=== function lapsecalc ===
 
=== function lapsecalc ===
  
This function simply applies the prescribed lapse rate to what ever variable is given.  This is usually done for air temperature (daily means but not amplitudes) and precipitation.  In the latter case, there is a guard in the calling routine that avoids creating precipitation if there was none in the base met. data.  The lapse rate is applied relative to the prescribed elevation of the met. data and everything is done in scaled units.
+
This function simply applies the prescribed lapse rate to what ever variable is given.  This is usually done for air temperature (daily means but not amplitudes) and precipitation.  In the latter case, there is a guard in the calling routine that avoids creating precipitation if there was none in the base meteorological data. <br>
  
 +
Although the free atmosphere temperature lapse rate is assumed to be constant at between – 6 °C to – 7 °C and this value is often used in studies investigating glacier mass balance response to climate change, the actual vertical gradient in surface temperatures is found to be spatially and temporally variable. The lapse rates are therefore opitmised in the model and so are defined in '''[[Readoptimfile]]''' . The lapse rate is applied relative to the elevation of the meteorological data, either the elevation of the meteorological station, or sea-level for ERA 40 data. All calculations are done in scaled units.
  
 
=== function surfacemodel ===
 
=== function surfacemodel ===
  
 
This function takes the estimated daily precipitation (total), rainfall and meltwater depths and evolves the accumulated snow, super-imposed ice and glacier ice stores.  We call firn the combined depths of snow and super-imposed ice.  The logic of the process is as follows.
 
This function takes the estimated daily precipitation (total), rainfall and meltwater depths and evolves the accumulated snow, super-imposed ice and glacier ice stores.  We call firn the combined depths of snow and super-imposed ice.  The logic of the process is as follows.
#The depth of snow is increased by snowfall (total precipitation minus rainfall).
+
# The depth of snow is increased by snowfall (total precipitation minus rainfall).
#The depth of super-imposed ice is increased by rainfall (assumed to refreeze).
+
# The depth of super-imposed ice is increased by rainfall (assumed to refreeze).
#Use the total potential melt to melt snow.  If there is snow left then set melt to zero, otherwise reduce it by amount of snow melted.  Any melted snow is assumed to refreeze and become super-imposed ice.  
+
# Use the total potential melt to melt snow.  If there is snow left then set melt to zero, otherwise reduce it by amount of snow melted.  Any melted snow is assumed to refreeze and become super-imposed ice.  
#Estimate the depth of super-imposed ice that would result in the firn reaching its capacity.  Here firn is assumed to be the sum of the snow (s) and super-imposed ice (i) depths.  We assume that only a fixed proportion (w or wmax) of the firn can be super-imposed ice and estimate this depth as  
+
# Estimate the depth of super-imposed ice that would result in the firn reaching its capacity.  Here firn is assumed to be the sum of the snow (s) and super-imposed ice (i) depths.  We assume that only a fixed proportion (w or wmax) of the firn can be super-imposed ice and estimate this depth as,
#Any super-imposed ice above this capacity is assumed to have run off – or more accurately the melt water that would have formed super-imposed ice is rejected before it gets a chance to freeze.
+
 
#If any melt potential remains then proceed to melt super-imposed ice (reducing potential and increasing runoff accordingly).  If the melt potential exceeds the amount of super-imposed ice, remove all of and amend runoff and potential melt figures accordingly. Note that in the case of the degree day model, this requires a re-determination of the appropriate degree-day factor from that of snow to ice.
+
:::<math>i=w\left({s+i}\right)</math>
#If any melt potential remains then proceed to melt glacier ice ice (reducing potential and increasing runoff accordingly).
+
 
 +
:::<math>i=\frac{ws}{1-w}</math>
 +
<ol>
 +
<li value="5">Any super-imposed ice above this capacity is assumed to have run off – or more accurately the melt water that would have formed super-imposed ice is rejected before it gets a chance to freeze.</li>
 +
<li value="6">If any melt potential remains then proceed to melt super-imposed ice (reducing potential and increasing runoff accordingly).  If the melt potential exceeds the amount of super-imposed ice, remove all of and amend runoff and potential melt figures accordingly. Note that in the case of the degree day model, this requires a re-determination of the appropriate degree-day factor from that of snow to ice.</li>
 +
<li value="7">If any melt potential remains then proceed to melt glacier ice ice (reducing potential and increasing runoff accordingly).</li>
 +
</ol>
  
 
== Energy balance model ==
 
== Energy balance model ==
subroutine initialstart_ebm
+
 
 +
=== subroutine initialstart_ebm ===
 
Sets up a number of parameters that are used in the energy balance calculation of surface melt.  Points to note include: scaling of time from second in day to radians.
 
Sets up a number of parameters that are used in the energy balance calculation of surface melt.  Points to note include: scaling of time from second in day to radians.
subroutine initial4day_ebm
 
Calculate energy-budget parameters that vary daily.  In this case, this is the solar declination ( ) which is then used later on with the latitude ( ) to calculate the solar zenith (z) and azimuth ( )
 
 
where  is the julian day expressed in radians, and
 
  
+
=== subroutine initial4day_ebm ===
 +
 
 +
Calculates the energy-budget parameters that vary daily.  In this case, this is the solar declination (<math>\delta\,</math>) which is then used later on with the latitude (<math>\phi\,</math>) to calculate the solar zenith (z) and azimuth (<math>\psi\,</math>), <br>
 +
 
 +
<math>
 +
\begin{cases}
 +
\delta\,= 0.006918 - 0.399912\cos\theta\,_{yr}+ 0.70257\sin\theta_{yr} -\\ 0.006758\cos2\theta_{yr} +0.000907\sin2\theta_{yr}- 0.002697\cos3\theta_{yr}+\\ 0.00148\sin3\theta_{yr}
 +
\end{cases}
 +
</math>
 +
 
 +
where <math>\theta_{yr}</math> is the julian day expressed in radians. From this,<br>
 +
 
 +
<math>z^{'}=
 +
\begin{pmatrix}
 +
  \sin\lambda\, & \sin\delta\, \\
 +
  \cos\lambda\, & \cos\delta\,
 +
\end{pmatrix}
 +
</math><br>
 +
 
 +
and,<br>
 +
 
 +
<math>\psi^{'}=
 +
\begin{pmatrix}
 +
  \sin\lambda\, & \cos\delta\, \\
 +
  \cos\lambda\, & \sin\delta\,
 +
\end{pmatrix}
 +
</math><br>
  
 
the primes indicates that these are parameters used in the final calculation of zenith and azimuths.
 
the primes indicates that these are parameters used in the final calculation of zenith and azimuths.
subroutine nexttimestep_ebm
 
This is the main solver for the energy-balance model and steps both the surface temperature (T) and the accumulated melt forward in time.  The equation being solved is
 
 
  
where  is the surface’s aspect and   its slope (in radians);  is the fraction of the day expressed in radians and relative to midday; A, B and C are free parameters;  is the co-albedo of the surface; d is the depth of the thermally-active layer, its density and c its specific heat capacity (we currently assume snow throughout); the 2-m air temperature (T2m) is based on the daily mean and amplitude value supplied; and temperatures are in K.  Appropriate sets are taken to ensure that the sun does not sun when it is below the horizon.
+
=== subroutine nexttimestep_ebm ===
 +
 
 +
This is the main solver for the energy-balance model and steps both the surface temperature (T) and the accumulated melt forward in time.  The equation being solved is, <br>
 +
 
 +
<math>\rho\,cd\frac{dT}{dt}=C\alpha\,^{'}I+BT_{2m}+AT </math><br>
 +
 
 +
 
 +
::<math>I =I_{0}\left({\cos\,z\cos\phi\,+\sin\,z\sin\,\phi\,\cos\,\left({\psi\,-\beta\,}\right)}\right)</math><br>
 +
 
 +
 
 +
:<math>cos\,z=z^{'}_{1}+z^{'}_{2}\cos\,\theta_{d}</math><br>
 +
 
 +
 
 +
:<math>cos\,\psi\,=\frac{\psi\,^{'}_{1}\cos\,\theta\,_{d}-\psi\,^{'}_{2}}{\cos\,z}</math>
  
We use an implicit time-marching scheme
+
  
 +
where <math>\rho\,</math> is density, d is the depth of the thermally-active layer and c is the specific heat capacity (we currently assume snow throughout).  ''A'', ''B'' and ''C'' are free parameters. <math>\alpha\,^{'}</math> is the co-albedo of the surface, ''I'' is the insolation at the surface; the 2-m air temperature (<math>T_{2m}</math>) is based on the daily mean and amplitude value supplied. All temperatures are in K.<br>
 +
<math>\beta\,</math> is the surface’s aspect, <math>\phi\,</math> is the slope (in radians)and <math>I_{0}</math> is the insolation received at the top of the atmosphere, and is given a constant value of 1371 Wm<sup>-2</sup>. <math>\theta_{d}\,</math> is the fraction of the day expressed in radians and relative to midday. Appropriate sets are taken to ensure that there is no insolation when the sun is below the horizon. <br>
 
   
 
   
 +
We use an implicit time-marching scheme,
 +
<math>T^{n}-T^{n-1}=\frac{\delta\,t}{\rho\,cd}\left({C\alpha\,^{'}I^{n}+BT_{2m}^{n}+\frac{A}{2}\left({T^{n}-T^{n-1}}\right)}\right)</math>.
  
In these subroutines, time through the day is in radians.  If the new temperature is above the melt point then we estimate an amount of melt by converting energy with active layer into an equivalent melt depth.  We use the trapezium rule to do this.  There are two cases.  The first is where the preceeding temperature is at the melt point also; this is easy.  The second in when the preceeding temperature is below the melt point, in which case we need to estimate the fraction of the time step during which temperature was above the melt point (using linear interpolation).
+
In these subroutines, time through the day is in radians.  If the new temperature is above the melt point then we estimate an amount of melt by converting energy in the active layer into an equivalent melt depth.  We use the trapezium rule to do this.  There are two cases.   
 +
#The first is where the preceeding temperature is at the melt point also; this is easy.   
 +
#The second in when the preceeding temperature is below the melt point, in which case we need to estimate the fraction of the time step during which temperature was above the melt point (using linear interpolation).

Latest revision as of 15:41, 20 November 2007

There are two methods to calculate the mass balance within the model;

  • degree day method
  • simple energy balance model.


Degree day method

The degree day method is the simplest method to calculate the ablation. In this type of model the potential ablation is determined as a linear function of the excess of daily mean air temperature above 0 °C. This potential ablation is transformed into an amount of melt through the application of degree day factors. The positive degree-day factor parameterises the physical processes that characterise the exchange of energy between the atmosphere and the surface. As a parameterisation of complex surface interchanges, degree-day factors are spatially and temporally variable. The degree day factor for snow and ice are two of the free parameters that are specified in Readoptimfile.

function rainorsnw

This function determines whether precipitation falls as rain or snow using air temperature(it returns amount of rainfall). If it is called with the flag not equal to 1, a simple comparison between the daily mean temperature and a prescribed rain-snow transition temperature is made: if the daily mean air temperature is above the threshold then all precipitation on that day falls as rain, otherwise it is assumed that all the precipitation is snow, so the function returns zero.
If the function is called with flag set to 1, it estimates the rainfall by assuming a cosine for the diurnal variation of temperature about its mean ([math]\displaystyle{ \bar{T} }[/math]) with prescribed range, [math]\displaystyle{ \Delta\,T }[/math], (the range is from the mean to the peak, NOT peak to peak),

[math]\displaystyle{ T(t)=\bar{T}-\Delta\,T \cos(t) }[/math]

which can be rearranged to give time of day [math]\displaystyle{ t^{'} }[/math] (in radians) at which the threshold [math]\displaystyle{ T^{'} }[/math] is reached,

[math]\displaystyle{ t^{'}=\cos^{-1}\left({\frac{\bar{T}-T^{'}}{\Delta\,T}}\right) }[/math] .

The proportion of the day for which temperatures exceed the threshold is therefore [math]\displaystyle{ (\pi\,-t^{'})/\pi\, }[/math] . If we assume that there is an equal probability of the precipitation falling at any time during the day then we simply need to multiply by the daily precipitation total to get the amount of rainfall.

function finddegdays

This function finds the number of positive day degrees (d) during a day using air temperature. If it is called with the flag not equal to 1, the number of day degrees is simply the daily mean temperature if its is above zero, or none if the temperature is below zero. If the function is called with flag set to 1, it estimates the number of positive day degrees by assuming a cosine for the diurnal variation of temperature about its mean ([math]\displaystyle{ t^{'} }[/math]) with prescribed range, [math]\displaystyle{ \Delta\,T }[/math], (the range is from the mean to the peak, NOT peak to peak),

[math]\displaystyle{ T(t)=\bar{T}-\Delta\,T \cos(t) }[/math]

which can be rearranged to give time of day, [math]\displaystyle{ t^{'} }[/math], (in radians) at which the temperature equals zero,

[math]\displaystyle{ t^{'}=\cos^{-1}\left({\frac{\bar{T}}{\Delta\,T}}\right) }[/math] .

We now need to integrate T(t) from the this time to midday [math]\displaystyle{ \left({\pi\,}\right) }[/math] and scale from radians into fractions of a day,

[math]\displaystyle{ d=\frac{1}{\pi\,} \int\limits_{t^{'}}^{\pi\,}\bar{T}-\Delta\,T\cos(t)dt }[/math]

[math]\displaystyle{ =\frac{1}{\pi\,}\left[{\bar{T}\left({\pi\,-t^{'}}\right)+\Delta\,T\sin\left({t^{'}}\right)}\right] }[/math].

function lapsecalc

This function simply applies the prescribed lapse rate to what ever variable is given. This is usually done for air temperature (daily means but not amplitudes) and precipitation. In the latter case, there is a guard in the calling routine that avoids creating precipitation if there was none in the base meteorological data.

Although the free atmosphere temperature lapse rate is assumed to be constant at between – 6 °C to – 7 °C and this value is often used in studies investigating glacier mass balance response to climate change, the actual vertical gradient in surface temperatures is found to be spatially and temporally variable. The lapse rates are therefore opitmised in the model and so are defined in Readoptimfile . The lapse rate is applied relative to the elevation of the meteorological data, either the elevation of the meteorological station, or sea-level for ERA 40 data. All calculations are done in scaled units.

function surfacemodel

This function takes the estimated daily precipitation (total), rainfall and meltwater depths and evolves the accumulated snow, super-imposed ice and glacier ice stores. We call firn the combined depths of snow and super-imposed ice. The logic of the process is as follows.

  1. The depth of snow is increased by snowfall (total precipitation minus rainfall).
  2. The depth of super-imposed ice is increased by rainfall (assumed to refreeze).
  3. Use the total potential melt to melt snow. If there is snow left then set melt to zero, otherwise reduce it by amount of snow melted. Any melted snow is assumed to refreeze and become super-imposed ice.
  4. Estimate the depth of super-imposed ice that would result in the firn reaching its capacity. Here firn is assumed to be the sum of the snow (s) and super-imposed ice (i) depths. We assume that only a fixed proportion (w or wmax) of the firn can be super-imposed ice and estimate this depth as,
[math]\displaystyle{ i=w\left({s+i}\right) }[/math]
[math]\displaystyle{ i=\frac{ws}{1-w} }[/math]
  1. Any super-imposed ice above this capacity is assumed to have run off – or more accurately the melt water that would have formed super-imposed ice is rejected before it gets a chance to freeze.
  2. If any melt potential remains then proceed to melt super-imposed ice (reducing potential and increasing runoff accordingly). If the melt potential exceeds the amount of super-imposed ice, remove all of and amend runoff and potential melt figures accordingly. Note that in the case of the degree day model, this requires a re-determination of the appropriate degree-day factor from that of snow to ice.
  3. If any melt potential remains then proceed to melt glacier ice ice (reducing potential and increasing runoff accordingly).

Energy balance model

subroutine initialstart_ebm

Sets up a number of parameters that are used in the energy balance calculation of surface melt. Points to note include: scaling of time from second in day to radians.

subroutine initial4day_ebm

Calculates the energy-budget parameters that vary daily. In this case, this is the solar declination ([math]\displaystyle{ \delta\, }[/math]) which is then used later on with the latitude ([math]\displaystyle{ \phi\, }[/math]) to calculate the solar zenith (z) and azimuth ([math]\displaystyle{ \psi\, }[/math]),

[math]\displaystyle{ \begin{cases} \delta\,= 0.006918 - 0.399912\cos\theta\,_{yr}+ 0.70257\sin\theta_{yr} -\\ 0.006758\cos2\theta_{yr} +0.000907\sin2\theta_{yr}- 0.002697\cos3\theta_{yr}+\\ 0.00148\sin3\theta_{yr} \end{cases} }[/math]

where [math]\displaystyle{ \theta_{yr} }[/math] is the julian day expressed in radians. From this,

[math]\displaystyle{ z^{'}= \begin{pmatrix} \sin\lambda\, & \sin\delta\, \\ \cos\lambda\, & \cos\delta\, \end{pmatrix} }[/math]

and,

[math]\displaystyle{ \psi^{'}= \begin{pmatrix} \sin\lambda\, & \cos\delta\, \\ \cos\lambda\, & \sin\delta\, \end{pmatrix} }[/math]

the primes indicates that these are parameters used in the final calculation of zenith and azimuths.

subroutine nexttimestep_ebm

This is the main solver for the energy-balance model and steps both the surface temperature (T) and the accumulated melt forward in time. The equation being solved is,

[math]\displaystyle{ \rho\,cd\frac{dT}{dt}=C\alpha\,^{'}I+BT_{2m}+AT }[/math]


[math]\displaystyle{ I =I_{0}\left({\cos\,z\cos\phi\,+\sin\,z\sin\,\phi\,\cos\,\left({\psi\,-\beta\,}\right)}\right) }[/math]


[math]\displaystyle{ cos\,z=z^{'}_{1}+z^{'}_{2}\cos\,\theta_{d} }[/math]


[math]\displaystyle{ cos\,\psi\,=\frac{\psi\,^{'}_{1}\cos\,\theta\,_{d}-\psi\,^{'}_{2}}{\cos\,z} }[/math]


where [math]\displaystyle{ \rho\, }[/math] is density, d is the depth of the thermally-active layer and c is the specific heat capacity (we currently assume snow throughout). A, B and C are free parameters. [math]\displaystyle{ \alpha\,^{'} }[/math] is the co-albedo of the surface, I is the insolation at the surface; the 2-m air temperature ([math]\displaystyle{ T_{2m} }[/math]) is based on the daily mean and amplitude value supplied. All temperatures are in K.
[math]\displaystyle{ \beta\, }[/math] is the surface’s aspect, [math]\displaystyle{ \phi\, }[/math] is the slope (in radians)and [math]\displaystyle{ I_{0} }[/math] is the insolation received at the top of the atmosphere, and is given a constant value of 1371 Wm-2. [math]\displaystyle{ \theta_{d}\, }[/math] is the fraction of the day expressed in radians and relative to midday. Appropriate sets are taken to ensure that there is no insolation when the sun is below the horizon.

We use an implicit time-marching scheme, [math]\displaystyle{ T^{n}-T^{n-1}=\frac{\delta\,t}{\rho\,cd}\left({C\alpha\,^{'}I^{n}+BT_{2m}^{n}+\frac{A}{2}\left({T^{n}-T^{n-1}}\right)}\right) }[/math].

In these subroutines, time through the day is in radians. If the new temperature is above the melt point then we estimate an amount of melt by converting energy in the active layer into an equivalent melt depth. We use the trapezium rule to do this. There are two cases.

  1. The first is where the preceeding temperature is at the melt point also; this is easy.
  2. The second in when the preceeding temperature is below the melt point, in which case we need to estimate the fraction of the time step during which temperature was above the melt point (using linear interpolation).