Skip to content

Overview

Warning: This version uses the new MeteoIO syntax, so you must update your ini files!

Details

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

Bug fixes

  • 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.

New features

  • 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)