File uploads: We have fixed an issue which caused file uploads to fail. We apologise for the inconvenience it may have caused.

There is a newer version of the record available.

Published February 12, 2021 | Version v2.6.0
Software Open

GEOS-ESM/MAPL: MAPL 2.6 Release

Description

This is a minor release of MAPL, 2.6, which is zero-diff to MAPL 2.5. The minor release is because MAPL has undergone a rather substantial internal reorganization. For most users this will not affect their code, but there are a few places where some code will need changing (see https://github.com/GEOS-ESM/GMAO_Shared/pull/155).

From CHANGELOG.md Added
  • Add option to compute variance of tiles when doing T2G locstream transform
  • Add option fast_oclient that waits before using oserver. It would not wait after done message are sent
  • Added new is_valid_date() and is_valid_time() functions to make sure invalid times and dates are not sent to MAPL
Changed
  • For MultiGroupServer, the backend and frontend share each node
  • Moved MAPL_HistoryGridComp.F90 and related files to gridcomps/History
  • Updated Python/MAPL/constants.py to have the same constants as MAPL_Constants.F90

  • Major refactoring related to MAPL generic capabilities

    1. Created new subdirectory "generic"

    2. Modified interface to MAPL_Get() to use ALLOCATABLE for GEX, GIM, GCS, and GCnamelist. Original interface assumed these are contiguous which will not be sustainable under the planned changes.

    3. (Re)Introduce fundamental classes in generic subdir. Made MAPL_MetaComp an extension of AbstractComponentNode, and provided stub implementations for 3 methods. (Commenting out other interfaces in the abstract class for now.)

    4. Activate get_parent(), add_child(), and num_children()

    5. Introduced AbstractComposite and ConcreteComposite

      These are isolate the responsibility for managing the component hierarchy. CompositeComponite then blends in ConcreteComposite into the AbstractFrameworkComponent class.

    6. Extracted internal state from MAPL_MetaComp

    7. Started moving derived types related to import/export specification and such. The goal will be to then refactor into proper classes with encapsulation.

    8. Introducing Vector container for array of pointers to VarSpecType.

      First brute force attempt resulted in run-time issues that were difficult to trace. So going gradually. Have introduced a StateSpecification type that hold the legacy array of pointers and a vector and methods that will enable keeping both representations consistent.

      New representation is not used yet.

      Various attempts to update use of MAPL_VarSpec based upon vectors were failing due to multiple pointer associations across objects.

      The basic vector was modified to be MAPL_VarSpec instead of MAPL_VarSpecType, and now all works.

      Wrapped new procedure with legacy interface.

      HistoryGridComp uses the older interface in a way that is not immediately fixable.

    9. MAPL_GenericGrid

      • Created new module in generic for and renamed to MaplGrid
      • moved component from MAPL_MetaComp to BaseFrameworkComponent
    10. Moved 'lgr' component to baseFrameworkComponent.

      • Add obsolete warning to deprecated interface
      • Migrated some grid methods to new class.
      • This necessitated moving some procedures from MAPL_Base into MAPL_Generic.
    11. Prepping VarSpecMod for relocation.

      • Removed dependencies on MAPL_IO and MAPL_comms. Used pflogger to replicate the functionality.
      • Eliminated dependence of VarSpec on Base.
      • Moved some parameters into new Enumerator module in ./shared. MAPL_Base still needs to republish them to avoid issues with external codes.
    12. Introduced a MaplShared package to export everything from

    13. Migrated VarSpec to ./generic.

    14. Eliminated use of MAPL_Communicators in MAPL_CFIO.F90.

      • Side benefit - eliminated lots of unused routines and logic associated with old and new o-server.
    15. Lots of things related to MAPL_Communicators and old O-server were eliminated.

    16. Kludgy relocation of component logger.

    17. MAPL_Initialize is needed in each test layer so pulled it over to the pfunit directory.

Fixed
  • Fixes for allowing forked PRs to pass CI
  • Fixes incorrect referrencing of R4 variables when reading R8 tile vars in base/MAPL_IO.F90
  • Use integer to represent logical internally in pFIO utilities to avoid non-standard transfer
  • Modified horizontal ij search algorithm in MAPL_Base.F90 to use general bisection search to fix capaibility issues with non-gmao created cubed sphere grids

Files

GEOS-ESM/MAPL-v2.6.0.zip

Files (1.5 MB)

Name Size Download all
md5:9048322ed9326861bcaf3b7531093718
1.5 MB Preview Download

Additional details

Related works