Class snobal

Inheritance Relationships

Base Type

Class Documentation

class snobal : public module_base

Snobal is a physically-based snowpack model that approximates the snowpack with two layers. The surface-active layer has a fixed thickness of 0.1 m and is used to estimate surface temperature for outgoing longwave radiation and turbulent heat fluxes. The second lower layer represents the remaining snowpack. For each layer, Snobal simulates the evolution of the snow water equivalent, temperature, density, cold content, and liquid water content. This version of Snobal includes an improved algorithm for snow compaction that accounts for bulk compaction and temperature metamorphism (Hedrick et al., 2018).

Depends:

  • Incoming shortwave radiation, all beams “iswr” [ \( W \cdot m^{-2} \) ]

  • Incomging longwave radiation “ilwr” [ \( W \cdot m^{-2} \) ]

  • Relative humidity “rh” [%]

  • Air temperature “t” [ \( {}^\circ C \)]

  • Windspeed at 2m “U_2m_above_srf” [ \( m \cdot s^{-1} \)]

  • Precipitation “p” [ \( mm \cdot dt^{-1} \)]

  • Precipitation snow fraction “frac_precip_snow” [-]

  • Snow albedo “snow_albedo” [-]

Optional:

  • Optionally, depend on the _subcanopy variants of the above

  • Blowing snow erosion/deposition mass “drift_mass” [mm]

  • Ground temperature “T_g” [ \( {}^\circ C \)]

  • Change in snow mass due to avalanching “delta_avalanche_mass” [mm]

  • Change in snow depth due to avalanching “delta_avalanche_snowdepth” [mm]

Provides:

  • Snow water equivalent “swe” [mm]

  • Interval snowmelt “snowmelt_int” [mm]

  • Net allwave radiation “R_n” [ \( W \cdot m^{-2} \) ]

  • Sensible heat flux “H” [ \( W \cdot m^{-2} \) ]

  • Latent heat flux “E” [ \( W \cdot m^{-2} \) ]

  • Ground heat flux “G” [ \( W \cdot m^{-2} \) ]

  • Advected heat from precipitation “M” [ \( W \cdot m^{-2} \) ]

  • Change in internal energy “dQ” [ \( W \cdot m^{-2} \) ]

  • Cold content of entire snowpack “cc” [ \( J \cdot m^{-2} \) ]

  • Bulk snow temperature “T_s” [K]

  • Surface exchange layer temperature “T_s_0” [K]

  • Lower layer temperature “T_s_l” [K]

  • Was an iteration error hit “dead”. Diagnostic, don’t use. [-]

  • Net shortwave radiation at the surface. Diagnostic. “iswr_out” [ \( W \cdot m^{-2} \) ]

  • Binary is the snow isothermal “isothermal” [0,1]

  • Outgoing longwave radiation “ilwr_out” [ \( W \cdot m^{-2} \) ]

  • Total snowpack runoff “sum_snowpack_runoff”

  • Total snowpack sublimation “sum_snowpack_subl”

  • Total precipitation onto the snowpack. Diagnostic. “sum_snowpack_pcp” [mm]

  • Total snowpack melt “sum_melt” [mm]

  • Snowdepth “snowdepthavg” [m]

  • Snowdepth in the vertical direction (cosine corrected) “snowdepthavg_vert” [m]

Configuration:

{
   "drift_density": 300,
   "const_T_g": -4.0,
   "use_slope_SWE": true,
   "param_snow_compaction": 1,
   "max_h2o_vol":0.0001,
   "kt_wetsand": 0.08,
   "max_active_layer": 0.1,
   "z0":0.001,
   "z_T":2.6,
   "z_u":2.96,
   "z_g":0.1,
}
drift_density

Density of snow that is added from drift events

const_T_g

Constant ground temperature

use_slope_SWE

Use slope corrected snowdepth for compaction. I.e., parallel to gravity force.

param_snow_compaction

Set to 1 to use new Hedrick, et al parameterization for snow compaction. 0 for origianl Snobal.

max_h2o_vol

Maximum volumetric water content in the snow. Tends to be required to be set quite low.

kt_wetsand

Thermal conductivity of wet sand for G flux

max_active_layer

Thickness of active layer

z0

Rouighness length

z_T

Height of air temperature

z_u

Height of wind measurement

z_g

Depth of ground temperature measurement

References:

  • Marks, D., Domingo, J., Susong, D., Link, T., Garen, D. (1999). A spatially distributed energy balance snowmelt model for application in mountain basins Hydrological Processes 13(12-13), 1935-1959.

  • Hedrick, A., Marks, D., Havens, S., Robertson, M., Johnson, M., Sandusky, M., Marshall, H., Kormos, P., Bormann, K., Painter, T. (2018). Direct Insertion of NASA Airborne Snow Observatory‐Derived Snow Depth Time Series Into the iSnobal Energy Balance Snow Model Water Resources Research 54(10), 8045-8063. https://dx.doi.org/10.1029/2018wr023190

Default:

300 \(kg \cdot m^3\)

Default:

-4.0 \({}^\circ C\)

Default:

true

Default:

1

Default:

0.0001

Default:

\(0.08 W \cdot m^{-2}\)

Default:

0.1 m

Default:

0.001 m

Default:

2.6 m

Default:

2 m

Default:

0.1

Public Functions

snobal(config_file cfg)
~snobal()
virtual void run(mesh_elem &face)

Needs to be implemented by each data parallel module. This will be called and executed for each timestep

Parameters:
  • face – The terrain element (triangle) to be worked upon for an element parallel domain

  • global_param – A pointer to the shared global paramter space with domain-wide paramters

virtual void init(mesh &domain)
virtual void checkpoint(mesh &domain, netcdf &chkpt)

Checkpoint (save state) the current module. By default this errors out if the modules does not support checkpointing.

Parameters:
  • domain

  • data

virtual void load_checkpoint(mesh &domain, netcdf &chkpt)

Public Members

double drift_density
double const_T_g
bool use_slope_SWE