.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/glaciology/plot_13_weertman_marine_ice_sheet_instability.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code or to run this example in your browser via JupyterLite. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_glaciology_plot_13_weertman_marine_ice_sheet_instability.py: Weertman's marine ice-sheet instability (1974) ============================================== Johannes Weertman studied the junction between an ice sheet grounded below sea level and its floating shelf. The ice at the grounding line has the flotation thickness, set by the water depth, and the shelf spreads at a rate that rises as a power of that thickness. A grounding line on a bed that deepens inland therefore cannot be steady: a small retreat thickens the ice at the junction, which discharges more ice, which drives further retreat. The example compares the snowfall feeding the ice sheet with a measure of the discharge, the spreading of 10 km of cold shelf times the flotation thickness. .. GENERATED FROM PYTHON SOURCE LINES 15-40 .. image-sg:: /api/gallery/glaciology/images/sphx_glr_plot_13_weertman_marine_ice_sheet_instability_001.png :alt: Weertman: open circle, an unstable grounding line :srcset: /api/gallery/glaciology/images/sphx_glr_plot_13_weertman_marine_ice_sheet_instability_001.png :class: sphx-glr-single-img .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from earthsciencekit.constants import GRAVITY, ICE_DENSITY, SECONDS_PER_YEAR from earthsciencekit.glaciology import flotation_thickness, ice_shelf_strain_rate x = np.linspace(300e3, 900e3, 601) # m, distance from the divide accumulation = 0.3 / SECONDS_PER_YEAR supply = accumulation * x fig, ax = plt.subplots() for label, depth, sign in [("bed deepening seaward", 300 + 1e-3 * (x - 300e3), 1), ("bed deepening inland", 900 - 1e-3 * (x - 300e3), -1)]: thickness = flotation_thickness(depth, ICE_DENSITY, 1028) discharge = ice_shelf_strain_rate(thickness, 1e-25, 3, ICE_DENSITY, 1028, GRAVITY) * 10e3 * thickness crossing = np.argmin(np.abs(discharge - supply)) imbalance_slope = np.gradient(discharge - supply, x)[crossing] assert np.sign(imbalance_slope) == sign # positive: advance raises discharge (stable) line = ax.semilogy(x / 1e3, discharge * SECONDS_PER_YEAR / 1e6, label=f"discharge, {label}")[0] face = "white" if sign < 0 else line.get_color() ax.plot(x[crossing] / 1e3, discharge[crossing] * SECONDS_PER_YEAR / 1e6, "o", ms=9, zorder=3, color=line.get_color(), mfc=face) ax.plot(x / 1e3, supply * SECONDS_PER_YEAR / 1e6, "k--", label="snowfall upstream") ax.set(xlabel="grounding-line position [km]", ylabel="flux [km^2/year]", title="Weertman: open circle, an unstable grounding line") ax.legend() plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.125 seconds) .. _sphx_glr_download_api_gallery_glaciology_plot_13_weertman_marine_ice_sheet_instability.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../../lite/lab/index.html?path=api/gallery/glaciology/plot_13_weertman_marine_ice_sheet_instability.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_13_weertman_marine_ice_sheet_instability.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_13_weertman_marine_ice_sheet_instability.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_13_weertman_marine_ice_sheet_instability.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_