|
SAMSIM
|
Module contains all things directly related to snow. More...
Functions/Subroutines | |
| subroutine, public | snow_coupling (H_abs_snow, phi_s, T_snow, H_abs, H, phi, T, m_snow, S_abs_snow, m, S_bu) |
| Subroutine to couple a thin snow layer to the upper ice layer. More... | |
| subroutine, public | snow_precip (m_snow, H_abs_snow, thick_snow, psi_s_snow, dt, liquid_precip_in, T2m, solid_precip_in) |
| Subroutine for calculating precipitation on an existing snow cover. More... | |
| subroutine, public | snow_precip_0 (H_abs, S_abs, m, T, dt, liquid_precip_in, T2m, solid_precip_in) |
| Subroutine for calculating precipitation into the ocean. More... | |
| subroutine, public | snow_thermo (psi_l_snow, psi_s_snow, psi_g_snow, thick_snow, S_abs_snow, H_abs_snow, m_snow, T_snow, m, thick, H_abs) |
| Subroutine for calculating snow thermodynamics. More... | |
| subroutine, public | snow_thermo_meltwater (psi_l_snow, psi_s_snow, psi_g_snow, thick_snow, S_abs_snow, H_abs_snow, m_snow, T_snow, m, thick, H_abs, melt_thick_snow) |
| Subroutine for calculating snow thermodynamics. More... | |
| subroutine, public | sub_fl_q_0_snow_thin (m_snow, thick_snow, T_snow, psi_s, psi_l, psi_g, thick, T_bound, fl_Q_snow) |
| Determines conductive Heat flux for combined top ice and snow layer. More... | |
| subroutine, public | sub_fl_q_snow (m_snow, thick_snow, T_snow, psi_s_2, psi_l_2, psi_g_2, thick_2, T_2, fl_Q) |
| Determines conductive Heat flux between Snow and top ice layer. More... | |
| subroutine, public | sub_fl_q_0_snow (m_snow, thick_snow, T_snow, T_bound, fl_Q) |
| Determines conductive Heat between snow layer and upper boundary layer. A limiting factor is added to increase stability of layers thinner then thick_min. More... | |
| real(wp) function, public | func_k_snow (m_snow, thick_snow) |
| Calculates the thermal conductivity of the snow layer as a function of the density. More... | |
Module contains all things directly related to snow.
| real(wp) function, public mo_snow::func_k_snow | ( | real(wp), intent(in) | m_snow, |
| real(wp), intent(in) | thick_snow | ||
| ) |
Calculates the thermal conductivity of the snow layer as a function of the density.
Based on the Sturm et al 1997 data fit for densities greater then 0.156 g/cm**3. Warning, Sturm et al use g/cm**3, I use kg/m**3 Snow density probability functions can be included lated to raise the effective conductivity. Warning!: added 0.15 to the thermal conductivity.
| subroutine, public mo_snow::snow_coupling | ( | real(wp), intent(inout) | H_abs_snow, |
| real(wp), intent(inout) | phi_s, | ||
| real(wp), intent(inout) | T_snow, | ||
| real(wp), intent(inout) | H_abs, | ||
| real(wp), intent(inout) | H, | ||
| real(wp), intent(inout) | phi, | ||
| real(wp), intent(inout) | T, | ||
| real(wp), intent(in) | m_snow, | ||
| real(wp), intent(in) | S_abs_snow, | ||
| real(wp), intent(in) | m, | ||
| real(wp), intent(in) | S_bu | ||
| ) |
Subroutine to couple a thin snow layer to the upper ice layer.
Subroutine is activated when thick_snow<thick_min. The enthalpies of the two layers are adjusted until both layers have the same temperatures. The following approach is used.
| subroutine, public mo_snow::snow_precip | ( | real(wp), intent(inout) | m_snow, |
| real(wp), intent(inout) | H_abs_snow, | ||
| real(wp), intent(inout) | thick_snow, | ||
| real(wp), intent(inout) | psi_s_snow, | ||
| real(wp), intent(in) | dt, | ||
| real(wp), intent(in) | liquid_precip_in, | ||
| real(wp), intent(in) | T2m, | ||
| real(wp), intent(in), optional | solid_precip_in | ||
| ) |
Subroutine for calculating precipitation on an existing snow cover.
Can optionally deal with separate solid and liquid precipitation or a single liquid input. The 2 meter temperature determines the temperature of the precipitation. In case of single input the 2 meter temperature determines if snow or rain falls. Snow makes the thickness grow according to the density of new snow(rho_snow), while rain falls into the snow without increasing snow depth. It is necessary to calculate the new psi_s_snow to ensure proper melting in snow_thermo.
| subroutine, public mo_snow::snow_precip_0 | ( | real(wp), intent(inout) | H_abs, |
| real(wp), intent(inout) | S_abs, | ||
| real(wp), intent(in) | m, | ||
| real(wp), intent(in) | T, | ||
| real(wp), intent(in) | dt, | ||
| real(wp), intent(in) | liquid_precip_in, | ||
| real(wp), intent(in) | T2m, | ||
| real(wp), intent(in), optional | solid_precip_in | ||
| ) |
Subroutine for calculating precipitation into the ocean.
Can optionally deal with separate solid and liquid precipitation or a single liquid input. The 2 meter temperature determines the temperature of the precipitation. In case of single input the 2 meter temperature determines if snow or rain falls. It is important, that the mass, energy and salt leaving the upper layer must be outputted. This is not the case. Temp!
| subroutine, public mo_snow::snow_thermo | ( | real(wp), intent(inout) | psi_l_snow, |
| real(wp), intent(inout) | psi_s_snow, | ||
| real(wp), intent(inout) | psi_g_snow, | ||
| real(wp), intent(inout) | thick_snow, | ||
| real(wp), intent(inout) | S_abs_snow, | ||
| real(wp), intent(inout) | H_abs_snow, | ||
| real(wp), intent(inout) | m_snow, | ||
| real(wp), intent(inout) | T_snow, | ||
| real(wp), intent(inout) | m, | ||
| real(wp), intent(inout) | thick, | ||
| real(wp), intent(inout) | H_abs | ||
| ) |
Subroutine for calculating snow thermodynamics.
Behaves similar to mushy layer sea ice. Important differences are:
| [in,out] | h_abs | Top ice layer variables |
| subroutine, public mo_snow::snow_thermo_meltwater | ( | real(wp), intent(inout) | psi_l_snow, |
| real(wp), intent(inout) | psi_s_snow, | ||
| real(wp), intent(inout) | psi_g_snow, | ||
| real(wp), intent(inout) | thick_snow, | ||
| real(wp), intent(inout) | S_abs_snow, | ||
| real(wp), intent(inout) | H_abs_snow, | ||
| real(wp), intent(inout) | m_snow, | ||
| real(wp), intent(inout) | T_snow, | ||
| real(wp), intent(inout) | m, | ||
| real(wp), intent(inout) | thick, | ||
| real(wp), intent(inout) | H_abs, | ||
| real(wp), intent(inout) | melt_thick_snow | ||
| ) |
Subroutine for calculating snow thermodynamics.
most of the physics are taken from snow_thermo() based on lab observations: parts of the snow meltwater percolate directly into the ice
| [in,out] | h_abs | Top ice layer variables |
| subroutine, public mo_snow::sub_fl_q_0_snow | ( | real(wp), intent(in) | m_snow, |
| real(wp), intent(in) | thick_snow, | ||
| real(wp), intent(in) | T_snow, | ||
| real(wp), intent(in) | T_bound, | ||
| real(wp), intent(out) | fl_Q | ||
| ) |
Determines conductive Heat between snow layer and upper boundary layer. A limiting factor is added to increase stability of layers thinner then thick_min.
| [in] | t_bound | T_bound temperature of boundary layer |
| subroutine, public mo_snow::sub_fl_q_0_snow_thin | ( | real(wp), intent(in) | m_snow, |
| real(wp), intent(in) | thick_snow, | ||
| real(wp), intent(in) | T_snow, | ||
| real(wp), intent(in) | psi_s, | ||
| real(wp), intent(in) | psi_l, | ||
| real(wp), intent(in) | psi_g, | ||
| real(wp), intent(in) | thick, | ||
| real(wp), intent(in) | T_bound, | ||
| real(wp), intent(out) | fl_Q_snow | ||
| ) |
Determines conductive Heat flux for combined top ice and snow layer.
When thick_snow<thick_min.
| subroutine, public mo_snow::sub_fl_q_snow | ( | real(wp), intent(in) | m_snow, |
| real(wp), intent(in) | thick_snow, | ||
| real(wp), intent(in) | T_snow, | ||
| real(wp), intent(in) | psi_s_2, | ||
| real(wp), intent(in) | psi_l_2, | ||
| real(wp), intent(in) | psi_g_2, | ||
| real(wp), intent(in) | thick_2, | ||
| real(wp), intent(in) | T_2, | ||
| real(wp), intent(out) | fl_Q | ||
| ) |
Determines conductive Heat flux between Snow and top ice layer.
Standard approach.
1.8.11