Skip to content

Modeling wind effects in SNOWPACK

Bert Kruyt, NVE, October 2025

Introduction

This document describes some of the possibilities to simulate the effect of wind on snow in the SNOWPACK model. Options available as namelist (.ini) settings are written in CAPITAL CASE. Some of the features described here ( SNOW_EROSION=REDEPOSIT and SNOW_REDISTRIBUTION=ADVANCED) are currently only implemented on the branch NVE of the SLF snowpack repository. It is envisioned that this will merge into the master branch at some point in the future.

1-D Simulations and virtual slopes

In this document, we will mainly concern ourselves with the standard, stand-alone application of SNOWPACK. In this application, simulations are run as 1D individual simulations, meaning there is no exchange of mass or information between simulations at different locations. Even if the forcing data comes from a gridded NWP model, the snowpack simulation does not know anything about the simulation run 'next door'. Note that there is a gridded version of SNOWPACK that is able to handle some 3D effects like snow-redistribution called Alpine3D.

Within a single, 1D SNOWPACK simulation, we do have the option to specify virtual slopes. Typically these are the four cardinal wind directions in addition to the main, flat field simulation, but a higher (or smaller) number of virtual slopes is also possible. It is common (but not mandatory) to give these virtual slopes an incline (typically 38 degrees), to simulate the differing effects of radiation and (described here) wind. The examples in this document assume 4 virtual slopes (N/E/W/S @ 38 deg) in addition to the main, flat simulation (nSlopes=5). But in principle the examples should work for any other number of virtual slopes.

virtual slopes inherit several properties from their main slope, the most notable being snowfall. Where appropriate, the effects of the virtual slope's incline is taken into account. For example, incoming radiation is projected onto the slope, and stability calculations also take into account the slope angle.

We can visually represent a SNOWPACK simulation with 4 virtual slopes (N-E-S-W @ 38 deg) in the following way:

Schematic representation of a SNOWPACK simulation with 4 virtual slopes
Fig 1: Schematic representation of a SNOWPACK simulation with 4 virtual slopes at 38 degrees. (picture courtesy of ? (get in touch to claim credits))

Wind affects the snow in our SNOWPACK simulations:

  • During snowfall:
    • New snow density
    • Microstructure parameters dendricity and sphericity (dd & sp)
  • After snowfall:
    • Densification at the same slope, either through ENHANCED_WIND_SLAB (simple, upper 7 cm only ) or SNOW_EROSION=REDEPOSIT (more sophisticated)
    • Redistribution of snow between virtual slopes through SNOW_REDISTRIBUTION

New Snow Density

The namelist setting HN_DENSITY_PARAMETERIZATION controls the density of new snow. Most of the schemes available here include a term for wind speed in the density parameterization. As can be seen in the figure below however, there are large differences between the parameterizations. It is also relevant to note that some parameterizations are based on field data that did not include periods of high wind, and as a consequence these parameterizations have a hard upper limit hardcoded in SNOWPACK. The schemes LEHNING_OLD/NEW, BELLAIRE, ZWART, JORDY, PAHAUT and NIED are capped at 250 kg/m3, while VANKAMPENHOUT and KRAMPE have a limit of 450 kg/m3 for new snow.

New snow density parameterizations Fig 2: A few selected new snow density parameterizations available in SNOWPACK. Red dotted lines indicate the measurement data the parameterization was based upon (if known).

Microstructure: dendricity and sphericity

Grain shape in SNOWPACK is governed by the two parameters dendricity (dd) and sphericity (sp). Unfortunately, these are somewhat inconsistently tied to the HN_DENSITY_PARAMETERIZATION, allowing the user little flexibility over their settings. Figure 3 below attempts to show some of the differences, and includes the parameterization from CROCUS for comparison.
The HN_DENSITY_PARAMETERIZATION options LEHNING_NEW, BELLAIRE, use a step function for dd & sp (new_snow_dd_wind/new_snow_sp_wind), whereas ZWART has a power function for dd. For the other hn_density_parameterizations there is a difference between the git branches NVE and master, where on the NVE branch the other hn_density_parameterizations default to the heuristic parameterization (yellow dotted line in fig below), while on the master branch, the default is the step function described above.

New snow dendricity and sphericity Fig 3: Dendricity and Sphericity of new snow, as function of wind speed during snowfall (or redeposition).

Microstructure: grain size and bond radius.

The new snow grain size (rg) can be set in the namelist. Only for the hn_density_parameterization JORDY is the grain and bond size adjusted for wind speed. In all the other cases the namelist setting is used. There is a wind speed- and temperature-dependent parameterization available in the code, but it is currently turned off.

ENHANCED_WIND_SLAB

TRUE/FALSE(default)
The namelist setting ENHANCED_WIND_SLAB=TRUE enhances the basic strain rate in the upper 7 cm of the snowpack. See Eqs. 2 and 3 in Groot Zwaaftink et al. (2013). The idea behind this feature is to simulate wind compaction in the upper layers of the snowpack. This is a simplified representation of the process simulated by SNOW_EROSION=REDEPOSIT (see below), and therefore it is suggested to use only one of these.

SNOW_EROSION

NONE(default)/HS_DRIVEN/REDEPOSIT/VIRTUAL/FREE
As the name suggests, SNOW_EROSION determines the erosion of snow through wind. If not NONE, the model calculates a variable ErosionMass, which depending on the setting is either removed from the snowpack (FREE/HS_DRIVEN), or redeposited on the same slope while increasing the density based on the wind speed (REDEPOSIT). This is thought to simulate the densification of snow through saltation. The REDEPOSIT scheme was originally developed for Antarctic simulations (Keenan et al. 2021, Wever et al 2023), where it is assumed that snow is added to the snow cover permanently only during periods of strong winds (so-called 'event-driven deposition'). Since this assumption is not valid for lower latitudes, some modifications were made w.r.t. the density parameterizations for this scheme. The new parameter DENSITY_REDEPOSIT selects the density scheme that is used for redeposit events. The default value remains the EVENT scheme for Antarctic simulations, which may lead to many small layers with high densities. Selecting 'Parameterized' for DENSITY_REDEPOSIT uses the same density scheme as for new snowfall (i.e. the one set under HN_DENSITY_PARAMETERIZATION). In case the user wants a different density scheme for redeposited snow than for new snow, DENSITY_REDEPOSIT can be set to a specific density scheme (i.e. LEHNING_OLD, LEHNING_NEW, JORDY, BELLAIRE, ZWART, PAHAUT, NIED, VANKAMPENHOUT or KRAMPE (under construction)).

redeposition
Fig 4: The process of erosion and redeposition of snow, leading to densification. Picture from Keenan et al. 2021.

Other settings

  • SNOW_EROSION=HS_DRIVEN requires measured snow height as input to the model. In this case erosion (at the main station) is determined from the difference between modelled and measured snow height.
  • SNOW_EROSION=FREE leads to unlimited erosion.
  • SNOW_EROSION=VIRTUAL does not remove mass from any slope, but calculates a virtual erosion, that can be used to determine the drift index.

SNOW_REDISTRIBUTION

NONE (default)/SIMPLE/ADVANCED
While SNOWPACK (in its default configuration) is a 1-D model and does not transfer mass between different simulations, there is the option to transfer mass between the windward and leeward virtual slopes 'within' one simulation. This feature is called SNOW_REDISTRIBUTION. The original implementation of this function uses the mass eroded at the windward slope, and deposits it at the lee slope with the original density, meaning no densification or slab formation takes place. Previously this was the only option, activated by setting SNOW_REDISTRIBUTION to TRUE. It is now available as SNOW_REDISTRIBUTION=SIMPLE.

The new advanced redistribution scheme builds on the snow_erosion=redeposit scheme, but rather than depositing the snow on the original slope, deposition occurs on the lee slope. It thus uses the same wind-dependent density parameterization DENSITY_REDEPOSIT

Interactions between SNOW_EROSION and SNOW_REDISTRIBUTION

Since both of these options use the ErosionMass, there is some interaction between these settings that is worth noting. The examples below assume a flatfield main station with 4 virtual slopes at 38 degrees.

  • Case: SNOW_EROSION=REDEPOSIT , SNOW_REDISTRIBUTION=NONE
    In this case erosion and redeposition occur on all slopes (virtual and main).
  • Case: SNOW_EROSION=NONE , SNOW_REDISTRIBUTION=SIMPLE/ADVANCED
    In this case only the windward slope is eroded, while the mass eroded there is redistributed to the lee slope.
  • Case: SNOW_EROSION=REDEPOSIT , SNOW_REDISTRIBUTION=SIMPLE/ADVANCED
    In this case Erosion occurs on all slopes except for the lee slope. The mass eroded at the windward slope is redeposited on the lee slope. The mass eroded at the main slope, and all vslopes that are not windward or leeward, is redeposited on the same slope.

These cases are illustrated in the figure below, for a timestep with wind coming from the north: Erosion settings Fig 5: Schematic representation of the different combinations of SNOW_EROSION and SNOW_REDISTRIBUTION.

Issues and Development Plans w.r.t. SNOW_EROSION and SNOW_REDISTRIBUTION

Although the methods described here have performed well in creating denser slabs, there is the potential downside that the predominant windward slope gets eroded too much. This is because all drifting snow is transported to the lee slope. In reality, part of the eroded mass - even on windward slopes - gets redeposited on the same slope during saltation, thereby increasing the density and stopping the erosion. Efforts are underway to split the eroded mass in a part that is redeposited and a part that is transported to the lee slope, based on wind speed characteristics. The challenge here is that we are lacking good measurements to base such a parameterization on. (Should you have a dataset available that can help with this, do get in touch with Bert Kruyt or Nander Wever).

DRIFT INDEX

The wind drift index, or drift index, is a diagnostic variable calculated from the drifting snow fluxes. The settings for SNOW_EROSION and SNOW_REDISTRIBUTION determine whether the index is calculated or not. The Drift Index represents a virtual wind slab deposition in cm/24h. To calculate this, a fixed deposition density is assumed. The default value is a somewhat unrealistic low value of 77 kg/m3, but in the new NVE version there is the option to overwrite this with the namelist setting WIND_SLAB_DENSITY. Wind slab densities are typically in the range of 200-400 kg/m3. Another change is that the drift index is now calculated separately for each virtual slope, whereas before all virtual slopes were added together. This modification allows the user to quickly visualize on which aspects wind slabs have been deposited. This requires SNOW_REDISTRIBUTION to be set to either SIMPLE or ADVANCED. Like before, the drift index at the main station is only calculated in case no virtual slopes are simulated, i.e. nSlopes=1, and requires SNOW_EROSION to be anything but NONE.