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: 6* 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.

Release Release Notes Known bugs

ESMF_6_3_0rp1

07/11/14

Reference Manual for Fortran
(html) (pdf)

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

NUOPC Layer Reference Manual
(html) 

ESMPy Documentation 
(html) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 6.3.0r. There were two small API changes compared to 6.3.0r: the ESMF_NormType option was added to the ESMF regrid weight generation system , and a mistake in the intent of a dummy argument in ESMF_UtilIOGetCWD() was corrected. Both changes are listed in the table showing interface changes since ESMF_6_3_0r, including the rationale and impact of the changes.
  • Tables summarizing the ESMF regridding status have been updated to include the new ESMF_NormType option. These tables include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • An optional command line argument "--no_log" was added to the ESMF_RegridWeightGen application. This allows the user to turn off the ESMF log files that are written by default.
  • The ESMF regrid weight generation system now allows the user to choose between two normalization types when generating conservative interpolation weights: destination area normalization (default) and destination fraction normalization.
  • The ESMF Python interface (ESMPy) is now part of the ESMF source distribution. The build and installation process for both ESMF and ESMPy remain separate in this release.
  • When building ESMF with NetCDF support enabled, the NetCDF C++ interface is no longer required.
  • New build configurations were added to support the Apple Clang/LLVM C++ compiler on both Linux and Darwin systems.
  • Support was added to compile the ESMF library for the Intel MIC architecture under Linux. This allows ESMF applications to execute natively on the Intel Xeon Phi accelerator hardware.
  • Same as ESMF_6_3_0r with the following exceptions:
    • The ESMF_RegridWeightGen application now correctly handles cases of SCRIP unstructured grid files that contain corner coordinates with small round off errors. Including those where for some corners the round off error along one dimension is above the tolerance value while it is below the tolerance for the other dimension.
    • The issue with ESMF_RegridWeightGen() crashing when either of the optional arguments srcFileType or dstFileType is not given has been fixed. Now it is okay to not specify the arguments.
    • The ESMF_AttributeUpdate() method now works correctly for the following situations:
      • Re-ordering objects in the container classes (State, FieldBundle, ArrayBundle) no longer causes ESMF_AttributeUpdate() to hang.
      • Making a small number of changes to a large Attribute package not longer leads to failures due to buffer issues.
      • A Grid shared by multiple Fields now correctly updates all Grid attributes on all PETs.
      • A State that is reconciled more than once to Components on exclusive petLists now correctly updates on all Components.
      • Any Attribute that is added during runtime and then modified will be correctly updated.
    • The debug print statement inside of the ESMF library that was triggered when calling ESMF_AttributeGet() has been removed. Calling ESMF_AttributeGet() many times will no longer cause issues with large volume of output.
    • The intent of the "pathName" argument in the ESMF_UtilIOGetCWD() method is now correctly specified as intent(out). This makes the method dependable.
    • The issue of building the unit tests and examples when build option ESMF_ARRAY_LITE is set to TRUE has been resolved. All test and example codes now build with this option.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • 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 with PGI (Discover): Fails the ESMF_FieldBundleCrGetUTest.F90 unit test with ESMF_BOPT=O.
  • Linux with PGI (Discover, Fusion): Fails the ESMF_DELayoutWorkQueue.F90 unit test intermittently with ESMF_COMM=mvapich2.
  • Windows/Cygwin with g95: Fails the ESMF_UtilUTest.F90 and TestHarness unit tests when linked against the shared library version of ESMF.

ESMF_6_3_0r

1/31/14 

Reference Manual for Fortran
(html) (pdf)

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf)

NUOPC Layer Reference Manual
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 6.2.0 and the last public release, ESMF 5.2.0rp3, for all the interfaces that are marked as backward compatible in the Reference Manual. There were API changes to a few unmarked methods that may require minor modifications to user code that uses these methods. The entire list of API changes is summarized in a table showing interface changes since ESMF_6_2_0, including the rationale and impact 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.
  • The NUOPC Layer contained in this release has been improved in the following specific technical areas:
    • The NUOPC Component Explorer was added. This is a run-time tool that can be used to analyze the compliance status of a Component.
    • Standard Component dependencies have been formalized and documented, making Components more interoperable on the build level.
    • The resolution of data dependencies during initialization was extended to cover components that run on different petLists.
    • The transfer of Grid and Mesh objects between Components is now supported during initialization.
  • The tools that allow Components to be made available as web-based services now provide the capability to use a job scheduler to manage the execution and resource allocation for the service.
  • The capability to create logically rectangular Grid objects from NetCDF files in SCRIP format was added to ESMPy, the ESMF Python interface. Documentation and downloads are available on the ESMPy web page.
  • Distributed objects Fields, Arrays, Grids, and Meshes created in one Component can now be transferred to another Component, even when the Components are defined on different petLists.
  • The "--check" option was added to the ESMF_RegridWeightGen application to calculate the interpolation and conservation error from regridding with the weights in the output file. The error is calculated using an analytical test field.
  • The ESMF_RegridWeightGen() interface was overloaded to allow regridding between grids with user specified element and optional nodal distribution. The grids must be supplied in the SCRIP format.
  • The ESMF_FieldRegridStore() call has been extended to work on Fields built on Meshes containing elements with more than four sides (e.g. pentagons and hexagons).
  • The ESMF_FieldRegridStore() call has been extended so that non-conservative interpolation methods (bilinear, patch, and nearest-neighbor) can be performed on Fields built on the Mesh element location (ESMF_MESHLOC_ELEMENT).
  • The ESMF_FieldRegridStore() call now allows the user to choose between great circle or Cartesian paths for the line between two points on a sphere during the calculation of bilinear interpolation weights.
  • The ESMF_FieldEmptySet() method now allows the Grid, Mesh, LocStream, or XGrid object to be replaced in a partially completed Field.
  • The ESMF_MeshCreate() interfaces have been extended to allow the user to specify a coordinate system. This information is used by the ESMF_FieldRegridStore() call to automatically determine the geometry of the source and destination Meshes.
  • The ESMF_MeshCreate() and ESMF_MeshAddElements() methods have been extended to allow the user to create a Mesh containing elements with more than four sides (e.g. pentagons and hexagons).
  • The ESMF_MeshCreate() and ESMF_MeshAddElements() methods have been extended to allow the user to optionally set element center coordinates. This information is used when doing non-conservative regridding on Fields built on the Mesh element location (ESMF_MESHLOC_ELEMENT).
  • The ESMF_MeshCreate() which allows the user to to create a copy of an existing Mesh, but with a different distribution, now allows the user to optionally omit the node distribution.
  • The ESMF_MeshCreate() method has been extended to allow generation of the nodal mask when reading from a UGRID file.
  • The ESMF_MeshCreate() method has been updated to support the new UGRID version 0.9.0 conventions.
  • The ESMF_MeshCreate() method has been extended to allow Meshes to be created from a grid file with user specified element and optional nodal distribution.
  • The ESMF_GridCreate() interface was overloaded to allow Grids to be created from a grid file with user specified distribution.
  • The ESMF_AttPack type was introduced, allowing a user to retrieve a handle to an ESMF Attribute package. This is a more compact way of working with Attribute packages.
  • The ESMF_UtilIOGetCWD() interface was added to allow retrieval of the absolute path and name of the current working directory.
  • A new parallel application ESMF_Scrip2Unstruct was added to convert a SCRIP format grid file to an unstructured ESMF format or a UGRID format grid file. This allows the user to execute the potentially expensive file format conversion operation once instead of every time the ESMF_RegridWeightGen application is called. The SCRIP file can be either unstructured or logically rectangular. The application has an option to generate a dual mesh, which is needed to support non-conservative regridding on cell centers.
  • 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.
  • When the ESMF regrid weight generation system is used with nearest destination to source interpolation method, the unmapped destination point detection does not work. Even if the option is set to return an error for unmapped destination points (the default) no error will be returned.
  • The ESMF regrid weight generation systemdoesn't currently work on Fields created on Grids which contain a DE of width less than 2 elements.
  • The ESMF regrid weight generation systemdoesn't currently work on Fields created on Grids of arbitrary distribution.
  • The ESMF_RegridWeightGen application has issues with some cases of SCRIP unstructured grid files that contain corner coordinates with small round off errors. Previously a small tolerance was introduced to determine if corner points of separate cells match to connect together neighboring cells. However, a problem can still occur in cases where for some corners the round off error along one dimension is above the tolerance value while it is below the tolerance for the other dimension. This can result in unexpected unmapped destination points in the regridding.
  • The ESMF_RegridWeightGen() method crashes when either or both of the optional arguments srcFileType or dstFileType are not given.
  • 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.
  • ESMF_FieldRegridStore() can not be used with non-conservative interpolation methods (bilinear, patch, or nearest-neighbor) for Fields built on the element location of a Mesh (ESMF_MESHLOC_ELEMENT) that contains elements with more than four sides. The call will return with error if used this way.
  • 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_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution will give incorrect results when used on a Grid with 3 or more dimensions and whose coordinate arrays are less than the full dimension of the Grid (i.e. it contains factorized coordinates).
  • The ESMF_MeshCreate() interface that allows the user to to create a copy of an existing Mesh, but with a different distribution will return an error if the element distribution is not specified.
  • The ESMF_AttributeUpdate() method does not work correctly for the following situations:
    • Re-ordering objects in the container classes (State, FieldBundle, ArrayBundle) can cause ESMF_AttributeUpdate() to hang.
    • When a small number of changes is made to a large Attribute package a failure can occur with a "buffer too short" log message.
    • A Grid shared by multiple Fields may not have all Grid attributes updated on all PETs.
    • A State that is reconciled more than once to Components on exclusive petLists will not be updated on any but the first Component.
    • Any Attribute that is added during runtime and then modified will not be updated correctly.
  • ESMF_AttributeWrite() only works for ESMF standard Attribute packages.
  • When calling the ESMF_AttributeGet() method to query a character string attribute, a debugging print statement is triggered inside of the ESMF library. This can lead to a problematic volume of output when ESMF_AttributeGet() is called many times (e.g. from within a loop).
  • The intent of the "pathName" argument in the ESMF_UtilIOGetCWD() method is incorrectly specified as intent(in). This makes the method undependable.
  • The unit tests and examples fail to compile when build option ESMF_ARRAY_LITE is set to TRUE.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • 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.
  • Darwin with g95 (Haumea): Fails the ESMF_LocStreamEx.F90 example with ESMF_BOPT=g for ESMF_COMM=mpiuni.
  • Darwin with gfortran (Haumea): Fails the ESMF_LocStreamUTest.F90 and ESMF_MeshUTest.F90 unit tests and the ESMF_LocStreamEx.F90 example with ESMF_BOPT=O for ESMF_COMM=mpich2 and ESMF_COMM=mvapich2.
  • Linux with PGI (Fusion): Fails the ESMF_FieldRegridUTest.F90 unit test with ESMF_COMM=mvapich2.
  • Windows/Cygwin with g95: Fails the ESMF_UtilUTest.F90 and TestHarness unit tests when linked against the shared library version of ESMF.

ESMF_6_2_0

5/17/13 

Reference Manual for Fortran
(html) (pdf) 

Reference Manual for C
(html) (pdf)

User's Guide
(html) (pdf) 

NUOPC Layer Reference Manual
(html) (pdf) 

Supported Platforms 

Regridding Status

  • This release is backward compatible with ESMF 6.1.1 for all the interfaces that were previously marked as backward compatible. There were API changes to unmarked methods, and new methods were added. All of these changes are backward compatible with ESMF 6.1.1. The entire list of API changes is summarized in a table showing interface changes since ESMF_6_1_1, including the rationale and impact 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.
  • This release contains a reference version of the NUOPC Layer software. The NUOPC Layer provides generic components that represent Drivers, Models, Mediators, and Connectors. These pre-fabricated, customizable components allow users to easily build interoperable ESMF applications. New web pages, a Reference Manual, andmany examples are available to help users learn about the software.
  • Specific technical improvements to the NUOPC Layer in this release include:
    • The default entries in the Field Dictionary were reduced to those entries that are compliant with the Climate and Forecast (CF) Convention. It is the intention to grow the number of default entries over time, based on a clear relationship with CF.
    • Support for dynamic resolution of data-dependencies between components during initialization was added.
    • Support for compatibility checking of components that interact on multiple timescales was added.
  • The capability of retrieving coordinates from an unstructured Mesh object created from a NetCDF file in SCRIP or UGRID format was added to the ESMF Python interface. More information about the Python interface is available at the ESMP web page.
  • Support to write out weight files in the NetCDF4 format was added to the ESMF_RegridWeightGen application and the ESMF_RegridWeightGen() interface.
  • The ESMF_RegridWeightGen application and the ESMF_MeshCreate() interface have been extended to support 3D unstructured grids provided in the UGRID convention.
  • The ESMF_FieldRegridStore() call has been enhanced so that now regridding takes into account Mesh node masking. This will allow the user to mask out portions of an unstructured Mesh.
  • The user can now get the coordinate system that a Grid was created on from the ESMF_GridGet() interface.
  • A new ESMF_MeshCreate() interface was added. This interface allows a user to create a copy of an existing Mesh, but with a different distribution of the nodes and elements from that of the original Mesh.
  • The ESMF_MeshCreate() and ESMF_MeshAddNodes() methods have been extended to allow the user to optionally set node masks.
  • The ESMF_UtilIOMkDir() interface was added to allow creation of a directory in the file system. The complementary ESMF_UtilIORmDir() interface was also added that allows removal of an empty directory.
  • A new demonstration program, ESMF_Regrid, was added to the ESMF external_demos repository. This program demonstrates regridding between Fields built on Grids created from GRIDSPEC formatted files.
  • Same as ESMF_6_1_1 with the following exceptions:
    • The ESMF_RegridWeightGen application now correctly outputs the grid mask array in the output weight file when either input grid is supplied following the UGRID convention.
    • The ESMF regrid weight generation system now consistently gives the correct answer when a destination point falls very close to the edge of a source cell when using the bilinear method on 3D Grids or 3D Meshes.
    • The ESMF regrid weight generation system no longer suffers from performance issues 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).
    • The ESMF_RegridWeightGen application and interface no longer fail if an input grid contains a polygon with more than 20 sides. The allocation is now done dynamically.
    • The ESMF_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution now gives correct results if the Grid contains items (e.g. areas or mask values). The new Grid contains correctly redistributed versions of the original Grid items.
    • The ESMF_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution now correctly works if the Grid contains stagger locations other than ESMF_STAGGERLOC_CENTER, ESMF_STAGGERLOC_EDGE1, and ESMF_STAGGERLOC_EDGE2. The new Grid will contain correctly redistributed versions of the original Grid stagger locations.
    • ESMF_AttributeUpdate() now works correctly even if the only changes have been Attribute removals.
  • The ESMF_GridCreate() interface which allows the user to create a copy of an existing Grid with a new distribution will give incorrect results when used on a Grid with 3 or more dimensions and whose coordinate arrays are less than the full dimension of the Grid (i.e. it contains factorized coordinates).
  • The code that allows the compliance checker to report memory usage on Linux is not thread-safe. The ESMF_ComplianceCheckerSTest.F90 system test fails or hangs on Linux systems when ESMF_TESTWITHTHREADS is set to ON.
  • Also see SourceForge bugs list.
Platform-specific bugs:
  • 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 gfortran (Pleiades): Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=mvapich2.
  • Darwin with g95 (Haumea): Fails the ESMF_LocStreamEx.F90 example with ESMF_BOPT=g for ESMF_COMM=mpiuni.
  • Darwin with gfortran (Haumea): Fails the ESMF_LocStreamUTest.F90 and ESMF_MeshUTest.F90 unit tests and the ESMF_LocStreamEx.F90 example with ESMF_BOPT=O for ESMF_COMM=mpich2 and ESMF_COMM=mvapich2.
  • Linux with PGI (Fusion): Fails the ESMF_FieldRegridUTest.F90 unit test 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: The ESMF_CompTunnelUTest.F90 unit test fails.

ESMF_6_1_1

1/4/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 6.1.0. There are no API changes.
  • The regridding capabilities in this release are identical to ESMF 6.1.0. Tables summarizing the ESMF regridding status are available. These include supported grids and capabilities of the offline and integrated regridding, and numerical results of some specific test cases.
  • Same as ESMF_6_1_0 with the following exceptions:
    • The bug in the NUOPC Layer that lead to an "Input argument out of range" error during Component initialization has been fixed. Full functionality of the NUOPC Layer has been restored.
  • Also see SourceForge bugs list.

ESMF_6_1_0

11/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.
  • Same as ESMF_5_3_0 with the following exceptions:
    • Added a small tolerance (1E-10 degrees) when determining whether two corner coordinates are identical in a SCRIP unstructured grid file. This allows the ESMF_RegridWeightGen application to correctly handle SCRIP unstructured grid files that have small round off errors in the corner coordinate arrays.
    • The ESMF_RegridWeightGen application now correctly handles bilinear and patch regridding on SCRIP unstructured grid files containing concave cells.
    • 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.
  • A bug in the NUOPC Layer leads to an "Input argument out of range" error during Component initialization. This issue renders the NUOPC Layer practically nonfunctional in this ESMF release.
  • When the ESMF_FieldRegridStore() call or the ESMF_RegridWeightGen application is used with nearest destination to source method, the unmapped destination point detection does not work. Even if the option is set to return an error for unmapped destination points (the default) no error will be returned.
  • Also see SourceForge bugs list.

Platform-specific bugs:

  • AIX/IBM (Bluefire): Fails the ESMF_ArrayRedistOpenMPSTest.F90 system test intermittently.
  • 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 gfortran (Pleiades): Fails the ESMF_field_1_NP4UTest test harness test with ESMF_COMM=mvapich2.
  • Linux with PGI (Jet): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=mvapich2.
  • Linux with PGI (Pleiades): Fails the ESMF_DELayoutWorkQueueUTest.F90 unit test intermittently with ESMF_COMM=mpi.
  • Darwin with g95 (Haumea): Fails the ESMF_LocStreamEx.F90 example with ESMF_BOPT=g for ESMF_COMM=mpiuni.
  • Darwin with gfortran (Haumea): Fails the ESMF_LocStreamUTest.F90 and ESMF_MeshUTest.F90 unit tests and the ESMF_LocStreamEx.F90 example with ESMF_BOPT=O for ESMF_COMM=mpich2 and ESMF_COMM=mvapich2.
  • Linux with PGI (Fusion): Fails the ESMF_FieldRegridUTest.F90 unit test 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: The ESMF_AttributeWriteInternalUTest.F90 unit test fails.
  • Windows/MinGW with intel: The ESMF_CompTunnelUTest.F90 unit test and the ESMF_CompTunnelEx.F90 example fail.
  • Windows/MinGW with intel: The ESMF_FieldBundleSMMSTest.F90 and ESMF_FieldSparseMatMulSTest.F90 system tests fail during VM shutdown.
  • Windows/MinGW with intel: Several ESMF_Attribute unit tests (ABundle, Array, CplComp, FBundle, Field, Grid, Sci, State) fail due to file comparison differences between Windows and Linux line terminators.

 

Last Update: May 12, 2015, 11:28 a.m. by Sylvia Murphy