Skip to content

MAPL 3.0.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@mathomp4 mathomp4 released this 12 Jun 12:56
· 58 commits to develop since this release
901c8f8

DOI

This is a new alpha release of MAPL v3. Much of this work was refactoring and file movement with some fixes and updates as detailed below.


This version of MAPL was tested with:

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

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

  • Baselibs 8.27.0
    • netcdf-c 4.9.2
    • netcdf-fortran 4.6.1
    • ESMF 9.0.0b10 (Note: MAPL 3 requires ESMF 9)
    • GFE 1.23.0
      • gFTL 1.17.0
      • gFTL-shared 1.12.0
      • pFUnit 4.16.0 (optional)
      • fArgParse 1.10.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.18.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 v4.37.0

We recommend most external users set -DUSE_F2PY=OFF

We also require CMake 3.24 or higher.


From CHANGELOG.md

Added

  • FieldBundleFilter for filtering field bundles by predicate.
  • Generic checkpointing support: MAPL_GridCompSetCheckpoint added to public
    API; StatisticsGridComp and GridComp now use the generic checkpoint mechanism.
  • MAPL_GridCompAddChild: new overloads accepting either a setservices procedure
    or a DSO name + procedure name.
  • MAPL_GriddedComponentDriver and MAPL_DriverInitializePhases added to
    public API.
  • StatisticsGridComp: extended to support variance of a single field.
  • FieldBundleGetPointerToData: added REAL64 overloads for 2D/3D index/name variants.
  • MAPL_STATEITEM_VECTOR item type support in ACG spec files.
  • PFIO layer now has a public API umbrella.
  • Re-export PackedDateCreate, PackedTimeCreate, PackedDateTimeCreate, and
    StrTemplate through the top-level MAPL umbrella module.
  • to_string (integer_to_string) added to mapl_StringUtilities.

Changed

  • MAPL v3 directory restructuring complete: consolidated sources into
    infrastructure/, superstructure/, enums/, utils/, mp_utils/, and
    base/; renamed gridcomps/ subdirectories to canonical lowercase names;
    removed all 3g suffixes from module and directory names; unified the
    mapl3g_ module namespace under mapl_.
  • Public API lockdown: all layer umbrella modules now carry explicit
    private + public :: declarations. Internal shim files dissolved; symbols
    routed through proper export umbrellas.
  • Namespace standardization: all internal module names follow the
    mapl_<Name>_mod convention. Unprefixed enum constants and types renamed to
    MAPL_-prefixed equivalents. Temporary backward-compatible aliases for unprefixed
    names are provided where needed (e.g. VerticalStaggerLoc enums) pending
    updates in downstream consumers.
  • MAPL_GridCompAddVarSpec replaced by MAPL_GridCompAddSpec (avoids exposing
    VariableSpec through use MAPL); old interface removed.
  • Cap.F90 and GEOS.F90 moved into mapl/; CapGridComp now invoked via DSO.
  • CI updated to Baselibs 8.32.0 and circleci-tools orb v5; components.yaml
    updated to ESMA_env v5.22.0 / GEOSpyD 26.3.2.

Fixed

  • Various compiler fixes: NVHPC build failure in OpenMP_Support.F90; ifx
    linker issue with error-handling thunks; NAG dangling pointer in checkpoint
    directory helper; IEEE trap suppression for sNaN on -Ktrap=fp builds.
  • VariableSpec/VectorClassAspect: fixed vector component naming lifecycle
    (names now resolved at create-time rather than deferred to add-to-state).
  • ACG lookup mappings made bidirectional so aliases and actual values are
    interchangeable in spec files.

Removed

  • Legacy error handling interfaces MAPL_RTRN, MAPL_Vrfy, MAPL_ASRT, and
    mapl_ExceptionHandling_mod.
  • Dead code: utils/TimeUtilities.F90, ESMF_Subset.F90, and other unused modules.

What's Changed

Full Changelog: v3.0.0-alpha.0...v3.0.0-alpha.1