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