Home

Awesome

MAPL Repository

GEOS-ESM

DOI

MAPL is a foundation layer of the GEOS architecture, whose original purpose is to supplement the Earth System Modeling Framework (ESMF). MAPL fills in missing capabilities of ESMF, provides higher-level interfaces for common boiler-plate logic, and enforces various componentization conventions across ESMF gridded components within GEOS.

MAPL has 10 primary subdirectories for Fortran source code:

  1. shared - low level utilities that are used throughout the remainder of MAPL.
  2. profiler - time and memory profiling utility
  3. pfio - high-performance client-server I/O layer
  4. base (formerly MAPL_Base) - legacy core of MAPL. This layer will gradually evaporate under further refactoring.
  5. generic (under construction) - new home for MAPL extension of ESMF framework.
  6. oomph - next gen generic will eventually disappear
  7. gridcomps - Cap, History, and ExtData gridcomps used by all GEOS configurations.
  8. MAPL_cfio - this is a deprecated lower-level I/O layer that is generally replaced by GMAO_pFIO. Not all of the strings have been cut yet. Sometime soon, this directory will be eliminated.
  9. griddedio - layer between ESMF container and pfio library
  10. field_utils - utilities for manipulating data on ESMF fields in a rank- and typekind-agnostic way

MAPL also has a variety of other auxiliary directories:

  1. include - include files used by external gridded components.
  2. Apps - various Python and Perl scripts used by gridded components.
  3. Python - beginnings of a run-time scripting framework for GEOS configurations
  4. cmake - CMake build macros
  5. Tests - miscellaneous standalone drivers.
  6. pflogger_stub - workaround for apps that wish to avoid a dependency on pFlogger
  7. pfunit - pFUnit (unit testing framework) extensions for ESMF components
  8. benchmarks - miscellaneous benchmarking scripts
  9. docs - documentation

Installing MAPL

Please see the INSTALL.md file for instructions on how to install MAPL. This also contains information on how to install the required dependencies including subrepositories MAPL expects.

Using MAPL

You can find simple examples on how to use MAPL components in ESMF applications at:

MAPL Tutorial

A MAPL User's Guide is also available to have an in depth description of MAPL components.

Contributing

Please check out our contributing guidelines.

License

All files are currently licensed under the Apache-2.0 license, see LICENSE.

Previously, the code was licensed under the NASA Open Source Agreement, Version 1.3.