Brief changelog of Snowpack-3.4.5
Warning: This version uses the new MeteoIO syntax, so you must update your ini files!
New syntax & documentation
- Necessary changes to work with the latest syntax in MeteoIO (named arguments).
- New documentation, hoping that which components are involved in a simulation would get clearer
- Modernizing the examples, removing some old formats from the example input files
- When writing out timeseries as SMET, the timezone was missing making everything appear as GMT.
- A mistake has been found and fixed in Canopy.
- A "bug" has been fixed in the fluxes outputs: when writing out ILWR, it was actually the ILWR as absorbed by the snowpack, ie with the snow surface emissivity effect. This has been changed and now it is a true, atmospheric ILWR.
- The serialization (for MPI operation) had some very serious bugs (leading to loss of data) that got fixed
- The serializations have been rewritten to have more precise types (istream, ostream) and some missing members have been added.
- When computing the stability with the Relative Threshold Approach, an invalid index was used (reading one element after the last). Now the top node is receives a default stability value (0.0).
Build & code cleanup
- A few methods have been tagged as either const or static.
- A (stupid) warning on some Clang compilers (newer osX) has been turned off.
- A compiler option was not supported by some versions of gcc, it is now properly tested for the version number.
- A possibly ambiguous syntax prevented compiling on new version of gcc, it has been fixed.
- Several methods have been declared static/const when appropriate and several methods parameters in Canopy declared const when possible.
- When declaring CANOPY=true, if a sno file would contain a CanopyDirectThroughFall of 1 with CanopyHeight=0, it would trigger an exception. This is not the case anymore, now if the LeafAreaIndex or the CanopyHeight are zero, we simply skip the Canopy module and call MicroMet instead.
- In order to avoid run_SnowpackModel() to have to re-create several objects, a lot of class members in the said objects are now const, improving the run time.
- the declared Canopy objects are now recycled between call, so there is no need anymore to re-construct a Meteo object in the time loop of run_Snowpack() leading to speed gains (major in the case of a distributed simulation)
- Each element now has a unique (and increasing) Element ID. This ID is written out in the .pro files for layer tracking (as parameter 0504)