This is the changelog for Snowpack release 3.2.0
Configuration keys changes
First, several configuration keys have been changed (and potentially moved to another section):
- Renamed TRESH_DT_AIRSNOW to THRESH_DTEMP_AIR_SNOW
- Renamed INCOMING_LONGWAVE to MEAS_INCOMING_LONGWAVE
- Disentangle HN_DENSITY and HN_DENSITY_MODEL to HN_DENSITY, HN_DENSITY_PARAMETERIZATION and HN_DENSITY_FIXEDVALUE
- SW_ABSORPTION_SCHEME (formerly MULTISTREAM); FORCE_SW_MODE (formerly SW_MODE_CHANGE), and HARDNESS_PARAMETERIZATION (formerly HARDNESS_MODEL)
- SW_MODE is now a string and has a value of either INCOMING, REFLECTED, or BOTH
- The NEUTRAL key has been renamed as "ATMOSPHERIC_STABILITY" and now takes values as strings (RICHARDSON, MONIN_OBUKHOV, NEUTRAL_MO)
And some new keys added:
- WATERTRANSPORTMODEL_SNOW, WATERTRANSPORTMODEL_SOIL (it is recommended to set DEBUG_ARITHM to OFF when using Richardson)
- ADVECTIVE_HEAT, HEAT_BEGIN, HEAT_END
- ALBEDO_MODEL key allows to choose an albedo parameterization from the 5 available
- ISWR_IS_NET
- SNOW_ALBEDO, ALBEDO_PARAMETERIZATION, ALBEDO_FIXEDVALUE
- SNOW_EROSION
- PROFILE_FORMAT (either PRO, PRF or IMIS or a combination)
Detailed changelog
-
code cleanup
- warnings, using some optimized routines, reducing some variables' scope
- breaking methods into smaller units
- removing pointers and passing by pointers, unused variables
- not using int as bool, more usage of STL where possible
- checking code against published papers
- making code more similar to the published papers
- more consistent handling of default values
- removing some macros
- 64 bytes platforms
- removing obsolete comments
- data structure cleanup to remove redundant (and misplaced) information
- less verbose for Alpine3D
- more robust code in places where common user errors happen
- removing Snowpack data generation strategy to fully rely on MeteoIO's DataGenerators
-
Utility scripts, build system and packaging
- new scripts: to run snowpack and to extract data out of simulations
- packaging: enabling building a fully static Snowpack on OsX and Linux
- packaging: better compilation options for Snowpack standalone on osX
- improved the massbalancecheck script
- CMakeLists simplified (now requiring at least cmake 2.8.0)
- cleanup of the tests for ctest
-
Documentation, user-friendliness
- renaming/moving keys and working on their dependency to get a more consistent configuration
- cleaning up and bringing up to date the examples
- documentation improvements and updates
- soil example
- Windows batch file example
- change a few default values
- ALPINE3D soil profile introduced
- more formats supported for snow profiles
- putting the timestamps always at the same position in screen messages
-
Bug fixes
- fixes after running cppcheck
- fixing a bug in Canopy::Interception
- fixed phase change related bug that could make all soil layers isothermal at once
- fixed issues with high infiltration rate
- bug fixed when writing sno files out
- bug fix: MINIMUM_L_ELEMENT and HEIGHT_NEW_ELEM declared in the ini file were never read
- bug fix for small elements in stop-and-go
- fixed the grass detection algorithm to properly work in stop-and-go mode
- bug fix: add a newline at the end of exception messages
- bug fix when writing ascii files
- fixed empty profiles incorrectly writen
- limit the settling to the amount of air available in a given layer, in order to naturally keep proper volumetric contents
- fixed a bug when validating the data: if ENFORCE_SNOW_HEIGHT, HS is necessary!
- fixed an incomplete energy balance in the canopy
-
Water transport
- NIED water transport and Richards equation solver
- Detection and support of LAPACK and BLAS in cmake for the Richards equation solver
- UPSTREAM hydrolic conductivity averaging option
- fixed bug in volumetric contents after ice sublimation in Richards solver
- removing wrong averaging scheme for hydrolic conductivity
- multiple hydrolic conductivities parametrizations
-
Other improvements and features
- improved the canopy energy balance and made it closer to the papers
- new snow albedo parametrizations
- the layer tagging feature has been reintroduced but not carefuly verified yet (read: highly experimental)
- implement the possibility to inject a heat flux at a specific depth (ADVECTIVE_HEAT key)
- it is now possible to use only 2 virtual slopes
- implement liquid water index for virtual north and south slopes
- new key: "SNOW_EROSION" so it is possible to erode a single slope while it still requires multiple virtual slopes to deposit snow
- energy balance improvement when evaporating liquid water from the top layer
- energy balance improvement when new snow falls on wet snow
-
Misc
- better glacier detection
- better boundary conditions
- add possibility to provide short wave as net short wave
- using Unsworth parametrization when no ILWR is available. This works better with ATMOSPHERIC_STABILITY=MONIN_OBUKHOV
- ImisDBIO now direclty write the profiles to the database
- ImisDBIO writes the calculation date to the database
- ImisDBIO speed optimizations