Skip to content

MAPL 2.41.0

Compare
Choose a tag to compare
@mathomp4 mathomp4 released this 22 Sep 16:38
· 1086 commits to main since this release
2947429

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