MAPL 2.45.0
This release of MAPL has many updates and fixes. Among the highlights are:
- Fix inconsistency in History cubed-sphere output where multi-dimensional coordinate variables are also compressed if requested in the collection
- Removed unnecessary memory allocation for tile reads. This is critical for high res runs on SCU17
- Add new per-collection timer output for History
- New
SPLIT_CHECKPOINT
option replacing the write-by-face option. This will write a file per writer - Various fixes and additions for trajectory, swath and station work
- Allow arithmetic operations to be performed on fields from bundles in History
- Added two options, depends_on and depends_on_children, to ACG
- Support for GCC 13 and NAG 7.2 (with GFE v1.15.0)
- And many many more (see below)
This version of MAPL was tested with:
- Intel Fortran Classic 2021.6.0 (Classic 2021.12 seems to work,
ifx
does not yet work) - GCC 13.2.0
- NAG 7.2
The libraries this version of MAPL is currently tested with are below. NOTE: Changes here from MAPL 2.44 and earlier, namely GFE
- Baselibs 7.23.0
- netcdf-c 4.9.2
- netcdf-fortran 4.6.1
- ESMF 8.6.0 (required)
- GFE 1.15.0
- gFTL 1.13.0
- gFTL-shared 1.8.0
- pFUnit 4.9.0 (optional)
- fArgParse 1.7.0 (if
-DBUILD_WITH_FARGPARSE=YES
, default=YES
) - pFlogger 1.14.0 (if
-DBUILD_WITH_PFLOGGER=YES
, default=YES
)
Also, if you build with Baselibs and/or -DUSE_F2PY=ON
, you should use:
- ESMA_cmake v3.44.0
We recommend most external users set -DUSE_F2PY=OFF
From CHANGELOG.md
Added
- Add glob function in sampler code, supporting wild character, e.g., filename template =
amsr2_gcom-w1.%y4%m2%d2T%h2%n2*.nc4
- Checked resource for o-server. It quits if the numer requested is inconsistent with being used
- Replace local HorzIJIndex sear with the GlobalHorzIJindex search
- Change grd_is_ok function to avoid collective call
- Allow fields with ungridded dimension and bundles to be created in ExtDataDriver.x
- Allow arithmetic operations to be performed on fields from bundles in History
- Adapted subroutine RegridVector from GriddedIO.F90 to MAPL_EpochSwathMod.F90 (changing class name for this)
- Give informative error message when swath grid Epoch does not equal swath sampler frequency
- Add mask sampler for geostationary satellite (GEOS-R series)
- Add geostation name into NC for station sampler
- Add mapping between the IODA loc_index and trajectory NC output loc_index
- Add
allocate(X, _STAT)
to sampler codes - Skip destroy_regen_grid when list(n)%end_alarm is active (the last time step in sampler)
- Add extract_unquoted_item(STR1) to fix a bug in geoval_xname(mx_ngeoval) in trajectory sampler
- Add
if (compute_transpose)
to sub. destroy_route_handle to avoid destroying a nonexisting route handle - Add option to MAPL regridding layer to write and retrieve ESMF weights.
- Add options to History and ExtData to turn on the ability to write and read route handle weights
- Add option to renable the transpose computation when calling make_regridder
- Added procedures to remove an attribute from a FileMetadata object and from a Variable object in PFIO
- Add per-collection timer output for History
- Add python utilities to split and recombine restarts
- Add a new "SPLIT_CHECKPOINT:" option that has replaced the write-by-face option. This will write a file per writer
- Implemented a new algorthm to read tile files
- Added two options, depends_on and depends_on_children, to ACG
- Add CI job to test Ford build (does not publish)
Changed
- Release the pfio memory as early as possible
- Trajectory sampler: ls_rt -> ls_chunk (via mpi_gatherV) -> ls_distributed(bk=cs_grid; via ESMF_FieldRedistStore), aiming to save computational time. To gather 3D data via mpi, options for level by level and single-3D are added via ifdef.
- The MAPL_ESMFRegridder manage now does compute the transpose by default
- Bypassed the I-Server reading call when there is no extdata
- Created new
ESSENTIAL
ctest label for tests that must pass for a release- These are "simple" quick tests that don't require a lot of resources
- With ESMA_cmake v3.43.0,
make tests
will only run tests with theESSENTIAL
label. To run all tests, usemake tests-all
- Update
components.yaml
- ESMA_cmake v3.43.0
- Updates to MPI detection
- Enable
-quiet
flag for NAG make tests
now only runs tests with theESSENTIAL
label. To run all tests, usemake tests-all
BUILT_ON_SLES15
set toFALSE
on NCCS if not built on SLES15
- ESMA_env v4.28.0 (Baselibs 7.23.0)
- Updates to GFE v1.15
- Fixes for NAG
- Use GCC 11.4 as Intel backing compiler at NCCS SLES15
- ESMA_cmake v3.43.0
- Update CI to use Baselibs 7.23.0 and GCC 13.2 for GNU tests
Fixed
- Change to IntArray's pointer to store data to avoid Intel Ifort bug
- Fix inconsistency in History output so that multi-dimensional coordinate variables are also compressed if requested in the collection
- Minor workaround to enable NAG 7.2.01 to compile. (Reproducer submitted to NAG.)
- Fixed bug with split restart files
- Removed unnecessary memory allocation for tile reads. This is critical for high res runs on SCU17
- Fixes to allow SCM model to run
Removed
- Removed CMake logic for macOS + Intel as that is an unsupported configuration
What's Changed
- Feature/atrayano/io fixes by @atrayano in #2592
- New SPLIT_CHECKPOINT option to replace read/write by face by @bena-nasa in #2394
- ignore iclients call when no exdata is needed by @weiyuan-jiang in #2619
- Feature/bmauer/per collection timer by @bena-nasa in #2622
- Fixes to allow SCM model to run by @mathomp4 in #2602
- Add remove attribute procedure to FileMetadata by @bena-nasa in #2626
- Bump CircleCI-Public/trigger-circleci-pipeline-action from 1.1.0 to 1.2.0 by @dependabot in #2621
- Fix but with split restarts by @bena-nasa in #2629
- Store regrid weights by @bena-nasa in #2631
- restore line by @bena-nasa in #2634
- Fix a bug in subroutine destroy_route_handle by @metdyn in #2637
- Fix bug with GriddedIO and Extdata1G by @mathomp4 in #2639
- Mask sampler for geostationary satellite by @metdyn in #2600
- Minor improvement on swath sampler by @metdyn in #2645
- Update to ESMA_cmake v3.42.0 by @mathomp4 in #2651
- Auto GitFlow - main → develop by @github-actions in #2661
- Feature/tclune#2663 port to nag 7.201 by @tclune in #2664
- Auto GitFlow - main → develop by @github-actions in #2669
- Feature/bmauer/fixes #2440 by @bena-nasa in #2670
- remove block that was for debugging by @bena-nasa in #2673
- Auto GitFlow - main → develop by @github-actions in #2679
- changes needed for R21C by @bena-nasa in #2685
- Merge R21C into develop: Compress lats and lons in CS output if deflate requested by @mathomp4 in #2689
- Add DEPENDS_ON and DEPENDS_ON_CHILDREN options to ACG by @darianboggs in #2676
- Add ESSENTIAL label by @mathomp4 in #2659
- Add MPI_gaththerV as an intermediate step between LS_root and LS_distributed(bk=cs_grid) by @metdyn in #2660
- Add missing INT64 use by @mathomp4 in #2705
- Update to Baselibs 7.23.0 by @mathomp4 in #2627
- unify HorzIJIndex search by @weiyuan-jiang in #2636
- Clean up CI by @mathomp4 in #2717
- Update pull request template and github actions by @mathomp4 in #2715
- GitFlow: Handmerge main to develop 2024-Apr-11 by @mathomp4 in #2726
- Auto GitFlow - main → develop by @github-actions in #2727
- check if the number of nodes of o-server is consistent by @weiyuan-jiang in #2701
- Use glob function to allow wild character in template by @metdyn in #2746
- Add Ford CI job by @mathomp4 in #2760
- Backport Ford fixes from MAPL3 by @mathomp4 in #2764
- Fix an error in filename when wild character is introduced into template by @metdyn in #2769
- Add missing c_ptr declaration for ESMF 8.6.1b04 by @mathomp4 in #2776
- Update GitHub Actions to use GCC 13.2 by @mathomp4 in #2777
- Remove macOS + Intel CMake logic by @mathomp4 in #2778
- work around #2703 and release pfio memory as early as possible by @weiyuan-jiang in #2732
- Prepare for 2.45.0 Release by @mathomp4 in #2786
- Gitflow: Merge develop into main for 2.45 release by @mathomp4 in #2787
Full Changelog: v2.44.3...v2.45.0