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

Releases: 5* Series

Public releases have an "r" after the release name, e.g. 5_2_0r. Public releases that have been patched are labeled with their patch number e.g. "rp1", "rp2".

Click on the link for any release to download the code.

Releases Release notes Known bugs

ESMF_5_2_0rp3

9/30/13

Reference Manual for Fortran
(html) (pdf)

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 5.2.0rp2. There are no API changes.
  • The ESMF regridding status tables have not changed since 5.2.0rp1/rp2.
  • Same as ESMF_5_2_0rp2 with the following exceptions:
    • The ESMF_GridCreate() call, which allows the user to create a Grid from a SCRIP format file and a DistGrid, no longer creates the Grid using the wrong coordSys (Cartesian instead of spherical). A Grid created with this call will now work fine in methods (e.g. ESMF_FieldRegridStore()) which use the coordSys to determine the shape of the Grid.
    • The instability that led to undefined behavior (e.g. segmentation fault) for all the sparse matrix store calls (i.e., ESMF_FieldBundleSMMStore(), ESMF_FieldSMMStore(), ESMF_ArrayBundleSMMStore(), and ESMF_ArraySMMStore()) for very large problem sizes (~15 million factors in the sparse matrix) has been fixed.
    • The decomposition scheme of the original DistGrid (indicated by the ESMF_Decomp_Flag) is now correctly duplicated by the ESMF_DistGridCreate() methods that take a DistGrid input argument.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • The same as ESMF_5_2_0rp2.

ESMF_5_3_0

4/30/12 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 5.2.0rp2 for all the interfaces that were previously marked to remain backward compatible in future ESMF releases. However, there were API changes to unmarked methods in Mesh and Attachable Methods. These changes require user code modifications unless argument keyword syntax was used. The entire list of API changes is summarized in a table showing interface changes since ESMF_5_2_0rp2, including the rationale for each change.
  • Tables summarizing the ESMF regridding status have been updated. These include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • A Python interface to ESMF, currently called ESMP, has been implemented. It is available for download at the ESMP web page. ESMP provides support for Grids, Meshes, Fields, and Field regridding. The regridding capability includes bilinear, higher-order patch recovery and first-order conservative regridding methods and the choice to ignore unmapped points. There is support for applying masking or user areas to the Grid or Mesh, and retrieving areas or fractions from a Field. There is also limited access to the ESMF VM and Log capability through ESMP.
  • A fault-tolerant extension to the ESMF_GridComp and ESMF_CplComp interfaces has been implemented. This extension allows ESMF Components, running in separate executables, to be linked via a socket based connection. A user controlled "timeout" mechanism allows either side of this link to continue with normal execution even after the other side of the connection has become unresponsive. The practical use cases of this new feature are large ensemble configurations where individual ensemble members may crash during the course of a simulation run. The fault-tolerant Component mechanism allows the ensemble driver, under these circumstances, to complete the run in a controlled manner with the remaining ensemble members. This mechanism was implemented by adding a "timeout" argument to ESMF_GridCompDestroy(), ESMF_GridCompFinalize(), ESMF_GridCompInitialize(), ESMF_GridCompReadRestart(), ESMF_GridCompRun(), ESMF_GridCompSetServices(), ESMF_GridCompWait(), and ESMF_GridCompWriteRestart(), as well as the equivalent ESMF_CplComp methods. New methods ESMF_GridCompServiceLoop(), and ESMF_CplCompServiceLoop() were added with the "timeout" argument.
  • The generic NUOPC_Driver component now supports petLists for all model and connector components. This enables these components to be run concurrently if desired.
  • The generic NUOPC_Driver and NUOPC_Model components now support simple explicit, semi-implicit, as well as complex implicit component run sequences.
  • The ESMF_StateReconcile() method can now be called repeatedly on the same State during the course of execution. This can be used to re-reconcile the State after adding to or removing objects from it.
  • Added an optional "index" argument to all of the ESMF_MethodAdd(), ESMF_MethodExecute(), and ESMF_MethodRemove() calls to support multiple methods under the same "label". The NUOPC layer utilizes this feature to implement phase-specific Component method specializations.
  • An ESMF_FieldCopy() method was added. This method copies data values from a source Field to a destination Field. The underlying data arrays in the source and destination Fields must have the same shape and distribution (i.e., their DistGrids must be identical).
  • The ESMF_FieldRegridStore() call has been extended to support first order conservative regridding involving Fields built on 3D Grids or 3D Meshes. The 3D Meshes this capability will work on are ones composed of hexahedrons and tetrahedrons. (In contrast to this, bilinear interpolation is supported on 3D Meshes composed just of hexahedrons and higher-order patch interpolation isn't supported in 3D.)
  • The ESMF_FieldRegridStore() call has been enhanced so that now conservative regridding takes into account Mesh cell masking. This will allow the user to mask out portions of an unstructured Mesh.
  • The ESMF_FieldRegridStore() call has been extended so that now conservative regridding is adjusted to use the cell areas set in the Grid or Mesh object upon which the source and destination Fields are built. If these areas are set, the conservation will now hold for these areas. If not set, the conservation will hold for the cell areas as calculated by ESMF.
  • The offline regrid weight generation application (ESMF_RegridWeightGen) now has the capability to generate conservative weights for 3D unstructured Meshes specified in the ESMF unstructured file format.
  • The ESMF_RegridWeightGen application supports two new grid file formats: Climate and Forecast (CF) UGRID convention for 2D unstructured grids and CF GRIDSPEC convention for single-tile logically rectangular 2D grids.
  • The ESMF_RegridWeightGen application allows users to construct a grid mask by using the missing values of a data variable defined in the UGRID or the GRIDSPEC file.
  • A new command line option (--users_area) was added to the ESMF_RegridWeightGen application. For conservative regridding this option causes the weight generation to use the grid areas provided in the grid files instead of calculating the areas internally. If these areas are read in, the conservation will now hold for these areas. If the option is not set, the conservation will hold for the cell areas as calculated by ESMF.
  • An ESMF_ArrayCopy() method was added. This method takes two existing Array objects and copies the data from one Array into the other, after verifying that both have the same shape and distribution (i.e., the DistGrids must be identical).
  • The ESMF_GridCreate() method that supports creation of a Grid from a SCRIP format NetCDF file was extended to support files using the CF GRIDSPEC convention. Options for user area and masking were also added to the interface.
  • The ESMF_MeshCreate() and ESMF_MeshAddElements() methods have been extended to allow the user to optionally set cell areas and cell masks.
  • The ESMF_MeshCreate() method that supports creation of a Mesh from a SCRIP format or ESMF unstructured Mesh format NetCDF file was extended to support files using the CF UGRID convention. Options for user area and masking were also added to the interface.
  • The ESMF_MeshCreate() method that supports creation of a Mesh from an ESMF unstructured Mesh format NetCDF file was extended to support 3D unstructured Meshes.
  • The ESMF_XGridCreate() method was extended to support lists of Grids on either side of the XGrid (exchange grid). The flux exchange calculated through the XGrid is first order conservative. Masking and merging when creating an XGrid are not supported in this release.
  • The ability to access Grid object information through the Attribute class with string valued input parameters was added to ESMF_AttributeGet(). This is an initial example of how information can be drawn directly from data objects, and does not need to be entered by the user.
  • Implemented the custom calendar kind, ESMF_CALKIND_CUSTOM, in Time Manager. This can be used to define calendars for other planets, such as Mars, as well as custom Earth calendars.
  • Added support for Fortran logical data type in ESMF_VMGather() and ESMF_VMAllToAllV().
  • Added support for Fortran character array in ESMF_VMAllGatherV() and ESMF_VMAllToAllV().
  • Implemented ESMF_VMAllToAll() for real and integer data types.
  • Support for the Grid, Fields built on Grids and Field regridding was added to the C interface. There is support for applying masking or user areas to the Grid or Mesh, and retrieving areas or fractions from a Field.
  • By default, LAPACK dependencies are now satisfied using internal code. Linking against an external LAPACK library is no longer required to use the higher order patch interpolation.
  • FieldBundles don't currently enforce that every contained Field is built on the same Grid, Mesh, LocStream, or XGrid object, although the documentation says that this should be so.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids which contain a DE of width less than 2 elements.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids of arbitrary distribution.
  • ESMF_FieldRegridStore() that takes XGrid as an argument does not support regridding between Fields that are constructed on Grids for which ESMF_GridMatch() locally returns a value of ESMF_GRIDMATCH_EXACT or greater. This may result in unexpected local errors.
  • A larger than expected difference in integrals (8.7E-10) is occurring when using the conservative regridding between a 1 deg lat lon grid and a 2.5 deg lat lon grid. This problem appears isolated to a subset of the cases when grid cell edges align, but not exactly due to round off. It is recommended that users test the integration of their conservative interpolation under these circumstances.
  • The ESMF_RegridWeightGen application does not correctly handle SCRIP unstructured grid files that have small round off errors in the corner coordinate arrays. This problem leads to an abort with error about degenerated cells.
  • The ESMF_RegridWeightGen application does not correctly handle bilinear and patch regridding on SCRIP unstructured grid files containing concave cells. This problem leads to an abort with error about degenerated cells.
  • The ESMF_RegridWeightGen application does not output the grid mask array in the output weight file when either input grid is supplied following the UGRID convention. As a result, the output weight file produced under this condition does not work with the scrip_test utility program provided by the SCRIP package.
  • The ESMF regrid weight generation systemcan give wrong answers for the bilinear method on 3D Grids or 3D Meshes when a point in the destination falls very close to the edge of a source cell. In this case the destination point can sometimes be mapped to a wrong cell.
  • The ESMF regrid weight generation systemtakes noticeably longer to generate regridding weights when going from a very high resolution grid to a coarse grid (e.g. a 2km global grid to a 7.5x1.875 degree global grid) than when going to another high resolution grid.
  • The ESMF_RegridWeightGen application and interface will fail with an error if an input grid contains a polygon with more than 20 sides.
  • All of the sparse matrix store calls (i.e., ESMF_FieldBundleSMMStore(), ESMF_FieldSMMStore(), ESMF_ArrayBundleSMMStore(), and ESMF_ArraySMMStore()) suffer from an instability that can lead to undefined behavior (e.g. segmentation fault) for very large problem sizes (~15 million factors in the sparse matrix).
  • The ESMF_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution will give incorrect results if the Grid contains items (e.g. areas or mask values). The new Grid is created without items.
  • The ESMF_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution will give incorrect results if the Grid contains stagger locations other than ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_EDGE1, and ESMF_STAGGERLOC_EDGE2. The new Grid will not contain any stagger locations other than the above.
  • The decomposition scheme of the original DistGrid (indicated by the ESMF_Decomp_Flag) is not duplicated by the ESMF_DistGridCreate() methods that take a DistGrid input argument. Instead, the duplicate DistGrid is always constructed using ESMF_DECOMP_BALANCED. This issue is most noticeable when building Grids on DistGrids with decomposition schemes other than the default ESMF_DECOMP_BALANCED. A Field built on such a Grid will incorrectly use a balanced decomposition.
  • ESMF_AttributeWrite() only works for ESMF standard Attribute packages.
  • ESMF_AttributeUpdate() will not work correctly if the only changes have been Attribute removals. In this situation the call will return success but no updating will have occurred. This situation can occur during the removal of Attribute packages as well as single Attributes.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • AIX/IBM (Bluefire): Fails the ESMF_ArrayRedistOpenMPSTest.F90 system test intermittently.
  • Darwin with gfortran (Haumea): Fails the ESMF_CompTunnelUTest.F90 unit test with ESMF_COMM=mpich2 and ESMF_COMM=mvapich2.
  • Linux with Intel (Columbia): Fails the ESMF_FieldRegridUTest.F90 unit test with ESMF_COMM=mpi and mpiuni + ESMF_BOPT=O. It also fails the ESMF_FieldSphereRegridEx.F90 example with ESMF_COMM=mpi + ESMF_BOPT=O.
  • Linux with Intel (Discover): Fails the ESMF_CompTunnelUTest.F90 unit test with ESMF_COMM=mvapich2 + ESMF_BOPT=O. It also fails the ESMF_CompTunnelEx.F90 example intermittently with ESMF_COMM=mvapich2 + ESMF_BOPT=O.
  • Linux with g95 (Pluto): Fails the ESMF_CompTunnelUTest.F90 unit test intermittently with ESMF_COMM=mvapich2 and mpich2. It also fails the ESMF_CompTunnelEx.F90 example intermittently with ESMF_COMM=mvapich2 + ESMF_BOPT=O.
  • Linux with gfortran (Pluto): Fails the ESMF_CompTunnelUTest.F90 unit test intermittently with ESMF_COMM=mpich2 and openmpi. It also fails the ESMF_CompTunnelEx.F90 example intermittently with ESMF_COMM=mpich2 + ESMF_BOPT=O.
  • Linux with Intel (Pluto): Fails the ESMF_CompTunnelUTest.F90 unit test with ESMF_COMM=mvapich2 + ESMF_BOPT=g.
  • Linux with NAG (Pluto): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=openmpi.
  • Linux with NAG (Pluto): Fails the ESMF_CompTunnelUTest.F90 unit test with ESMF_COMM=mpich2 + ESMF_BOPT=O and ESMF_COMM=mvapich2 + ESMF_BOPT=g.
  • Linux with PGI (Discover, Fusion, Jet): Systems tests hang intermittently with ESMF_COMM=mvapich2 due to a system level issue with the mvapich2/PGI combination.
  • Linux/SGI Altix ICE with Intel (Pleiades): Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=openmpi.
  • Linux/SGI Altix ICE with Intel (Pleiades): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=intelmpi.
  • Linux/SGI Altix ICE with Intel (Pleiades): Fails the ESMF_CompTunnelEx.F90 example intermittently with ESMF_COMM=mvapich2 + ESMF_BOPT=g.
  • Linux/SGI Altix ICE with gfortran (Pleiades): Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=mvapich2.
  • Linux/Sun Fire X4640 with PGI (Euclid): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=openmpi.
  • Linux with PGI (Jet): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=mvapich2.
  • Windows/Cygwin with g95: Fails the ESMF_UtilUTest.F90 unit test when linked against the shared library version of ESMF.
  • Windows/MinGW with intel and intelcl: The ESMF_CompTunnelUTest fails and the ESMF_CompTunnelEx hangs.
  • Windows/MinGW with intel: The ESMF_FieldBundleSMMSTest fails during VM shutdown.
  • Windows/MinGW with intelcl: The ESMF_FieldSparseMatMulSTest fails during VM shutdown.

ESMF_5_2_0rp2

4/10/12 

Reference Manual
(html) (pdf)

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 5.2.0rp1. There are no API changes.
  • Extended ESMF_FieldRegridStore() and the offline regrid weight generation application (ESMF_RegridWeightGen) to support conservative regridding involving Fields built on Grids or Meshes which contain cells whose corners are in clockwise order.
  • The ESMF regridding status tables have not changed since 5.2.0rp1.
Platform-specific bugs:
  • Same as ESMF_5_2_0rp1 with the following exceptions:
    • Cray with PGI: Linker flags in the esmf.mk now support that a different PGI version is used during application build than was used for the ESMF installation.

ESMF_5_2_0rp1

1/24/12 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 5.2.0r. However, for four methods, it was found that issues with consistency were missed. A small number of argument deprecations were introduced in order to address this without breaking backward compatibility. The changes are summarized in a table showing interface changes since ESMF_5_2_0r, including the rationale for each change.
  • Tables summarizing the ESMF regridding status have been updated to reflect minor decreases in interpolation errors. These tables include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • The Field and FieldComm API sections in the Fortran Reference Manual were consolidated into a single Field API section. Now all class API sections are structured this way.
  • Extended ESMF_FieldRegridStore() to support conservative regridding involving Fields built on Grids containing only a single cell.
  • Extended the offline regrid weight generation application (ESMF_RegridWeightGen) to support generation of conservative interpolation weights for grid files containing only a single cell.
  • The ESMF_RegridWeightGen application now supports conservative interpolation on Meshes which contain concave cells of five or more sides.
  • The "--64bit_offset" option was added to the ESMF_RegridWeightGen application. This option allows weight files to be generated in the NetCDF 64bit offset format. This option is available for ESMF built against NetCDF 3.6.0 or later.
  • The "--version" option was added to the ESMF_RegridWeightGen application. This option prints the ESMF license together with the exact ESMF version information.
  • XML output of Attributes in the METAFOR Common Information Model (CIM) format can now be done without the external library Xerces, by not setting the ESMF_XERCES environment variables before building ESMF. See the "Third Party Libraries" section in the ESMF User's Guide for details.
  • Enabled the CIM "General Component Properties Description" Attribute package to hold one or more values for each Attribute name.
  • Added a new CIM "Scientific Properties Description" Attribute package which can hold any user-defined name/value sets.
  • Enhanced the CIM "General Component Properties Description" Attribute package to output the XML attribute 'type="custom" ' as part of the CIM component property element, e.g. . This denotes it as a custom component property, to distinguish it from a scientific property, which is written similarly, but without the 'type="custom" ' designation.
  • Concatenated the value set in Attribute "URL", part of the CIM Citation Attribute package, to the value of Attribute "LongTitle" upon output to a CIM XML file. This is a temporary measure while waiting for the CIM to have a separate spot for holding the URL value.
  • Created a new use test case, ESMF_AttributeCIM2ESG, to show how to set Attributes, and how CIM XML output can be ingested into a gateway such as Earth System Grid (ESG).
  • Added automatically written comments to CIM XML generated by ESMF which document the sources of a ESMF CIM Attribute package/Attributes.
  • The convention specification for CIM Attribute packages is now just "CIM"; previously it was "CIM 1.5". This allows user code to remain unchanged as new ESMF/CIM versions are developed.
  • CIM XML output of Attributes validates against the CIM 1.7 release, as well as the previous CIM 1.5 release.
  • Same as ESMF_5_2_0r with the following exceptions:
    • The performance issue in ESMF_Finalize() that was most noticeable for applications with large numbers of DELayout objects (~1000 or more) has been fixed.
    • The API documentation for ESMF_StateAdd(), ESMF_StateAddReplace(), and ESMF_StateReplace() in the Fortran Reference Manual now correctly uses the "nestedStateList" keyword to match the actual implementation.
    • Calling ESMF_FieldEmptyComplete() on a Field object for which previously ESMF_FieldEmptySet() was called with a Grid no longer fails.
    • The ESMF_GridCreate1PeriDim() and ESMF_GridCreate2PeriDim() methods that create Grids with irregular distribution now correctly set up Grid connections. Consequently ESMF_FieldRegridStore() now correctly maps all destination points for these Grids.
    • The mistakes in section 29.3.5 of the Fortran Reference Manual, with the title "Create a Mesh from a SCRIP Grid file or an ESMF unstructured Grid file", have been corrected.
    • ESMF_FieldRegridStore() now works on Fields created on Grids with indexflag equal to ESMF_INDEX_DELOCAL. This is the default.
    • The ESMF_FieldRegridStore() no longer fails with unmapped destination points if the source Field is built on a Mesh or Grid which contains a quadrilateral cell in which particular pairs of nodes are identical so that the quadrilateral collapses to a triangle.
    • The ESMF_FieldRegridStore() no longer uses coordinates in the masked region. Errors in the coordinates in a masked region will not lead to ESMF_FieldRegridStore() returning with errors.
    • ESMF_FieldRegridStore() now returns with error for Fields built on a Mesh containing clockwise elements or a Grid with a left handed coordinate system.
    • The ESMF_RegridWeightGen application now works correctly when source or destination SCRIP file contains less than 2 cells in any dimension.
    • Running the ESMF_RegridWeightGen application on enough processors that the decomposition of the destination Mesh does not produce entries on all processors now works. This bug is also fixed when calling ESMF_FieldRegridStore().
    • The problem in the ESMF_RegridWeightGen application which lead to incorrect interpolation weights when using non-conservative interpolation on an unstructured SCRIP format file with the following conditions has been fixed. The problem occured if a corner node with coordinates (lon, lat) in the SCRIP file followed another corner with the same lon, but only strictly smaller lats, while at the same time another corner (lon2, lat2) had already been read where lat=lat2, but lon2 was the next larger longitude after lon that had been in the file so far.
    • The ESMF_RegridWeigthGen application now generates correct weights for the case where either the source or the destination grid is in the ESMF unstructured grid format and the node coordinate unit is "radians".
    • The interpolation weight file generated by the ESMF_RegridWeigthGen application now has correct dimension and values for the center coordinate variables (i.e., xc_a, yc_a or xc_b, yc_b) for the case where the source/destination grid file is in the ESMF unstructured file format and the regridding method is either bilinear or patch.
    • Using the ESMF_RegridWeightGen application on a SCRIP unstructured grid which has an element with one of the nodes on the North Pole (i.e. the latitude of the node is 90 degree north) now works.
    • The weight file produced by the ESMF_RegridWeightGen application no longer contains multiple entries for the same source and destination pair. (This problem did not affect the accuracy of the regridding, but it did increase the file size.)
    • The "src_grid_dims" and "dst_grid_dims" variables in the SCRIP weight file generated by ESMF_RegridWeightGen are now correctly set to the "elementCount" value of the source or destination input grid file, respectively.
    • Halo updates are now correct for Fields, FieldBundles, Arrays, and ArrayBundles with more than one DE per PET.
    • For the CIM "Inputs Description" Attribute package, values set for the CouplingSource and CouplingTarget Attributes now appear correctly in ESG.
    • The API documentation for the ESMF_ATTGETCOUNT_FLAG in the Fortran Reference Manual now correctly describes the purpose of this flag.
    • The previously ambiguous API documentation for ESMF_TimeSet() in the Fortran Reference Manual now documents which arguments are allowed for Gregorian and Julian calendars.
    • The default MPI tags used by the ESMF VM layer are now bounded by the largest supported MPI tag. This allows calls like ESMF_ArrayRedistStore() to execute on large processor counts (~16K and larger).
    • The inconsistency in the internal use of the ESMF Attribute API in the NUOPC addon layer that lead to failure of correct NUOPC user code has been fixed.
    • The ESMF install target now succeeds following a failed attempt to build the ESMF documentation for the ESMF source tarball.
    • The "ESMF_NETCDF_INCLUDE" environment variable now is correctly documented in the NETCDF section of the ESMF User's Guide.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • Same as ESMF_5_2_0r with the following exceptions:
    • g95: Now builds the ESMF library with ESMF_PIO=internal.
    • Cray/Intel-12.0.x: Applications now link successfully against the ESMF library.
  • Windows/MinGW with intel and intelcl: The ESMF_FieldRegridUTest.F90 and ESMF_FieldArbGridUTest.F90 fail. With ESMF_BOPT=g, the ESMF_ArrayRedistOpenMPSTest.F90 also fails.
  • SGI Altix ICE with intel: Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=openmpi.
  • SGI Altix ICE with intel: Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=intelmpi.
  • SGI Altix ICE with gfortran : Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=mvapich2.
  • Linux with PGI: System tests hang intermittently with ESMF_COMM=mvapich2 due to a system level issue with the mvapich2/PGI combination.

ESMF_5_2_0r

7/15/11

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • The majority of the interfaces in established ESMF classes (e.g. Component, State, Field, Grid) will be backward compatible starting with this release. Interfaces that are backward compatible indicate this in the "STATUS:" section of their API description in the ESMF Reference Manual. Throughout the framework, interfaces were changed to improve consistency. Major system-wide changes are noted in other items below. All changes since ESMF_5_1_0 are summarized in two tables including the rationale for and the impact of each change:
  • Tables summarizing the ESMF regridding status have been updated. These include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • In order to be more consistent with other software packages, the access to the ESMF Fortran language binding has switched from "use ESMF_Mod" to "use ESMF".
  • Keywords are now required for specifying optional arguments when calling ESMF interfaces (e.g. rc=rc).
  • Added "attachable methods" to ESMF Components. This allows users to attach other than standard Component methods to a Component.
  • Added tools that allow component developers to make their components available as web-based services. A client can access these components through provided Simple Object Access Protocol (SOAP) interfaces.
  • State "placeholder names" have been removed. This functionality had become redundant with the ability to create empty Fields and FieldBundles.
  • ESMF State, FieldBundle and ArrayBundle classes are now based on a unified and more efficient container class implementation. As a consequence the user experiences consistent ESMF container class interfaces and behavior.
  • Field partial creation now allows an intermediate state in which the underlying grid is specified. The new interfaces are: ESMF_FieldEmptyCreate(), ESMF_FieldEmptySet() and ESMF_FieldEmptyComplete().
  • An argument which allows the user to specify a coordinate system when creating a Grid has been added to the Grid create interfaces. This information is used by the ESMF_FieldRegridStore() call to automatically determine the geometry of the source and destination Grids.
  • Added new shortcut Grid interfaces broken up by the number of periodic dimensions. These allow the user to specify connection information when creating a Grid.
  • The connection information stored inside the Grid is now used by the ESMF_FieldRegridStore() call to automatically determine the topology of the source and destination Grids.
  • XGrids can now be created by providing Grids for both sides without needing to specify sparse matrix parameters.
  • Added the ability to get Attributes package information by name.
  • Added the ability to query for the presence of Attributes.
  • The Attribute packages that implement METAFOR's Common Information Model (CIM) now allow more complete ingestion into Earth System Grid (ESG). This includes the CIM 1.5 "Inputs Description" package.
  • A new standard CIM 1.5 "General Component Properties Description" package was added. This Attribute package allows custom, user-defined name/value Attribute pairs to be represented and output in standard CIM 1.5 XML format.
  • The National Unified Operational Prediction Capability (NUOPC) Layer prototype code is now part of the ESMF source distribution. It builds automatically with the ESMF library and is available along side ESMF. ESMF application makefiles can be used unchanged to link against the NUOPC layer.
  • The time spent in ESMF_Finalize() increases super-linearly with the number of DELayout objects. DELayout objects are created by the default method of creating Arrays and Fields.
  • The API documentation for ESMF_StateAdd(), ESMF_StateAddReplace(), and ESMF_StateReplace() in the Fortran Reference Manual incorrectly uses the "stateList" keyword. The actual implementation of these calls uses the "nestedStateList" keyword for this argument.
  • The ESMF_StateRemove() method fails to correctly unlink Attributes from the Attribute hierarchy.
  • FieldBundles don't currently enforce that every contained Field is built on the same Grid, although the documentation says that this should be so.
  • Calling ESMF_FieldEmptyComplete() on a Field object with a user defined Fortran array pointer for which previously ESMF_FieldEmptySet() was called with a Grid fails with an error, while it should return success.
  • The ESMF_GridCreate1PeriDim() and ESMF_GridCreate2PeriDim() methods that create Grids with irregular distribution fail to set up correct Grid connections. Consequently ESMF_FieldRegridStore() fails unexpectedly with unmapped destination points for these Grids.
  • The ESMF_GridCreate() call, which allows the user to create a Grid from a SCRIP format file and a DistGrid, creates the Grid using the wrong coordSys. Instead of using spherical coordinates (which are implied by the SCRIP format), the call creates the Grid with Cartesian coordinates. This can cause unexpected problems in methods (e.g. ESMF_FieldRegridStore() which use the coordSys to determine the shape of the Grid.
  • There are mistakes in section 29.3.5 of the Fortran Reference Manual, with the title "Create a Mesh from a SCRIP Grid file or an ESMF unstructured Grid file", that could be misleading. In the SCRIP file header example the "grid_imask" variable should be of type "int" instead of "double". In the ESMF unstructured grid file example the "units" attribute of the "nodeCoords" variable should be "degrees" instead of "degrees,degrees". Further, in the same example, variables "numElement" and "numNode" should be "elementCount" and "nodeCount", respectively.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Meshes which contain tetrahedra.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids which contain a DE of width less than 2 elements.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids of arbitrary distribution.
  • ESMF_FieldRegridStore() only works on Fields created on Grids with indexflag equal to ESMF_INDEX_GLOBAL. This is not the default.
  • Masking is currently not supported for unstructured grids (Mesh) for any regridding method.
  • ESMF_FieldRegridStore() that takes XGrid as an argument does not support regridding between Fields that are constructed on Grids for which ESMF_GridMatch() locally returns a value of ESMF_GRIDMATCH_EXACT or greater. This may result in unexpected local errors.
  • A larger than expected difference in integrals (8.7E-10) is occurring when using the conservative regridding between a 1 deg lat lon grid and a 2.5 deg lat lon grid. This problem appears isolated to a subset of the cases when grid cell edges align, but not exactly due to round off. It is recommended that users test the integration of their conservative interpolation under these circumstances.
  • The ESMF_FieldRegridStore() call fails unexpectedly with unmapped destination points if the source Field is built on a Mesh or Grid which contains a quadrilateral cell in which particular pairs of nodes are identical so that the quadrilateral collapses to a triangle.
  • The ESMF_FieldRegridStore() mistakenly uses coordinates in the masked region. Errors in the coordinates in a masked region will lead to ESMF_FieldRegridStore() returning unexpectedly with errors.
  • ESMF_FieldRegridStore() will - without warning or error - produce wrong interpolation weights for Fields built on a Mesh containing clockwise elements or a Grid with a left handed coordinate system.
  • The ESMF_RegridWeightGen application crashes when source or destination SCRIP file contains less than 2 cells in any dimension.
  • Running the ESMF_RegridWeightGen application on enough processors that the decomposition of the destination Mesh does not produce entries on all processors leads to undefined behavior (segmentation fault). This bug will also occur when calling ESMF_FieldRegridStore() with the indices or weights arguments.
  • There is problem in the ESMF_RegridWeightGen application which can lead to incorrect interpolation weights when using non-conservative interpolation on an unstructured SCRIP format file. The problem occurs if a corner node with coordinates (lon, lat) in the SCRIP file follows another corner with the same lon, but only strictly smaller lats, while at the same time another corner (lon2, lat2) has already been read where lat=lat2, but lon2 is the next larger longitude after lon that has been in the file so far.
  • The ESMF_RegridWeigthGen application does not generate correct weights if either the source or the destination grid is in the ESMF unstructured grid format and the node coordinate unit is "radians".
  • The interpolation weight file generated by the ESMF_RegridWeigthGen application has wrong dimension and values for the center coordinate variables (i.e., xc_a, yc_a or xc_b, yc_b) if the source/destination grid file is in the ESMF unstructured file format and the regridding method is either bilinear or patch.
  • Using the ESMF_RegridWeightGen application on a SCRIP unstructured grid which has an element with one of the nodes on the North Pole (i.e. the latitude of the node is 90 degree north) results in wrong interpolation weights or other unexpected behavior, such as a segmentation fault.
  • The weight file produced by the ESMF_RegridWeightGen application may contain multiple entries for the same source and destination pair. This does not affect the accuracy of the regridding, but it does increase the file size.
  • The "src_grid_dims" and "dst_grid_dims" variables in the SCRIP weight file generated by ESMF_RegridWeightGen are incorrectly set to 1 if the source or destination input grid files are in the ESMF unstructured file format, respectively.
  • Halo updates are incorrect for Fields, FieldBundles, Arrays, and ArrayBundles with more than one DE per PET.
  • All of the sparse matrix store calls (i.e., ESMF_FieldBundleSMMStore(), ESMF_FieldSMMStore(), ESMF_ArrayBundleSMMStore(), and ESMF_ArraySMMStore()) will fail with an error for sparse matrices that contain multiple entries for the same source and destination pair when there are undistributed dimension in the source or destination array.
  • All of the sparse matrix store calls (i.e., ESMF_FieldBundleSMMStore(), ESMF_FieldSMMStore(), ESMF_ArrayBundleSMMStore(), and ESMF_ArraySMMStore()) suffer from an instability that can lead to undefined behavior (e.g. segmentation fault) for very large problem sizes (~15 million factors in the sparse matrix).
  • The decomposition scheme of the original DistGrid (indicated by the ESMF_Decomp_Flag) is not duplicated by the DistGridCreate() methods that take a DistGrid input argument. Instead, the duplicate DistGrid is always constructed using ESMF_DECOMP_BALANCED. This issue is most noticeable when building Grids on DistGrids with decomposition schemes other than the default ESMF_DECOMP_BALANCED. A Field built on such a Grid will incorrectly use a balanced decomposition.
  • ESMF_AttributeWrite() only works for ESMF standard Attribute packages.
  • For the CIM "Inputs Description" Attribute package, values set for the CouplingSource and CouplingTarget Attributes appear incorrectly in ESG.
  • ESMF_AttributeUpdate() will not work correctly if the only changes have been Attribute removals. In this situation the call will return success but no updating will have occurred. This situation can occur during the removal of Attribute packages as well as single Attributes.
  • The API documentation for the ESMF_ATTGETCOUNT_FLAG in the Fortran Reference Manual incorrectly uses the description for the ESMF_ATTTREE_FLAG.
  • The API documentation for ESMF_TimeSet() in the Fortran Reference Manual is ambiguous about allowing the updating of a Gregorian calendar object using Julian date arguments.
  • The default MPI tags used by the ESMF VM layer are unbounded. This leads to MPI errors on large processor counts (~16K), e.g. for ESMF_ArrayRedistStore().
  • An inconsistency in the internal use of the ESMF Attribute API in the NUOPC addon layer leads to unexpected failure of correct NUOPC user code.
  • The ESMF install target fails following a failed attempt to build the ESMF documentation for the ESMF source tarball.
  • The "ESMF_NETCDF_INCLUDE" environment variable is incorrectly documented as "ESMF_NETLIB_INCLUDE" in the NETCDF section of the ESMF User's Guide.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • IBM Bluefire AIX: Fails the ESMF_ArrayRedistOpenMPSTest.F90 system test intermittently.
  • Linux Pluto with NAG: Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=openmpi.
  • Sun Fire X4640 Euclid with PGI: Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=openmpi.
  • Windows/Cygwin with g95: Fails the ESMF_LogErrUTest.F90 unit test intermittently.
  • Windows/Cygwin with g95: Fails the ESMF_UtilUTest.F90 unit test when linked against the shared library version of ESMF.
  • Windows/Cygwin with g95: ESMF_MeshUTest.F90 and ESMF_FieldBundleUTest.F90 unit tests crash.
  • PGI 11.6: Fails to build the ESMF library.
  • PGI 11.7: Fails to build the ESMF tests.
  • g95: Fails to build the ESMF library with ESMF_PIO=internal.
  • Cray with Intel-12.0.x: The ESMF library builds successfully, but applications fail to link.
  • Cray with PGI: Linker flags in the esmf.mk require that the same PGI version is used during application build as was used for the ESMF installation. According to Cray and PGI, this restriction is not necessary.

ESMF_5_2_0p1

5/31/11 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • Added support for the PGI 11.x compiler version on Linux/PC and the Cray XT platform.
  • The ESMF regridding status have not changed since 5.2.0.

ESMF_5_2_0

2/28/11 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • An intensive effort to make interfaces consistent in preparation for future backward compatibility resulted in significant interface changes for this release. These are summarized in a table showing interface changes since ESMF_5_1_0, including the rationale for and the impact of each change.
  • Tables summarizing the ESMF regridding status have been updated. These include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • Added ESMF_StateReplace() method, which replaces an existing State item with a new item of the same name.
  • Added ESMF_StateRemove() method, which removes an item from a State.
  • Masking is now supported for conservative interpolation, for logically rectangular grids, for both the offline regrid weight generation application and the ESMF_FieldRegridStore() method.
  • Support was added for regridding a regional Grid on a sphere. This allows regridding between two regional grids on a sphere, between a regional Grid on a sphere and spherical global Grid and between a spherical global Grid and a regional Grid on a sphere. This capability is available in both the offline regrid weight generation application and ESMF_FieldRegridStore().
  • Enabled a Grid constructed using DistGrid connections to work with ESMF_FieldRegridStore(). For example, this means that a user constructed tripole Grid can now participate in a regrid operation.
  • Optimized ESMF_FieldBundleRegridStore() to be faster when Fields are built on the same Grid. When computing the sparse matrices for the regridding, if the Grids in the source and destination Fields match the Grids in the previous set of source and destination Fields in their respective FieldBundle lists, then that same sparse matrix is used instead of recomputing a new one. In particular, this means that if all the Fields in the source FieldBundle are built on the same Grid and all the Fields in the destination FieldBundle are built on the same Grid, then the sparse matrix between those Grids only needs to be computed once. This can save a substantial amount of time for FieldBundles containing many Fields.
  • Support for options from ESMF_FieldRegridStore() were added to ESMF_FieldBundleRegridStore(). Masking, pole options and the ability to chose what happens when destination points can't be mapped were added to the ESMF_FieldBundleRegridStore() interface.
  • Added ability to create multiple instances of the Attribute packages ISO 191115/Responsible Party Description and/or ISO 191115/Citation Description, nested within a standard CIM 1.0/Model Component Simulation Description package for Components.
  • The Attribute values within the ESG/General and CF/Extended standard packages, nested within the standard CIM 1.0/Inputs Description package for Fields, now appear in the Component Properties section of the CIM XML output file. This allows input and output Fields to be described for components other than the top level component in CIM output files.
  • The ESMF Coupled Flow demonstration program has been updated to work with current interfaces. It is now part of the external demos module.
  • Added ESMF_UtilGetArgC() subroutine, which returns the number of command line arguments.
  • Added ESMF_UtilGetArg() subroutine, which returns a given command line argument.
  • Added ESMF_UtilGetArgIndex() subroutine, which searches for a specified command line argument (e.g., '-filename') and, if found, returns its index.
  • An online tutorial based on the Coupled Flow demonstration program was added to the ESMF website.
  • The prototype Exchange Grid implementation has been extended to work with multiple PETS.
  • Same as ESMF_5_1_0 with the following exceptions:
    • The argument attPackInstanceName, introduced in ESMF_5_1_0, in ESMF_AttributeGet(), ESMF_AttributeSet(), and ESMF_AttributeRemove() is now implemented, supporting multiple instances of Attribute packages as described in the release notes.
    • The offline regrid weight generation application, ESMF_RegridWeightGen, is not limited to 2D global grids.
    • The offline regrid weight generation application, ESMF_RegridWeightGen, now supports masking.
    • The coordinate unit attribute is now read correctly on all machines, so grid files with coordinates in radians will be interpreted correctly.
    • Masking is now supported for conservative regridding.
    • The Attribute Table in Section 33.2.6 of the pdf version of the Fortran Reference Manual is not complete, please refer to HTML version of the document for a complete table. This table was in Section 34.2.6 in release ESMF_5_1_0.
  • A larger than expected difference in integrals (8.7E-10) is occurring when using the conservative regridding between a 1 deg lat lon grid and a 2.5 deg lat lon grid. This problem appears isolated to a subset of the cases when grid cell edges align, but not exactly due to round off. It is recommended that users test the integration of their conservative interpolation under these circumstances.
  • The ESMF_FieldRegridStore() call or the ESMF_RegridWeigthGen application may erroneously report destination points as unmapped when running on multiple processors.
  • The matrix coming out of ESMF_FieldRegridStore() needs to be transposed before it can be used in ESMF_FieldSMMStore().
  • The weight file produced by the ESMF_RegridWeightGen application may contain multiple entries for the same source and destination pair. This does not affect the accuracy of the regridding, but it does increase the file size.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • IBM Bluefire AIX: Fails the ESMF_ArrayRedistOpenMPSTest.F90 system test with ESMF_BOPT=O.
  • Linux Pluto with g95: Fails the ESMF_FieldRegridXGUTest.F90 unit test with ESMF_COMM=mvapich2.
  • PC Xeon(64) Cluster Jet with PGI: Fails the ESMF_GridCreateUTest.F90 and ESMF_UtilUTest.F90 unit tests.
  • Cray XT5 Jaguarpf with PGI: Fails the ESMF_GridCreateUTest.F90 and ESMF_UtilUTest.F90 unit tests.
  • Windows/Cygwin g95: Fails the ESMF_LogErrUTest.F90 and ESMF_UtilUTest.F90 unit tests.

ESMF_5_1_0

10/29/10 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • List of ESMF interface changes since ESMF_5_0_0.
  • An integrated ESMF compliance checker has been implemented. It can be activated by setting the runtime environment variable ESMF_RUNTIME_COMPLIANCECHECK=ON. The compliance checker is currently geared toward the NUOPCrequirements. The current version is described in more detail in the "NUOPC Layer: ESMF Compliance Checker - ESMF v5.1.0" document.
  • Tables summarizing the ESMF regridding status have been compiled. These include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • ESMF_StateGet() has been enhanced to allow additional nested State capabilities. These include:
    • Items can now be searched by name using the itemSearch argument.
    • The nestedFlag argument controls whether the search traverses the entire State hierarchy.
    • State items can be accessed directly by using a path style naming convention.
  • The methods ESMF_StateSetNeeded(), ESMF_StateIsNeeded(), and ESMF_StateGetNeeded() that were removed in release ESMF_5_0_0 have been reinstated. This was necessary to reenable the ESMF COUPLED_FLOW demo.
  • The first-order conservative regridding algorithm has been reworked. This new version is based on the overlap of source cells with destination cells, and is less prone to interpolation artifacts and diffusion than the previous version. It is supported for regridding between any combination of Fields built on the center-stagger of 2D logically rectangular Grids and Fields built on the element location of 2D unstructured Meshes. Grids and Meshes can be either regional or mapped to the sphere (using the ESMF_REGRID_SCHEME_FULL3D option to ESMF_FieldRegridStore()). This functionality is available either offline (via the ESMF_RegridWeightGen application) or through the library (via ESMF_FieldRegridStore()).
  • The ESMF_FieldRegridStore(), ESMF_FieldRegrid() and ESMF_FieldRegridRelease() methods have been overloaded to support Fields created on XGrids.
  • The two offline weight generation applications ESMC_RegridWgtGenEx and ESMF_CubedSphereRegridEx have been merged into a single application named ESMF_RegridWeightGen. The application is documented under the "Applications" section of the ESMF Reference Manual. This application generates interpolation weights using either bilinear, finite element patch recovery or first order conservation methods. The input grids can be either 2D global logically rectangular or 2D global unstructured.
  • The new location argument in ESMF_FieldCreate() allows Fields to be created on Mesh elements or Mesh nodes. Conservative regridding is only supported between Fields created on Mesh elements.
  • Added ESMF_FieldCreate() method that supports creation of a Field on an XGrid.
  • ESMF_FieldCreate() and ESMF_ArrayCreate() have been overloaded to support typekind and rank arguments in addition to the ArraySpec versions.
  • Implemented halo support for arbitrarily decomposed FIeld and Array objects.
  • This release includes new parallel I/O capabilities introduced by using the Parallel I/O (PIO) library within ESMF. PIO development was led by John Dennis of NCAR and it has evolved under a NCAR/DOE laboratory partnership. ESMF data classes Field, FieldBundle, Array and ArrayBundle can now read and write NetCDF files in parallel using methods such as ESMF_FieldRead(), and ESMF_FieldWrite(). Please see the "IO Capabilties" section in the ESMF Reference Manual for how to enable PIO in the ESMF build.
  • Added ESMF_GridCreate() method that supports creation of a logically rectangular 2D Grid from a SCRIP format NetCDF file.
  • Added ESMF_MeshCreate() method that supports creation of an unstructured 2D Mesh from a SCRIP format or ESMF unstructured Mesh format NetCDF file.
  • A first implementation of the Exchange Grid (XGrid) class has been added. An XGrid object can be created from user supplied lists of Grids and sparse matrix parameters. The functionality of ths initial implementation is currently limited to single PET execution. This is not a limitation of the XGrid design but reflects the current implementation status.
  • Added standard ESMF-supplied Attribute packages for Components and Fields, whose XML output conforms to theClimate and Forecast Conventions (CF) and METAFOR's Common Information Model (CIM) schema. The output is ingestable into the Earth System Grid (ESG) web portal for display. For details and examples please see the Attribute section of the ESMF Reference Manual.
  • Added ability for Attribute packages to contain multiple nested Attribute packages of different types.
  • The new msgAllow argument in ESMF_LogSet() permits users to specify the type of Log messages allowed for output. Other Log messages are ignored.
  • The ESMF COUPLED_FLOW demo application has been restored but is currently limited to single PET execution. The documentation in the User's Guide has been updated.
  • Starting with this release a collection of external demonstration programs is available in form of a separate CVS module. These external demos have been written to serve as good examples to show how users would interact with an ESMF installation. A description of the available demos and download instructions are available on the ESMF website under Users->Code Examples->External Demos.
  • Added ESMF_ComplianceCheckerSTest.F90 system test which demonstrates the operation and output of the compliance checker within a multi-Component, multi-PET application.
  • Added ESMF_AttributeCIMSTest.F90 system test which demonstrates the use of the new standard ESMF-supplied, METAFOR CIM Attribute packages for Components and Fields, within a multi-Component, multi-PET application.
C interfaces:
  • ESMF now offers a Reference Manual for the ESMF C API. This document is a work in progress.
  • The available C interfaces are a subset of the Fortran API. This subset was constructed to fullfil the need of a specific coupling project.
  • Changes were made to improve interface consistency.
  • Same as ESMF_5_0_0 with the following exceptions:
    • The Field description in the reference manual now correctly states that the halo update operation is supported.
    • Conservative regridding has been reworked so that its accuracy is now within the expected range (15 decimal places).
    • Resolution differences between source and destination grids no longer cause problems in conservative regridding.
    • Suspicious interpolation weights (large, outside [0,1]) that occurred for cubed sphere regridding no longer occur for bilinear and conservative interpolation.
  • The offline regrid weight generation application, ESMF_RegridWeightGen, only works for 2D global grids.
  • The offline regrid weight generation application, ESMF_RegridWeightGen, does not support masking, and thus any mask information in the grid files will be ignored.
  • On some machines (e.g. bluefire), the coordinate unit attribute is not read correctly by the ESMF_RegridWeightGen application, so grid files with coordinates in radians won't be interpreted correctly and will produce incorrect weights or errors.
  • Masking is currently not supported for conservative regridding.
  • Masking is currently not supported for unstructured grids (Mesh) for any regridding method.
  • ESMF_ArrayWrite() and ESMF_FieldWrite() will fail with an internal PIO error if a NetCDF output file already exists from a previous run.
  • XGrid does not support regridding between Fields that are constructed on Grids for which ESMF_GridMatch() locally returns a value of true. This may result in unexpected local errors.
  • Fields built on XGrids cannot be added to FieldBundles.
  • Only single-PET XGrids are supported. Creating and using multi-PET XGrids will result in undefined behavior.
  • ESMF_AttributeUpdate() will not work correctly if the only changes have been Attribute removals. In this situation the call will return success but no updating will have occurred. This situation can occur during the removal of Attribute packages as well as single Attributes.
  • The new argument attPackInstanceName in ESMF_AttributeGet(), ESMF_AttributeSet(), and ESMF_AttributeRemove() is not fully implemented. Consequently multiple instances of an Attribute package of the same type (same convention and purpose) within a nested Attribute package are not supported.
  • The Attribute Table in Section 34.2.6 of the pdf version of the Fortran Reference Manual is not complete, please refer to HTML version of the document for a complete table.
  • Also see SourceForge bugs list.
  • Platform-specific bugs:
    • Discover with intel: Fails ESMF_CompCreateSTest.F90 with ESMF_COMM=mvapich2 and ESMF_BOPT=O.
    • Discover with pgi: the ESMF_DELayoutWorkQueueUTest.F90 fails.
    • IBM Frost Bluegene: Fails ESMC_ConfigUTest.C unit test with ESMF_BOPT=g.
    • IBM Bluefire AIX: Fails ESMC_ConfigUTest.C unit test with ESMF_BOPT=g and ESMF_ArrayRedistOpenMPSTest.F90 with ESMF_ABI=64.
    • Pluto with nag.: Fails system test ESMF_FieldBundleSMMSTest.F90 with ESMF_COMM=mvapich2 and mpich2 intermittently.
    • Windows/MinGW with intel and intelcl: the ESMF_ArrayRedistOpenMPSTest.F90, the ESMF_FieldRegridUTest.F90, and ESMF_FieldArbGridUTest.F90 fail.
    • Windows/Cygwin g95: the ESMF_MeshUTest.F90 fails.
    • Windows/Cygwin g95: ESMF_LogErrUTest.F90 fails intermittently.

ESMF_5_0_0

5/28/10

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms 

Regridding Status

  • List of ESMF interface changes since ESMF_4_0_0rp2.
  • Tables summarizing the ESMF regridding status have been compiled. These include supported grids and capabilities in the offline and online regridding and numerical results of some specific test cases.
  • ESMF_StatePrint() has a new nestedFlag argument for printing nested States. The options argument now supports 'short' and 'long' printouts. (Default is short.)
  • ESMF_StateValidate() has a new nestedFlag argument for validating nested States.
  • ESMF_StateGet() has a new nestedFlag argument for inquiry requests, which allows returning lists of nested objects and their types.
  • The following methods were removed: ESMF_StateSetNeeded(), ESMF_StateIsNeeded(), and ESMF_StateGetNeeded(). 
    The reason for removal is that the semantics surrounding these routines were not well-defined, and they were rarely used. These methods may be revisited as part of an ongoing investigation into broader interoperability issues.
  • Implemented halo communication operation for Field, FieldBundle, Array and ArrayBundle classes. Variable and asymmetric halo depths are supported.
  • Added regridding support for FieldBundle objects. First order conservative regridding has been added as a modification to the existing Field regridding methods in both the offline and online and regridding. This modification is based on a finite element L2 projection method. In this initial version quantities are conserved globally. Further work is required for satisfactory local conservation.
  • Improved the algorithm in ESMF_FieldRegridStore() to fix problems with interpolation on a sphere. The change fixes incidents of destination points that are lying close to the boundary between two source elements from being mapped into the wrong element. This led to errors in the interpolation weights.
  • The offline weight generation application for structured grids has been more accurately renamed to ESMC_RegridWgtGenEx. The bilinear interpolation option, as well as a conservative option was added. For details please see the "Structured Grid to Structured Grid" subsection under the "File Based Regrid Weight Applications" section in the "Infrastructure: Fields and Grids" part of the ESMF Reference Manual.
  • Added a new offline weight generation application called ESMF_CubedSphereRegridEx. This application supports regridding between a cubed sphere and a 2D logically rectangular grid mapped to a sphere. The user may use higher-order patch recovery interpolation or bilinear interpolation between the grids. For details please see the "Cubed Sphere to Structured Grid" subsection under the "File Based Regrid Weight Applications" section in the "Infrastructure: Fields and Grids" part of the ESMF Reference Manual.
  • Support the reuse of RouteHandles for Fields and Arrays where the size of the undistributed dimensions that come before the first distributed dimension is different from the size used during the precompute.
  • RouteHandle-based Array communication calls now provide a non-blocking option. This option allows user code to overlap computation with communication.
  • Improved the implementation of ESMF_GridMatch(). Previously the method just checked to see if the Grids had identical pointers, now it checks to see if the two Grids' internal data is the same (dimensions, coordinates, items, etc.). This means that two Grids constructed independently of each other are checked more reliably.
  • Added an option to ESMF_MeshGet() to allow users to retrieve coordinates for just the locally owned Mesh nodes. These coordinates will correspond exactly with the data elements stored in a Field created on the Mesh. This is useful for setting data in the Field or performing calculations involving coordinates on the data in a Field.
  • Added the ability to validate Attributes read from an XML file by specifying a corresponding XSD file in method ESMF_AttributeRead(), via new optional argument schemaFileName. For standard ESMF-supplied Component, Field, and Grid Attribute packages validation is performed automatically, without the need to specify schemaFileName. For examples see the Attribute section of the ESMF Reference Manual.
  • XML Attribute file writing is now done with the open source third party Xerces C++ library, replacing the previous internally hard-coded fprintf() technique. For reading and/or writing XML Attribute files, ESMF must be built against the Xerces library, which requires the setting of additional ESMF environment variables. See the "Third Party Libraries" section in the ESMF User's Guide for details.
  • A new system test, ESMF_FieldRegridMeshToMesh, was added to demonstrate regridding between Fields built on unstructured Meshes.
  • FieldBundles don't currently enforce that every contained Field is built on the same Grid, although the documentation says that this should be so.
  • The Field description in the reference manual incorrectly states that the halo update operation is not supported. Field halo is available in this release.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Meshes which contain tetrahedra.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids which contain a DE of width less than 2 elements.
  • ESMF_FieldRegridStore() doesn't currently work on Fields created on Grids of arbitrary distribution.
  • ESMF_FieldRegridStore() only works on Fields created on Grids with indexflag equal to ESMF_INDEX_GLOBAL. This is not the default.
  • Grid edge connections don't work in this release and will have no effect on the actions of ESMF_FieldRegridStore().
  • Testing on a constant field has shown that the integration weights that are generated for the conservative regridding are accurate to only 9 decimal places, rather than the expected 15 decimal places. This limits the precision of the conservative regridding method.
  • The conservative regridding may generate errors when the destination grid is of higher resolution than the source grid, specifically:
    • Values of destination points will not be set when the destination cell lies completely within a single source cell.
    • There can be regions of high interpolation error where shifting grid alignment causes different numbers of source points to contribute to the destination point.
    These drawbacks are due to the fact that this conservative method does not have a constraint on local conservation.
  • The ESMF_CubedSphereRegridEx produces some suspicious interpolation weights (large, outside [0,1]). These should be further investigated to see if they are within the bounds of expected results for non-monotonic remapping methods or represent true errors.
  • ESMF_AttributeWrite() only works for ESMF standard Attribute packages.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • Discover: ESMF_ArrayRedistOpenMPSTest.F90 fails with intelmpi when run by an automatic test script, but runs correctly when executed manually.
  • SunOS test platform: the C interfaces do not work (seg fault).
  • SunOS test platform: the ESMF_AttributeSTest.F90 and ESMF_AttributeUpdateEx.F90 fail.
  • SunOS test platform: the ESMF_FieldRegridDisjointSTest.F90 system test fails.
  • SunOS test platform: the Field test harness results are ignored.
  • Windows/MinGW with intel and intelcl: the ESMF_ArrayRedistOpenMPSTest.F90, and ESMF_FieldArbGridUTest.F90 fail.
  • Windows/Cygwin g95: the ESMF_MeshUTest.F90 fails.
  • Windows/Cygwin g95: ESMF_LogErrUTest.F90 fails intermittently.

 

Last Update: Feb. 24, 2015, 2:30 p.m. by deleted user