Pism Versions Save

Repository for the Parallel Ice Sheet Model (PISM)

v2.1

5 months ago

Notable changes since v2.0.7:

  • Implement the diurnal energy balance model dEBM-simple (see M. Zeitz, R. Reese, J. Beckmann, U. Krebs-Kanzow, and R. Winkelmann, "Impact of the melt-albedo feedback on the future evolution of the Greenland Ice Sheet with PISM-dEBM-simple," The Cryosphere, vol. 15, no. 12, pp. 5739-5764, Dec. 2021, doi: 10.5194/tc-15-5739-2021.)

  • Implement the isochronal layer tracing scheme (see A. Born and A. Robinson, "Modeling the Greenland englacial stratigraphy," The Cryosphere, vol. 15, no. 9, pp. 4539-4556, 2021, doi: 10.5194/tc-15-4539-2021.)

  • Support 2D precipitation offsets in -atmosphere ...,delta_P. If the input file set using atmosphere.delta_P.file contains a scalar time series delta_P, use that as a time-dependent constant-in-space forcing. If the input file contains a 2D variable delta_P, use that as a time-and-space-dependent forcing.

  • Support 2D air temperature offsets in -atmosphere ...,delta_T. If the input file set using atmosphere.delta_T.file contains a scalar time series delta_T, use that as a time-dependent constant-in-space forcing. If the input file contains a 2D variable delta_T, use that as a time-and-space-dependent forcing.

  • Support piecewise-constant temporal interpolation of near-surface air temperatures in -atmosphere given: set atmosphere.given.air_temperature_interpolation to piecewise_constant.

  • Fix a bug reported by Christian Rodehacke: calving mechanisms should not remove ice at ice fronts adjacent to isolated patches of ice-free water (see issue #521).

  • Add CITATION.cff to properly acknowledge all contributions and to make it easier to cite PISM.

v2.0.7

5 months ago

Changes since v2.0.6:

  • Minor fixes in the manual (an image caption, a code block, typos, links).
  • Add time bounds to scalar forcing files in examples/std-greenland.
  • Use CF-compliant units "common_years" in forcing files.
  • Fix a minor bug in PICO reported by Ken Mankoff.
  • Support the current PETSc version (3.20.1).
  • Minor compiler compatibility improvements.
  • Replace examples/searise-antarctica with examples/antarctica based on ALBMAP v1 data. This avoids a dependency on SeaRISE data hosted by the University of Montana.

v2.0.6

1 year ago
  • Implement a flux limiter ensuring strict preservation of non-negativity of ice thickness and therefore mass conservation up to rounding error.

    This is a Zalesak-style (see flux corrected transport or FCT) limiter described in

    P.K. Smolarkiewicz, "Comment on 'A Positive Definite Advection Scheme Obtained by Nonlinear Renormalization of the Advective Fluxes'," Monthly Weather Review, vol. 117, Art. no. 11, 1989.

    Note that this approach (unlike modifications of the discretization of SIA diffusivity in the Jarosch et al paper mentioned below) works with all stress balance models.

  • Implement a benchmark setup checking mass conservation in an "isothermal SIA + mass continuity" model setup with "rough" bed topography (see examples/bedrock_step).

    This benchmark is described in

    A.H. Jarosch, C.G. Schoof, and F.S. Anslow, "Restoring mass conservation to shallow ice flow models over complex terrain," The Cryosphere, vol. 7, Art. no. 1, Feb. 2013.

  • Fix a bug in the code ensuring non-negativity of ice thickness. (The old code added too much ice in an attempt to ensure non-negativity -- so much so that sometimes this caused crashes with error messages stating that ice thickness exceeds Lz.)

    Note that this "projection step" (ice_thickness = max(tentative_ice_thickness, 0)) should have no effect now: the flux limiter mentioned above is designed to ensure non-negativity. We keep this step, however, to maintain the ability to keep track of ice thickness changes due to conservation errors (if they ever happen).

  • PISM no longer attempts to correct energy conservation by freezing basal water.

    At each time step PISM checks basal enthalpy and if necessary modifies it to ensure continuity of temperature in each bedrock+ice column. Sometimes this modification creates energy; prior to this change PISM attempted to remove an equivalent amount of energy by modifying the basal melt rate to freeze water stored at the base.

    Under some conditions this basal melt rate adjustment created mass by freezing more water than available and even led to crashes with error messages stating that ice thickness exceeds Lz.

  • Fix bugs in scalar diagnostics ice_volume_cold and ice_volume_temperate.

  • Several insignificant fixes (compiler warnings, code cleanup, etc).

v2.0.5

1 year ago
  • Fix #512: incorrect uplift reported by -bed_def given.
  • Fix the build system: PISM v2.0.4 failed to find GSL if it is installed in a non-standard location.
  • Minor documentation fixes.
  • Fix metadata of the flux_staggered diagnostic.
  • Stop with an error message if a regridded variable contains values that are not finite (NaN or infinity).
  • Fix a bug in the code reading in periodic time-dependent forcing: the case where the last time record coincides with the end of the covered time interval (end of the period) needs special handling.

v2.0.4

1 year ago
  • Add time_stepping.assume_bed_elevation_changed. With the default value ("false") PISM tries to avoid re-computing bed-elevation-dependent quantities if it is known that bed elevation did not change. Setting this flag to "true" disables this optimization.
  • Make the variable range check a little less strict. Now PISM uses the tolerance eps = 1e-12 to check if a variable in an input file has values that are outside its valid range.
  • Fix #506 (PISM stopped with an unhelpful error message if the flow law Glen exponent is set to 1). The underlying issue is that UDUNITS does not support fractional exponents, so units such as "Pa s^(1/n)" where n is the Glen exponent cannot be used for unit conversion. Luckily we don't need to convert from "Pa s^(1/n)" to other units, so we can get away with disabling unit validation in this particular case.
  • Update the build system: use proper PROJ locations on macOS with MacPorts.
  • Document that CMake >= 3.3 is required (previous versions incorrectly stated that PISM supports CMake >= 3.1).
  • Restore compatibility with PETSc version 3.7.
  • Add tests to automatically check for compatibility with CMake 3.3 and PETSc 3.7.
  • Other minor fixes.

v2.0.3

2 years ago
  • Support PETSc 3.17.
  • Fix an error message (it should say "time bounds" instead of "cell bounds").
  • Use a newer version of NCAR ParallelIO to support GCC 11.
  • Add HDF5 version info to the "pismr -version" output.
  • Add pism::IceModel and IceModelVec.local_part() to Python bindings.
  • Manual: fix the command used to clone the PISM repository and fix broken links.
  • Run regression tests that use nose via "python3 -m nose ...".
  • Add IceModel::basal_yield_stress_model() and IceModel::bed_deformation_model().
  • Update the release checklist.
  • Update the build system and the CI setup (Docker image).

v2.0.2

2 years ago
  • Fix a bug in IceModelVec2T::average() that affected periodic climate inputs and made PISM stop with an error message saying "invalid integration interval (a >= b)" (reported by Guillaume Jouvet).
  • Fix the implementation of time_stepping.hit_multiples.
  • Very minor performance improvements.

v2.0.1

2 years ago
  • Update the minimum PETSc version supported by PISM to 3.7.
  • Remove the last mention of the old website.
  • Fix a bug in the code building the manual.
  • Fix a minor bug in Python bindings.
  • Fix a bug in the code reading in periodic time-dependent inputs that are interpreted as piece-wise linear in time (reported by Guillaume Jouvet).

v1.0-millennium-study-v2

2 years ago

This release includes the following changes compared to v1.0-millennium-study:

  • Implement 2D "paleo_precip" in a new modifier paleo_precip_2d.
  • Modify "-atmosphere ...,anomaly" for a 2D forcing experiment: add atmosphere_anomaly_temp_only. This flag restricts the effect of "-atmosphere anomaly" to air temperatures and does not require "precipitation_anomaly" in the forcing file. Also, use the variable name "delta_T" instead of "air_temp_anomaly" (for consistency).
  • Add debugging code used in an attempt to fix issues on Pleiades.
  • Minor fixes (compiler warnings, etc).

Please use the latest release in the 2.x series for new research.

v2.0

2 years ago

Compared to v1.2, the new version includes

  • a new stress balance solver using the first order approximation of the Stokes equations due to Blatter
  • scripts implementing several ISMIP-HOM experiments
  • regularized Coulomb sliding as in Zoet & Iverson, 2020
  • a mechanism for "optimizing" the till friction angle used by the Mohr-Coulomb yield stress model
  • a new "bed deformation" component reading a prescribed bed deformation history from a file (e.g. from a solid-Earth model)
  • the fracture density growth parameterization due to Borstad et al (equation 4 in Borstad et al, 2016)

... and many more fixes and improvements. Please see the change log for details.