Refactor active layer calculation to separate bottom-up, top-down, and rooting metrics - #45
Open
rfiorella wants to merge 2 commits into
Open
Refactor active layer calculation to separate bottom-up, top-down, and rooting metrics#45rfiorella wants to merge 2 commits into
rfiorella wants to merge 2 commits into
Conversation
…d rooting metrics Implements three distinct thaw depth calculations to improve representation of permafrost dynamics and rooting access: 1. ZTHAW_BU (bottom-up): Preserves original algorithm searching from bedrock upward for deepest thaw. Includes talik (deep thawed soil) in calculation. Used for subsidence and thermal state tracking. 2. ZTHAW_TD (top-down): New algorithm searching from surface downward for first frozen layer. Excludes isolated talik beneath frozen barriers. Represents surface-connected thawed zone accessible to roots and biogeochemical processes. 3. ALT (active layer): Defined as max(ZTHAW_TD, ZTHAW_TD_lastyear) to implement rooting memory. Allows roots to access the deeper of current year or prior year maximum top-down thaw depth. Maintains backward-compatible variable names (altmax_col, altmax_lastyear_col) so external modules (RootDynamicsMod, etc.) require no changes. ## Key Features - Algorithms converge to same value when no talik exists (seasonally frozen regions, open taliks) - Algorithms diverge only when frozen layer separates two thawed zones (closed talik) - During growing season with full column thaw, ZTHAW_TD correctly captures entire thawed depth - Rooting memory preserves access to previously-thawed depths that remain surface-connected - Polygonal tundra subsidence now responds to ALT (max of top-down thaw) rather than bottom-up - Backward-compatible restart I/O: reads old format and initializes new variables conservatively - New history fields (ZTHAW_BU, ZTHAW_TD, etc.) default to inactive to avoid output bloat ## Modified Files - ActiveLayerMod.F90: Implements three sequential algorithms in single timestep - CanopyStateType.F90: Expands from 10 to 24 variables organized by algorithm type ## Scientific Justification Closed talik (deep thaw isolated by frozen permafrost) is hydraulically disconnected from roots when surface-connected thaw is shallower. Frozen soil reduces hydraulic conductivity by 4-6 orders of magnitude, creating an effective aquiclude. Top-down algorithm correctly represents surface-connected thawed zone that roots can functionally access, while bottom-up captures deepest thermal thaw important for subsidence modeling.
The bottom-up 1989 baseline variables were declared, allocated, initialized, and included in restart I/O but never computed or read in any logic. Remove them from CanopyStateType and the alt_calc associate block. Retain zthaw_bu_max_ever and altmax_1989, which remain in use.
Contributor
Author
|
This one should probably get a pretty robust discussion, since it will not be BFB. |
rfiorella
marked this pull request as ready for review
August 28, 2026 05:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refactor active layer calculation to separate bottom-up, top-down, and rooting metrics
Summary
Implements three distinct thaw depth calculations to improve representation of permafrost dynamics and rooting access:
ZTHAW_BU (bottom-up): Preserves original algorithm searching from bedrock upward for deepest thaw. Includes talik (deep thawed soil). Included mainly for backward compatibility.
ZTHAW_TD (top-down): New algorithm searching from surface downward for first frozen layer. Excludes isolated talik beneath frozen barriers. Represents surface-connected thawed zone accessible to roots.
ALT (active layer): Defined as max(ZTHAW_TD, ZTHAW_TD_lastyear) to implement rooting memory. Allows roots to access the deeper of current year or prior year maximum top-down thaw depth.
Key Features
Modified Files
components/elm/src/biogeophys/ActiveLayerMod.F90: Implements three sequential algorithmscomponents/elm/src/biogeophys/CanopyStateType.F90: Expands from 10 to 24 variables organized by algorithm