Alpine3D 20240304.a68b157

This module calls the Snowpack energy balance model on each relevant cell of the domain (see Distributed 1D soil/snow/canopy column). The cells that are excluded are the following:

  • cells whose altitude is nodata (in the dem);
  • cells whose land cover is undefined/nodata (in the lus);
  • cells marked as "water body".

During a parallel simulation, it is often more efficient (but not always possible) to let each node perform its I/O on its local disk instead of requesting the data from another single node. This is enabled with the LOCAL_IO key in the [General] section (default: true).

Several corrections are applied on glaciated pixels: the albedo of such pixels is reset to a fixed glacier albedo when no snow is present and when the air temperature is higher than 5°C the atmospheric stability is forced to MONIN_OBUKHOV. It is also possible to apply an air temperature correction simulating the effect of katabatic flows by setting GLACIER_KATABATIC_FLOW to true in the [ALPINE3D] section (this is still an experimental feature).

Several types of outputs are supported: gridded outputs and full snowpack stratigraphy.

Gridded outputs

The gridded outputs are written out for all requested parameters every GRIDS_DAYS_BETWEEN (in days), starting at GRIDS_START (in days, 0 being noon). The available parameters are provided in SnGrids::Parameters and should be written as a space delimited list of parameters using the GRIDS_PARAMETERS key (in the [Output] section).

It is possible to mask the glaciated areas (in order to keep a relevant scaling on snow water equivalent or similar parameters) either statically (performed once and for all at the begining of the run) or dynamically (performed at every time step). The criteria to decide if a pixel is glaciated is defined in Snowpack, in SnowStation::isGlacier(). This is currently defined as more than 2 meters of pure ice in the whole snowpack. The keys to enable glaciers masking and dynamic masking are MASK_GLACIERS and MASK_DYNAMIC in the [Output] section.

Finally, the soil temperature at multiple given depths can be written out simply by setting the SOIL_TEMPERATURE_DEPTHS key in the [Output] section to the chosen depths (in meters). In this case, there is no need to declare a TSOILx parameter for the GRIDS_PARAMETERS key (it is currently limited to at most 5 different depths but could be increased in the future). It is possible to do the same in the snow at a given depth by setting the SNOW_TEMPERATURE_DEPTH key, or the average snow temperature from the surface until a given depth (SNOW_AVG_TEMPERATURE_DEPTH key) or the snow density from the surface until a given depth (SNOW_AVG_DENSITY_DEPTH key). When averaging either temperature or density, if the snow height is less than the requested depth, the average is performed on the whole snow pack.

A3D_VIEW = TRUE ;naming scheme compatible with the viewer of Alpine3D
GRID2DPATH = ../output
SOIL_TEMPERATURE_DEPTHS = 0.1 0.5 1.5 ;output soil temperatures at 0.1m, 0.5m and 1.5m - leave this key out to skip this output

Writing new grids out

If the parameters you want to write out do not already exist in SnGrids::Parameters, then you have a few extra steps to perform:

  1. add the parameter in SnGrids::Parameters as well as its string representation in SnGrids::initStaticData()
  2. add the proper code (similarly as for the already existing parameters) in SnowpackInterfaceWorker::fillGrids() (in some rare cases, this must be done in SnowpackInterface::getGrid() ie for parameters that only exist in SnowpackInterface);
  3. after recompiling, it will be possible to specify the newly created grid as explained in Gridded outputs.

Several Snowpack objects are available for the current point (and documented in Snowpack itself in the Dataclasses.h file):

  • meteoPixel is an object of type CurrentMeteo;
  • snowPixel is an object of type SnowStation (this also contains CanopyData, NodeData and ElementData);
  • surfaceFlux is an object of type SurfaceFluxes;

Snow stratigraphy

Full snowpack stratigraphy outputs are provided at specific Points Of Interest, as defined with the POI key in the [Input] section. These outputs contain time series of snow profiles and fluxes as well as meteorological forcing at these points, allowing to re-run these points manually in the Snowpack model. These outputs are written in the path pointed to by METEOPATH in the [Ouput] section. The time resolution is controlled similarly to standard Snowpack runs with the TS_WRITE and PROF_WRITE groups of keys (see Snowpack documentation).

POIFILE = ../input/surface-grids/poi.pts
TS_START = 0.0
METEOPATH = ../output