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:

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

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

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

  • Melt rate “melt_rate” \([mm \cdot dt^{-1}]\)

  • Surface runoff/drainage, includes rain on snow percolation “roff” \([mm \cdot dt^{-1}]\)

  • Mean snow depth (slope-normal) “snowdepthavg” [m]

  • Mean snow depth (vertical projection) “snowdepthavg_vert” [m]

  • Snow water equivalent “swe” [mm]

  • Instantaneous sublimation “subl” \([mm \cdot dt^{-1}]\)

  • Cumulative sublimation “sum_snowpack_subl” [mm]

  • Snow albedo “snow_albedo” [-]

  • Number of snow layers “Nsnow” [-]

  • Snow liquid water content layer 0 “Sliq[0]” [mm]

  • Snow liquid water content layer 1 “Sliq[1]” [mm]

  • Snow liquid water content layer 2 “Sliq[2]” [mm]

  • Snow temperature layer 0 “Tsnow[0]” [K]

  • Snow temperature layer 1 “Tsnow[1]” [K]

  • Snow temperature layer 2 “Tsnow[2]” [K]

  • Soil temperature layer 0 “Tsoil[0]” [K]

  • Soil temperature layer 1 “Tsoil[1]” [K]

  • Soil temperature layer 2 “Tsoil[2]” [K]

  • Soil temperature layer 3 “Tsoil[3]” [K]

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

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)#