Adaptive time stepping and canopy module
The adaptive time stepping doesn't play well with the canopy module. The problem is that the canopy module is reading the SNOWPACK time step from the configuration object, although the time step may be temporarily reduced in Snowpack.cc. Another issue is that the canopy module is tightly linked to the meteo object, but with adaptive time stepping, the meteo object is called more frequently and possibly more than once during one time step, although the canopy module assumes to be only called once during a time step.
Among the many possible solution, I think the most reasonable way forward is to call the canopy module separately from Snowpack.cc (similar to WaterTransport, SnowCreep, Microstructure, etc), without the nesting in the Meteo object. I don't see the reason for how it is done now anyway. Possibly, some variables from the meteo object are required, but this can be dealt with easily.