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
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.