Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calculate mass budgets online #38

Open
wants to merge 33 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
dc058a2
Add specialized masks for mass budget calculations
trhille May 16, 2022
093f93e
Add floatingSfcMassBalApplied variable
trhille May 16, 2022
4a130e9
Add grounded and floating calvingThickness variables
trhille May 16, 2022
915be80
Add grounded and floating faceMeltingThickness components
trhille May 16, 2022
11f4e1e
Update global stats calculations using new masks
trhille May 16, 2022
37727a4
Zero out grounded and floating mass budget masks at start of call
trhille May 16, 2022
82dc266
Account for multiple updates of calvingThickness within a timestep
trhille May 17, 2022
2f48a21
Use grounded and floating mass budget masks for groundedToFloatingThi…
trhille May 17, 2022
be7bdf1
Calculate grounding line flux before advection, smb, and bmb
trhille May 18, 2022
6128249
Update groundedToFloatingThickness when masks are updated
trhille May 19, 2022
4f566f0
Add halo updates after calling li_calculate_mask
trhille Jul 15, 2022
93309ab
Revert "Add halo updates after calling li_calculate_mask"
trhille Jul 15, 2022
5976ab0
Correct use of 'cycle' when when calculating masks
trhille Aug 4, 2022
02ee6a8
Do not apply float-kill to non-dynamic fringe
trhille Oct 5, 2022
797cf99
Use mass budget masks for basal mass balance
trhille Oct 5, 2022
a5bee82
Update calving budget incrementally
trhille Nov 2, 2022
b89fb71
Cleanup after rebase onto MALI-Dev/develop
trhille Nov 2, 2022
236074d
Update grounded and floating calving budgets incrementally
trhille Nov 3, 2022
e7fe705
Clean-up after rebase
trhille Feb 23, 2023
884049f
Clean up after rebase
trhille Oct 17, 2023
8e85cd8
Fix dCalvingThickness dimension in remove_small_islands
trhille Oct 17, 2023
eb6748f
Make treatment of basal mass bal components consistent
trhille Oct 18, 2023
6f13e2b
Fix accidental doubling of faceMeltingFlux
trhille Oct 18, 2023
6a2d6af
Update layerThickness halos after advection
trhille Oct 20, 2023
4b77dba
Make grounding line flux calculation consistent with FCT
trhille Oct 20, 2023
4f75613
Move face-melting after last RK velocity solve
trhille Oct 20, 2023
ad484aa
Clean up after rebase following Runge-Kutta merge
trhille Nov 16, 2023
797b72a
Add cellMaskTemporary back to Registry
trhille Nov 16, 2023
611a77a
Loop over nEdgeSolve instead of nEdges when calculating GL flux
trhille Nov 16, 2023
1bdc08b
Calculate grounding line flux after advection but before updating thi…
trhille Nov 17, 2023
0e6025e
Clean up after rebase
trhille Apr 17, 2024
0afc6db
Remove code that was inadvertently overwriting grounded and floating …
trhille Jul 10, 2024
a54c8cb
Update halos on incrementalCalvingThickness
trhille Jul 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 34 additions & 3 deletions components/mpas-albany-landice/src/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1201,6 +1201,12 @@ is the value of that variable from the *previous* time level!
<var name="cellMask" type="integer" dimensions="nCells Time" units="none"
description="bitmask indicating various properties about the ice sheet on cells. cellMask only needs to be a restart field if config_allow_additional_advance = false (to keep the mask of initial ice extent)"
/>
<var name="groundedMaskForMassBudget" type="integer" dimensions="nCells Time" units="none"
description="bitmask indicating where ice is considered grounded for mass budget calculation. Includes floating non-dynamic cells adjacent to grounded ice and floating ice above subglacial lakes."
/>
<var name="floatingMaskForMassBudget" type="integer" dimensions="nCells Time" units="none"
description="bitmask indicating where ice is considered floating for mass budget calculation. Does not include floating non-dynamic cells adjacent to grounded ice or floating ice above subglacial lakes."
/>
<var name="edgeMask" type="integer" dimensions="nEdges Time" units="none"
description="bitmask indicating various properties about the ice sheet on edges."
/>
Expand All @@ -1218,6 +1224,9 @@ is the value of that variable from the *previous* time level!
<var name="groundedSfcMassBalApplied" type="real" dimensions="nCells Time" units="kg m^{-2} s^{-1}"
description="applied surface mass balance on grounded ice"
/>
<var name="floatingSfcMassBalApplied" type="real" dimensions="nCells Time" units="kg m^{-2} s^{-1}"
description="applied surface mass balance on floating ice"
/>
<var name="basalMassBal" type="real" dimensions="nCells Time" units="kg m^{-2} s^{-1}"
description="Potential basal mass balance"
/>
Expand Down Expand Up @@ -1245,12 +1254,21 @@ is the value of that variable from the *previous* time level!
<var name="calvingFrontMask" type="integer" dimensions="nCells Time" units="none" time_levs="1"
description="mask of the calving front position on cells"
/>
<var name="incrementalCalvingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of ice that calves in a given step. Maybe be updated multiple times per time step to calculate calvingThickness."
/>
<var name="calvingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of ice that calves on a given timestep (less than or equal to ice thickness)"
/>
<var name="calvingThicknessFromThreshold" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of ice that calves on a given timestep for only processes that generate calving based on a threshold. This includes mask calving, damage calving, iceberg and small island detection, and velocity speed limit."
/>
<var name="groundedCalvingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of grounded ice that calves on a given timestep (less than or equal to ice thickness)"
/>
<var name="floatingCalvingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of floating ice that calves on a given timestep (less than or equal to ice thickness)"
/>
<var name="calvingCFLdt" type="real" dimensions="Time" units="s" time_levs="1" default_value="1.0e16"
description="approximation of maximum allowable timestep based on calvingVelocity"
/>
Expand Down Expand Up @@ -1333,7 +1351,6 @@ is the value of that variable from the *previous* time level!
<var name="damageSource" type="real" dimensions="nCells Time" units="s^{-1}" time_levs="1"
description="damage source term"
/>
/>
<var name="basalWaterThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="thickness of basal water"
/>
Expand Down Expand Up @@ -1407,6 +1424,12 @@ is the value of that variable from the *previous* time level!
<var name="dtFaceMeltingCFLratio" type="real" dimensions="Time" units="none" time_levs="1" default_value="0.0"
description="ratio of timestep being used to the maximum timestep calculated for the face-melting CFL condition. This metric can be used to assess the accuracy of the face-melting CFL calculation being lagged by a timestep."
/>
<var name="groundedFaceMeltingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="Equivalent plan-view averaged thickness of grounded ice that melts on a given timestep from front ablation (less than or equal to ice thickness). Used in mass budget calculations."
/>
<var name="floatingFaceMeltingThickness" type="real" dimensions="nCells Time" units="m" time_levs="1"
description="Equivalent plan-view averaged thickness of floating ice that melts on a given timestep from front ablation (less than or equal to ice thickness). Used in mass budget calculations."
/>
<var name="unmeltedVolume" type="real" dimensions="nCells Time" units="m^3" time_levs="1"
description="volume of ice that was left unmelted from required facemelt flux due to only applying flux over immediate neighbors (diagnostic field to assess if this limitation is a problem)"
/>
Expand All @@ -1429,10 +1452,18 @@ is the value of that variable from the *previous* time level!
units="m" description="amount of change in bedTopography. This field is calculated by the sea-level model over its time step. Positive values indicate bed uplift relative to sea level."
/>
<!-- Scratch variables related to geometry -->
<var name="cellMaskTemporary" type="integer" dimensions="nCells" units="none"
description="temporary copy of cellMask"
<var name="cellMaskTemporary" type="integer" dimensions="nCells" units="none"
description="temporary copy of cellMask"
persistence="scratch"
/>
<var name="groundedMaskForMassBudgetTemporary" type="integer" dimensions="nCells" units="none"
description="temporary copy of groundedMaskForMassBudget"
persistence="scratch"
/>
<var name="floatingMaskForMassBudgetTemporary" type="integer" dimensions="nCells" units="none"
description="temporary copy of floatingMaskForMassBudget"
persistence="scratch"
/>
</var_struct>

<!-- ================ -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,21 @@
<var name="totalCalvingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated mass loss due to calving. Positive values represent ice loss."
/>
<var name="totalGroundedCalvingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated grounded mass loss due to calving. Positive values represent ice loss."
/>
<var name="totalFloatingCalvingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated floating mass loss due to calving. Positive values represent ice loss."
/>
<var name="totalFaceMeltingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated mass loss due to face melting. Positive values represent ice loss."
/>
<var name="totalGroundedFaceMeltingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated grounded mass loss due to face melting. Positive values represent ice loss."
/>
<var name="totalFloatingFaceMeltingFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total, area integrated floating mass loss due to face melting. Positive values represent ice loss."
/>
<var name="groundingLineFlux" type="real" dimensions="Time" units="kg yr^{-1}"
description="total mass flux across all grounding lines. Note that flux from floating to grounded ice makes a negative contribution to this metric."
/>
Expand Down
Loading