Class FSM

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class FSM : public module_base

Flexible Snow Model (FSM) 2.0

“The Flexible Snow Model (FSM2) is a multi-physics energy balance model of snow accumulation and melt,

extending the Factorial Snow Model (Essery, 2015) with additional physics, driving and output options.”

This version of FSM has been customized to have the sophisticated process parametrizations selected in every case, except atmospheric stability corrections.

Depends:

  • Solar elevation “solar_el” [degrees]

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

  • Relative Humidy “rh” [%]

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

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

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

  • Wind speed 2 m above surface “U_2m_above_srf” [ \( m \cdot s^{-1}\) ]

  • Incoming shortwave radiation, direct beam “iswr_direct” \([W \cdot m^{-2}\)]

  • Incoming shortwave radiation, diffuse beam “iswr_diffuse” \([W \cdot m^{-2}\)]

Provides:

  • Snow Water Equivalent “swe” [mm]

  • Snow depth “snowdepthavg” [m]

  • Snow depth slope corrected “snowdepthavg_vert” [m]

Optional:

Sub-canopy forcing:

  • Subcanopy incoming shortwave radiation “iswr_subcanopy” \([W \cdot m^{-2}\)]

  • Subcanopy relative humidity “rh_subcanopy” [%]

  • Subcanopy air temperatue “ta_subcanopy” [ \( {}^\circ C \)]

  • Subcanopy incoming longwave radidation “ilwr_subcanopy” \([W \cdot m^{-2}\)]

References:

Warning

Snow transport and vegetation characteristics remain a TODO

Public Functions

FSM(config_file cfg)
~FSM()
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)