# Earth System Modeling Framework

The Earth System Modeling Framework (ESMF) is open-source software for building climate, numerical weather prediction, data assimilation, and other Earth science software applications. These applications are computationally demanding and usually run on supercomputers. The ESMF is considered a technical layer, integrated into a sophisticated common modeling infrastructure for interoperability. Other aspects of interoperability and shared infrastructure include: common experimental protocols, common analytic methods, common documentation standards for data and data provenance, shared workflow, and shared model components.
The ESMF project is distinguished by its strong emphasis on community governance and distributed development, and by a diverse customer base that includes modeling groups from universities, major U.S. research centers, the National Weather Service, the Department of Defense, and NASA. The ESMF development team was centered at NCAR until 2009, after which it moved to the NOAA Earth System Research Laboratories.
Editing Earth System Modeling Framework is free software released under the University of Illinois/NCSA Open Source License.

## Purpose

ESMF increases the interoperability of Earth-science modeling software developed at different sites and promotes code reuse. The idea is to transform distributed, specialized knowledge and resources into a collaborative, integrated modeling community that operates more efficiently, can address a wider variety of problems more effectively, and is more responsive to societal needs.

## Software architecture

ESMF is based on principles of component-based software engineering. The components within an ESMF software application usually represent large-scale physical domains such as the atmosphere, ocean, cryosphere, or land surface. Some models also represent specific processes (e.g. ocean biogeochemistry, the impact of solar radiation on the atmosphere) as components. In ESMF, components can create and drive other components so that an ocean biogeochemistry component can be part of a larger ocean component.
The software that connects physical domains is called a coupler in the Earth system modeling community. Couplers follow the mediator pattern and take the outputs from one component and transform them into the inputs that are needed to run another component. Transformations may include unit conversions, grid interpolation or remapping, mergers (i.e., combining land and ocean surfaces to form a completely covered global surface) or other specialized transformations. In ESMF, couplers are also software components.

## Capabilities

ESMF represents user data in the form of data objects such as grids, fields, and arrays. The user data within a component may be copied or referenced into these ESMF objects. Once user data is part of an ESMF data object, framework methods can be used to transform and transfer the data as required to other components in the system. This generally happens within a coupler component.
Grid interpolation and remapping are core utilities of ESMF. Interpolation weights can be generated in ESMF using bilinear interpolation, finite element patch recovery, and conservative remapping methods.
ESMF can associate metadata with data objects. The metadata, in the form of name and value pairs, is grouped into packages, which can be written out in XML and other standard formats. ESMF metadata packages are based on community conventions including the Climate and Forecast Metadata Conventions and the METAFOR Common Information Model.

## History

The ESMF collaboration had its roots in the Common Modeling Infrastructure Working Group (CMIWG), an unfunded, grass-roots effort to explore ways of enhancing collaborative Earth system model development. The CMIWG attracted broad participation from major weather and climate modeling groups at research and operational centers. In a series of meetings held from 1998 to 2000, CMIWG members established general requirements and a preliminary design for a common software framework.
In September 2000, the NASA Earth Science Technology Office (ESTO) released a solicitation that called for the creation of an ESMF. A critical mass of CMIWG participants agreed to develop a coordinated response, based on their strawman framework design, and submitted three linked proposals. The first focused on development of the core ESMF software, the second on deployment of Earth science modeling applications, and the third on deployment of ESMF data assimilation applications. All three proposals were funded, at a collective level of $9.8 million over a three-year period. As the ESMF project gained momentum, it replaced the CMIWG as the focal point for developing community modeling infrastructure.
During the period of NASA funding, the ESMF team developed a prototype of the framework and used it in a number of experiments that demonstrated coupling of modeling components from different institutions. ESMF was also used as the basis for the construction of a new model, the Goddard Earth Observing System (GEOS) atmospheric general circulation model at NASA Goddard.
As the end of the first funding cycle for ESMF neared, its collaborators wrote a project plan that described how ESMF could transition to an organization with multi-agency sponsorship for its next funding cycle. Major new five-year grants came from NASA, through the Modeling Analysis and Prediction (MAP) program for climate change and variability, and from the Department of Defense Battlespace Environments Institute. The National Science Foundation (NSF) continued funding part of the development team through NCAR core funds. Many smaller ESMF-based application adoption projects were funded in domains as diverse as space weather and sediment transport.
Also at the end of the first funding cycle, the ESMF collaborators wrote a white paper on future directions for the ESMF. This paper formed the basis for a proposal to NSF to combine ESMF (and other software frameworks) with data services to create a computational environment that supports an end-to-end modeling workflow.
In 2008, a project manager was appointed for the National Unified Operational Prediction Capability (NUOPC), a joint project for weather prediction of the United States Navy, the National Weather Service, and the United States Air Force.