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

## ◆ enthalpy_permissive()

 double pism::EnthalpyConverter::enthalpy_permissive ( double T, double omega, double P ) const

Compute enthalpy more permissively than enthalpy().

Computes enthalpy from absolute temperature, liquid water fraction, and pressure. Use this form of enthalpy() when outside sources (e.g. information from a coupler) might generate a temperature above the pressure melting point or generate cold ice with a positive water fraction.

Treats temperatures above pressure-melting point as at the pressure-melting point. Interprets contradictory case of $$T < T_m(p)$$ and $$\omega > 0$$ as cold ice, ignoring the water fraction ( $$\omega$$) value.

Calls enthalpy(), which validates its inputs.

Computes:

$E = \begin{cases} E(T,0.0,p), & T < T_m(p) \quad \text{and} \quad \omega \ge 0, \\ E(T_m(p),\omega,p), & T \ge T_m(p) \quad \text{and} \quad \omega \ge 0, \end{cases}$

but ensures $$0 \le \omega \le 1$$ in second case. Calls enthalpy() for $$E(T,\omega,p)$$.

Definition at line 273 of file EnthalpyConverter.cc.

References enthalpy(), pism::array::max(), melting_temperature(), and pism::array::min().

Referenced by pism::enthalpy_from_temperature_cold().