ITAPS 1.4 Released

Added by Mark Miller over 5 years ago

Announcing Release 1.4 of ITAPS Interfaces, Implementations and Services.

Users may obtain help and send feedback to itaps-users at

This announcement consists of the following information
1. Changes to ITAPS interface specifications in this release
2. Fortran interface improvements
3. Improvements in ITAPS interface and portability testing.
4. Information on obtaining the software
5. Obtaining documentation

1. Changes to ITAPS interface specifications

  • iBase.h
    • The iBase_Error struct datatype was removed because it was part of a now obselete error handling mechanism
    • The concept of the resliency in iterators was introduced to permit ITAPS callers to indicate what assumptions their call sequences make in the way of iterator behavior in the presence of container modifications. For a detailed discussion of the design considerations for this change, see
    • In any of the ITAPS interfaces where an iterator can be requested, if a caller requests a reslient iterator and an implementation is unable to return one, the function will fail and return IBASE_NOT_SUPPORTED.
    • Advice for implementers was improved to include how to properly deal with termination of string-valued arguments.
  • iMesh.h
    • Added reslient argument in iterator creation calls
    • Replaced iMesh_areEHValid() with iMesh_optimize() and added handles_invalidated return argument to indicate if calling iMesh_optimize() potentially invalidated any entity, set, or tag handles the caller was holding prior to the call. For a detailed discussion of the design considerations for this change, see
  • iMeshP.h
    • Added reslient argument in iterator creation calls
  • iRel.h
    • Added reslient argument in iterator creation calls
  • iField.h / iField_dfk.h
    • Added reslient argument in iterator creation calls
    • Const-qualified some input arguments

2. Fortran interface improvements

Fortran include files are now automatically generated from the C header files. The logic for handling 4-byte or 8-byte pointer sizes was simplified. It is now automated for a majority of common compiler cases as well as can be explicitly overridden during compilation with -DPOINTER_SIZE=4|8 CPP flag.

3. Improvements in iMesh/iMeshP interface and portability testing

A number of improvements have been made in the testing of ITAPS interfaces

  • Initiated regular testing of Parallel iMesh implementations.
  • Initiated regular testing with the valgrind memory checker.
  • Addressed all leaks in the iMesh implementations and most other memory errors reported by valgrind testing.
  • Initiated regular testing of Fortran example codes.
  • Identified and corrected various issues with Fortran interoperability across the implementations.
  • Adjusted tests to be more flexible in dealing with implementation defined aspects of the interfaces.
  • Enhanced iMeshP tests to test cross-implementation portability.

The ITAPS implementations are tested on a weekly basis in a variety of modes described above to ensure implementations are consistent with interface specifications as well as each other.

4. Information on obtaining ITAPS-1.4 compliant software

Various implementations of the ITAPS interfaces can be found at the following URLs. Users are also encouraged to read the respective product's release notes for additional information pertaining to this ITAPS-1.4 release as well as product-specific release details.

We have also developed a support script, called build_itaps, to facilitate the download, compilation and installation of ITAPS interface and service software. You can obtain the build_itaps script here. In addition, there is a helpful primer on using the build_itaps script to build all or just some pieces of the ITAPS softwar suite in a variety of configurations here.

5. Obtaining documentation

Reference manuals for all the ITAPS interfaces can be found here