PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ exactO_old()

int exactO_old ( double  z,
double *  TT,
double *  Tm,
double *  qice,
double *  qbed,
double *  bmelt 
)

Implements an exact solution for basal melt rate. Utterly straightforward arithmetic.

Assumes a steady-state temperature profile in ice and bedrock. This steady profile is driven by geothermal flux G from the crust below the bedrock thermal layer. The heat flux is everywhere upward in the bedrock thermal layer, and it is equal by construction to G. The heat flux upward in the ice is also a constant everywhere in the ice, but its value is smaller than G. This imbalance is balanced by the basal melt rate bmelt.

Geometry and dynamics context: The top of the ice is flat so the ice does not flow; the ice thickness has constant value H0. The ice surface has temperature Ts which is below the melting point. The basal melt rate bmelt does not contribute to the vertical velocity in the ice. The ice pressure is hydrostatic: \(p = \rho_i g (h-z)\).

The basic equation relates the fluxes in the basal ice, and in the top of the bedrock layer, with the basal melt rate bmelt \(= - M_b / \rho_i \). The equation is from [AschwandenBuelerKhroulevBlatter],

\[ M_b H + (\mathbf{q} - \mathbf{q_{lith}}) \cdot \mathbf{n} = F_b + Q_b. \]

Here \(-M_b\) is the basal melt rate in units of mass per area per time. In the above equation the basal friction heating \(F_b\) is zero and the subglacial aquifer enthalpy flux \(Q_b\) includes no horizontal velocity. (Note that \(Q_b\) is the heat delivered by subglacial water to the base of the ice.) We assume the subglacial water is at the ice overburden pressure \(p_0=\rho_i g H_0\), and we assume that the temperate layer at the base of the ice has zero thickness, so \(\omega = 0\). Thus

\[ H_l(p_b) = H_l(p_0) = H_s(p_0) + L, \]

\[ H = H_s(p_0) + \omega L = H_s(p_0), \]

\[ Q_b = H_l(p_0) M_b. \]

The basic equation therefore reduces to

\[ \mathbf{q} \cdot \mathbf{n} - G = M_b L \]

or

\[ \text{\texttt{bmelt}} = -\frac{M_b}{\rho_i} = \frac{G - \mathbf{q} \cdot \mathbf{n}}{L \rho_i}. \]

On the other hand, the temperature in the ice is the steady-state result wherein the upward flux is constant and the (absolute) temperature is a linear function of the elevation \(z\), so

\[ \mathbf{q} \cdot \mathbf{n} = - k_i \frac{T_s - T_m(p)}{H_0}.\]

The temperature in the ice ( \(0 \le z \le H_0\)) is this linear function,

\[ T(z) = T_m(p) + \frac{T_s - T_m(p)}{H_0} z \]

and in the bedrock ( \(z \le 0\)) is also linear,

\[ T_b(z) = T_m(p) - \frac{G}{k_b} z. \]

This method implements these formulas. It should be called both when setting-up a verification test by setting temperature at different elevations within the ice and bedrock, and when doing the verification itself by checking against the exact bmelt value.

Definition at line 84 of file exactTestO.c.