SNOWPACK 20240423.9b8fae6
Meteo Class Reference

#include <Meteo.h>

Public Types

enum  ATM_STABILITY {
  RICHARDSON , NEUTRAL , MO_LOG_LINEAR , MO_HOLTSLAG ,
  MO_STEARNS , MO_MICHLMAYR , MO_SCHLOEGL_UNI , MO_SCHLOEGL_MULTI ,
  MO_SCHLOEGL_MULTI_OFFSET
}
 

Public Member Functions

 Meteo (const SnowpackConfig &i_cfg)
 
 Meteo (const Meteo &mt)
 
Meteooperator= (const Meteo &mt)
 Assignement operator. More...
 
virtual ~Meteo ()
 
void compMeteo (CurrentMeteo &Mdata, SnowStation &Xdata, const bool runCanopyModel, const bool adjust_height_of_wind_value)
 
void compRadiation (const SnowStation &station, mio::SunObject &sun, SnowpackConfig &cfg, CurrentMeteo &Mdata)
 
void setStability (const ATM_STABILITY &i_stability)
 set the atmosphere stability to a given value More...
 
ATM_STABILITY getStability () const
 get the atmosphere stability More...
 

Static Public Member Functions

static void projectPrecipitations (const double &SlopeAngle, double &precips, double &hs)
 Projects precipitations and snow height perpendicular to slope. More...
 
static bool compHSrate (CurrentMeteo &Mdata, const SnowStation &vecXdata, const double &hs_a3hl6)
 Compute measured snow depth change rate to detect growing grass (canopy) vs. snowfall on bare ground. More...
 
static void radiationOnSlope (const SnowStation &sector, const mio::SunObject &sun, CurrentMeteo &Mdata, SurfaceFluxes &surfFluxes)
 
static ATM_STABILITY getStability (const std::string &stability_model)
 Parse the given string an return the matching atmospheric stability algorithm. More...
 

Member Enumeration Documentation

◆ ATM_STABILITY

Enumerator
RICHARDSON 

Simplified Richardson number stability correction.

NEUTRAL 

Assume neutral stratification.

MO_LOG_LINEAR 

Simple log-linear model.

MO_HOLTSLAG 

Holtslag and DeBruin (1988) prepared from Ed Andreas.

MO_STEARNS 

Stearns C. and Weidner G., "sensible and latent heat flux estimates in antarctica", Antarctic meteorology and climatology: studies based on automatic weather stations, Antarctic Research Series, 61, pp 190–138, 1993.

MO_MICHLMAYR 

Stearns & Weidner, 1993 modified by Michlmayr, 2008.

MO_SCHLOEGL_UNI 

Schloegl univariate, see Schlögl et al. "How do stability corrections perfom over snow in the stable boundary layer?", Boundary-Layer Meteorol., in review, 2016.

MO_SCHLOEGL_MULTI 

Schloegl multivariate without offset.

MO_SCHLOEGL_MULTI_OFFSET 

Schloegl multivariate with offset.

Constructor & Destructor Documentation

◆ Meteo() [1/2]

Meteo::Meteo ( const SnowpackConfig i_cfg)

◆ Meteo() [2/2]

Meteo::Meteo ( const Meteo mt)

◆ ~Meteo()

Meteo::~Meteo ( )
virtual

Member Function Documentation

◆ compHSrate()

bool Meteo::compHSrate ( CurrentMeteo Mdata,
const SnowStation Xdata,
const double &  hs_a3hl6 
)
static

Compute measured snow depth change rate to detect growing grass (canopy) vs. snowfall on bare ground.

Parameters
Mdata
Xdata
hs_a3hl6snow depth average from t_now - 6 h to t_now - 3 h
Returns
whether grass should be detected

◆ compMeteo()

void Meteo::compMeteo ( CurrentMeteo Mdata,
SnowStation Xdata,
const bool  runCanopyModel,
const bool  adjust_height_of_wind_value 
)
  • with CANOPY set: In case of an existing canopy, call canopy routine, which computes precipitation, radiation, friction velocity and reference temperature for the surface below the canopy. Note that solar radiation may change also in dg_cn_Canopy().
    • Mdata->iswr incoming global solar radiation (direct + diffuse), adapted to canopy
    • Mdata->rswr reflected global solar radiation (diffuse), adapted to canopy
    • Mdata->ustar friction velocity, adapted to canopy
    • Mdata->z0 roughness length, adapted to canopy
    • Mdata->ea atmospheric emissivity below canopy, i.e., to give correct longwave radiation as function of air temperature, however modified to include effect of canopy
  • without canopy (CANOPY is not set): For bare soil as well as snowed-in canopy or some other problems, compute the roughness length z0, the friction velocity ustar as well as the atmospheric stability correction psi_s for scalar heat fluxes
    • Mdata->ustar friction velocity
    • Mdata->z0 roughness length
    • psi_s stability correction for scalar heat fluxes
      Parameters
      Mdatameteorological forcing
      Xdatasnow profile data
      runCanopyModelshould the canopy module also be called?
      adjust_height_of_wind_valueshould the height of wind values be adjusted?

◆ compRadiation()

void Meteo::compRadiation ( const SnowStation station,
mio::SunObject &  sun,
SnowpackConfig cfg,
CurrentMeteo Mdata 
)

◆ getStability() [1/2]

Meteo::ATM_STABILITY Meteo::getStability ( ) const

get the atmosphere stability

Returns
stability model (see possible values in constructor)

◆ getStability() [2/2]

Meteo::ATM_STABILITY Meteo::getStability ( const std::string &  stability_model)
static

Parse the given string an return the matching atmospheric stability algorithm.

Parameters
[in]stability_modelatmospheric stability model specification
Returns
stability model

◆ operator=()

Meteo & Meteo::operator= ( const Meteo mt)

Assignement operator.

◆ projectPrecipitations()

void Meteo::projectPrecipitations ( const double &  slope_angle,
double &  precips,
double &  hs 
)
static

Projects precipitations and snow height perpendicular to slope.

Parameters
hsHeight of snow (m)
precipsprecipitations (kg m-2)
slope_angle(deg)

◆ radiationOnSlope()

void Meteo::radiationOnSlope ( const SnowStation sector,
const mio::SunObject &  sun,
CurrentMeteo Mdata,
SurfaceFluxes surfFluxes 
)
static

◆ setStability()

void Meteo::setStability ( const ATM_STABILITY i_stability)

set the atmosphere stability to a given value

Parameters
i_stabilitystability model (see possible values in constructor)

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