Skip to content

MAPL 2.45.0

Compare
Choose a tag to compare
@mathomp4 mathomp4 released this 25 Apr 17:14
· 299 commits to main since this release
8583784

DOI

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 the ESSENTIAL label. To run all tests, use make 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 the ESSENTIAL label. To run all tests, use make tests-all
      • BUILT_ON_SLES15 set to FALSE 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
  • 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

Full Changelog: v2.44.3...v2.45.0