Class snobal
Defined in File snobal.hpp
Inheritance Relationships
Base Type
public module_base
(Class module_base)
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 aboveBlowing 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)