Skip to content

Refactor active layer calculation to separate bottom-up, top-down, and rooting metrics - #45

Open
rfiorella wants to merge 2 commits into
developfrom
rich/talik-detection
Open

Refactor active layer calculation to separate bottom-up, top-down, and rooting metrics#45
rfiorella wants to merge 2 commits into
developfrom
rich/talik-detection

Conversation

@rfiorella

@rfiorella rfiorella commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

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:

  1. ZTHAW_BU (bottom-up): Preserves original algorithm searching from bedrock upward for deepest thaw. Includes talik (deep thawed soil). Included mainly for backward compatibility.

  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.

  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.

Key Features

  • Algorithms converge 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)
  • 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
  • External modules (RootDynamicsMod, etc.) require no changes - backward-compatible interface

Modified Files

  • components/elm/src/biogeophys/ActiveLayerMod.F90: Implements three sequential algorithms
  • components/elm/src/biogeophys/CanopyStateType.F90: Expands from 10 to 24 variables organized by algorithm

…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.
@rfiorella

Copy link
Copy Markdown
Contributor Author

This one should probably get a pretty robust discussion, since it will not be BFB.

@rfiorella
rfiorella marked this pull request as ready for review August 28, 2026 05:49
@rfiorella
rfiorella requested a review from a team August 29, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant