Skip to content

MAPL 2.51.0

Compare
Choose a tag to compare
@mathomp4 mathomp4 released this 06 Dec 18:54
· 9 commits to main since this release
7f63dbe

DOI

This release of MAPL has many new updates and changes. Some highlights include:

  • Support for the Intel ifx compiler (including in CI)
    • Note that MAPL Unit tests only work with ifx 2025.0, though 2024.2 can work with GEOSgcm
  • Allow lat-lon grid factory to detect and use CF compliant lat-lon bounds in a file when making a grid
  • Added a call in GenericRefresh to allow GC's refresh method to be called; in support of CICE6 rewind
  • Add ability to use an ESMF_CONFIG_FILE environment variable to specify name of file to pass in pre-ESMF_Initialize options to ESMF (see ESMF Docs for allowed flags)
  • Added commandline options to checkpoint_benchmark.x and restart_benchmark.x to allow for easier testing of different configurations. Note that the old configuration file style of input is allowed via the --config_file option (which overrides any other command line options)
  • Fixed issue of some Baselibs builds appearing to support zstandard. This is not possible due to Baselibs building HDF5 and netCDF as static libraries
  • Preliminary support for llvm-flang
    • NOTE: MAPL does not yet work with llvm-flang. But some updates were added here for development testing.
  • Trajectory sampler: fix a bug when group_name does not exist in netCDF file and a bug that omitted the first time point
  • Fixed a bug where the periodicity around the earth of the lat-lon grid was not being set properly when grid did not span from pole to pole

There are also new build requirements for MAPL 2.51:

  • CMake 3.24
  • ESMF 8.6.1

All tests show this to be zero-diff to MAPL 2.50


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.6.0 and 2021.13
  • Intel Fortran (ifx) 2025.0
  • GCC 13.2.0 and 14.2.0
  • NAG 7.2

The libraries this version of MAPL is currently tested with are below.

  • Baselibs 7.27.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.7.0 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.16.0
      • gFTL 1.14.0
      • gFTL-shared 1.9.0
      • pFUnit 4.10.0 (optional)
      • fArgParse 1.8.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.14.0 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)
    • UDUNITS2 2.28.8

Also, if you build with Baselibs and/or -DUSE_F2PY=ON, you should use (at least):

  • ESMA_cmake v3.55.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Added

  • Added macro _RETURN(_SUCCESS) to fetch_data
  • Allow update offsets of ±timestep in ExtData2G
  • Minor revision (and generalization) of grid-def for GSI purposes
  • Add ability to use an ESMF_CONFIG_FILE environment variable to specify name of file to pass in pre-ESMF_Initialize options to ESMF (see ESMF Docs for allowed flags.
  • Allow lat-lon grid factory to detect and use CF compliant lat-lon bounds in a file when making a grid
  • PFIO/Variable class, new procedures to retrieve string/reals/int attributes from a variable
  • Added a call in GenericRefresh to allow GC's refresh method to be called; in support
    of CICE6 rewind

Changed

  • Change minimum CMake version to 3.24
    • This is needed for f2py and meson support
  • Refactored tableEnd check
  • Added commandline options to checkpoint_benchmark.x and restart_benchmark.x to allow for easier testing of different configurations. Note that the old configuration file style of input is allowed via the --config_file option (which overrides any other command line options)
  • Update ESMF version for Baselibs to match that of Spack for consistency
  • Update components.yaml
    • ESMA_env v4.32.0
      • Baselibs 7.27.0
        • ESMF 8.7.0
        • curl 8.10.1
        • NCO 5.2.8
        • CDO 2.4.4
        • GSL 2.8
        • jpeg 9f
        • Various build fixes
    • ESMA_cmake v3.55.0
      • Fixes for using MAPL as a library in spack builds of GEOSgcm
      • Various backports from v4
      • Code for capturing mepo status output
      • Fixes for f2py and meson (NOTE: Requires CMake minimum version of 3.24 in project for complete functionality)
      • Fixes for MPI_STACK code run multiple times
  • Updates to CI
    • Use v7.27.0 Baselibs
    • Use GCC 14 for GNU tests
    • Add pFUnit-less build test
    • Enable ifx tests
  • Improve some writes to be more informative
    • In base/MAPL_CFIO.F90, added Iam to a print statement so that when a read fails we know which routine failed
    • In gridcomps/ExtData2G/ExtDataConfig.F90, print out the name of the duplicate collection that causes model to fail

Fixed

  • Fixed issue of some Baselibs builds appearing to support zstandard. This is not possible due to Baselibs building HDF5 and netCDF as static libraries
  • Workaround ifx bug in pfio/ArrayReference.F90 (NOTE: This currently targets all versions of ifx, but will need to be qualified or removed in the future)
  • Updates to support llvm-flang
  • Trajectory sampler: fix a bug when group_name does not exist in netCDF file and a bug that omitted the first time point
  • Fixed a bug where the periodicity around the earth of the lat-lon grid was not being set properly when grid did not span from pole to pole

What's Changed

New Contributors

Full Changelog: v2.50.3...v2.51.0