Skip to content

Releases: GEOS-ESM/MAPL

MAPL 2.53.0

24 Jan 16:33
572a644
Compare
Choose a tag to compare

DOI

This release of MAPL has a bugfix for an issue discovered by our UFS users. Namely, it fixes a bug when MAPL is used with OpenMP in a certain way such that the correct dimensions for the MPI subdomain could be retrieved from the subgrids where ever needed.

It also updates ExtData so that if files are missing in a sequence the last value will be persisted if one has not chosen exact option

All testing with GEOSgcm shows this to be zero-diff.


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

Changed

  • Updated ExtData so that if files are missing in a sequence the last value will be perisisted if one has not chosen exact option
  • Update components.yaml
    • ESMA_env v4.34.1
      • Fix GEOSpyD module on GMAO Desktops

Fixed

  • Changes were made to add attributes to the subgrids (i.e. created by dividing the MPI subdomain into smaller subdomains equal to the number of OpenMP threads) such that the correct dimensions for the MPI subdomain could be retrieved from the subgrids where ever needed.

What's Changed

Full Changelog: v2.52.0...v2.53.0

MAPL 2.52.0

17 Jan 19:00
c41f37c
Compare
Choose a tag to compare

DOI

This release of MAPL has many new features and fixes over MAPL 2.52.

Among the new features are:

  • Added the ability to read netCDF tile files
  • Added a new optional start_date and start_time to control the output window for each History collection. No output will be written before then. If not specified, these default to the beginning of the experiment.
  • Added loggers when writing or reading weight files
  • Added new option to AGCM.rc overwrite_checkpoint to allow checkpoint files to be overwritten. By default still will not overwrite checkpoints
  • The trajectory sampler netCDF output variable location_index_in_iodafile can be turned off, after we add two control variables: use_NWP_1_file and restore_2_obs_vector for users. When set to true, the two options will select only one obs file at each Epoch interval, and will rotate the output field index back to the location vector inthe obs file before generating netCDF output.
  • Support splitfield: 1 in HISTORY.rc for trajectory sampler

The fixes include better freeing of MPI communicators (which were accumulating during long runs) and better behavior of calls when NaNs are present.

All testing with GEOS shows this is zero-diff to MAPL 2.51

NOTE: Below you'll see that we are now generally testing MAPL (in CI) with ESMF 8.8.0. At the moment, ESMF 8.8.0 is not required for MAPL 2. It is a requirement for MAPL 3 but we have not yet added any use of ESMF 8.8 specific features in MAPL 2.


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 subroutine to read nc4 tile file
  • Added optional start_date and start_time to control the output window for each History collection. No output will be written before then. If not specified, these default to the beginning of the experiment.
  • Added utility to prepare inputs for ExtDataDriver.x so that ExtData can simulate a real GEOS run
  • Added loggers when writing or reading weight files
  • Added new option to AGCM.rc overwrite_checkpoint to allow checkpoint files to be overwritten. By default still will not overwrite checkpoints
  • The trajectory sampler netCDF output variable location_index_in_iodafile can be turned off, after we add two control variables: use_NWP_1_file and restore_2_obs_vector for users. When set to true, the two options will select only one obs file at each Epoch interval, and will rotate the output field index back to the location vector inthe obs file before generating netCDF output.
  • Support splitfield: 1 in HISTORY.rc for trajectory sampler

Changed

  • Changed MAPL_ESMFRegridder to require the dstMaskValues to be added as grid attribute to use fixed masking, fixes UFS issue
  • Increased formatting width of time index in ExtData2G diagnostic print
  • Updated GitHub checkout action to use blobless clones
  • Update CI to use Baselibs 7.29.0 by default
    • This provides ESMF 8.8.0
  • Update components.yaml
    • ESMA_env v4.34.0
      • Update to MPT 2.30 at NAS
      • Update to Baselibs 7.29.0 (ESMF 8.8.0)
    • ESMA_cmake v3.56.0
      • Use LOCATION Python FIND_STRATEGY

Fixed

  • Free MPI communicators after reading and/or writing of restarts
  • Fixed the behavior of MAPL_MaxMin in presence of NaN
  • Fixed bug with return codes and macros in udunits2f

What's Changed

Full Changelog: v2.51.2...v2.52.0

MAPL 2.47.1.3

23 Dec 20:32
2441070
Compare
Choose a tag to compare

DOI

This is a tweak patch on top of MAPL 2.47.1.2. This adds the ability to add an option in AGCM.rc to allow MAPL to overwrite checkpoints:

overwrite_checkpoints: .true.

as requested in #3262.

By default, the capability is default .false which matches current MAPL behavior.


This version of MAPL was tested with:

  • Intel Fortran Classic 2021.6.0 (Classic 2021.13 seems to work, ifx does not yet work)
  • GCC 13.2.0
  • NAG 7.2

The libraries this version of MAPL is currently tested with are below. NOTE: Changes here from MAPL 2.44 and earlier, namely GFE

  • Baselibs 7.24.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.6.1b04 (8.6.0 is enough for Baselibs builds, but 8.6.1 is required for Spack)
    • GFE 1.15.0
      • gFTL 1.13.0
      • gFTL-shared 1.8.0
      • pFUnit 4.9.0 (optional)
      • fArgParse 1.7.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.14.0 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)

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

  • ESMA_cmake v3.46.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Changed

  • Added new option to AGCM.rc overwrite_checkpoint to allow checkpoint files to be overwritten. By default still will not overwrite checkpoints

Full Changelog: v2.47.1.2...v2.47.1.3

MAPL 2.51.2

19 Dec 14:00
1c55973
Compare
Choose a tag to compare

DOI

This patch release of MAPL 2.51 has a fix when using multiple rules for a vector item in ExtData2G. It also relaxes a restriction that vector regridding in ExtData2G must be bilinear.

This release also moves the CI and Docker to us Ubuntu 24-based base images. This also required a fix in one of the profiler unit tests.

All testing shows this to be zero-diff to v2.51.1


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

Changed

  • Removed restriction that vector regridding in ExtData2G must be bilinear
  • Update CI to use Ubuntu 24 images

Fixed

  • Fixed by when using multiple rules for a vector item in ExtData2G
  • Fix profiler ExclusiveColumn test for GCC 14

What's Changed

Full Changelog: v2.51.1...v2.51.2

MAPL 2.51.1

10 Dec 14:46
c3d2046
Compare
Choose a tag to compare

DOI

This is a patch on MAPL 2.51. This release fixes an issue where the per-cell counters in the generic coupler are not initialized properly. They are part of a derived type when gets allocated, but the pointers there are not initialized to NULL.

Testing of GEOS at c24 and c360 shows this to be zero-diff. However, there is the possibility that if you encountered this bug, some output could change.


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

Fixed

  • Properly nullified the pointers to the per-grid-cell counters

What's Changed

Full Changelog: v2.51.0...v2.51.1

MAPL 2.51.0

06 Dec 18:54
7f63dbe
Compare
Choose a tag to compare

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

MAPL 2.50.3

03 Dec 14:31
7eb7786
Compare
Choose a tag to compare

This patch release of MAPL 2.50 fixes a bug where c NULL character is not removed from end of string when reading netcdf attribute in NetCDF4_FileFormatter.F90

All testing shows this to be zero-diff to MAPL 2.50.2.


This version of MAPL was tested with:

  • Intel Fortran Classic 2021.6.0 and 2021.13 (Note: ifx does not yet work)
  • 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.25.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.6.1
    • 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.51.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.23 or higher.


From CHANGELOG.md

Fixed

  • Fixed bug where c null character is not removed from end of string when reading netcdf attribute in NetCDF4_FileFormatter.F90

What's Changed

Full Changelog: v2.50.2...v2.50.3

MAPL 2.40.3.1

15 Nov 17:10
v2.40.3.1
c47252d
Compare
Choose a tag to compare

DOI

NOTE: This is a special tweak release of MAPL 2.40.3. We do not recommend users use this version unless specifically told to.

This version of MAPL is essentialy v2.40.3 but with changes and fixes for ESMF 8.6.1 backported from newer tags. Thus, unlike MAPL 2.40.3, this version requires at least ESMF 8.6.1 (due to CMake changes).


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

  • Baselibs 7.14.0
    • netcdf-c 4.9.2 (Needed for quantize support, but not required for all of MAPL)
    • netcdf-fortran 4.6.1 (Needed for quantize support, but not required for all of MAPL)
    • ESMF 8.6.1
    • GFE 1.11.0
      • gFTL 1.10.0
      • gFTL-shared 1.6.1
      • pFUnit 4.7.3 (optional)
      • fArgParse 1.5.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.9.5 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)
      • FLAP geos/v1.10.0 (if -DBUILD_WITH_FLAP=YES, default=NO)

Also, if you build with -DUSE_F2PY=ON, you will need:

  • ESMA_cmake v3.31.1

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Changed

  • Backport changes to use ESMF 8.6.1 to 2.40.3
    • Update to use ESMF::ESMF target
    • Update to ESMF 8.6.1 FindESMF.cmake file
    • Remove excessive prints in generic/OpenMP_Support.F90

Full Changelog: v2.40.3...v2.40.3.1

MAPL 2.50.2

30 Oct 12:59
306ca39
Compare
Choose a tag to compare

DOI

This patch release of MAPL 2.50 fixes a bug with the placement of a cycle in a coupler loop in History. This bug was exposed in the pert code used in GEOSadas.


This version of MAPL was tested with:

  • Intel Fortran Classic 2021.6.0 and 2021.13 (Note: ifx does not yet work)
  • 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.25.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.6.1
    • 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.51.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.23 or higher.


From CHANGELOG.md

Fixed

  • Fixed bug with cycle placement in coupler loop in History

What's Changed

Full Changelog: v2.50.1...v2.50.2

MAPL 2.47.1.2

28 Oct 20:46
6f698af
Compare
Choose a tag to compare

DOI

This is a tweak patch on top of v2.47.1.1. It has a fix for a timer bug when using History and the GEOS Pert application.


This version of MAPL was tested with:

  • Intel Fortran Classic 2021.6.0 (Classic 2021.13 seems to work, ifx does not yet work)
  • GCC 13.2.0
  • NAG 7.2

The libraries this version of MAPL is currently tested with are below. NOTE: Changes here from MAPL 2.44 and earlier, namely GFE

  • Baselibs 7.24.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.6.1b04 (8.6.0 is enough for Baselibs builds, but 8.6.1 is required for Spack)
    • GFE 1.15.0
      • gFTL 1.13.0
      • gFTL-shared 1.8.0
      • pFUnit 4.9.0 (optional)
      • fArgParse 1.7.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.14.0 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)

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

  • ESMA_cmake v3.46.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Changed

  • Fixed timer bug in History with GEOS pert application

Full Changelog: v2.47.1.1...v2.47.1.2