ALIASES += THG="The HDF Group"
################################################################################
# Styling
################################################################################
ALIASES += Bold{1}="\1"
ALIASES += Emph{1}="\1"
ALIASES += Code{1}="\1"
################################################################################
# Return values
################################################################################
ALIASES += success{1}="\Bold{Success:} \1"
ALIASES += failure{1}="\Bold{Failure:} \1"
ALIASES += herr_t="Returns a non-negative value if successful; otherwise, returns a negative value."
ALIASES += herr_t_iter="\li Zero causes the iterator to continue, returning zero when the iteration is complete. \li A positive value causes the iterator to immediately return that positive value, indicating short-circuit success. \li A negative value causes the iterator to immediately return that value, indicating failure."
ALIASES += hid_t{1}="Returns a \1 identifier if successful; otherwise returns #H5I_INVALID_HID. "
ALIASES += hid_ti{1}="Returns an \1 identifier if successful; otherwise returns #H5I_INVALID_HID. "
ALIASES += hid_tv{1}="Returns an \1 identifier if successful; otherwise returns a negative value. "
ALIASES += htri_t="Returns zero (false), a positive (true) or a negative (failure) value."
ALIASES += api_vers_2{3}="\1() is a macro that is mapped to either \2() or \3().\n\see \ref api-compat-macros"
ALIASES += api_vers_3{4}="\1() is a macro that is mapped to either \2() or \3() or \4().\n\see \ref api-compat-macros"
ALIASES += deprecation_note{1}="\deprecated Superseded by \1."
################################################################################
# General
################################################################################
ALIASES += idx_type="\param[in] idx_type Index type"
ALIASES += idx_type{1}="\param[in] \1 Index type"
ALIASES += order="\param[in] order Iteration order"
ALIASES += order{1}="\param[in] \1 Iteration order"
ALIASES += op="\param[in] op Callback function"
ALIASES += op{1}="\param[in] \1 Callback function"
ALIASES += op_data="\param[in,out] op_data User-defined callback function context"
ALIASES += op_data{1}="\param[in,out] \1 User-defined callback function context"
ALIASES += op_data_in="\param[in] op_data User-defined callback function context"
ALIASES += op_data_in{1}="\param[in] \1 User-defined callback function context"
################################################################################
# Attributes
################################################################################
ALIASES += attr_id="\param[in] attr_id Attribute identifier"
ALIASES += attr_id{1}="\param[in] \1 Attribute identifier"
################################################################################
# Dataset
################################################################################
ALIASES += dset_id="\param[in] dset_id Dataset identifier"
ALIASES += dset_id{1}="\param[in] \1 Dataset identifier"
################################################################################
# Dataspaces
################################################################################
ALIASES += space_id="\param[in] space_id Dataspace identifier"
ALIASES += space_id{1}="\param[in] \1 Dataspace identifier"
################################################################################
# Datatypes
################################################################################
ALIASES += type_id="\param[in] type_id Datatype identifier"
ALIASES += type_id{1}="\param[in] \1 Datatype identifier"
ALIASES += file_type_id{1}="\param[in] \1 Datatype (in-file) identifier"
ALIASES += mem_type_id{1}="\param[in] \1 Datatype (in-memory) identifier"
################################################################################
# Errors
################################################################################
ALIASES += estack_id="\param[in] estack_id Error stack identifier"
ALIASES += estack_id{1}="\param[in] \1 Error stack identifier"
################################################################################
# Files
################################################################################
ALIASES += file_id="\param[in] file_id File identifier"
ALIASES += file_id{1}="\param[in] \1 File identifier"
ALIASES += fapl_id="\param[in] fapl_id File access property list identifier"
ALIASES += fapl_id{1}="\param[in] \1 File access property list identifier"
ALIASES += fcpl_id="\param[in] fcpl_id File creation property list identifier"
ALIASES += fcpl_id{1}="\param[in] \1 File creation property list identifier"
################################################################################
# Groups
################################################################################
ALIASES += group_id="\param[in] group_id Group identifier"
ALIASES += group_id{1}="\param[in] \1 Group identifier"
################################################################################
# Locations
################################################################################
ALIASES += loc_id="\param[in] loc_id Location identifier"
ALIASES += loc_id{1}="\param[in] \1 Location identifier"
ALIASES += fgdt_loc_id="\loc_id. The identifier may be that of a file, group, dataset, or named datatype."
ALIASES += fgdt_loc_id{1}="\loc_id{\1}. The identifier may be that of a file, group, dataset, or named datatype."
ALIASES += fgdta_loc_id="\loc_id. The identifier may be that of a file, group, dataset, named datatype, or attribute."
ALIASES += fgdta_loc_id{1}="\loc_id{\1}. The identifier may be that of a file, group, dataset, named datatype, or attribute."
ALIASES += fg_loc_id="\loc_id. The identifier may be that of a file or group."
ALIASES += fg_loc_id{1}="\loc_id{\1}. The identifier may be that of a file or group."
################################################################################
# Property lists
################################################################################
ALIASES += plist_unused{1}="\note The \p \1 parameter is currently not used; specify #H5P_DEFAULT."
ALIASES += aapl_id="\param[in] aapl_id Attribute access property list identifier"
ALIASES += aapl_id{1}="\param[in] \1 Attribute access property list identifier"
ALIASES += acpl_id="\param[in] acpl_id Attribute creation property list identifier"
ALIASES += acpl_id{1}="\param[in] \1 Attribute creation property list identifier"
ALIASES += dapl_id="\param[in] dapl_id Dataset access property list identifier"
ALIASES += dapl_id{1}="\param[in] \1 Dataset access property list identifier"
ALIASES += dcpl_id="\param[in] dcpl_id Dataset creation property list identifier"
ALIASES += dcpl_id{1}="\param[in] \1 Dataset creation property list identifier"
ALIASES += dxpl_id="\param[in] dxpl_id Dataset transfer property list identifier"
ALIASES += dxpl_id{1}="\param[in] \1 Dataset transfer property list identifier"
ALIASES += gacpl_id="\param[in] plist_id File, group, dataset, datatype, link, or attribute access property list identifier"
ALIASES += gacpl_id{1}="\param[in] \1 File, group, dataset, datatype, link, or attribute access property list identifier"
ALIASES += gapl_id="\param[in] gapl_id Group access property list identifier"
ALIASES += gapl_id{1}="\param[in] \1 Group access property list identifier"
ALIASES += gcpl_id="\param[in] gcpl_id Group creation property list identifier"
ALIASES += gcpl_id{1}="\param[in] \1 Group creation property list identifier"
ALIASES += lapl_id="\param[in] lapl_id Link access property list identifier"
ALIASES += lapl_id{1}="\param[in] \1 Link access property list identifier"
ALIASES += lcpl_id="\param[in] lcpl_id Link creation property list identifier"
ALIASES += lcpl_id{1}="\param[in] \1 Link creation property list identifier"
ALIASES += oapl_id="\param[in] oapl_id Object access property list identifier"
ALIASES += oapl_id{1}="\param[in] \1 Object access property list identifier"
ALIASES += ocpl_id="\param[in] oapl_id Object creation property list identifier"
ALIASES += ocpl_id{1}="\param[in] \1 Object creation property list identifier"
ALIASES += plist_id="\param[in] plist_id Property list identifier"
ALIASES += plist_id{1}="\param[in] \1 Property list identifier"
ALIASES += plistcls_id="\param[in] plistcls_id Property list class identifier"
ALIASES += plistcls_id{1}="\param[in] \1 Property list class identifier"
ALIASES += rapl_id="\param[in] rapl_id Reference access property list identifier"
ALIASES += rapl_id{1}="\param[in] \1 Reference access property list identifier"
ALIASES += tapl_id="\param[in] tapl_id Datatype access property list identifier"
ALIASES += tapl_id{1}="\param[in] \1 Datatype access property list identifier"
ALIASES += tcpl_id="\param[in] tcpl_id Datatype creation property list identifier"
ALIASES += tcpl_id{1}="\param[in] \1 Datatype creation property list identifier"
################################################################################
# Objects
################################################################################
ALIASES += obj_id="\param[in] obj_id Object identifier"
ALIASES += obj_id{1}="\param[in] \1 Object identifier"
ALIASES += loc_obj_id{1}="\param[in] \1 Location identifier of object"
ALIASES += fgdta_obj_id="\obj_id. The identifier may be that of a file, group, dataset, named datatype, or attribute."
ALIASES += fgdta_obj_id{1}="\obj_id{\1}. The identifier may be that of a file, group, dataset, named datatype, or attribute."
ALIASES += fgdta_loc_obj_id{1}="\loc_obj_id{\1}. The identifier may be that of a file, group, dataset, named datatype, or attribute."
################################################################################
# Others
################################################################################
ALIASES += estack_id="\param[in] estack_id Error stack identifier"
ALIASES += estack_id{1}="\param[in] \1 Error stack identifier"
ALIASES += cpp_c_api_note="\attention \Bold{C++ Developers using HDF5 C-API functions beware:}\n Several functions in this C-API take function pointers or callbacks as arguments. Examples include H5Pset_elink_cb(), H5Pset_type_conv_cb(), H5Tconvert(), and H5Ewalk2(). Application code must ensure that those callback functions return normally such to allow the HDF5 to manage its resources and maintain a consistent state. For instance, those functions must not use the C \c setjmp / \c longjmp mechanism to leave those callback functions. Within the context of C++, any exceptions thrown within the callback function must be caught, such as with a \Code{catch(…)} statement. Any exception state can be placed within the provided user data function call arguments, and may be thrown again once the calling function has returned. Exceptions raised and not handled inside the callback are not supported as it might leave the HDF5 library in an inconsistent state. Similarly, using C++20 coroutines cannot be used as callbacks, since they do not support plain return statements. If a callback function yields execution to another C++20 coroutine calling HDF5 functions as well, this may lead to undefined behavior."
ALIASES += par_compr_note="\attention If you are planning to use compression with parallel HDF5, ensure that calls to H5Dwrite() occur in collective mode. In other words, all MPI ranks (in the relevant communicator) call H5Dwrite() and pass a dataset transfer property list with the MPI-IO collective option property set to #H5FD_MPIO_COLLECTIVE_IO.\n Note that data transformations are currently \Bold{not} supported when writing to datasets in parallel and with compression enabled."
ALIASES += sa_metadata_ops="\sa \li H5Pget_all_coll_metadata_ops() \li H5Pget_coll_metadata_write() \li H5Pset_all_coll_metadata_ops() \li H5Pset_coll_metadata_write() \li \ref maybe_metadata_reads"
################################################################################
# References
################################################################################
ALIASES += ref_cons_semantics="Enabling a Strict Consistency Semantics Model in Parallel HDF5"
ALIASES += ref_dld_filters="HDF5 Dynamically Loaded Filters"
ALIASES += ref_file_image_ops="HDF5 File Image Operations"
ALIASES += ref_filter_pipe="Data Flow Pipeline for H5Dread()"
ALIASES += ref_group_impls="Group implementations in HDF5"
ALIASES += ref_h5lib_relver="HDF5 Library Release Version Numbers"
ALIASES += ref_mdc_in_hdf5="Metadata Caching in HDF5"
ALIASES += ref_mdc_logging="Metadata Cache Logging"
ALIASES += ref_news_110="New Features in HDF5 Release 1.10"
ALIASES += ref_h5ocopy="Copying Committed Datatypes with H5Ocopy()"
ALIASES += ref_sencode_fmt_change="RFC H5Secnode() / H5Sdecode() Format Change"
ALIASES += ref_vlen_strings="\Emph{Creating variable-length string datatypes}"
ALIASES += ref_vol_doc="VOL documentation"
################################################################################
# RFCs
################################################################################
ALIASES += ref_rfc20210528="Multi-Thread HDF5"
ALIASES += ref_rfc20190923="Virtual Object Layer (VOL) API Compatibility"
ALIASES += ref_rfc20190410="A Plugin Interface for HDF5 Virtual File Drivers"
ALIASES += ref_rfc20181231="Dataset Object Header Size"
ALIASES += ref_rfc20181220="MS 3.2 – Addressing Scalability: Scalability of open, close, flush CASE STUDY: CGNS Hotspot analysis of CGNS cgp_open"
ALIASES += ref_rfc20180620="Chunk query functionality in HDF5"
ALIASES += ref_rfc20180610="VFD SWMR"
ALIASES += ref_rfc20180321="API Contexts"
ALIASES += ref_rfc20180125="Enhancement to the tool h5clear"
ALIASES += ref_rfc20170707="H5Sencode/H5Sdecode Format Change"
ALIASES += ref_rfc20160105="Setting Bounds for Object Creation in HDF5 1.10.0"
ALIASES += ref_rfc20150915="File Format Changes in HDF5 1.10.0"
ALIASES += ref_rfc20150709="Page Buffering"
ALIASES += ref_rfc20150615="Metadata Cache Image"
ALIASES += ref_rfc20150429="New Datatypes"
ALIASES += ref_rfc20150424="Collective Metadata Writes"
ALIASES += ref_rfc20150423="Enabling Collective Metadata Reads"
ALIASES += ref_rfc20150301="The Tool to Handle HDF5 File Format Compatibility for Chunked Datasets"
ALIASES += ref_rfc20150212="H5LTget_hardlinks – High-level API to list all the hard links to an object"
ALIASES += ref_rfc20150205="HDF5 Fortran Wrappers Maintenance: Dropping Support for Non-Fortran 2003 Standard Compliant Compilers"
ALIASES += ref_rfc20150202="New Autotools Behavior"
ALIASES += ref_rfc20141210="HDF5 Virtual Dataset"
ALIASES += ref_rfc20141201="Allocate/Free Mismatches in HDF5 Filter Code on Windows"
ALIASES += ref_rfc20140916="Virtual Object Layer"
ALIASES += ref_rfc20140827="Chunking and Compression Performance Tool Requirements"
ALIASES += ref_rfc20140729="Replacing H5Fis_hdf5() with H5Fis_accessible()"
ALIASES += ref_rfc20140722="Switching to a 64-bit hid_t Space in HDF5"
ALIASES += ref_rfc20140717="Data Analysis Extensions"
ALIASES += ref_rfc20140707="Virtual Object Layer"
ALIASES += ref_rfc20140524="HDF5 Compression Demystified"
ALIASES += ref_rfc20140318="Freeing Memory Allocated by the HDF5 Library"
ALIASES += ref_rfc20140313="Options to handle compatibility issues for HDF5 files"
ALIASES += ref_rfc20140224="Design: Metadata Cache Logging"
ALIASES += ref_rfc20131211="Fine-Grained Control of Metadata Cache Flushes"
ALIASES += ref_rfc20130930="Read Attempts for Metadata with Checksum"
ALIASES += ref_rfc20130919="Core VFD Backing Store Paged Writes"
ALIASES += ref_rfc20130630="Flush Dependency Testing"
ALIASES += ref_rfc20130316="HDF5 Dynamically Loaded Filters"
ALIASES += ref_rfc20121114="Direct Chunk Write"
ALIASES += ref_rfc20121024="HDF5 File Space Management"
ALIASES += ref_rfc20120828="New HDF5 API Routines for HPC Applications"
ALIASES += ref_rfc20120523="HDF5 File Space Management: Paged Aggregation"
ALIASES += ref_rfc20120501="HDF5 File Image Operations"
ALIASES += ref_rfc20120305="Enabling a Strict Consistency Semantics Model in Parallel HDF5"
ALIASES += ref_rfc20120220="h5repack: Improved Hyperslab selections for Large Chunked Datasets"
ALIASES += ref_rfc20120120="A Maintainer’s Guide for the Datatype Module in HDF5 Library"
ALIASES += ref_rfc20120104="Actual I/O Mode"
ALIASES += ref_rfc20111119="New public functions to handle comparison"
ALIASES += ref_rfc20110825="Merging Named Datatypes in H5Ocopy()"
ALIASES += ref_rfc20110811="Expanding the HDF5 Hyperslab Selection Interface"
ALIASES += ref_rfc20110726="HDF5 File Space Allocation and Aggregation"
ALIASES += ref_rfc20110614=" Refactor h5dump to Improve Maintenance"
ALIASES += ref_rfc20110329="Support External Link Open File Cache in HDF5 Tools"
ALIASES += ref_rfc20110118="h5diff Attribute Comparisons"
ALIASES += ref_rfc20101122="SWMR Timeouts"
ALIASES += ref_rfc20101104="Caching Files Opened Through External Links"
ALIASES += ref_rfc20101018="HDF5 File and Object Comparison Specification"
ALIASES += ref_rfc20100902="h5edit – An HDF5 File Editing Tool"
ALIASES += ref_rfc20100727="Reserved Characters for HDF5 Applications"
ALIASES += ref_rfc20100726="High-Level HDF5 API routines for HPC Applications"
ALIASES += ref_rfc20100511="h5diff – Exclude Object(s) from Comparison"
ALIASES += ref_rfc20100422="Generating attributes into an object with a tool"
ALIASES += ref_rfc20100312="Supporting HDF5 1.8 in HDF5 Command Line Tools"
ALIASES += ref_rfc20091218="Supporting soft-link and external-link for h5diff"
ALIASES += ref_rfc20090907="HDF5 Tools Library Functions"
ALIASES += ref_rfc20090612="Default EPSILON values for comparing floating point data"
ALIASES += ref_rfc20081218="Reporting of Non-Comparable Datasets by h5diff"
ALIASES += ref_rfc20080915="Performance Report for Free-space Manager"
ALIASES += ref_rfc20080904="Setting File Access Property List for accessing External Link"
ALIASES += ref_rfc20080301="Dynamic Transformations to HDF5 Data"
ALIASES += ref_rfc20080209="Using SVN branching to improve software development process at THG"
ALIASES += ref_rfc20080206="Maintaining the HISTORY.txt and RELEASE.txt files in HDF5"
ALIASES += ref_rfc20071111="Addressing HDF5 file corruption issue"
ALIASES += ref_rfc20071018="NaN detection in HDF5"
ALIASES += ref_rfc20070801="Metadata Journaling to Improve Crash Survivability"
ALIASES += ref_rfc20070413="API Compatibility Strategies for HDF5"
ALIASES += ref_rfc20070115="A \"Private\" Heap for HDF5"
ALIASES += ref_rfc20060623="Performance Comparison of Collective I/O and Independent I/O with Derived Datatypes"
ALIASES += ref_rfc20060604="h5stat tool"
ALIASES += ref_rfc20060505="Simple Performance Test on Fletcher32 Filter"
ALIASES += ref_rfc20060410="Requirement Specifications of an HDF5 File Format Validation Tool"
ALIASES += ref_rfc20060317="Proposed changes to the sec2 driver "
ALIASES += ref_rfc20060124="Mapping FITS data to HDF5"
ALIASES += ref_rfc20040811="Conversion Between Text and Datatype"
################################################################################
# The Usual Suspects
################################################################################
ALIASES += click4more="(Click on a enumerator, field, or type for more information.)"
ALIASES += csets="
#H5T_CSET_ASCII | US ASCII |
#H5T_CSET_UTF8 | UTF-8 Unicode encoding |
"
ALIASES += datatype_class=" \li #H5T_INTEGER \li #H5T_FLOAT \li #H5T_STRING \li #H5T_BITFIELD \li #H5T_OPAQUE \li #H5T_COMPOUND \li #H5T_REFERENCE \li #H5T_ENUM \li #H5T_VLEN \li #H5T_ARRAY"
ALIASES += file_access="#H5F_ACC_RDWR | File was opened with read/write access. |
#H5F_ACC_RDONLY | File was opened with read-only access. |
#H5F_ACC_SWMR_WRITE | File was opened with read/write access for a single-writer/multiple-reader (SWMR) scenario. Note that the writer process must also open the file with the #H5F_ACC_RDWR flag. |
#H5F_ACC_SWMR_READ | File was opened with read-only access for a single-writer/multiple-reader (SWMR) scenario. Note that the reader process must also open the file with the #H5F_ACC_RDONLY flag. |
"
ALIASES += id_types="#H5I_FILE | File |
#H5I_GROUP | Group |
#H5I_DATATYPE | Datatype |
#H5I_DATASPACE | Dataspace |
#H5I_DATASET | Dataset |
#H5I_ATTR | Attribute |
"
ALIASES += indexes="#H5_INDEX_NAME | Lexicographic order on name |
#H5_INDEX_CRT_ORDER | Index on creation order |
"
ALIASES += link_types="#H5L_TYPE_HARD | Hard link |
#H5L_TYPE_SOFT | Soft link |
#H5L_TYPE_EXTERNAL | External link |
#H5L_TYPE_ERROR | Error |
"
ALIASES += mem_types="#H5FD_MEM_DEFAULT | The default file memory allocation type |
#H5FD_MEM_SUPER | File memory allocated for Superblock |
#H5FD_MEM_BTREE | File memory allocated for B-tree |
#H5FD_MEM_DRAW | File memory allocated for raw data |
#H5FD_MEM_GHEAP | File memory allocated for Global Heap |
#H5FD_MEM_LHEAP | File memory allocated for Local Heap |
#H5FD_MEM_OHDR | File memory allocated for Object Header |
"
ALIASES += norm_type="#H5T_NORM_IMPLIED | 0 | MSB of mantissa is not stored, always 1 |
#H5T_NORM_MSBSET | 1 | MSB of mantissa is always 1 |
#H5T_NORM_NONE | 2 | Mantissa is not normalized |
"
ALIASES += obj_types="#H5F_OBJ_FILE | Files only |
#H5F_OBJ_DATASET | Datasets only |
#H5F_OBJ_GROUP | Groups only |
#H5F_OBJ_DATATYPE | Named datatypes only |
#H5F_OBJ_ATTR | Attributes only |
#H5F_OBJ_ALL | All of the above |
#H5F_OBJ_LOCAL | Restrict search to objects opened through current file identifier. |
\attention #H5F_OBJ_LOCAL does not stand alone; it is effective only when used in combination with one or more of the preceding types. For example, #H5F_OBJ_DATASET | #H5F_OBJ_GROUP | #H5F_OBJ_LOCAL would count all datasets and groups opened through the current file identifier."
ALIASES += orders="#H5_ITER_INC | Increasing order |
#H5_ITER_DEC | Decreasing order |
#H5_ITER_NATIVE | Fastest available order |
"
ALIASES += padding_type="#H5T_PAD_ZERO | 0 | Set background to zeros |
#H5T_PAD_ONE | 1 | Set background to ones |
#H5T_PAD_BACKGROUND | 2 | Leave background alone |
"
ALIASES += scopes="#H5F_SCOPE_GLOBAL | Flushes the entire virtual file |
#H5F_SCOPE_LOCAL | Flushes only the specified file |
"
ALIASES += sign_prop="#H5T_SGN_NONE | 0 | Unsigned integer type |
#H5T_SGN_2 | 1 | Two's complement signed integer type |
"
ALIASES += storage_type="#H5G_STORAGE_TYPE_COMPACT | Compact storage |
#H5G_STORAGE_TYPE_DENSE | Indexed storage |
#H5G_STORAGE_TYPE_SYMBOL_TABLE | Symbol tables, the original HDF5 structure |
"
ALIASES += str_pad_type="#H5T_STR_NULLTERM | 0 | Null terminate (as C does) |
#H5T_STR_NULLPAD | 1 | Pad with zeros |
#H5T_STR_SPACEPAD | 2 | Pad with spaces (as FORTRAN does) |
"
ALIASES += see_virtual=" \see Supporting Functions: H5Pget_layout(), H5Pset_layout(), H5Sget_regular_hyperslab(), H5Sis_regular_hyperslab(), H5Sselect_hyperslab() \see VDS Functions: H5Pget_virtual_count(), H5Pget_virtual_dsetname(), H5Pget_virtual_filename(), H5Pget_virtual_prefix(), H5Pget_virtual_printf_gap(), H5Pget_virtual_srcspace(), H5Pget_virtual_view(), H5Pget_virtual_vspace(), H5Pset_virtual(), H5Pset_virtual_prefix(), H5Pset_virtual_printf_gap(), H5Pset_virtual_view()"
ALIASES += obj_info_fields="Flag | Purpose |
---|
#H5O_INFO_BASIC | Fill in the fileno, addr, type, and rc fields |
#H5O_INFO_TIME | Fill in the atime, mtime, ctime, and btime fields |
#H5O_INFO_NUM_ATTRS | Fill in the num_attrs field |
#H5O_INFO_HDR | Fill in the num_attrs field |
#H5O_INFO_META_SIZE | Fill in the meta_size field |
#H5O_INFO_ALL | #H5O_INFO_BASIC | #H5O_INFO_TIME | #H5O_INFO_NUM_ATTRS | #H5O_INFO_HDR | #H5O_INFO_META_SIZE |
"
################################################################################
# FORTRAN
################################################################################
ALIASES += fortran_error="Returns 0 if successful and -1 if it fails."
ALIASES += fortran_approved="The preferred API, Fortran 2003 version."
ALIASES += fortran_obsolete="Obsolete API, use the Fortran 2003 version instead."