Rename Land -> Strat and promote soil comps to state variables
This commit reverses two previous design changes:
- Declaring variables on a Layer or Process only is again supported.
- Soil contents are once again state variables.
These changes are intended to improve flexibility for future process implementations.
Additional changes:
- Renames
Land
module toStrat
- Removes defunct "partitioned enthalpy" scheme
- Renames
z
field inLayerState
tobounds
to allow for user-defined state variables namedz
.
Merge request reports
Activity
assigned to @bgroenke
@mlanger This should (mostly) resolve the redundancy in declaring variables in new layers/processes.
One can now simply define:
variables(::Heat) = (...) variables(::Soil) = (...)
which are by default combined in:
variables(layer::Layer, proc::Process) = (variables(layer)..., variables(proc)...)
So for snow, one could, in principle, add the additional variables in
variables(::Snow)
without having to redefine the variables defined byvariables(::Heat)
. In the event that a specificLayer
/Process
pair needs special treatment, one can still explicitly define:variables(::Snow, ::Heat) = (...)
which can then call
variables
for either (or both) of the layer or process individually to re-use variable definitions, or just redefine everything if changes are necessary.mentioned in commit 9ea13637