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: 3* 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_3_1_0rp5

8/22/11 

Reference Manual
(html) (pdf)

User's Guide
(html) (pdf)

Supported Platforms

  • Implemented a work-around for a bug in the Component return code handling which lead to segmentation faults under some conditions.

ESMF_3_1_0rp4

4/29/11 

Reference Manual
(html) (pdf)

User's Guide
(html) (pdf)

Supported Platforms

  • Added support for the Intel compiler suite on the Cray XT platform.
  • Added support for the PGI 10.x and 11.x compiler versions.

ESMF_3_1_0rp3

2/19/10 

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • No new features.
  • The same as ESMF_3_1_0rp2 with the following exceptions:
    • Repeating sticky Alarms whose ringInterval is less than or equal to the Clock's timeStep now ring properly.
    • Repeating sticky Alarms that are not turned off during a waiting period of a Clock run now ring properly after the waiting period is over, Alarms are cleared, and turning off of subsequent Alarms resumes.
    • Repeating non-sticky Alarms now ring properly for a Clock that goes into ESMF_MODE_REVERSE at the Clock's stopTime, while an Alarm is ringing.
  • Also see SourceForge bugs list.

ESMF_3_1_0rp2

2/6/09 

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_1_0rp1.
  • Added support for replicated dimensions in Field. A "0" entry in the gridToFieldMap argument in ESMF_FieldCreate() and ESMF_FieldSetCommit() indicates that a Grid dimension is not part of the Field. Instead the Field is replicated across all DEs along the corresponding Grid dimension.
  • Overloaded ESMF_FieldCreate() to accept a Fortran array pointer and preserve its properties (such as bounds and ability to deallocate).
  • Overloaded ESMF_FieldSetCommit() to accept a Fortran array pointer and preserve its properties (such as bounds and ability to deallocate).
  • The Grid now supports an ESMF_INDEX_USER option for the indexflag. This allows the user to explicitly set the lower bound of their local index space. This is necessary when creating a Field from a Fortran array pointer with non-standard indexing.
  • Overloaded ESMF_ArrayCreate() to accept a Fortran array pointer and preserve its properties (such as bounds and ability to deallocate).
  • Optimized ESMF_ArraySMM() and ESMF_ArrayBundleSMM() runtime performance, scalability and memory usage.
  • Added support for optimized communications for Arrays with different distributions, dimensions and sizes in the same ArrayBundle.
  • Added support for DEs with zero elements in DistGrid, Array and Field.
  • Made localDe argument optional in ESMF_ArrayGet() and ESMF_FieldGet() methods where not prohibited by overloading restrictions.
  • Alarms set to ring at timeStep 0, upon ESMF_AlarmCreate(), now ring properly.
  • Alarms now ring properly for a Clock in ESMF_MODE_REVERSE.
  • Alarms now ring properly for a Clock using a negative timeStep.
  • Added default pointer size override feature to build system utilizing new environment variables ESMF_F90_PTR_BASE_SIZE and ESMF_F90_PTR_PLUS_RANK.
  • The same as ESMF_3_1_0rp1 with the following exceptions:
    • The failure of ESMF_VMSendVMRecvUTest.F90 on IBM BlueGene/L in uni-PET mode has been fixed.
    • On the SunOS Sparc set ESMF_OPTLEVEL=2, otherwise the ESMF_DELayoutWorkQueueUTest.F90 unit test hangs running with ESMF_BOPT=O.
    • The ESMC_Component examples fail on the PC Xeon(64) Cluster with the Intel 9.1 compiler and ESMF_COMM=mpich2.
    • A discrepancy in the names of ESMF_FieldBundle arguments in the ESMF_AttributeGet()/Set() interface documentation was corrected. The ESMF Reference Manual was updated to reflect this change.
  • Also see SourceForge bugs list.

ESMF_3_1_1

9/11/08

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_1_0rp1.
  • Added public C interfaces for select methods of the following classes:
    • GridComp, CplComp
    • State
    • Clock, TimeInterval, Time, Calendar
    • Config
    • Array
    • ArraySpec
    • DistGrid
    • VM
    • The prefix for these methods is ESMC. We do not yet have a Reference Manual that describes these interfaces.
  • Restored most Field and FieldBundle communication methods except the halo update methods.
  • Added a method to perform a bilinear or higher order regridding between two Fields constructed on Grids. The Fields must be based on Grids with indexflag equal to ESMF_INDEX_GLOBAL (not the default) and must have data at cell centers (the default). This method will not work for Fields built on LocStreams or Meshes. Interpolation weights are computed in parallel.
  • Added a LocStream (Location Stream) class to represent and manipulate observational data streams. Fields can be created using a LocStream instead of a Grid.
  • Added ability to represent an unstructured Mesh in ESMF. Fields can be created using a Mesh instead of a Grid.
  • The DistGrid interface changes in this release reflect modifications that are necessary to support factorized sequence indices in the future. This feature is required for the ongoing arbitrary Grid development and is not fully supported yet.
  • Added Attributes to the CplComp and GridComp classes.
  • Added the ability to build Attribute hierarchies.
  • Added Attribute packages to CplComp, GridComp, and Field. Either standard or custom Attribute packages can be created.
  • Added a method to locally copy Attributes between States called ESMF_AttributeCopy().
  • Overloaded ESMF_AttributeGet() and ESMF_AttributeSet() to allow the manipulation of Attributes in Attribute packages.
  • Added an optional default value to ESMF_AttributeGet().
  • Added an interface to write out an Attribute hierarchy in either tab delimited or XML format called ESMF_AttributeWrite().
  • Added character lists as an option for Attribute type.
  • Standardized the use of count and itemCount in Attribute calls and made them optional in most cases.
  • Added support for the Modified Julian Day calendar, ESMF_CAL_MODJULIANDAY.
  • Alarms now ring properly for a clock in ESMF_MODE_REVERSE.
  • Argument lists for Fortran-callable entry points which contain logical data have been regularized to always use Fortran LOGICAL. Previously, some routines used the internal ESMF_Logical derived type.
  • Parallel build of the ESMF library supported via GNU make -j option.
  • Added ESMF_CompFortranAndC system test that tests and demonstrates passing of State objects between Fortran and C components.
  • Added ESMF_Attribute system test demonstrating Attribute packages and hierarchies.
  • Added ESMF_FieldBundleSMM system test demonstrating the sparse matrix multiply using FieldBundles.
  • Added ESMF_ArrayRedist3D system test demonstrating a three dimensional redistribution operation for Arrays.
  • Added ESMF_SeqEnsemEx system test demonstrating an ensemble in which different ensemble members, which are distinctly different components, run on the same set of PETs.
  • The same as ESMF_3_1_0rp1 with the following exception:
    • The problem with the ESMC Component interfaces on XLF and PGI compilers has been fixed.
  • For higher-order interpolation, ESMF_FieldRegrid() can give wrong answers for multiple processors. We recommend only using this on a single processor.
  • In this release the accuracy of the higher-order interpolation has been degraded by a bug. For better results we recommend using ESMF v4.0.0. or later.
  • ESMF_FieldRegrid() has problems with the pole. When using ESMF_REGRID_SCHEME_FULL3D, we recommend not using any destination points which either lie in a cell next to the pole (for both bilinear and higher-order) or two cells away from the pole (for just higher-order).
  • Fields built on LocStreams and Meshes cannot be transferred between Components running concurrently.
  • ESMF_FieldRegrid() is only implemented for Fields with data located at cell centers.
  • ESMF_FieldRegrid() is only implemented for Fields created on Grids with indexflag equal to ESMF_INDEX_GLOBAL. This is not the default.
  • The Grid connections don't work in this release and will have no effect on the actions of ESMF_FieldRegrid().
  • New Attribute methods are unreliable across a range of platforms. They should be considered an early prototype and used with caution.
  • On IBM Bluegene the ESMF_FieldRegridEx.F90 and ESMF_FieldSphereRegridEx.F90 fail with ESMF_BOPT=O.
  • A problem in the Config C interface leads to failures in the ESMC_ConfigUTest.C on the XLF compiler.
  • ESMF_AttributeWrite() does not write out the values in the header of the .xml file generated when calling with ESMF_AttWriteFlag=ESMF_ATTWRITE_XML.
  • The Use Test Cases were not updated or tested for this release.
  • The ESMF_ArrayHarness2UTest is incorrectly reported as failing when executed through any of ESMF's batch mode mpirun scripts.
  • Also see SourceForge bugs list.

ESMF_3_1_0rp1

7/25/08 

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_1_0r.
  • Added Attributes to the Grid class.
  • Added Attributes to the Array class.
  • Added minIndex and maxIndex arguments to ESMF_GridGet(). These arguments apply to the first tile.
  • Added minIndexPDimPDe and maxIndexPDimPDe arguments to ESMF_DistGridGet().
  • Added ESMF_GridMatch() method to compare two Grid objects.
  • A new section in the User's Guide entitled "Setting up ESMF to run Test Suite Applications" was added that outlines how users can specify their own mpirun scripts. ESMF now consistently uses the setting of environment variable ESMF_MPIRUN to launch the bundled test suite and example applications.
  • A number of known bugs have been fixed. Please see the known bugs list.
  • The same as ESMF_3_1_0r with the following exceptions:
    • The problem with ESMF_ArrayRedist() and ESMF_ArraySMM() methods hanging in mpiuni mode has been fixed.
    • The problem with ESMF_ArrayRedist, ESMF_DirectCoupling and ESMF_RecursiveComponent system tests failing with a segmentation fault in ESMF_BOPT=O mode on x86_64 Darwin systems with Intel compilers has been fixed.
    • States containing FieldBundles can now be reconciled, so FieldBundles can be transferred between concurrently operating components.
    • Reconciliation errors for Fields created with user supplied arguments for gridToFieldMap, maxHaloWidths, and ungriddedBounds have been fixed.
    • Proxy Field objects, internally created during ESMF_StateReconcile(), are now properly destroyed during ESMF_StateDestroy().
    • The ESMF_AttributeGet() and ESMF_AttributeSet() Reference Manual entries that did not show a required "count" argument have been fixed.
  • Also see SourceForge bugs list.

ESMF_3_1_0r

5/21/08

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_1_0p1.
  • Shortened the names of State add and get methods so that they do not refer to the item being retrieved. For example, ESMF_StateGetField() is now just ESMF_StateGet().
  • Fixed problem in the InternalState implementation that rendered the returned Fortran pointer to the user defined derived type incomplete and unsuitable for memory deallocation across a wide range of platforms.
  • Implemented ArrayBundle class with limited support for sparse matrix and redist communication methods.
  • Renamed Bundle to FieldBundle.
  • Shortened ESMF_FieldBundleGetField() and ESMF_FieldBundleAddField() method names to ESMF_FieldBundleGet() and ESMF_FieldBundleAdd(), respectively.
  • State, Field, and FieldBundle Attribute methods were consolidated into a single set of Attribute methods that are overloaded for object type. For example, ESMF_AttributeGet() is overloaded to get Attributes from States, Fields, and Bundles. This reduces the number of documented calls in the interface significantly.
  • Field, Grid, and Array classes now interpret their width and bound arguments in a consistent way. The order of dimensions is defined by their index sequence in memory.
  • Restored the ESMF_FieldCreate() method that allows Field creation from an existing Grid and Array.
  • Restored the ESMF_FieldGet() that returns the native Fortran data pointer to Field data.
  • Implemented ESMF_FieldCreateEmpty(), which allocates the shell of a Field, and ESMF_FieldSetCommit(), which finishes a Field started by ESMF_FieldCreateEmpty().
  • Implemented a ESMF_FieldGet() method that provides precomputed bounds and counts from Grid and other Field creation parameters. This method helps users allocate native Fortran arrays to be used in ESMF_FieldCreate() and ESMF_FieldSetCommit() methods.
  • Switched Grid and Field localDe arguments to non-optional to conform to Array.
  • Grid undistributed dimensions are now always DistGrid dimensions distributed across 1 DE. This simplified interfaces and implementation. Field interfaces also reflect this change.
  • Grid now destroys internally created DELayouts, DistGrids, and Arrays.
  • Regular decompositions now behave more intuitively. Previously stagger edge padding could cause cells to be divided up oddly.
  • Added method to get GridStatus from a Grid.
  • Renamed ArraySparseMatMul methods ArraySMM to avoid method name size limits on some compilers.
  • Implemented more flexible zeroflag option in ESMF_ArraySMM() that supports zero out of only those destination elements that will be updated by the sparse matrix multiplication. This preserves special fill values if they exist.
  • Added ESMF_ArraySMMRelease() and ESMF_ArrayRedistRelease() interfaces for consistency.
  • Added ESMF_ConcurrentComp system test that demonstrates a very simple concurrent coupling scenario.
  • Added ESMF_ArrayBundleSparseMatMul system test.
  • Added ESMF_ArrayRedistMPMD system test to test and demonstrate ESMF's multiple executable support.
  • Added ESMF_RecursiveComponent system test to test and demonstrate the recursive use of ESMF Components.
  • Implemented FieldCreateGetUTest, FieldStressUTest, FieldBundleCrGetUTest to help diagnose/fix various memory associated issues.
  • Added petascale performance and memory optimization of Component creation.
  • Added support for SunOS/sparc.
  • Added support for new Cray XT4 compiler wrappers.
  • Added support for Darwin on x86 and x86_64 systems with Intel compilers.
  • Added support for gfortran version 4.3.
  • Added explicit interface blocks that ensure conformance to ESMF interfaces in user-written routines called by ESMF_GridCompSetServices() or ESMF_CplCompSetServices() and registered via the ESMF_GridCompSetEntryPoint() or ESMF_CplCompSetEntryPoint() methods.
  • Changed environment variable ESMF_EXHAUSTIVE to ESMF_TESTEXHAUSTIVE.
  • Added environment variable ESMF_TESTMPMD to turn on/off MPMD system tests.
  • Implemented running only single processor system tests from the run_system_test_uni target.
  • Removed netcdf_stubs and hdf_stubs.
  • Checked for and fixed memory leaks.
  • Reviewed and updated introductory and general sections of the Reference Manual.
  • Stagger location and bounds diagrams were added to the Grid documentation.
  • The ESMF_StateReconcile() call, generally used by couplers dealing with Components running on exclusive petLists, has an internal size limit (which will be addressed in a subsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile() .
  • FieldBundles contained inside States cannot be reconciled. This means that FieldBundles cannot be transferred between components running concurrently.
  • There are reconciliation errors for Fields created with user supplied arguments for gridToFieldMap, maxHaloWidths, and ungriddedBounds.
  • Proxy Field objects, internally created during ESMF_StateReconcile(), are not properly destroyed during ESMF_StateDestroy(). In applications that reconcile States across exclusive sets of PETs this will lead to a small memory leak for each contained Field object. This should not cause significant problems if ESMF_StateReconcile() is called once during initialization as recommended.
  • ESMF_ArrayRedist() and ESMF_ArraySMM() methods will hang in mpiuni mode. We expect this to be fixed in an upcomng patch release.
  • Repeating sticky Alarms whose ringInterval is less than or equal to the Clock's timeStep do not ring properly.
  • Repeating sticky Alarms that are not turned off during a waiting period of a Clock run do not ring properly after the waiting period is over, Alarms are cleared, or turning off of subsequent Alarms resumes.
  • Repeating non-sticky Alarms do not ring properly for a Clock that goes into ESMF_MODE_REVERSE at the Clock's stopTime, while an Alarm is ringing.
  • The documentation for ESMF_AttributeGet() and ESMF_AttributeSet() calls for multi-valued list Attributes does not show a required integer input "count" argument after the "name" argument. This has been corrected in the Reference Manual for this release shown at left. However a user who builds the documentation themselves will still see this error.
  • ESMF_LOG_SINGLE is known to be broken. The symptoms are platform dependent and may appear non-deterministic.
  • On Cray X1 the ESMF_DistDir system test fails.
  • On Cray X1 the ESMF_String unit test fails.
  • On IBM BlueGene/L ESMF_VMSendVMRecvUTest.F90 fails in uni-PET mode.
  • On x86_64 Darwin systems with Intel compilers the ESMF_ArrayRedist, ESMF_DirectCoupling and ESMF_RecursiveComponent system tests fail with segmentation fault in ESMF_BOPT=O mode.
  • ESMC_Component examples fail with the XLF and PGI compilers as well as for the Linux/absoftintel combination.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. Consequently ESMF sets ESMF_OPTLEVEL to 0 (zero) by default when compiling ESMF with NAG and we advise NAG users to not use optimization on user code that links against the ESMF library.
  • Last time we were able to test with PGI 6.2.5 on Cray XT3/4 it failed to compile ESMF with an internal compiler error. The same version of PGI works fine on non-Cray machines. We were unable to test with this compiler version on Cray XT3/4 to determine the status of this issue with 3.1.0r.
  • Also see SourceForge bugs list.

ESMF_3_1_0p1

2/27/08 

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_1_0.
  • Added garbage collection of proxy objects to ESMF_StateDestroy(). This fixes several memory leaks in system tests.
  • Re-enabled the ESMF_FieldPrint() method.
  • Changed ESMF_GridSetShapeTile() to ESMF_GridSetCommitShapeTile(). In addition to just setting data the newly renamed Grid method now also does an internal commit.
  • Added deep copy overload to ESMF_ArrayCreate().
  • Implemented transpose mode for Array redistribution in ESMF_ArrayRedistStore().
  • Implemented factor option for Array redistribution in ESMF_ArrayRedistStore(). Now the user can multiply the source Array by a constant factor as part of the redistribution operation.
  • Implemented support for direct coupling between components via RouteHandle-based communications (e.g. ESMF_ArraySparseMatMul(), ESMF_ArrayRedist()).
  • Added ESMF_DirectCoupling system test.
  • Implemented general TK support in ESMF_ArraySparseMatMul(). This means that source Array, destination Array, and factor list arguments can be of different type and kind.
  • Implemented general TK support in ESMF_ArrayRedist(). This means that source Array, destination Array, and factor arguments can be of different type and kind.
  • Fixed zeroflag bug in ESMF_ArraySparseMatMul() that did not correctly initialize the destination Array.
  • Fixed bug in ESMF_ArrayScatter()/ESMF_ArrayGather() that would access not allocated or not associated array arguments.
  • Fixed TKR checking in ESMF_LocalArrayGetData().
  • Corrected string passing on internal inter-language interfaces. A symptom of the problem was the failure of ESMF_StringUTest.F90 on some x86_64 machines.
  • Added support for compiler XLF v11.1.
  • Added scalimpi option to Linux.intel.default.
  • Added scalimpi option to Linux.pgi.default.
  • Same as release ESMF_3_1_0 with the following exceptions:
    • Corrected string passing on internal inter-language interfaces. A symptom of the problem was the failure of ESMF_StringUTest.F90 on some x86_64 machines.
    • Fixed zeroflag bug in ESMF_ArraySparseMatMul().
  • On Tempest IRIX64 unit test ESMC_ClockEx.C fails intermittently for ESMF_ABI=64.
  • An XLC 8.0 compiler bug causes the IBM BlueGene/L to fail system test ESMF_DirectCouplingSTest.F90 and unit tests ESMF_ArrayArbIdxSMMUTest.F90 and ESMF_ArrayRedistUTest.F90 for ESMF_BOPT=O.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 the ESMF_ArrayScatterUTest.F90 unit test fails.
  • Also see SourceForge bugs list.

ESMF_3_1_0

11/29/07

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_0_3.
  • Field, Bundle, State, and Component classes are now built on new Grid and Array classes. Field and Bundle method arguments have significantly changed so that they more closely resemble those of Grid and Array.
  • The following classes were removed:
    • IGrid (in the InternGrid directory, which was also removed)
    • FieldDataMap
    • BundleDataMap
  • The InternArray class is no longer visible at public interfaces. It will be removed in a future release along with InternDG.
  • Added system test FieldSparseMatMul. This creates Fields and gets Arrays from them in order to perform an ESMF_ArraySparseMatMul() operation.
  • The following were disabled:
    • Field and Bundle communication methods and corresponding unit tests and examples
    • Many Field and Bundle get and set methods and corresponding unit tests and examples
    • System tests *except* for CompCreate, DistDir, ArraySparseMatMul, FieldSparseMatMul, ArrayRedist, and ArrayScatterGather. Other system tests have not yet been modified to work with updated Field and Bundle classes, and will be restored in a future release.
  • Further work on the new Grid class:
    • Grids can be created or set with a regular distribution.
    • Coordinate arrays can be less than the Grid's rank (e.g. rectilinear coordinates)
    • Grids can be serialized and deserialized (e.g. as part of a state reconcile operation)
    • Grids can be queried for information about a stagger location including local DE exclusive and computational bounds, computationalEdgeWidths, and undistributed bounds.
    • Grids can be queried for element counts in addition to lower and upper bound information.
  • The Grids have been altered to live entirely within the Array exclusive region to allow for smoother interaction with Array methods.
  • Stagger locations have also been changed to allow:
    • Comparisons between staggerlocs
    • The output of a string describing the staggerloc
  • Implemented ESMF_ArrayGather()
  • Implemented ESMF_ArrayRedist()
  • Implemented ESMF_ArraySet()
  • Support the use of precomputed ArraySparseMatMul RouteHandles with different actual Arrays.
  • Optimized performance of ESMF_ArraySparseMatMulStore().
  • Optimized performance of ESMF_ArraySparseMatMul().
  • Implemented Array replication along specified DistGrid dimensions.
  • Generalized ArraySparseMatMul to support general Array - DistGrid dimension mapping.
  • Generalized ArraySparseMatMul to support tensor term mixing.
  • Implemented a more flexible Array computational bounds scheme that allows a computational region that is smaller than the exclusive region.
  • Changed Array total widths to be relative to the Array computational region.
  • Added computationalEdgeLWidth and computationalEdgeUWidth arguments to ESMF_ArrayCreate() interfaces to allow special treatment of the edge.
  • Changed DistGrid basic elements from cells to elements.
  • Changed Array's dimmap and inverseDimmap arguments to distgridToArrayMap and arrayToDistGridMap, respectively.
  • Added LocalArray section to ESMF Reference Manual.
  • Added support for Intel compiler version 10.
  • Increased robustness of g95 and gfortran configurations on Linux and Darwin.
  • Added support for Cray XT3/4 systems with CNL kernel.
  • The only Use Test Case that currently builds is ESMF_SparseMatMul. Due to failures of the other UTCs it must be built and run separately, not from the collective UTC makefile.
  • The zeroflag=ESMF_TRUE option in the ESMF_ArraySparseMatMul() call is broken for Arrays that have total regions that are larger than the exclusive region. The symptom of this bug is that not all destination elements are reset to zero before adding the sparse matrix multiplication terms.
  • The ESMF_StateReconcile() call, generally used by couplers dealing with Components running on exclusive petLists, has an internal size limit (which will be addressed in a subsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile() .
  • C/C++ Component examples fail with the XLF and PGI compilers as well as for the Linux/absoftintel combination.
  • The documentation for ESMF_GetAttribute() and ESMF_SetAttribute() calls for multi-valued list Attributes does not show a required integer input "count" argument after the "name" argument. If the "count" argument, which represents the number of Attribute values, is inserted the call will work.
  • ESMF_LOG_SINGLE is known to be broken. The symptoms are platform dependent and may appear non-deterministic.
  • On IRIX64 the exhaustive unit tests compiled against MPI will intermittently hang when run in uni-PET mode if the ESMF library was built with ESMF_PTHREADS=ON. This issue does not show up when running the MPI version in multi-PET mode or when using the MPIUNI version in uni-PET runs. The issue disappears when the ESMF library is compiled with ESMF_PTHREADS=OFF (which is the default for IRIX64).
  • ESMF fails to build on Cray XT3/XT4 with PGI 6.2.5 with an internal compiler error.
  • On IBM AIX systems in 32-bit mode StateLimitUTest fails in uni-PET mode.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 or PathScale 2.4 ESMF_ArrayDataUTest.F90 will report two failures. These failures indicate a problem with the F90 dope vector and ESMF must be assumed unreliable under these conditions.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 the ESMF_ArrayLarrayEx.F90 fails.
  • On Cray X1 the ESMF_DistDir system test fails.
  • On IBM BlueGene/L ESMF_VMSendVMRecvUTest.F90 fails in uni-PET mode.
  • On Linux Lahey, a test in ESMF_ArrayDataUTest.F90 fails with ESMF_BOPT=g.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. Consequently ESMF sets ESMF_OPTLEVEL to 0 (zero) by default when compiling ESMF with NAG and we advise NAG users to not use optimization on user code that links against the ESMF library.
  • On Linux intel 9.1 with mpich2, unit test ESMF_StringUTest.F90 fails with ESMF_BOPT=O.
  • On x86_64 systems with PGI 6.2-3 or PathScale 2.4, unit test ESMF_VMBarrierUTest.F90 fails intermittently.
  • Also see SourceForge bugs list.

ESMF_3_0_3

7/27/07

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_0_2.
  • Renamed all references to Grids that existed in previous versions of the framework to IGrid and moved the class to an InternGrid directory. The IGrid class is deprecated and will be removed in a future release.
  • Created a new Grid class, which is still at an early stage of development. The new Grids can:
    • be 1D, 2D, 3D and higher dimensions
    • have multiple undistributed dimensions
    • hold curvilinear coordinates at multiple stagger locations.
    The user can now:
    • create a new Grid either with shortcut methods or incrementally
    • get parameters from the new Grid
    • set and get Grid coordinates from an ESMF Array
    • get a pointer to the memory holding the coordinates in the Grid
    • get array bound information for the coordinate arrays
    • destroy a new Grid.
  • The ESMF_ArraySparseMatMulStore() and ESMF_ArraySparseMatMul() methods were rewritten and improved performance and reduced memory usage are expected. The methods have the following new features:
    • support for distributed definition of factors
    • support for user-supplied arbitrary sequence indices via 1D DistGrid
    • support for ESMF_TYPEKIND_I4/I8/R4/R8
    • default initialization of destination Array to zero (can be overridden)
  • A collective ESMF_DistGridCreate() call was introduced that takes local lists of arbitrary sequence indices and returns a matching 1D DistGrid. This can be used in combination with the Array sparse matrix multiply to regrid unstructured grids.
  • The ESMF_DistGridGet() interface was massively updated to provide complete access to DistGrid information. The names of many of the arguments have changed.
  • The ESMF_ArrayCreate() calls now provide the "name" argument.
  • Many unimplemented methods will return the failure code ESMF_RC_NOT_IMPL. Validate methods are considered implemented if at least initialization checks are present.
  • Cygwin.g95.default and Cygwin.gfortran.default configurations were added.
  • Starting with this version of ESMF, support for PGI compilers has been limited to PGI versions >= 6.2. We will stop reporting ESMF known bugs for older PGI versions.
  • C/C++ Component examples fail with the XLF and PGI compilers as well as for the Linux/absoftintel combination.
  • The ESMF_StateReconcile() call, generally used by couplers dealing with Components running on exclusive petLists, has an internal size limit (which will be addressed in a subsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile() .
  • ESMF_BundleGather(), ESMF_FieldGather() and ESMF_ArrayGather() are only expected to work on 2D grids with 2D data.
  • When ESMF_InternArray objects are created with a non-zero halo width, that width is added to all dimensions of the array, not only ones which correspond to the decomposed grid axes.
  • Overall, we have found that regridding using ESMF_InternArrayRegrid(), FieldRegrid(), and BundleRegrid() is not robust. We encourage customers interested in ESMF regridding to move to the ESMF_ArraySparseMatMul() approach while regrid methods are reworked.
  • The conservative regrid algorithm for full spheres, which includes special treatment of the poles, is largely untested and expected to produce errors.
  • The conservative regrid method for both regional and global grids produces incorrect results for PGI in MPIUNI mode.
  • The documentation for ESMF_GetAttribute() and ESMF_SetAttribute() calls for multi-valued list Attributes does not show a required integer input "count" argument after the "name" argument. If the "count" argument, which represents the number of Attribute values, is inserted the call will work.
  • ESMF_LOG_SINGLE is known to be broken. The symptoms are platform dependent and may appear non-deterministic.
  • On IRIX64 the exhaustive unit tests compiled against MPI will intermittently hang when run in uni-PET mode if the ESMF library was built with ESMF_PTHREADS=ON. This issue does not show up when running the MPI version in multi-PET mode or when using the MPIUNI version in uni-PET runs. The issue disappears when the ESMF library is compiled with ESMF_PTHREADS=OFF (which is the default for IRIX64).
  • On Cray X1, the conservative regrid method does not work when the grid is defined as a uniform horizontal LatLon grid with periodic longitude coordinate and the source and destination grid are of the same size.
  • ESMF fails to build on Cray XT3/XT4 with PGI 6.2.5 with an internal compiler error.
  • On IBM AIX systems in 32-bit mode StateLimitUTest fails in uni-PET mode.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 or PathScale 2.4 ESMF_ArrayDataUTest.F90 will report two failures. These failures indicate a problem with the F90 dope vector and ESMF must be assumed unreliable under these conditions.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 the ESMF_ArrayLarrayEx.F90 fails.
  • On Cray X1 the ESMF_DistDir system test fails.
  • On IBM BlueGene/L ESMF_VMSendVMRecvUTest.F90 fails in uni-PET mode.
  • On Linux Lahey, a test in ESMF_ArrayDataUTest.F90 fails with ESMF_BOPT=g.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. Consequently ESMF sets ESMF_OPTLEVEL to 0 (zero) by default when compiling ESMF with NAG and we advise NAG users to not use optimization on user code that links against the ESMF library.
  • The documentation of the ESMF_ArraySparseMatMulStore() API incorrectly states that the returned "routehandle" argument can be used to perform ESMF_ArraySparseMatMul() on any Array pair that is DistGrid-conforming to the Array pair used during the ESMF_ArraySparseMatMulStore(). This feature is _not_ yet supported, i.e. currently the "routehandle" can only be used to perform ESMF_ArraySparseMatMul() between the Array pair for which it was precomputed.
  • Also see SourceForge bugs list.

ESMF_3_0_2

5/25/07

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_0_1.
  • The ESMF_ArrayCreate(), ESMF_ArrayGet() and ESMF_ArrayScatter() interfaces were type/kind/rank overloaded.
  • ESMF_VMScatterV() and ESMF_VMGatherV() calls were added.
  • Methods across the framework had their return codes initialized to not implemented (ESMF_RC_NOT_IMPL). This is a step towards ensuring that unimplemented code returns appropriate errors when called.
  • LogErr calls were modified so that they need not set return codes prematurely to ESMF_SUCCESS. This is also a step towards ensuring that unimplemented code returns appropriate errors when called. This new LogErr behavior is not yet turned on, as there are still calls that rely on the former behavior of LogErr.
  • The declaration and usage of real and integer datatypes across the framework was standardized. The most significant change was the combination of type and kind into a single ESMF_TypeKind parameter. The new datatype conventions are included in the Developer's Guide.
  • A policy for the auto-promotion of user data via compile options was developed and is included in the Developer's Guide.
  • An ESMF_ConfigSetAttribute() call was implemented for 4-byte integers.
  • Conventions were established for a public ESMC optional argument API based on the variable-length argument list functionality provided by <stdarg.h>.
  • Added C interfaces for Config class (ESMC_Config). The ESMC_ConfigSetAttribute method is present, but not implemented.
  • An advanced stub for a new testing control system for running exhaustive tests on regrid and redist, called the test_harness, has been added. It runs and parses trivial bundle and field redistribution test configurations.
  • Fixed a bug that required Log files to be explicitly closed by the user before calling ESMF_Finalize.
  • Users may now open, write and close multiple Log files.
  • C/C++ Component examples fail with the XLF and PGI compilers as well as for the Linux/absoftintel combination.
  • The ESMF_StateReconcile() call, generally used by couplers dealing with Components running on exclusive petLists, has an internal size limit (which will be addressed in a subsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile() .
  • ESMF_BundleGather(), ESMF_FieldGather() and ESMF_ArrayGather() are only expected to work on 2D grids with 2D data.
  • When ESMF_InternArray objects are created with a non-zero halo width, that width is added to all dimensions of the array, not only ones which correspond to the decomposed grid axes.
  • Overall, we have found that regridding using ESMF_InternArrayRegrid(), FieldRegrid(), and BundleRegrid() is not robust. We encourage customers interested in ESMF regridding to move to the ESMF_ArraySparseMatMul() approach while regrid methods are reworked.
  • The conservative regrid algorithm for full spheres, which includes special treatment of the poles, is largely untested and expected to produce errors.
  • The conservative regrid method for both regional and global grids produces incorrect results for PGI in MPIUNI mode.
  • The documentation for ESMF_GetAttribute() and ESMF_SetAttribute() calls for multi-valued list Attributes does not show a required integer input "count" argument after the "name" argument. If the "count" argument, which represents the number of Attribute values, is inserted the call will work.
  • ESMF_LOG_SINGLE is known to be broken. The symptoms are platform dependent and may appear non-deterministic.
  • On IRIX64 the exhaustive unit tests compiled against MPI will intermittently hang when run in uni-PET mode if the ESMF library was built with ESMF_PTHREADS=ON. This issue does not show up when running the MPI version in multi-PET mode or when using the MPIUNI version in uni-PET runs. The issue disappears when the ESMF library is compiled with ESMF_PTHREADS=OFF (which is the default for IRIX64).
  • On Cray X1, the conservative regrid method does not work when the grid is defined as a uniform horizontal LatLon grid with periodic longitude coordinate and the source and destination grid are of the same size.
  • On Cray XT3/XT4, the ESMF_VMBarrierUTest is incorrectly reported as failing. The origin of this problem seems to be a bug in Cray's implementation of MPI_Wtime(). This problem will also affect the validity of ESMF_VMWtime().
  • ESMF fails to build on Cray XT3/XT4 with PGI 6.2.5 with an internal compiler error.
  • On IBM AIX systems in 32-bit mode StateLimitUTest fails in uni-PET mode.
  • On x86_64 systems using the medium-memory model with PGI 6.2-3 or PathScale 2.4 ESMF_ArrayDataUTest.F90 will report two failures. These failures indicate a problem with the F90 dope vector and ESMF must be assumed unreliable under these conditions.
  • On IBM BlueGene/L, tests in ESMF_ClockUTest.F90 fail for ESMF_BOPT=O/g. Fails ESMF_VMSendVMRecvUTest.F90 in uni-PET mode.
  • On Linux Lahey, a test in ESMF_ArrayDataUTest.F90 fails with ESMF_BOPT=g.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. Consequently ESMF sets ESMF_OPTLEVEL to 0 (zero) by default when compiling ESMF with NAG and we advise NAG users to not use optimization on user code that links against the ESMF library.
  • On the PGI 5.0-2 compiler with mpiuni, five regriding unit tests fail.
  • On the PGI 6.1-1 compiler with mpiuni, multiple unit tests, examples and 2 system tests fail.
  • Also see SourceForge bugs list.
  •  
  •  
  •  
  •  
  •  
  •  
  •  

ESMF_3_0_1

2/28/07

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_3_0_0.
  • Standardized the checking of initialization in ESMF. This introduces two new error return codes. The first, ESMF_RC_OBJ_NOT_CREATED, is returned if the user attempts to use a deep class variable without first creating it. The second ESMF_RC_OBJ_DELETED is returned if the user attempts to use a deep class variable after its deletion. Also, before this change, shallow class variables were not initialized on platforms with compilers that didn't support type component initialization. Now this initialization is handled by ESMF. Implementing this change necessitated the change of the intents of shallow class input parameters throughout ESMF from strictly in to inout.
  • Added an ESMF_LOG_NONE option to the "defaultLogType" argument of ESMF_Initialize() to turn off ESMF's default error logging.
  • Added "mpiCommunicator" argument to ESMF_Initialize() to allow ESMF to be initialized on a subset of MPI processes. The added VM example ESMF_VMUserMpiCommEx.F90 tests this new feature.
  • Added an ESMF_KEEPMPI option to the "terminationflag" argument of ESMF_Finalize() to allow ESMF finalization without MPI shutdown.
  • Removed deprecated GridCompCreate() and CplCompCreate() interfaces.
  • Optimized ESMF_BundleRedistStore(), ESMF_BundleRedist(), ESMF_FieldRedistStore(), and ESMF_FieldRedist() for arbitrarily distributed grids. A new algorithm was implemented i n the ESMF Route code to initialize the arbitrary to arbitrary grid redistribution. The redist run routine has been optimized specifically for the Cray X1 machine.
  • Added ESMF_VMAllGatherV() and VMAllToAllV() methods.
  • Added "errorMask" argument to ESMF_LogSet() to allow masking of error codes in LogErr handling.
  • Reworked the build system to be more robust and portable. Some of the previously used environment variables have become obsolete or were replaced by new variables. A full list of the environment variables as well as build system details can be found in the User's Guide. The main README contains enough information to get started quickly.
  • Introduced enhanced support for compiling and linking user applications against ESMF. See the User's Guide or main README for details.
  • Added a section to the User's Guide on how to port ESMF to other platforms.
  • Ported ESMF to the Cray XT3/XT4 and IBM BlueGene/L.
  • Added the following system tests to test the Bundle and Field redistribution methods for both arbitrarily distributed grids and block distributed grids:
    • ESMF_BundleRedistArb2ArbSTest.F90
    • ESMF_BundleRedistBlk2ArbSTest.F90
    • ESMF_BundleRedistBlk2BlkSTest.F90
    • ESMF_FieldRedistArb2ArbSTest.F90
    • ESMF_FieldRedistBlk2ArbSTest.F90
    • ESMF_FieldRedistBlk2BlkSTest.F90
  • Augmented the exhaustive regrid unit test ESMF_RegridToolUTest.F90 to include regrid scenarios with different resolution source grid and destination grid.
  • Fixed ESMF_InternArrayUTest unit test failures on the Linux PGI compiler.
  • The problem with PGI 6.1.1 on Linux was resolved as a consequence of the reworked build system.
  • The following issues appear to be resolved due to compiler upgrades or indirectly as a result of other development:
    • Problem building with XL Fortran compiler version 8.1.1.6, when compiling with the combination ESMF_PREC=64 and ESMF_BOPT=g.
    • Issues with configuration of MPICH with Intel 8.1.
  • The rank check error that incorrectly occurred during redistribution of Fields or Bundles that are transferred from block to arbitrary distribution (and vice versa) has been corrected.
  • The ESMF distribution available for download on the ESMF website has been pruned of many extraneous files, and is no longer bundled with documentation files. The distribution has been reduced in size from about 127MB to 12MB. Users can get documentation files by downloading from SourceForge.
  • This ESMF release is under the University of Illinois-NCSA Open Source License. Licenses are still a subject of discussion.
  • C/C++ Component examples fail with the XLF and PGI compilers as well as for the Linux/absoftintel combination.
  • The ESMF_StateReconcile() call, generally used by couplers dealing with Components running on exclusive petLists, has an internal size limit (which will be addressed in a su bsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile().
  • ESMF_BundleGather(), ESMF_FieldGather() and ESMF_ArrayGather() are only expected to work on 2D grids with 2D data.
  • When ESMF_InternArray objects are created with a non-zero halo width, that width is added to all dimensions of the array, not only ones which correspond to the decomposed grid axes.
  • Overall, we have found that regridding using ESMF_InternArrayRegrid(), FieldRegrid(), and BundleRegrid() is not robust. We encourage customers interested in ESMF regridding to move to the ESMF_ArraySparseMatMul() approach while regrid methods are reworked.
  • On IRIX64 the exhaustive unit tests compiled against MPI will intermittently hang when run in uni-PET mode if the ESMF library was built with ESMF_PTHREADS=ON. This issue does not show up when running the MPI version in multi-PET mode or when using the MPIUNI version in uni-PET runs. The issue disappears when the ESMF library is compiled with ESMF_PTHREADS=OFF (which is the default for IRIX64).
  • The conservative regrid algorithm for full spheres, which includes special treatment of the poles, is largely untested and expected to produce errors.
  • The conservative regrid method for both regional and global grids produces incorrect results for PGI in MPIUNI mode.
  • The documentation for ESMF_GetAttribute() and ESMF_SetAttribute() calls for multi-valued list Attributes does not show a required integer input "count" argument after the "name" argument. If the "count" argument, which represents the number of Attribute values, is inserted the call will work.
  • ESMF_LOG_SINGLE is known to be broken. The symptoms are platform dependent and may appear non-deterministic.
  • On Cray X1, the conservative regrid method does not work when the grid is defined as a uniform horizontal LatLon grid with periodic longitude coordinate and the source and destination grid are of the same size.
  • On Cray X1, there are unit test failures across a wide range of classes, including Time classes, Field, State and Array, and we do not consider the release to be supported on this platform.
  • On Cray XT3/XT4, the ESMF_VMBarrierUTest is incorrectly reported as failing. The origin of this problem seems to be a bug in Cray's implementation of MPI_Wtime(). This problem will also affect the validity of ESMF_VMWtime().
  • On Cray XT3/XT4, the system test ESMF_ArraySparseMatMulSTest() and example ESMC_AppMainEx.C fail for ESMF_BOPT=O/g. System test ESMF_FieldHaloSTest() fails with ESMF_BOPT=O.
  • On IBM BlueGene/L, tests in ESMF_ArrayScatterUTest.F90 fail for ESMF_BOPT=g. Tests in ESMF_ClockUTest.F90 fail for ESMF_BOPT=O/g.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. We advise NAG users to set environment variable ESMF_OPTLEVEL to 0 (zero) when compiling ESMF and to not use optimization on user code that links against the ESMF library.
  • Also see SourceForge bugs list.

ESMF_3_0_0

5/20/06

Reference Manual
(html) (pdf) 

User's Guide
(html) (pdf) 

Supported Platforms

  • List of ESMF interface changes since ESMF_2_2_2.
  • The following classes were modified to implement an index space layer according to JST design discussions:
    • Array
    • DELayout
    • DistGrid
  • Adjusted library sources, examples and tests to DELayout changes.
  • Added support for arbitary to arbitrary redistribution of Fields and Bundles.
  • Renamed previous Array class to InternArray. This class is expected to become an internal class in future releases.
  • Adjusted library sources, examples and tests to InternArray. Removed as many InternArray dependencies as possible.
  • Fixed VMBarrierUTest for PGI (Argonne Jazz cluster). This was a known bug in the previous release.
  • Fixed the C++ Component interface for most platforms. PGI and XLF still do not work.
  • Re-enable the C++ Component examples, which were disabled for the previous release.
  • Modified VMKernel and makefiles to allow compilation on NEC SX.
  • Added support for the LSF batch queueing system on the AIX platform. (For NCAR computer users, this supports 'bluevista'.)
  • The ESMF_StateReconcile() call, generally used by couplers dealing with concurrently running Components, has an internal size limit (which will be addressed in a subsequent release). There is no hard-coded limit to how many elements, i.e. States, Bundles, Fields, Arrays can be added to the State. However, there is a limit, roughly 20, on the maximum number of sub-elements contained by any element in the State passed into ESMF_StateReconcile().
  • Redistribution of Fields or Bundles that are transferred from block to arbitrary distribution (and vice versa) fails with a message about mismatched ranks.
  • The C/C++ Component examples fail with the XLF and PGI compilers.
  • ESMF_BundleGather(), ESMF_FieldGather() and ESMF_InternArrayGather() are only expected to work on 2D grids with 2D data.
  • The conservative regrid algorithm for full spheres, which includes special treatment of the poles, is largely untested and expected to produce errors.
  • When ESMF_InternArray objects are created with a non-zero halo width, that width is added to all dimensions of the array, not only ones which correspond to the decomposed grid axes.
  • On AIX systems the ESMF fails to build with the XL Fortran compiler version 8.1.1.6, when compiling with the combination ESMF_PREC=64 and ESMF_BOPT=g. (Compiler version 8.1.1.4 works fine with all compile options, and ESMF_PREC=32 or ESMF_BOPT=O also work with either compiler version.)
  • When compiling with Intel 8.1 and using MPICH, make sure the Intel/MPICH libraries are configured with: #define MPI2CPP_HAVE_BOOL 1 which may not be the default output from configure.
  • On the Linux PGI compiler unit test ESMF_InternArrayUTest.F90 fails with both ESMF_BOPT=O/g
  • Build fails on Longs Linux PGI 6.1.1 compiler with ESMF_BOPT=g.
  • On the Cray X1, several system tests, examples and unit tests fail.
  • All NAG compiler combinations we tested (on Linux as well as on Darwin) show random run-time failures when ESMF is compiled in optimized mode and also when user code that links with ESMF is compiled in optimized mode. We advise NAG users to set environment variable ESMF_OPTLEVEL to 0 (zero) when compiling ESMF and to not use optimization on user code that links against the ESMF library.
  • Also see SourceForge bugs list.

 

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