Skip to content

Releases: GEOS-ESM/MAPL

MAPL 2.64.1

30 Dec 23:06
9e21fbd

Choose a tag to compare

This is a patch release of MAPL 2.64. It restores a workaround for GNU for binary restart reads. This is used in the GEOS single column model (SCM).

This is zero-diff to v2.64.0


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.13
  • Intel Fortran (ifx) 2025.3
  • GCC 13.2.0, 14.2.0, and 15.2.0
  • NAG 7.2

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

  • Baselibs 8.20.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.20.0
      • gFTL 1.16.0
      • gFTL-shared 1.11.0
      • pFUnit 4.13.0 (optional)
      • fArgParse 1.10.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.17.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.68.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • Restore workaround for binary restart reads with GNU
    • Brings back changes from PR #1038: Added a workaround for a gfortran bug that handles end-of-file incorrectly (returns IOSTAT=5001).

What's Changed

Full Changelog: v2.64.0...v2.64.1

MAPL 2.64.0

05 Dec 16:23
8814903

Choose a tag to compare

DOI

This release of MAPL has an update for MAPL_LocStream to support work ongoing in GEOSldas, adding the ability to pass Pfaffstetter index.

All tests show this is zero-diff to MAPL 2.63


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.13
  • Intel Fortran (ifx) 2025.3
  • GCC 13.2.0, 14.2.0, and 15.2.0
  • NAG 7.2

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

  • Baselibs 8.20.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.20.0
      • gFTL 1.16.0
      • gFTL-shared 1.11.0
      • pFUnit 4.13.0 (optional)
      • fArgParse 1.10.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.17.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.68.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Added

  • Added pfaf_index to MAPL_Locstream
  • Added a simple MAPL_LocstreamCreate

Changed

  • Enforced presence of grid when reading binary tile file

What's Changed

Full Changelog: v2.63.1...v2.64.0

MAPL 2.63.1

25 Nov 16:22
259d2f2

Choose a tag to compare

DOI

This is a patch release on MAPL 2.63. This release fixes an issue needed for 1-d tile space output in netCDF format.

All tests show it zero-diff to MAPL 2.63.0


This version of MAPL was tested with:

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

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

  • Baselibs 8.20.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.20.0
      • gFTL 1.16.0
      • gFTL-shared 1.11.0
      • pFUnit 4.13.0 (optional)
      • fArgParse 1.10.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.17.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.68.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Changed

  • Combine MAPL_Grid_interior and MAPL_GridgetInterior
    • This is needed for 1-d tile space output in netCDF4 format

What's Changed

Full Changelog: v2.63.0...v2.63.1

MAPL 2.63.0

21 Nov 15:58
15e2c33

Choose a tag to compare

DOI

This release of MAPL 2 has many new updates and fixes.

The main updates are to handling of Tile grids for use in GEOSldas. There are also updates to the ACG Writer for our ongoing transition to MAPL3 as well as many internal changes to the CI.

All testing with GEOSgcm shows this to be zero-diff to MAPL 2.62


This version of MAPL was tested with:

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

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

  • Baselibs 8.20.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.20.0
      • gFTL 1.16.0
      • gFTL-shared 1.11.0
      • pFUnit 4.13.0 (optional)
      • fArgParse 1.10.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.17.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.68.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • Removed obsolete pfio test
  • Fix a memory leak in trajectory sampler due to misuage of FieldRegrid which should be FieldRedist
  • Fixed mapl_acg.cmake to allow for more than one StateSpecs file per target
  • Fix NVHPC issue with IEEE halting code
  • Fix a misspelled MAPL_LIBRARY_TYPE in vertical
  • Workaround for Flang

Added

  • Added updated version of MAPL_GridCompSpecs_ACG_writer.py
  • Added 'Gridname' attribute to history output
  • Create TilgridIO's outbundle from output grid and deallocate mGriddedIO in History
  • Added TileGridIO.F90 to output NC4 History file in tile space. The collection's format should be 'CFIO'
  • Added bit shave to TileGridIO

Changed

  • Update CI
    • Use Baselibs 8.20.0
    • Add gcc15 test
    • Use organization reusable workflows
    • Run CI build test with NAG on PRs
  • Update README_ACG_WRITER.md
  • Update components.yaml
    • ESMA_env v5.16.0
      • Update to Baselibs 8.20.0
        • GFE v1.20.0
          • gFTL v1.16.0
          • gFTL-shared v1.11.0
          • fArgParse v1.10.0
          • pFUnit v4.13.0
          • yaFyaml v1.6.0
          • pFlogger v1.17.0
        • NCO 5.3.5
        • This is mainly for ifx 2025.2 support
        • Requires CMake 3.24
    • ESMA_cmake v3.68.0
      • Update ifx flags to match as close as possible to ifort flags
      • Update site detection for NAS
      • Updates for f2py and flang

Removed

  • Removed TileIO.F90. It is integrated into TileGridIO.F90

What's Changed

Full Changelog: v2.62.2...v2.63.0

MAPL 2.62.2

29 Oct 13:24
7928ad5

Choose a tag to compare

DOI

This is a patch release of MAPL 2.62. This fixes a bug when one of the two names in an ExtData2G rule for a vector is contained is a substring in another item, for example UA;VA and EVAP

Testing shows this is zero-diff to MAPL 2.62.1


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.6.0 and 2021.13
  • Intel Fortran (ifx) 2025.2
    • NOTE: ifx 2025.2 support is currently a bit of a work-in-progress as it requires changes in upstream GFE libraries (pFlogger and pFUnit) as well as ESMA_cmake v3.65.0. Once releases are made of the GFE libraries, this will become simpler.
  • GCC 13.2.0, 14.2.0, and 15.2.0
  • NAG 7.2

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

  • Baselibs 8.19.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.19.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.65.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • Fixed bug when one of the two names in an ExtData2G rule for a vector is contained is a substring in another item, for example UA;VA and EVAP

What's Changed

Full Changelog: v2.62.1...v2.62.2

MAPL 2.62.1

14 Oct 14:05
1f62def

Choose a tag to compare

DOI

This is a patch release of MAPL 2.62. This fixes a bug when regridding with grid that has PET with no DEs.

Testing shows this is zero-diff to 2.62.0


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.6.0 and 2021.13
  • Intel Fortran (ifx) 2025.2
    • NOTE: ifx 2025.2 support is currently a bit of a work-in-progress as it requires changes in upstream GFE libraries (pFlogger and pFUnit) as well as ESMA_cmake v3.65.0. Once releases are made of the GFE libraries, this will become simpler.
  • GCC 13.2.0, 14.2.0, and 15.2.0
  • NAG 7.2

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

  • Baselibs 8.19.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.19.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.65.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • Fixed bug when regridding with grid that has PET with no DEs

What's Changed

Full Changelog: v2.62.0...v2.62.1

MAPL 2.62.0

25 Sep 16:11
666ea4c

Choose a tag to compare

DOI

This is a minor release of MAPL 2 which adds support for ifx 2025.2.

However, this support is not "instantaneous" at the moment. To build MAPL with ifx 2025.2, users will need to use ESMA_cmake v3.65.0 (which is what components.yaml points to) as well as updates in pFlogger (and its dependency yaFyaml) and pFUnit. These changes are all to workaround a preprocessor bug in ifx 2025.2 that will be fixed in ifx 2025.3. Releases of the GFE libraries will be forthcoming once full testing is done.

Note: @climbfuji has been able to update spack to make builds with ifx 2025.2 under spack easy until the GFE is updated.

All tests show this is zero-diff to MAPL 2.61


This version of MAPL was tested with:

  • Intel Fortran Classic (ifort) 2021.6.0 and 2021.13
  • Intel Fortran (ifx) 2025.2
    • NOTE: ifx 2025.2 support is currently a bit of a work-in-progress as it requires changes in upstream GFE libraries (pFlogger and pFUnit) as well as ESMA_cmake v3.65.0. Once releases are made of the GFE libraries, this will become simpler.
  • GCC 13.2.0, 14.2.0, and 15.2.0
  • NAG 7.2

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

  • Baselibs 8.19.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b03 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.19.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.65.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • CMake workaround for ifx 2025.2
    • NOTE: Requires ESMA_cmake v3.65.0 for ifx 2025.2 support as well as updates in GFE not yet in Baselibs

Changed

  • Update components.yaml
    • ESMA_env v5.14.0
      • Update to Baselibs 8.19.0
        • esmf 9.0.0b03
        • curl 8.16.0
    • ESMA_cmake v3.65.0
      • Workaround for ifx 2025.2

What's Changed

Full Changelog: v2.61.0...v2.62.0

MAPL 2.59.1

19 Sep 14:24
1884692

Choose a tag to compare

DOI

This is a patch on MAPL 2.59 to allow for use with ESMF v9. ESMF v9 is not required for this release, but rather changes in ESMF v9.0.0b03 are needed in MAPL3 development.

The release is necessary due to an internal change in ESMF v9 that exposed an issue with the deprecated ESMF_Attribute still used in MAPL2 (see esmf-org/esmf#493). As such we now detect at runtime if ESMF v9 is being used and use the workaround code.

All tests with GEOSgcm show 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.33.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.8.1 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.16.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.62.1

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Changed

  • Added support for ESMF 9
    • Requires #ifdef to support changes in deprecated ESMF_Attribute API in ESMF 9
  • Improved some error statements

Full Changelog: v2.59.0...v2.59.1

MAPL 2.61.0

18 Sep 17:29
a36ebbb

Choose a tag to compare

DOI

This minor release of MAPL adds support for ESMF v9. ESMF v9 is not required for this release, but rather changes in ESMF v9.0.0b03 are needed in MAPL3 development.

The release is necessary due to an internal change in ESMF v9 that exposed an issue with the deprecated ESMF_Attribute still used in MAPL2 (see esmf-org/esmf#493). As such we now detect at runtime if ESMF v9 is being used and use the workaround code.

All tests with GEOSgcm show 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 8.18.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.9.0 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.19.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.64.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Changed

  • Added support for ESMF 9
    • Requires #ifdef to support changes in deprecated ESMF_Attribute API in ESMF 9
  • Improved some error statements

What's Changed

Full Changelog: v2.60.0...v2.61.0

MAPL 2.60.0

11 Sep 18:10
dff5b5a

Choose a tag to compare

DOI

This release of MAPL has fixes and updates. Among the fixes are ones for NRL solar constant reads (when cycling over Cycle24) and fixes for NVHPC builds.

There are also two major changes. First, the default VERSION for HISTORY.rc is now 1 instead of 0. Nearly all GEOS History RC files have had VERSION: 1 at the top for many years and rely on functionality from it (e.g., using GRID_LABELS to specify grids). However, it was found that when this was accidentally left off by a user, the resulting run behavior was confusing as the symptoms were not obvious.

The other change is an enhancement of the MAPL Automatic Code Generator (ACG) which also fixes a bug in the Python. However, this bugfix can have an effect if a gridded component had a StateSpecs file that could trigger the bug. The issue was one of the "columns" a StateSpecs file can have is for how to handle fields restarts. MAPL has options like MAPL_RestartOptional and MAPL_RestartSkip that tell MAPL if a field is optional (if not present, that's okay) or skippable (if not present, okay, and do not write).

The ACG has allowed two ways for users to specify these options. You could use OPT or MAPL_RestartOptional and SKIP or MAPL_RestartSkip. The bug was that if a user didn't use the abbreviated option, the ACG did not emit the corresponding line.

An exemplar StateSpecs would be:

category: INTERNAL
#----------------------------------------------------------------------------------------
#  VARIABLE                | DIMENSION        |          Additional Metadata
#----------------------------------------------------------------------------------------
  NAME | UNITS | DIMS | VLOC | UNGRIDDED | RESTART | ADD2EXPORT | FRIENDLYTO | LONG NAME
#----------------------------------------------------------------------------------------
 SS              |kg kg-1| xyz  | C    | self%nbins | MAPL_RestartOptional | T | DYNAMICS:TURBULENCE:MOIST | Sea Salt Mixing Ratio (bin %d)
 DEEP_LAKES_MASK |   1   | xy   | N    |            | MAPL_RestartSkip     | F |                           | Deep Lakes Mask

Here we have two fields one, SS is MAPL_RestartOptional, and DEEP_LAKES_MASK is MAPL_RestartSkip. The difference in emitted code between MAPL 2.59 (and earlier) and MAPL 2.60 is:

@@ -15,6 +15,7 @@
         & dims=MAPL_DimsHorzVert, &
         & vlocation=MAPL_VlocationCenter, &
         & ungridded_dims=[self%nbins], &
+        & restart=MAPL_RestartOptional, &
         & add2export=.true., &
         & friendlyto='DYNAMICS:TURBULENCE:MOIST', &
         & long_name='Sea Salt Mixing Ratio (bin %d)', &
@@ -26,6 +27,7 @@
         & units='1', &
         & dims=MAPL_DimsHorzOnly, &
         & vlocation=MAPL_VlocationNone, &
+        & restart=MAPL_RestartSkip, &
         & add2export=.false., &
         & long_name='Deep Lakes Mask', &
         & _RC)

MAPL 2.60 now correctly emits the restart= line. Now, for fields that use MAPL_RestartOptional instead of OPT the bug was a no-op. In MAPL, if there is no restart= line, the default to do is MAPL_RestartOptional. But the other MAPL_Restart* options would be affected.

For GEOSgcm, the only StateSpecs file that is affected is SS2G_StateSpecs.rc. So for GEOSgcm, when you compare a run with MAPL 2.59 to MAPL 2.60, the ss_internal_checkpoint will not have the DEEP_LAKES_MASK variable since it is now correctly skipped.

NOTE: The presence of DEEP_LAKES_MASK does not affect the state of the model. This mask is recomputed on each run and is constant.


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 8.18.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 8.9.0 (Note: MAPL only requires 8.6.1 at the moment)
    • GFE 1.19.0
      • gFTL 1.15.2
      • gFTL-shared 1.10.0
      • pFUnit 4.11.1 (optional)
      • fArgParse 1.9.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.16.1 (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.64.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Fixed

  • Fix NRL Solar Constant read routine for cycle-Cycle24 option
  • Change a few keyword names in sampler for consistency with HISTORY
  • Fixes for NVHPC: Move some subroutines in MAPL_MaskMod from submodule to module
  • Fix for NAG + macOS Arm which does not support IEEE halting properly

Changed

  • Updated the default VERSION in History to 1 (which has been the effective default in HISTORY.rc for some time)
  • Update components.yaml
    • ESMA_env v5.13.0
      • Update to Baselibs 8.18.0
        • ESMF 8.9.0
        • curl 8.15.0
        • NCO 5.3.4
        • CDO 2.5.3
        • nccmp 1.10.0.0
        • Removed szip, added libaec
          • Note: To use libaec correctly, users should use ESMA_cmake v3.63.0/v4.20.0 or higher
    • ESMA_cmake v3.64.0
      • Support for libaec
      • Add FindISSM.cmake
  • Update CI to use Baselibs 8.18.0
  • Allow row lookups to return key if key in values (ACG2)

What's Changed

Full Changelog: v2.59.0...v2.60.0