GEOS-ESM/MAPL: MAPL 2.44.0
- Matthew Thompson1
- Ben Auer
- Tom Clune
- Weiyuan Jiang
- Darian Boggs
- Atanas Trayanov
- Yonggang Yu2
- Amidu Oloso
- Gian Villamil-Otero
- Raffaele Montuoro
- William Jamieson3
- Natalie Patten
- JulesKouatchou
- Peter Norris
- Lizzie Lundgren
- Elliot Sherman
- Liam Bindle
- Arlindo M. da Silva4
- patricia-nasa
- Sebastian David Eastham5
- Mike Manyin
- scivision
- Christoph Keller
- Bill Putman
- Yury Vikhliaev
- adarmenov
- Bin Zhao
- 1. SSAI/GMAO
- 2. saic.com
- 3. Space Telescope Science Institute
- 4. NASA Goddard Space Flight Center
- 5. Imperial College London
Description
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,
ifxdoes 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.mdfile 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.F90with just_RCin 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_BUGCMake 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::ESMFtarget instead ofesmforESMFas the imported target name- Updated
FindESMF.cmaketo match that of ESMFdevelopas of commitda8f410. This will be in ESMF 8.6.1+ - Requires ESMA_cmake 3.40.0 or later as this adds the
ESMF::ESMFtarget 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
usesomeiso_c_bindingtypes previously pulled in through ESMF. This is fixed in future ESMF versions (8.7+) and so we anticipate this here - Add explicit
Fortran_MODULE_DIRECTORYtoCMakeLists.txtin 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 https://github.com/GEOS-ESM/MAPL/pull/2471
- Add generic memory profiling utility by @bena-nasa in https://github.com/GEOS-ESM/MAPL/pull/2509
- Update CI to use Open MPI 5.0.0 for GNU by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2519
- Enable Ninja Builds of GEOS in CI by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2517
- Fix wrong type of RETURN by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2522
- updates for geostationary output part 1 by @bena-nasa in https://github.com/GEOS-ESM/MAPL/pull/2528
- Explicitly use iso_c_binding types by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2531
- Remove ESMF_HAS_ACHAR_BUG CMake and cpp macro, update to ESMA_cmake v3.37.0 by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2524
- Restore missing interfaces by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2518
- Refactor CircleCI workflows by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2536
- Revise sampler code in History by @metdyn in https://github.com/GEOS-ESM/MAPL/pull/2527
- Fix fields utils, Issue #2530 by @darianboggs in https://github.com/GEOS-ESM/MAPL/pull/2538
- updates for geostationary output part 2 by @metdyn in https://github.com/GEOS-ESM/MAPL/pull/2546
- Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1 by @dependabot in https://github.com/GEOS-ESM/MAPL/pull/2555
- Auto GitFlow - main → develop by @github-actions in https://github.com/GEOS-ESM/MAPL/pull/2560
- Fixes #2553. Detect mpiuni builds of ESMF by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2556
- Auto GitFlow - main → develop by @github-actions in https://github.com/GEOS-ESM/MAPL/pull/2572
- Add Special NCCS Build Preset by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2566
- added nf90 interface to read and write 1d string by @weiyuan-jiang in https://github.com/GEOS-ESM/MAPL/pull/2568
- Fixes #2569. Convert MAPL to use ESMF::ESMF target by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2575
- Fix field utils tests by @darianboggs in https://github.com/GEOS-ESM/MAPL/pull/2584
- Add INSTALL.md by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2583
- Fixes for NVHPC by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2395
- Prepare for 2.44.0 Release by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2590
- GitFlow: Merge develop into main for release by @mathomp4 in https://github.com/GEOS-ESM/MAPL/pull/2593
Full Changelog: https://github.com/GEOS-ESM/MAPL/compare/v2.43.2...v2.44.0
Files
GEOS-ESM/MAPL-v2.44.0.zip
Files
(2.4 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:ea35371047c91cd4fbc3f658d74dcd2d
|
2.4 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/GEOS-ESM/MAPL/tree/v2.44.0 (URL)