Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: pism/pism

v2.2.2 bug fix release

28 Mar 19:28

Choose a tag to compare

Changes since v2.2.1:

  • Minor documentation improvements
  • Update the script building YAXT and YAC to build these libraries without Fortran bindings. This allows us to avoid the dependency on a Fortran compiler, especially on systems where the only available Fortran compiler is buggy.
  • Update PISM's build system to look for YAXT built without Fortran bindings (the yaxt_c library).

Follow https://doi.org/10.5281/zenodo.1199019 to the Zenodo DOI for this release.

v2.2.1 bug fix release

07 Mar 20:31

Choose a tag to compare

Changes since v2.2.0:

  • Fixed a minor bug: EISMINT II simplified geometry experiments should use the "cold" (temperature-based) energy conservation model. In PISM 2.2.0 the EISMINT II default of energy.model was mistakenly set to "none", i.e. isothermal mode without energy conservation.

    To get correct behavior with PISM 2.2.0 run pism -energy cold -eisII ... instead of pism -eisII ....

Follow https://doi.org/10.5281/zenodo.1199019 to the Zenodo DOI for this release.

v2.2.0

05 Mar 23:42

Choose a tag to compare

Follow https://doi.org/10.5281/zenodo.1199019 to the Zenodo DOI for this release.

Improvements

  • Add flexible re-projection and interpolation (including conservative interpolation) using YAC. This work makes it possible to set up a PISM simulation using a grid in one projection and read inputs from NetCDF files that use different grids and projections (with some limitations). This should reduce the amount of pre-processing needed to use bed topography data sets (such as BedMachine), regional climate model outputs, etc.

  • All bed deformation models use the load averaged over the duration of the (usually long) bed deformation time step (see #525). This requires saving the time integral of the load since the last bed deformation update (variable bed_def_load_accumulator and the time of the last update time_bed_deformation) as a part of the model state and reading them when re-starting the model. Rename bed_deformation.lc.update_interval to bed_deformation.update_interval since now all bed deformation models use this parameter. Add a new diagnostic variable: bed_def_load, the load used during the last bed deformation update.

  • Replace the serial connected component labeling algorithm with a parallel version (see #547 for details). This should improve strong scaling of the ocean model PICO and (less noticeably) of some other PISM components.

  • Create a Debian (Ubuntu) PISM package. This work required a number of changes to follow best practices when installing software in a standard location. For example: all executables and scripts installed in the bin sub-directory of PISM's installation location start with "pism_" to make it easier to recognize ones that belong to PISM, especially when using a .deb package to install it.

    Run apt install pism-2.2.0-Linux.deb to install this package.

  • Improve support for coordinate reference system specification following Climate and Forecasting conventions. See Coordinate Reference Systems in the manual for details.

  • Add the configuration parameter grid.file and remove options -x_range, -y_range and -refinement_factor. The parameter grid.file specifies the grid definition file used to set the coordinate reference system plus default domain and grid sizes. See Using a grid definition file in the manual for details.

  • Add configuration parameters grid.dx and grid.dy (command line options -dx and -dy). These parameters allow users to set the domain size and location (using the input file, grid.file or grid.Lx and grid.Ly) and then select the grid resolution to use on this domain. Note that grid.dx and grid.dy are in meters, but PISM will automatically convert to meters from units specified using command line options, e.g. -dx 5km. Domain half widths Lx and Ly are re-computed to ensure that PISM uses exactly the requested grid resolution (this may slightly reduce the domain size compared to Lx and Ly provided by the user).

  • Refactor the SSAFD solver, adding the ability to use PETSc's infrastructure to manage Picard iterations (and even use Newton iterations with a finite difference approximation of the Jacobian computed using coloring). Unfortunately this approach appears to be more fragile than the old one, so the default solver implementation remains the same. On the plus side, we get the ability to compute and save the SSAFD residual, which may help one analyze the quality of a velocity approximation produced by the SSAFD solver.

  • Add a configuration flag stress_balance.ssa.fd.upstream_surface_slope_approximation. If "yes" (the default), use the first order "upstream" (more accurately: "uphill") biased FD approximation. This reduces oscillations of velocity approximations produced by SSAFD in areas where the surface slope is large (e.g. near the grounding line).

  • Add a new diagnostic quantity: ice_mass_transport_across_grounding_line (in Gt/year). This quantity is similar to the 2D grounding_line_flux, but designed to be easily comparable to tendency_of_ice_mass_due_to_discharge and similar.

  • Use "kelvin" (lowercase "k") in all temperature units and implement other similar changes to make PISM output files compatible with conventions used by xarray.

Bug fixes

  • Fix an bug reported by Ken Mankoff: scripts in examples/antarctica/ required PISM built with PROJ (#526).
  • Update the "Getting started" section of the manual (#555).
  • Fix a bug (reported by Isabel Schwermer) in the insolation parameterization used by the "paleo" mode of dEBM-simple (1: the old code used the wrong perihelion longitude definition; 2: the solar declination formula contained a typo).

Documentation

Build system

  • Use pkg-config to look for all the dependencies that support it.
  • Add the CMake flag Pism_PKG_CONFIG_STATIC to tell CMake to use the --static flag when using pkg-config. See #529.
  • Require CMake 3.16 or newer.
  • Support the current PETSc version (3.22).
  • Update the oldest supported PETSc version from 3.7 to 3.11. (PISM's code still works with PETSc 3.7 and newer, but testing with PETSc older than 3.11 requires Python 2.7.x, which is no longer supported.)
  • Remove support for NCAR's ParallelIO library since (as far as we know) no one uses it.

Other

  • Rename the pismr executable to pism.
  • Remove the pismv executable. Use pism -test X to run a verification test X.
  • Update some examples in examples/marine.
  • Add VERSION, a text file containing the PISM version. This ensures that tarballs with PISM's sources (e.g. archived by Zenodo) contain appropriate version info.
  • Add the configuration parameter energy.model (choices: none, cold, enthalpy); remove energy.enabled and energy.temperature_based.

v2.1.1 bug fix release

04 Dec 22:55

Choose a tag to compare

Changes since v2.1:

  • Support PETSc 3.21 and 3.22 (see #541).
  • Add a clarification to the manual (see #530).

v2.1

23 Nov 20:40

Choose a tag to compare

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 bug fix release

21 Nov 21:54

Choose a tag to compare

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 bug fix release

24 Jan 00:21

Choose a tag to compare

  • 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 bug fix release

14 Oct 18:11

Choose a tag to compare

  • 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 bug fix release

26 May 17:55

Choose a tag to compare

  • 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 bug fix release

10 May 23:26

Choose a tag to compare

  • 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).