Preparatory changes for adding water processes
This PR includes several changes and improvements which are necessary(-ish) for properly implementing water flow.
The most important changes are:
- The addition of the
timestep(::Layer, ::Process, state)
method for modular definition of timestep constraints, similar to what is done in the community model. - The addition of the state variable domain constraints, e.g.
Prognostic(:sat, OnGrid(Cells), domain=0..1)
. These are automatically enforced via theCryoGrid.domain
function which is used as theisoutofdomain
function for the diffeq solver. - Moving
SWRC
to theSoils
module (it kind of belongs there anyway).