spyice.misc_subroutines#
This module provides functions to calculate the melting temperature of seawater based on salinity. It supports different liquidus relations such as “Normal” and “Frezchem”.
Functions#
calculate_melting_temperature_from_salinity#
- calculate_melting_temperature_from_salinity(_salinity, _temperature_melt=_temperature_melt, _liquid_relation='Normal')#
Calculates the melting temperature of seawater based on salinity.
- Parameters:
_salinity (numpy.ndarray) – Array of salinity values (in ppt).
_temperature_melt (float) – Reference melting temperature (solidus) in Kelvin. Defaults to the UserInput value.
_liquid_relation (str) – Type of liquidus relation. Must be either “Normal” or “Frezchem”. Defaults to “Normal”.
- Returns:
numpy.ndarray of melting temperatures corresponding to the input salinity values.
- Raises:
TypeError – If
_liquid_relationis not “Normal” or “Frezchem”.
Description:
Normal relation: Uses a linear interpolation between the solidus temperature and the eutectic temperature. Eutectic temperature T_s = 252.05 K, brine salinity S_br = 233 ppt.
For scalar salinity:
\[T_{melt} = T_m + (T_s - T_m) * \frac{S}{S_{br}}\]For array salinity, the same formula is applied element-wise.
Frezchem relation: Uses a quadratic fit from the Frezchem database:
\[T_{melt} = 272.63617665 - 9.1969758 \times 10^{-5} S^2 - 0.03942059 S\]