Hosted by CU logo University of Colorado
Powered by ESGF-CoG logo
Welcome, Guest. | Login | Create Account
ESMF logo
You are at the CoG-CU node

FAQ: Frequently Asked Questions (OLD)

About ESMF

Getting Started



About ESMP

About ESMF

When did ESMF begin and will it end?

The ESMF project started in early 2002 and has ongoing funding from NASA, the Department of Defense, NOAA, and NSF. We expect ESMF to be around for a long time!

Is ESMF being used in any real codes?

Yes, ESMF is being used by the Community Earth System Model, the National Weather Service Global Forecast System and NOAA Environmental Modeling System at the National Centers for Environmental Prediction, by the GEOS atmospheric general circulation model at NASA Goddard, the coupled HYbrid Coordinate Ocean Model and CICE sea ice model at the Naval Research Laboratory, and many more. Overall there are more than seventy-five ESMF-ized components in the community.

What's the performance overhead of using ESMF?

It's typical to see a few percent overhead in adopting the ESMF superstructure. Many see no discernible increase in execution time. There are many detailed reports on ESMF performance.

What does it mean to be ESMF compliant?

We have used these steps as a working definition of ESMF compliance. However, the introduction of the National Unified Operational Prediction Capability (NUOPC) Layer, which includes conventions and tools that increase the interoperability of ESMF components, formalizes that definition for codes that use it. NUOPC also provides a compliance checker that can be linked in at run-time. The NUOPC code is still in development, but is bundled with the ESMF distribution 5.2.0r and later. If you have questions or would like to try the NUOPC code, please write ESMF support and we can get you started.

What platforms does ESMF run on?

ESMF runs on virtually all high performance computing platforms. Since platforms change frequently, not all versions of ESMF run on every platform. Every release of ESMF lists which platforms it runs on.

What geophysical models does ESMF come with?

ESMF does not come with any numerical models. We work in a distributed model where groups create their own ESMF components and link to the ESMF software. ESMF tries to keep track of (view list) but does not provide the source code for these components.

Getting Started

What's the best way to get started?

If you're a modeler and have a specific model or model segment that you're interested in turning into an ESMF component, write to us at We can talk about what ESMF can do for you, how to partition a system into components, and steps in the adoption process. If you're a technical person and would like to participate in (or just listen in on) ESMF development discussions, join the ESMF Joint Specification Team (JST) mailing list, We occasionally have a telecon that is announced on the JST mailing list. If you would just like highlights from time to time on how ESMF is doing, join the list.

How does my code need to change to adopt ESMF?

The changes that are typically required to convert a code to ESMF are described in the ESMF User's Guide: How to Adapt Applications for ESMF. That's an overview that should help get you started.

What are my download options?

The all releases as well as description of the latest public release are linked from our download page.

Beta snapshots via the Git repository

Checking out a tarball and untarring it in a single step:

git archive --remote=git:// --format=tar --prefix=esmf/ <TAG> | tar xf -


<TAG> is the git tag (e.g. ESMF_X_Y_Z_beta_snapshot_01)


How do I join the ESMF mailing lists?

Click on the links below for the three primary ESMF mailing lists.

Name Description ESMF Progress and Events Joint Specification Technical Team Discussion

I have sent an email to esmf_support but have not heard back from anyone, what should I do?

Your support emails are very important to us, and we try to respond to them quickly even if it is just to let you know that we have received your request. The esmf_support mailing list is protected, however, and only those people who have downloaded the software, or who have been manually added are allowed to post. We check for pending posts on a weekly basis. If you have been waiting more than a week, please submit your post again, it is likely that it was not received.

How often are tutorials conducted?

Tutorials are conducted on an as needed basis. If you are interested in a tutorial, please send an email to

Is there support forum so that I can talk to other users?

ESMF currently does not have a user forum. If a user forum would be useful to you, please drop us a line at


How do I make a software contribution?

Write to and let us know what you're interested in contributing. We strongly encourage you to do this before you get started! We can point you to the processes and conventions you need to follow in order to get your software into the ESMF source code smoothly. Details are included in the ESMF Developer's Guide.

How do I ask for a new feature?

Write to If you'd like to talk with ESMF developers and other users about your feature request, writing support is a good starting point. We also have quarterly Change Review Board (CRB) telecons during which people can advocate that their feature be considered for inclusion on the development schedule. Let us know if you want to do that and we can get you on the agenda.

How do I find out if a method has been tested?

Which methods have tested is updated weekly and listed by language on the ESMF testing page.

How do I tell which beta snapshot I have downloaded?

Once you have downloaded a beta snapshot via the Git command shown in this FAQ, there is no easy way to later determine which beta snapshot tag was used. However, we recommend that you include the tag name in the specified --prefix to help identify what was downloaded.

About ESMP

Does ESMF have Python bindings?

Yes, ESMF does have a prototype Python package, it is called ESMP. ESMF has a robust, parallel and scalable remapping package, used to generate remapping weights. It can handle a wide variety of grids and options: logically rectangular grids and unstructured meshes; regional or global grids; 2D or 3D; and pole and masking options. ESMP supports a single-tile logically rectangular discretization type called ESMP_Grid and an unstructured discretization type called ESMP_Mesh (ESMF also supports observational data streams). ESMP supports bilinear, finite element patch recovery and first-order conservative regridding. There is also an option to ignore unmapped destination points and mask out points on either the source or destination. Regridding on the sphere takes place in 3D Cartesian space, so the pole problem is not an issue as it can be with other Earth system grid remapping software. Grid and Mesh objects can be created in 2D or 3D space, and 3D first-order conservative regridding is fully supported. Future plans for ESMP involve the incorporation of observational data streams.

How can I get ESMP?

Tarballs are available here.

What do I need to use ESMP?

You need Python 2.6 or higher, with ctypes and numpy. You also need a current ESMF installation, the 5.3.0 release is a good place to start. ESMP has been tested on Linux, Macintosh, and Cray systems with the GNU compilers. There is more information on ESMP dependencies and limitations in the documentation. There is more information on how to build an ESMF installation in the ESMF user's guide.

Are there examples of what I can do with ESMP?

Certainly, see the tutorials.

How do I get help with ESMP?

You can get help with ESMP through the same channels as with ESMF, just write to

Last Update: Feb. 24, 2017, 12:59 p.m. by Rocky Dunlap