Class Richard_albedo#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Type#

Class Documentation#

class Richard_albedo : public module_base#

Slow albedo changes for cold snow are neglected, but an exponential decay to an asymptotic minimum of 0.5 with an adjustable time constant applied to melting snow.

Somewhat mis-named as although this is detailed in Essery and Etchevers (2004), the original source is from CLASS detailed in Verseghy, et al (1991).

Depends:

  • Snow Water Equivalent “swe” [mm]

  • Snow surface temperature “T_s_0” [ \( K \) ]

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

Provides:

  • Snow albedo “snow_albedo” [0-1]

  • True if a melting snow albedo is being used “melting_albedo” [0 or 1]

Configuration:

{
   "albedo_min": 0.5,
   "albedo_max": 0.84,
   "a1": 1.08e7,
   "a2": 7.2e5,
   "min_swe_refresh": 1.0,
   "init_albedo_snow": 0.85,
   "init_albedo_bare": 0.17
}
albedo_min#

Minimum snow albedo

albedo_max#

Maximum snow albedo

a1#

Cold snow decay constant

a2#

Melting snow decay constant

init_albedo_snow#

Initial fresh snow albedo

init_albedo_bare#

Bare ground albedo

References:

  • Equation 4 and 5

  • Essery, R., and P. Etchevers (2004), Parameter sensitivity in simulations of snowmelt, J. Geophys. Res., 109(D20111), 1–15, doi:10.1029/2004JD005036.

  • Verseghy, D. L.: Class – A Canadian land surface scheme for GCMS, I. Soil model, Int. J. Climatol., 11, 111–133, https://doi.org/10.1002/joc.3370110202, 1991

Type:

double

Default:

0.5

Type:

double

Default:

0.84

Type:

double

Default:

1.08e7 s

Type:

double

Default:

7.2e5 s

Type:

double

Default:

0.85

Type:

double

Default:

0.17

Public Functions

Richard_albedo(config_file cfg)#
~Richard_albedo()#
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 amin#
double amax#
double a1#
double a2#
double albedo_snow#
double albedo_bare#
double min_swe_refresh#
struct data : public face_info#

Public Members

double albedo#