Skip to content

Releases: GEOS-ESM/MAPL

MAPL 2.41.1

04 Oct 18:30
d1cdaa4
Compare
Choose a tag to compare

DOI

This is a patch release of MAPL 2.41. It fixes a missing status check when reading import checkpoint in MAPL_GenericInitialize

It is zero-diff to MAPL 2.41.0


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.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 should use:

  • ESMA_cmake v3.34.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Fixed

  • Adding missing check on the return status when reading import checkpoint in MAPL_GenericInitialize

What's Changed

Full Changelog: v2.41.0...v2.41.1

MAPL 2.41.0

22 Sep 16:38
2947429
Compare
Choose a tag to compare

This is a minor release of MAPL with many changes and fixes to MAPL 2.40. Prominent updates include:

  • Updates for ongoing trajectory sampling work
  • Updates and improvements to documentation
  • Changes to MAPL_Resource.F90 to allow NVIDIA compilers to build this file
  • Adding a new benchmark suite
  • Cleaning up much of the code to reduce compiler warnings and remarks at compile time:
    • Converted all uses of mpif.h to use mpi
    • Converted all uses of character* to character(len=)
    • Removed many unused variables
    • Added many _UNUSED_DUMMY() calls
    • Converted statement functions to internal functions
  • and more as noted in the CHANGELOG.md below

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


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.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 should use:

  • ESMA_cmake v3.34.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Added

  • Saved weights and points for the vertical interpolation
  • Added new benchmark suite. Initial benchmarks are:
    1. measuring raw bandwidth of a filesystem with multiple independent streams
    2. measuring the MPI_Gatherv() used in writing checkpoints.
    3. a combo benchmark that does both operations
  • Added the ability to read string attributes of variables. This is as opposed to "character" attributes - a distinction made by NetCDF. Previously a small kludge had been used to allow reading string attributes, but was limited to attributes on the global var.
  • Added markdown documentation for select items such as ExtData, History and a few other sources
  • Trajectory sampler with Epoch time span
  • Added utility to convert binary files used by MAPL_ReadForcing to NetCDF
  • Allow a negative "update_offset" keyword in the sampling section of ExtData2G's input file by prepending the ISO time duration with a negative sign. I.E -PT12H for example
  • Added three new macros
    • _HERE: Returns the current file and line number
    • _RETURN_IF(cond): Returns if the condition is true
    • _RETURN_UNLESS(cond): Returns if the condition is false
  • Created a new docs directory that has the following subdirectories
    • tutorial: what used to be a top directory (with the same content)
    • user_guide: a new directory that will serve as MAPL User's Guide.
  • OSSE project: trajectory sampler (regrid to IODA file locations), capable of ingesting multiple files and regridding via one route-handle

Changed

  • Converted hinterp.F to free format (hinterp.F90)
  • Modified tilegrid creation to use index flag ESMF_INDEX_DELOCAL instead of ESMF_INDEX_USER
  • Renamed "geom" subdir and library to "field_utils"
  • Updated CircleCI to use v11.2.0 bcs
  • Backported changes in pfio from release/MAPL-v3 to enable pfio unit tests
  • Update components.yaml
    • ESMA_cmake v3.34.0 (Support for Intel Fortran under Rosetta2, updated NAG flags)
  • Cleanup Fortran
    • Converted all uses of mpif.h to use mpi
    • Converted all uses of character* to character(len=)
    • Removed many unused variables
    • Added many _UNUSED_DUMMY() calls
    • Converted statement functions to internal functions
  • Lowered optimization of ExtDataGridCompMod.F90 and ExtDataGridCompNG.F90 to -O1 on Intel to speed build

Fixed

  • Fixed the lines order to get the right idle_worker in MultiGroupServer.F90
  • Corrected a typo for checking if fpp macro _FILE_ was previously defined.
  • Add call to initialize pFlogger layer for the unit tests.
  • Rename mpi_comm to comm in MAPL_HistoryGridComp.F90 to avoid GNU
    • MPT bug at NAS
  • Fix problem with macros in base/MAPL_Resource.F90 uncovered while compiling with the NVIDIA Fortran compiler.
    The macros in MAPL_Resource.F90 had long lines which exceeded the line length limit of the NVIDIA compiler.
    Change the macros into include files (.h) with macros and Fortran code.

Removed

  • Deleted MAPL_HeapMod.F90. This file was doing crazy nonstandard things and is not used anywhere else. A new cleaner implementation based upon containers could be readily created if the functionality is ever missed.

What's Changed

Full Changelog: v2.40.4...v2.41.0

MAPL 2.40.4

15 Sep 17:08
e407849
Compare
Choose a tag to compare

DOI

This is a patch release of MAPL 2.40 which has a attempted fix for using MAPL-as-a-library via find_package(MAPL). The issue seemed to be due to not having any find_dependencies() calls in the resulting mapl-import.cmake file created on installation so MAPL itself did not describe what it needed correctly.

This is zero-diff to v2.40.3


The libraries this version of MAPL is currently tested with are below. (This is a change since MAPL 2.39)

  • 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.1

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Fixed

  • Fixed handling of MAPL dependencies for when find_package(MAPL) is used

What's Changed

  • Fix MAPL dependencies for MAPL-as-library in CMake by @mathomp4 in #2320

Full Changelog: v2.40.3...v2.40.4

MAPL 2.40.3

03 Aug 19:21
d3085a1
Compare
Choose a tag to compare

DOI

This patch release of MAPL 2.40 has fixes for using the NAG compiler on Linux. MAPL 2.40.1 broke NAG compatibility with Linux when fixing for macOS. When using the NAG compiler with MAPL 2.40.3, you must use ESMA_cmake v3.31.1 as well for the right flags. Note that for Intel and GNU, this is a no-op change.

All tests show zero-diff to MAPL 2.40.2


The libraries this version of MAPL is currently tested with are below. (This is a change since MAPL 2.39)

  • 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.1

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Changed

  • Update components.yaml
    • ESMA_cmake v3.31.1 (Fixes for NAG)

Fixed

  • Undoing previous workaround for NAG + MAPL_Config.F90 in v2.40.1 which was a workaround was not portable to Linux. Instead, this uses changes in ESMA_cmake v3.31.1 for flags with NAG.
  • Updated FindESMF.cmake file to match that of ESMF v8.5.0

What's Changed

Full Changelog: v2.40.2...v2.40.3

MAPL 2.40.2

01 Aug 18:03
1afeb43
Compare
Choose a tag to compare

DOI

This is a patch release of MAPL 2.40 which fixes some missing TARGET attributes in some code detected by the NAG compiler.

All tests show it zero-diff to MAPL 2.40.0


The libraries this version of MAPL is currently tested with are below. (This is a change since MAPL 2.39)

  • 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 CHANGELOG.md

Fixed

  • Fixed missing TARGET attribute on dummy argument. NAG aggressively uses copy-in/copy-out which exposes these missing attributes. This fix probably did not find all - just the ones exercised by one failing test.

What's Changed

Full Changelog: v2.40.1...v2.40.2

MAPL 2.40.1

01 Aug 15:01
3062ccf
Compare
Choose a tag to compare

DOI

This patch release of MAPL 2.40 has a minor workaround for using NAG which prevents reading values from ESMF Config files that have been set using SetAttribute().

All tests show it to be zero-diff to MAPL 2.40.0


The libraries this version of MAPL is currently tested with are below. (This is a change since MAPL 2.39)

  • 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 CHANGELOG.md

Fixed

  • Workaround for NAG which prevents reading values from ESMF Config files that have been set using SetAttribute(). The immediate issue appears to be due to a wrong CPP conditional on `ESMF_HAS_ACHAR_BUG', but it is not immediately clear if this is due to recent changes in ESMF or some change in NAG. Probably ESMF though. Once the ESMF core team analyzes we will potentially update this fix.

What's Changed

Full Changelog: v2.40.0...v2.40.1

MAPL 2.40.0

28 Jul 13:22
25ab1d3
Compare
Choose a tag to compare

DOI

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. (This is a change since MAPL 2.39)

  • 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 CHANGELOG.md

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

Changed

  • 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

Fixed

  • 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

Deprecated

  • 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: v2.39.7...v2.40.0

MAPL 2.39.7

18 Jul 19:09
e05c1f8
Compare
Choose a tag to compare

DOI

This is a patch release of MAPL that fixes an issue so the pFIO MultigroupServer does not allow a file written by multiple processes at the same time.

All testing shows it zero diff to MAPL 2.39.6


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

  • Baselibs 7.8.1
    • netcdf-c 4.9.0 (Needed for quantize support, but not required for all of MAPL)
    • netcdf-fortran 4.6.0 (Needed for quantize support, but not required for all of MAPL)
    • ESMF 8.4.1 (ESMF 8.4.0 required, but 8.4.1 recommended as it has a bug fix)
    • GFE 1.8.0
      • gFTL 1.8.1
      • gFTL-shared 1.5.0
      • pFUnit 4.6.1 (optional)
      • fArgParse 1.4.1 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.9.1 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)
      • yaFyaml 1.0.4 (if -DUSE_EXTDATA2G=YES, default=YES)
      • FLAP geos/v1.10.0 (if -DBUILD_WITH_FLAP=YES, default=YES)

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

  • ESMA_cmake v3.28.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Fixed

  • Fix a bug so that MultigroupServer does not allow a file written by multiple processes at the same time.

What's Changed

  • Fix a bug so that MultigroupServer does not allow a file written by m… by @weiyuan-jiang in #2238

Full Changelog: v2.39.6...v2.39.7

MAPL 2.39.6

18 Jul 17:31
46a6dd2
Compare
Choose a tag to compare

DOI

This patch release of MAPL 2.39 fixes issues with the tripolar grid and with the time_ave_util.x utility.

All testing shows it zero-diff to MAPL 2.39.5.


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

  • Baselibs 7.8.1
    • netcdf-c 4.9.0 (Needed for quantize support, but not required for all of MAPL)
    • netcdf-fortran 4.6.0 (Needed for quantize support, but not required for all of MAPL)
    • ESMF 8.4.1 (ESMF 8.4.0 required, but 8.4.1 recommended as it has a bug fix)
    • GFE 1.8.0
      • gFTL 1.8.1
      • gFTL-shared 1.5.0
      • pFUnit 4.6.1 (optional)
      • fArgParse 1.4.1 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.9.1 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)
      • yaFyaml 1.0.4 (if -DUSE_EXTDATA2G=YES, default=YES)
      • FLAP geos/v1.10.0 (if -DBUILD_WITH_FLAP=YES, default=YES)

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

  • ESMA_cmake v3.28.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Changed

  • Relaxed restriction in the tripolar grid factory so that grids can be made even when the decomposition deos not evenly divide the grid dimension so that the factory can be used in utilities where the core count makes such a condition impossible to satisfiy

Fixed

  • Fix a bug in time_ave_util.x so that it can work with files with no vertical coordinate

What's Changed

Full Changelog: v2.39.5...v2.39.6

MAPL 2.39.5

10 Jul 15:02
ea04e37
Compare
Choose a tag to compare

DOI

This is a patch release of MAPL has a fix for HISTORY (see #2058). Namely, a user would specify an alias in HISTORY.rc for a variable with a single bin/ungridded dimension and the alias would be ignored. So before this:

'CA.brEXTTAU'    , 'CA.br'     , 'BREXTTAU'    ,

would lead to output of CA.brEXTTAU001 instead of BREXTTAU or BREXTTAU001.

In MAPL 2.39.5, this will now result in a variable called BREXTTAU without the 001. If a user desires that name, they can update the alias in HISTORY.

Beyond that fix, this is zero-diff to MAPL 2.39.4 (all other HISTORY and the state is the same)


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

  • Baselibs 7.8.1
    • netcdf-c 4.9.0 (Needed for quantize support, but not required for all of MAPL)
    • netcdf-fortran 4.6.0 (Needed for quantize support, but not required for all of MAPL)
    • ESMF 8.4.1 (ESMF 8.4.0 required, but 8.4.1 recommended as it has a bug fix)
    • GFE 1.8.0
      • gFTL 1.8.1
      • gFTL-shared 1.5.0
      • pFUnit 4.6.1 (optional)
      • fArgParse 1.4.1 (if -DBUILD_WITH_FARGPARSE=YES, default=YES)
      • pFlogger 1.9.1 (if -DBUILD_WITH_PFLOGGER=YES, default=YES)
      • yaFyaml 1.0.4 (if -DUSE_EXTDATA2G=YES, default=YES)
      • FLAP geos/v1.10.0 (if -DBUILD_WITH_FLAP=YES, default=YES)

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

  • ESMA_cmake v3.28.0

We recommend most external users set -DUSE_F2PY=OFF


From CHANGELOG.md

Fixed

  • Fixed logic in generating the names of the split fields. If the alias field in the History.rc has separators (;), each substring is used to name the resulting fields. If there are no separators, this will be the exact name of the first split field

What's Changed

Full Changelog: v2.39.4...v2.39.5