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:
- shared - low level utilities that are used throughout the remainder of MAPL.
- profiler - time and memory profiling utility
- pfio - high-performance client-server I/O layer
- base (formerly MAPL_Base) - legacy core of MAPL. This layer will gradually evaporate under further refactoring.
- generic (under construction) - new home for MAPL extension of ESMF framework.
- oomph - next gen generic will eventually disappear
- gridcomps - Cap, History, and ExtData gridcomps used by all GEOS configurations.
- 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.
- griddedio - layer between ESMF container and pfio library
- 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:
- include - include files used by external gridded components.
- Apps - various Python and Perl scripts used by gridded components.
- Python - beginnings of a run-time scripting framework for GEOS configurations
- cmake - CMake build macros
- Tests - miscellaneous standalone drivers.
- pflogger_stub - workaround for apps that wish to avoid a dependency on pFlogger
- pfunit - pFUnit (unit testing framework) extensions for ESMF components
- benchmarks - miscellaneous benchmarking scripts
- docs - documentation
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.
You can find simple examples on how to use MAPL components in ESMF applications at:
A MAPL User's Guide is also available to have an in depth description of MAPL components.
Please check out our contributing guidelines.
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.