There is a newer version of the record available.

Published July 28, 2023 | Version v2.40.0
Software Open



This minor release of MAPL includes many new features as well as new requirements for building.

The main new feature is the ability of ExtData to now fill variables on MAPL "tile" grids as well as the ability for ExtDataDriver.x to run on "tile" grids.

Also, with this version of MAPL, we now require ESMF 8.5.0 because MAPL has now replaced yaFyaml for YAML support with ESMF_HConfig. Per the release notes:

One major new development available with 8.5.0 is the addition of a hierarchical configuration class: ESMF_HConfig. This class provides YAML 1.2 support through the ESMF Fortran API. The ESMF_HConfig class integrates with the existing configuration class ESMF_Config for backward compatibility, and allows ESMF user code to seamlessly access, modify, and create information in YAML format. This new capability is leveraged within ESMF and NUOPC to provide a YAML alternative when specifying ESMF_Initialize() parameters, NUOPC attribute, petList, or run sequence information.

Note that MAPL 2.40 now has new requirements for building. MAPL now requires:

  • ESMF 8.5.0
  • gFTL 1.10.0
  • gFTL-shared 1.6.1
  • fArgParse 1.5.0 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
  • pFlogger 1.9.5 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)

Of these, only ESMF and gFTL-shared are hard "code will not build" requirements. However, the other GFE libraries minimum versions were updated to latest versions to capture bugfixes.

Also, since we now use ESMF_Hconfig for YAML support in MAPL, yaFyaml is no longer used. Likewise, we have deprecated FLAP use and by default BUILD_WITH_FLAP is NO.

The libraries this version of MAPL is currently tested with are below. (No change since last release of MAPL)

  • 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.5.0 (required)
    • 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.0

We recommend most external users set -DUSE_F2PY=OFF

From Added
  • Add ability of ExtData to fill variables on MAPL "tile" grids.
  • Added print of regrid method during History initialization
  • Added ability to use an ESMF.rc file to pass in pre-ESMF_Initialize options to ESMF (see ESMF Docs for allowed flags.
    • NOTE: File must be called ESMF.rc
  • Added ability to run ExtDataDriver.x on a MAPL "tile" grid
  • Add ability to introduce a time-step delay in ExtDataDriver.x to simulate the timestep latency of a real model
  • Added a MAPL_Sleep function, equivalent to some vendor supplied but non-standard sleep function
  • sampling IODA file with trajectory sampler (step-1): make it run
  • Convert ExtData to use ESMF HConfig for YAML parsing rather than YaFYAML
    • Set required ESMF version to 8.5.0
  • Add StationSamplerMod for station sampler
  • Added ReplaceMetadata message and method to replace oserver's metadata
  • Added field utilities to perform basic numeric operations on fields
  • Update arithemetic parser to work with any rank and type of ESMF fields
  • For ExtDataDriver.x only, added logging config to Tests/ExtDataDriverMod.F90 to enable Logger there
  • Added new fill option and run mode for ExtDataDriver.x
  • Updates to GFE library dependency
    • Require gFTL v1.10.0
    • Require gFTL-shared v1.6.1
    • Require fArgParse v1.5.0
    • Require pFlogger v1.9.5
    • Removed yaFyaml as dependency
  • Updated programs using FLAP for command line parsing to use fArgParse instead
  • Updated components.yaml to use Baselibs 7.14.0
    • ESMA_env v4.9.1 → v4.19.0
      • Baselibs 7.14.0
        • esmf v8.5.0
        • GFE v1.11.0
        • curl 8.2.1
        • HDF5 1.10.10
        • netCDF-C 4.9.2
        • netCDF-Fortran 4.6.1
        • CDO 2.2.1
        • NCO 5.1.7
      • Move to MPT 2.28 at NAS, and other various changes for TOSS4 at NAS
      • Remove Haswell from build.csh
    • ESMA_cmake v3.28.0 → v3.31.0
      • Clean up for TOSS4 changes at NAS
      • Add QUIET_DEBUG flag
      • Suppress some common warnings with Intel Debug
  • Make the GEOSadas CI build separate as it often fails due to race conditions in GSI
  • Update CI to use BCs v11.1.0 and Baselibs 7.14.0
  • Updates to support building MAPL with spack instead of Baselibs
    • Add FindESMF.cmake file to cmake directory (as it can't easily be found via spack)
    • Move CMAKE_MODULE_PATH append statement up to find FindESMF.cmake before we find_package(ESMF)
    • Default BUILD_WITH_FLAP to OFF as we don't build it in spack
    • Explicitly build GEOSadas in CI with -DBUILD_WITH_FLAP=ON as GEOSadas is still behind in moving to use fArgParse
  • Created cubed-sphere grid factory with files split by face
  • Removed unneeded and confusing default in History Grid Comp (see #2081)
  • Fixes in CMake for fArgParse transition
  • Deprecate the use of FLAP for command line parsing in favor of fArgParse. FLAP support will be removed in MAPL 3
What's Changed New Contributors

Full Changelog:



Files (2.0 MB)

Name Size Download all
2.0 MB Preview Download

Additional details

Related works