SNOWPACK 20241221.26c8720
SurfaceFluxes Class Reference

#include <DataClasses.h>

Public Types

enum  SN_MASS_CHANGES {
  MS_TOTALMASS , MS_SWE , MS_WATER , MS_WATER_SOIL ,
  MS_ICE_SOIL , MS_HNW , MS_RAIN , MS_WIND ,
  MS_EVAPORATION , MS_SUBLIMATION , MS_SNOWPACK_RUNOFF , MS_SURFACE_MASS_FLUX ,
  MS_SOIL_RUNOFF , MS_FLOODING , MS_ICEBASE_MELTING_FREEZING , N_MASS_CHANGES
}
 The different types of mass fluxes: Mass fluxes in kg m-2
Rates in kg m-2 h-1 (MS_HNW, MS_RAIN and MS_WIND) More...
 

Public Member Functions

const std::string toString () const
 
 SurfaceFluxes ()
 
void reset (const bool &cumsum_mass)
 
void compSnowSoilHeatFlux (const SnowStation &Xdata)
 Compute ground heat flux at soil/snow boundary. More...
 
void collectSurfaceFluxes (const BoundCond &Bdata, SnowStation &Xdata, const CurrentMeteo &Mdata)
 Assign surface data from SnowStation and BoundCond to SurfaceFluxes. More...
 
void multiplyFluxes (const double &factor)
 If multiple surface fluxes have been summed over multiple time steps, the fluxes then need to be averaged by the number of steps. The albedos are also averaged in this method. More...
 

Public Attributes

double lw_in
 Energy fluxes: Energy change of snowpack in kJ m-2 (dIntEnergy)
Fluxes in W m-2. More...
 
double lw_out
 outgoing longwave radiation More...
 
double lw_net
 net longwave radiation More...
 
double qs
 sensible heat More...
 
double ql
 latent heat More...
 
double hoar
 mass of surface hoar formed or sublimated More...
 
double qr
 rain energy More...
 
double qg
 geothermal heat flux or heat flux at lower boundary More...
 
double qg0
 ground heat flux at soil-snow interface More...
 
double sw_hor
 incoming global shortwave radiation on horizontal surface More...
 
double sw_in
 incoming global shortwave radiation; on slopes: projected More...
 
double sw_out
 reflected shortwave radiation More...
 
double qw
 net shortwave radiation at the surface (absorbed within the snowpack) More...
 
double sw_dir
 incoming direct shortwave radiation; on slopes: projected More...
 
double sw_diff
 incoming diffuse shortwave radiation More...
 
double pAlbedo
 parameterized Albedo (used for OUTPUT only) More...
 
double mAlbedo
 measured Albedo (used for OUTPUT only) More...
 
double dIntEnergy
 Internal energy change in J m-2 in snowpack (used for OUTPUT only) More...
 
double dIntEnergySoil
 Internal energy change in J m-2 in soil (used for OUTPUT only) More...
 
double meltFreezeEnergy
 Melt freeze part of internal energy change in J m-2 in snowpack (used for OUTPUT only) More...
 
double meltFreezeEnergySoil
 Melt freeze part of internal energy change in J m-2 in soil (used for OUTPUT only) More...
 
double drift
 Other surface data: More...
 
std::vector< double > mass
 Total mass of snowpack PLUS different amounts of total mass change, sublimation, runoff, erosion, etc. Basically the mass which crosses the surface. More...
 
std::vector< double > load
 Total load (kg m-2) in water runoff from solutes like nitrate. More...
 
double dhs_corr
 operational mode only: snow depth correction in case of squeezing or blow-up (m) More...
 
double cRho_hn
 Computed new snow density (kg m-3) More...
 
double mRho_hn
 Measured new snow density (kg m-3) More...
 

Friends

std::ostream & operator<< (std::ostream &os, const SurfaceFluxes &data)
 
std::istream & operator>> (std::istream &is, SurfaceFluxes &data)
 

Member Enumeration Documentation

◆ SN_MASS_CHANGES

The different types of mass fluxes: Mass fluxes in kg m-2
Rates in kg m-2 h-1 (MS_HNW, MS_RAIN and MS_WIND)

Enumerator
MS_TOTALMASS 

This of course is the total mass of the snowpack at the present time.

MS_SWE 

This too, of course, but summing rho*L.

MS_WATER 

The total amount of water in the snowpack at the present time.

MS_WATER_SOIL 

The total amount of water in the soil at the present time.

MS_ICE_SOIL 

The total amount of ice in the soil at the present time.

MS_HNW 

Solid precipitation rate.

MS_RAIN 

Rain rate.

MS_WIND 

Mass loss rate due to wind erosion.

MS_EVAPORATION 

The mass loss or gain of the top element due to water evaporating.

MS_SUBLIMATION 

The mass loss or gain of the top element due to snow (ice) sublimating.

MS_SNOWPACK_RUNOFF 

The mass loss of snowpack from snow melt due to water transport (virtual lysimeter)

MS_SURFACE_MASS_FLUX 

The total mass loss of snowpack due to water transport (virtual lysimeter)

MS_SOIL_RUNOFF 

Equivalent to MS_SNOWPACK_RUNOFF but at bottom soil node.

MS_FLOODING 

The mass gain due to adding ocean water to snow- seaice by flodding process.

MS_ICEBASE_MELTING_FREEZING 

The mass gain/loss of the ice base due to melting-freezing.

N_MASS_CHANGES 

Total number of different mass change types.

Constructor & Destructor Documentation

◆ SurfaceFluxes()

SurfaceFluxes::SurfaceFluxes ( )

Member Function Documentation

◆ collectSurfaceFluxes()

void SurfaceFluxes::collectSurfaceFluxes ( const BoundCond Bdata,
SnowStation Xdata,
const CurrentMeteo Mdata 
)

Assign surface data from SnowStation and BoundCond to SurfaceFluxes.

Parameters
Bdata
Xdata
Mdata

◆ compSnowSoilHeatFlux()

void SurfaceFluxes::compSnowSoilHeatFlux ( const SnowStation Xdata)

Compute ground heat flux at soil/snow boundary.

Parameters
Xdata

◆ multiplyFluxes()

void SurfaceFluxes::multiplyFluxes ( const double &  factor)

If multiple surface fluxes have been summed over multiple time steps, the fluxes then need to be averaged by the number of steps. The albedos are also averaged in this method.

Parameters
factorAveraging factor (for example, 1/Nsteps)

◆ reset()

void SurfaceFluxes::reset ( const bool &  cumsum_mass)

◆ toString()

const std::string SurfaceFluxes::toString ( ) const

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const SurfaceFluxes data 
)
friend

◆ operator>>

std::istream & operator>> ( std::istream &  is,
SurfaceFluxes data 
)
friend

Member Data Documentation

◆ cRho_hn

double SurfaceFluxes::cRho_hn

Computed new snow density (kg m-3)

◆ dhs_corr

double SurfaceFluxes::dhs_corr

operational mode only: snow depth correction in case of squeezing or blow-up (m)

◆ dIntEnergy

double SurfaceFluxes::dIntEnergy

Internal energy change in J m-2 in snowpack (used for OUTPUT only)

◆ dIntEnergySoil

double SurfaceFluxes::dIntEnergySoil

Internal energy change in J m-2 in soil (used for OUTPUT only)

◆ drift

double SurfaceFluxes::drift

Other surface data:

the surface flux of drifting snow in kg m-1 s-1

◆ hoar

double SurfaceFluxes::hoar

mass of surface hoar formed or sublimated

◆ load

std::vector<double> SurfaceFluxes::load

Total load (kg m-2) in water runoff from solutes like nitrate.

◆ lw_in

double SurfaceFluxes::lw_in

Energy fluxes: Energy change of snowpack in kJ m-2 (dIntEnergy)
Fluxes in W m-2.

incoming longwave radiation

◆ lw_net

double SurfaceFluxes::lw_net

net longwave radiation

◆ lw_out

double SurfaceFluxes::lw_out

outgoing longwave radiation

◆ mAlbedo

double SurfaceFluxes::mAlbedo

measured Albedo (used for OUTPUT only)

◆ mass

std::vector<double> SurfaceFluxes::mass

Total mass of snowpack PLUS different amounts of total mass change, sublimation, runoff, erosion, etc. Basically the mass which crosses the surface.

◆ meltFreezeEnergy

double SurfaceFluxes::meltFreezeEnergy

Melt freeze part of internal energy change in J m-2 in snowpack (used for OUTPUT only)

◆ meltFreezeEnergySoil

double SurfaceFluxes::meltFreezeEnergySoil

Melt freeze part of internal energy change in J m-2 in soil (used for OUTPUT only)

◆ mRho_hn

double SurfaceFluxes::mRho_hn

Measured new snow density (kg m-3)

◆ pAlbedo

double SurfaceFluxes::pAlbedo

parameterized Albedo (used for OUTPUT only)

◆ qg

double SurfaceFluxes::qg

geothermal heat flux or heat flux at lower boundary

◆ qg0

double SurfaceFluxes::qg0

ground heat flux at soil-snow interface

◆ ql

double SurfaceFluxes::ql

latent heat

◆ qr

double SurfaceFluxes::qr

rain energy

◆ qs

double SurfaceFluxes::qs

sensible heat

◆ qw

double SurfaceFluxes::qw

net shortwave radiation at the surface (absorbed within the snowpack)

◆ sw_diff

double SurfaceFluxes::sw_diff

incoming diffuse shortwave radiation

◆ sw_dir

double SurfaceFluxes::sw_dir

incoming direct shortwave radiation; on slopes: projected

◆ sw_hor

double SurfaceFluxes::sw_hor

incoming global shortwave radiation on horizontal surface

◆ sw_in

double SurfaceFluxes::sw_in

incoming global shortwave radiation; on slopes: projected

◆ sw_out

double SurfaceFluxes::sw_out

reflected shortwave radiation


The documentation for this class was generated from the following files: