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.