MAPL 2.44.0
This release of MAPL has many new features and fixes. Among the new features and fixes are:
- Various improvements to History "Samplers" that sample model data at geolocations of simulated instruments. These include support for both trajectories (time dependent lat/lon) and swaths (time-dependent scans)
- Added memory utility, MAPL_MemReport that can be used in any code linking MAPL
- Added capability in the MAPL ESMF regridding wrapper to apply a destination mask if the destination grid contains a mask
- Updates for using MAPL with GEOS in a hybrid MPI+OpenMP paradigm
- Various fixes for NVHPC work
Also, with this version of MAPL, we now require ESMF 8.6.0 as MAPL now uses functionality only supported in that version. Moreover, all references to ESMF as a CMake target are now done as ESMF::ESMF
. This is supported in Baselibs build with ESMA_cmake v3.40.0 (required for Baselibs builds) and for non-Baselibs builds (i.e., spack) via a newer FindESMF.cmake
file (currently from ESMF develop
and will be in ESMF 8.6.1+).
Note though that builds using MAPL and using Baselibs (aka as GEOSgcm is currently run) are not required to move to the ESMF::ESMF
target everywhere. ESMA_cmake adds aliases so that esmf
, ESMF
and ESMF::ESMF
are all supported. The change to ESMF::ESMF
was for external users who found that MAPL was bringing in ESMF
as a target, but ESMF was not available so CMake was then added -lESMF
to link lines which caused failures.
MAPL is currently tested with:
- Intel Fortran Classic 2021.6.0 (Classic 2021.10.0 seems to work,
ifx
does not yet work) - GCC 12.3.0 (13 not supported)
- NAG 7.1
The libraries this version of MAPL is currently tested with are below. NOTE: Changes here from MAPL 2.43 and earlier, namely ESMF and GFE
- Baselibs 7.17.2
- netcdf-c 4.9.2
- netcdf-fortran 4.6.1
- ESMF 8.6.0 (required)
- GFE 1.12.0
- gFTL 1.11.0
- gFTL-shared 1.7.0
- pFUnit 4.8.0 (optional)
- fArgParse 1.6.0 (if
-DBUILD_WITH_FARGPARSE=YES
, default=YES
) - pFlogger 1.11.0 (if
-DBUILD_WITH_PFLOGGER=YES
, default=YES
) - FLAP geos/v1.10.0 (if
-DBUILD_WITH_FLAP=YES
, default=NO
)
Also, if you build with Baselibs and/or -DUSE_F2PY=ON
, you should use:
- ESMA_cmake v3.40.0
We recommend most external users set -DUSE_F2PY=OFF
From CHANGELOG.md
Added
- Added nf90 interface to read and write 1d string
- Convert from ABI Fixed Grid to lon/lat coordinates used in MAPL_XYGridFactory (supporting geostationary GOES-R series)
- Modify trajectory sampler for a collection with multiple platforms: P3B (air craft) + FIREX
- Modify swath sampler to handle two Epoch swath grids
- Handle regrid accumulate for time step (1 sec) during which no obs exists
- Use IntState%stampoffset(n) to adjust filenames for an epoch time
- parse "GOCART::CO2" from 'geovals_fields' entry in PLATFORM
- Add call MAPL_InitializeShmem to ExtDataDriverGridComp.F90
- Read swath data on root, call MAPL_CommsBcast [which sends data to Shmem (when Shmem initialized) or to MAPL_comm otherwise]. This approach avoids race in reading nc files [e.g. 37 files for 3 hr swath data]
- Added memory utility, MAPL_MemReport that can be used in any code linking MAPL
- Added capability in XY grid factory to add a mask to the grid any points are missing needed for geostationary input data
- Added capability in the MAPL ESMF regridding wrapper to apply a destination mask if the destination grid contains a mask
- Added
INSTALL.md
file to provide instructions on how to install MAPL
Changed
- Updated ESMF required version to 8.6.0
- Allocate gridded fields to use the pinflag option needed for the Single System Image (SSI) capability.
- Made changes to allocate fields to use farray instead of farrayPtr. This allows explicit specification of indexflag required by the new MAPL field split functionality. This functionality allows a clean way to create a new field from an exiting field where the new field is a 'slice' of the existing field with the slicing index being that of the trailing ungiridded dim of the existing field.
- Replaced RC=STATUS plus
_VERIFY(RC)
inBase_Base_implementation.F90
with just_RC
in line with our new convention. - Updated CI to use Open MPI 5.0.0 for GNU
- Enable Ninja for CI builds of MAPL
- Removed use of
ESMF_HAS_ACHAR_BUG
CMake option and code use inMAPL_Config.F90
. Testing has shown that with ESMF 8.6 (which is
now required), NAG no longer needs this workaround. - Refactor the CircleCI workflows for more flexibility
- Fix field utils issue - add npes argument to test subroutine decorators.
- Change MAPL CMake to use
ESMF::ESMF
target instead ofesmf
orESMF
as the imported target name- Updated
FindESMF.cmake
to match that of ESMFdevelop
as of commitda8f410
. This will be in ESMF 8.6.1+ - Requires ESMA_cmake 3.40.0 or later as this adds the
ESMF::ESMF
target ALIAS for Baselibs and non-Baselibs builds
- Updated
- Changed
CMakePresets.json
- Updated to version 7 and required CMake 3.27.0 (the minimum version that supports CMakePresets.json v7)
- Changed build style on NCCS machines to by default put build and install directories in a user-specified directory so as not to
pollute swdev
Fixed
- Restore missing submodule interfaces
- Explictly
use
someiso_c_binding
types previously pulled in through ESMF. This is fixed in future ESMF versions (8.7+) and so
we anticipate this here - Add explicit
Fortran_MODULE_DIRECTORY
toCMakeLists.txt
in benchmarks to avoid race condition in Ninja builds - Add check to make sure ESMF was not built as
mpiuni
- Fixed failing tests for
field_utils
. - Various fixes for NVHPC work
What's Changed
- Field allocation for SSI capability by @aoloso in #2471
- Add generic memory profiling utility by @bena-nasa in #2509
- Update CI to use Open MPI 5.0.0 for GNU by @mathomp4 in #2519
- Enable Ninja Builds of GEOS in CI by @mathomp4 in #2517
- Fix wrong type of RETURN by @mathomp4 in #2522
- updates for geostationary output part 1 by @bena-nasa in #2528
- Explicitly use iso_c_binding types by @mathomp4 in #2531
- Remove ESMF_HAS_ACHAR_BUG CMake and cpp macro, update to ESMA_cmake v3.37.0 by @mathomp4 in #2524
- Restore missing interfaces by @mathomp4 in #2518
- Refactor CircleCI workflows by @mathomp4 in #2536
- Revise sampler code in History by @metdyn in #2527
- Fix fields utils, Issue #2530 by @darianboggs in #2538
- updates for geostationary output part 2 by @metdyn in #2546
- Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1 by @dependabot in #2555
- Auto GitFlow - main → develop by @github-actions in #2560
- Fixes #2553. Detect mpiuni builds of ESMF by @mathomp4 in #2556
- Auto GitFlow - main → develop by @github-actions in #2572
- Add Special NCCS Build Preset by @mathomp4 in #2566
- added nf90 interface to read and write 1d string by @weiyuan-jiang in #2568
- Fixes #2569. Convert MAPL to use ESMF::ESMF target by @mathomp4 in #2575
- Fix field utils tests by @darianboggs in #2584
- Add INSTALL.md by @mathomp4 in #2583
- Fixes for NVHPC by @mathomp4 in #2395
- Prepare for 2.44.0 Release by @mathomp4 in #2590
- GitFlow: Merge develop into main for release by @mathomp4 in #2593
Full Changelog: v2.43.2...v2.44.0