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 7 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
- generic (under construction) - new home for MAPL extension of ESMF framework.
- base (formerly MAPL_Base) - legacy core of MAPL. This layer will gradually evaporate under further refactoring.
- 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.
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
- MAPL_pFUnit - implements extensions of pFUnit unit testing framework that enable unit tests of grid comp run methods. This layer should eventually be migrated into pFUnit itself.
- Tests - miscellaneous standalone drivers.