summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Pff.F90
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-08-11 01:00:33 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-08-11 01:00:33 (GMT)
commit415eb5512b0726716b5f8f72de3dda11ecff8091 (patch)
treeec3eddd4abad940acc89f83c0f114203ff3d6345 /fortran/src/H5Pff.F90
parent1900d6a65db0bebcadbcbf98f8a8a9e1d9ff47b4 (diff)
parenta9bef45c7528f2fcca5817900b5536d9d6c14889 (diff)
downloadhdf5-415eb5512b0726716b5f8f72de3dda11ecff8091.zip
hdf5-415eb5512b0726716b5f8f72de3dda11ecff8091.tar.gz
hdf5-415eb5512b0726716b5f8f72de3dda11ecff8091.tar.bz2
[svn-r27488] Merged the F2003_v1.10 branch to the trunk.
Tested: h5committest
Diffstat (limited to 'fortran/src/H5Pff.F90')
-rw-r--r--fortran/src/H5Pff.F907327
1 files changed, 7327 insertions, 0 deletions
diff --git a/fortran/src/H5Pff.F90 b/fortran/src/H5Pff.F90
new file mode 100644
index 0000000..97f907b
--- /dev/null
+++ b/fortran/src/H5Pff.F90
@@ -0,0 +1,7327 @@
+!****h* ROBODoc/H5Pff
+!
+! NAME
+! H5P
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5P functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *S
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+!
+! _____ __ __ _____ ____ _____ _______ _ _ _______
+! |_ _| \/ | __ \ / __ \| __ \__ __|/\ | \ | |__ __|
+! **** | | | \ / | |__) | | | | |__) | | | / \ | \| | | | ****
+! **** | | | |\/| | ___/| | | | _ / | | / /\ \ | . ` | | | ****
+! **** _| |_| | | | | | |__| | | \ \ | |/ ____ \| |\ | | | ****
+! |_____|_| |_|_| \____/|_| \_\ |_/_/ \_\_| \_| |_|
+!
+! If you add a new H5P function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!*****
+
+#include <H5config_f.inc>
+
+MODULE H5P
+
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+
+ INTERFACE h5pset_fapl_multi_f
+ MODULE PROCEDURE h5pset_fapl_multi_l
+ MODULE PROCEDURE h5pset_fapl_multi_s
+ END INTERFACE
+
+ INTERFACE h5pset_fill_value_f
+ MODULE PROCEDURE h5pset_fill_value_integer
+ MODULE PROCEDURE h5pset_fill_value_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_fill_value_f
+ MODULE PROCEDURE h5pget_fill_value_integer
+ MODULE PROCEDURE h5pget_fill_value_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pset_f
+ MODULE PROCEDURE h5pset_integer
+ MODULE PROCEDURE h5pset_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_f
+ MODULE PROCEDURE h5pget_integer
+ MODULE PROCEDURE h5pget_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_ptr
+ END INTERFACE
+
+ INTERFACE h5pregister_f
+ MODULE PROCEDURE h5pregister_integer
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pregister_ptr
+ END INTERFACE
+
+ INTERFACE h5pinsert_f
+ MODULE PROCEDURE h5pinsert_integer
+ MODULE PROCEDURE h5pinsert_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pinsert_ptr
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) &
+ BIND(C, NAME='h5pget_fill_value_c')
+ IMPORT :: c_ptr
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ TYPE(C_PTR), VALUE :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) &
+ BIND(C, NAME='h5pset_fill_value_c')
+ IMPORT :: c_ptr
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ TYPE(C_PTR), VALUE :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) &
+ BIND(C, NAME='h5pset_c')
+ IMPORT :: c_char, c_ptr
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value
+ END FUNCTION h5pset_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) &
+ BIND(C, NAME='h5pget_c')
+ IMPORT :: c_char, c_ptr
+ IMPORT :: HID_T
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value
+ END FUNCTION h5pget_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) &
+ BIND(C, NAME='h5pregister_c')
+ IMPORT :: c_char, c_ptr
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(C_PTR), INTENT(IN), VALUE :: value
+ END FUNCTION h5pregister_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) &
+ BIND(C, NAME='h5pinsert_c')
+ IMPORT :: c_char, c_ptr
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(C_PTR), INTENT(IN), VALUE :: value
+ END FUNCTION h5pinsert_c
+ END INTERFACE
+
+CONTAINS
+
+!****s* H5P/h5pcreate_f
+! NAME
+! h5pcreate_f
+!
+! PURPOSE
+! Creates a new property as an instance of a property
+! list class.
+!
+! INPUTS
+! class - type of the property class to be created.
+! Possible values are:
+! H5P_OBJECT_CREATE_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_ACCESS_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! H5P_GROUP_CREATE_F
+! H5P_GROUP_ACCESS_F
+! H5P_DATATYPE_CREATE_F
+! H5P_DATATYPE_ACCESS_F
+! H5P_STRING_CREATE_F
+! H5P_ATTRIBUTE_CREATE _F
+! H5P_OBJECT_COPY_F
+! H5P_LINK_CREATE_F
+! H5P_LINK_ACCESS_F
+!
+! OUTPUTS
+! prp_id - property list identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pcreate_f(class, prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_c(class, prp_id) &
+ BIND(C,NAME='h5pcreate_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ END FUNCTION h5pcreate_c
+ END INTERFACE
+
+ hdferr = h5pcreate_c(class, prp_id)
+ END SUBROUTINE h5pcreate_f
+
+!****s* H5P/h5pset_preserve_f
+! NAME
+! h5pset_preserve_f
+!
+! PURPOSE
+! Sets the dataset transfer property list status to
+! TRUE or FALSE for initializing compound datatype
+! members during write/read operations.
+!
+! INPUTS
+! prp_id - property list identifier
+! flag - status flag
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Datatype of the flag parameter is changed from
+! INTEGER to LOGICAL June 4, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ LOGICAL, INTENT(IN) :: flag ! TRUE/FALSE flag to set the dataset
+ ! transfer property for partila writing/reading
+ ! compound datatype
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag_c
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_preserve_c(prp_id, flag_c) &
+ BIND(C,NAME='h5pset_preserve_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: flag_c
+ END FUNCTION h5pset_preserve_c
+ END INTERFACE
+ flag_c = 0
+ IF(flag) flag_c = 1
+ hdferr = h5pset_preserve_c(prp_id, flag_c)
+ END SUBROUTINE h5pset_preserve_f
+
+!****s* H5P/h5pget_preserve_f
+! NAME
+! h5pget_preserve_f
+!
+! PURPOSE
+! Checks status of the dataset transfer property list.
+!
+! INPUTS
+! prp_id - property list identifier
+!
+! OUTPUTS
+! flag - status flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Datatype of the flag parameter is changed from
+! INTEGER to LOGICAL
+! June 4, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ LOGICAL, INTENT(OUT) :: flag ! TRUE/FALSE flag. Shows status of the dataset's
+ ! transfer property for partial writing/reading
+ ! compound datatype
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag_c
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_preserve_c(prp_id, flag_c) &
+ BIND(C,NAME='h5pget_preserve_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: flag_c
+ END FUNCTION h5pget_preserve_c
+ END INTERFACE
+
+ hdferr = h5pget_preserve_c(prp_id, flag_c)
+ flag = .FALSE.
+ IF(flag_c .EQ. 1) flag = .TRUE.
+ END SUBROUTINE h5pget_preserve_f
+
+!****s* H5P/h5pget_class_f
+! NAME
+! h5pget_class_f
+!
+! PURPOSE
+! Returns the property list class for a property list.
+!
+! INPUTS
+! prp_id - property list identifier
+!
+! OUTPUTS
+! classtype - property list class
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: classtype ! The type of the property list
+ ! to be created.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_c(prp_id, classtype) &
+ BIND(C,NAME='h5pget_class_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: classtype
+ END FUNCTION h5pget_class_c
+ END INTERFACE
+
+ hdferr = h5pget_class_c(prp_id, classtype)
+ END SUBROUTINE h5pget_class_f
+
+!****s* H5P/h5pcopy_f
+! NAME
+! h5pcopy_f
+!
+! PURPOSE
+! Copies an existing property list to create a new
+! property list
+!
+! INPUTS
+! prp_id - property list identifier
+! OUTPUTS
+! new_prp_id - new property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id ! Identifier of property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id) &
+ BIND(C,NAME='h5pcopy_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id
+ END FUNCTION h5pcopy_c
+ END INTERFACE
+
+ hdferr = h5pcopy_c(prp_id, new_prp_id)
+ END SUBROUTINE h5pcopy_f
+
+!****s* H5P/h5pclose_f
+! NAME
+! h5pclose_f
+!
+! PURPOSE
+! Terminates access to a property list.
+!
+! INPUTS
+! prp_id - identifier of the property list to
+! terminate access to.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pclose_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pclose_c(prp_id) &
+ BIND(C,NAME='h5pclose_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pclose_c
+ END INTERFACE
+
+ hdferr = h5pclose_c(prp_id)
+ END SUBROUTINE h5pclose_f
+
+!****s* H5P/h5pset_chunk_f
+! NAME
+! h5pset_chunk_f
+!
+! PURPOSE
+! Sets the size of the chunks used to store
+! a chunked layout dataset.
+!
+! INPUTS
+! prp_id - datatset creation property list identifier
+! ndims - number of dimensions for each chunk
+! dims - array with dimension sizes for each chunk
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ ! Array containing sizes of
+ ! chunk dimensions
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims) &
+ BIND(C,NAME='h5pset_chunk_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ndims
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ END FUNCTION h5pset_chunk_c
+ END INTERFACE
+
+ hdferr = h5pset_chunk_c(prp_id, ndims, dims)
+ END SUBROUTINE h5pset_chunk_f
+
+!****s* H5P/h5pget_chunk_f
+! NAME
+! h5pget_chunk_f
+!
+! PURPOSE
+! Retrieves the size of chunks for the raw data of a
+! chunked layout dataset
+!
+! INPUTS
+! prp_id - property list identifier
+! ndims - size of dims array
+! OUTPUTS
+! dims - array with dimension sizes for each chunk
+! hdferr - error code
+! Success: number of chunk dimensions
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions to
+ ! to return
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(OUT) :: dims
+ ! Array containing sizes of
+ ! chunk dimensions
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! number of chunk dimensions on success,
+ ! -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims) &
+ BIND(C,NAME='h5pget_chunk_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: ndims
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
+ END FUNCTION h5pget_chunk_c
+ END INTERFACE
+
+ hdferr = h5pget_chunk_c(prp_id, ndims, dims)
+ END SUBROUTINE h5pget_chunk_f
+
+!****s* H5P/h5pset_deflate_f
+! NAME
+! h5pset_deflate_f
+!
+! PURPOSE
+! Sets compression method and compression level.
+!
+! INPUTS
+! prp_id - property list identifier
+! level - compression level
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: level ! Compression level
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pset_deflate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_deflate_c(prp_id, level) &
+ BIND(C,NAME='h5pset_deflate_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: level
+ END FUNCTION h5pset_deflate_c
+ END INTERFACE
+ hdferr = h5pset_deflate_c(prp_id, level)
+
+ END SUBROUTINE h5pset_deflate_f
+
+!****s* H5P/h5pget_version_f
+! NAME
+! h5pget_version_f
+!
+! PURPOSE
+! Retrieves the version information of various objects
+! for a file creation property list
+!
+! INPUTS
+! prp_id - file createion property list identifier
+! OUTPUTS
+! boot - super block version number
+! freelist - global freelist version number
+! stab - symbol table version number
+! shhdr - shared object header version number
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
+ stab, shhdr, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, DIMENSION(:), INTENT(OUT) :: boot ! Array to put boot
+ ! block version number
+ INTEGER, DIMENSION(:), INTENT(OUT) :: freelist ! Array to put global
+ ! Freelist version number
+
+ INTEGER, DIMENSION(:), INTENT(OUT) :: stab ! Array to put symbol
+ ! table version number
+ INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr ! Array to put shared
+ ! object header version number
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr) &
+ BIND(C,NAME='h5pget_version_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, DIMENSION(*), INTENT(OUT) :: boot
+ INTEGER, DIMENSION(*), INTENT(OUT) :: freelist
+ INTEGER, DIMENSION(*), INTENT(OUT) :: stab
+ INTEGER, DIMENSION(*), INTENT(OUT) :: shhdr
+ END FUNCTION h5pget_version_c
+ END INTERFACE
+
+ hdferr = h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ END SUBROUTINE h5pget_version_f
+
+!****s* H5P/h5pset_userblock_f
+! NAME
+! h5pset_userblock_f
+!
+! PURPOSE
+! Sets user block size
+!
+! INPUTS
+! prp_id - file creation property list to modify
+! size - size of the user-block in bytes
+!
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Size of the user-block in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_userblock_c(prp_id, size) &
+ BIND(C,NAME='h5pset_userblock_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_userblock_c
+ END INTERFACE
+
+ hdferr = h5pset_userblock_c(prp_id, size)
+ END SUBROUTINE h5pset_userblock_f
+
+!****s* H5P/h5pget_userblock_f
+! NAME
+! h5pget_userblock_f
+!
+! PURPOSE
+! Gets user block size.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! block_size - size of the user block in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size ! Size of the
+ ! user-block in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_userblock_c(prp_id, block_size) &
+ BIND(C,NAME='h5pget_userblock_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size
+ END FUNCTION h5pget_userblock_c
+ END INTERFACE
+ hdferr = h5pget_userblock_c(prp_id, block_size)
+ END SUBROUTINE h5pget_userblock_f
+
+!****s* H5P/h5pset_sizes_f
+! NAME
+! h5pset_sizes_f
+!
+! PURPOSE
+! Sets the byte size of the offsets and lengths used
+! to address objects in an HDF5 file.
+!
+! INPUTS
+! prp_id - file creation property list identifier
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr ! Size of an object
+ ! offset in bytes
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size ! Size of an object
+ ! length in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size) &
+ BIND(C,NAME='h5pset_sizes_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size
+ END FUNCTION h5pset_sizes_c
+ END INTERFACE
+
+ hdferr = h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ END SUBROUTINE h5pset_sizes_f
+
+!****s* H5P/h5pget_sizes_f
+! NAME
+! h5pget_sizes_f
+!
+! PURPOSE
+! Retrieves the size of the offsets and lengths used
+! in an HDF5 file
+!
+! INPUTS
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr ! Size of an object
+ ! offset in bytes
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size ! Size of an object
+ ! length in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size) &
+ BIND(C,NAME='h5pget_sizes_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size
+ END FUNCTION h5pget_sizes_c
+ END INTERFACE
+
+ hdferr = h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ END SUBROUTINE h5pget_sizes_f
+
+!****s* H5P/h5pset_sym_k_f
+! NAME
+! h5pset_sym_k_f
+!
+! PURPOSE
+! Sets the size of parameters used to control the
+!symbol table nodes
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! ik - symbol table tree rank
+! lk - symbol table node size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ik ! Symbol table tree rank
+ INTEGER, INTENT(IN) :: lk ! Symbol table node size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk) &
+ BIND(C,NAME='h5pset_sym_k_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ INTEGER, INTENT(IN) :: lk
+ END FUNCTION h5pset_sym_k_c
+ END INTERFACE
+
+ hdferr = h5pset_sym_k_c(prp_id, ik, lk)
+ END SUBROUTINE h5pset_sym_k_f
+!****s* H5P/h5pget_sym_k_f
+! NAME
+! h5pget_sym_k_f
+!
+! PURPOSE
+! Retrieves the size of the symbol table B-tree 1/2 rank
+! and the symbol table leaf node 1/2 size.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! ik - symbol table tree 1/2 rank
+! lk - symbol table node 1/2 size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: ik ! Symbol table tree rank
+ INTEGER, INTENT(OUT) :: lk ! Symbol table node size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk) &
+ BIND(C,NAME='h5pget_sym_k_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ INTEGER, INTENT(OUT) :: lk
+ END FUNCTION h5pget_sym_k_c
+ END INTERFACE
+
+ hdferr = h5pget_sym_k_c(prp_id, ik, lk)
+ END SUBROUTINE h5pget_sym_k_f
+!****s* H5P/h5pset_istore_k_f
+! NAME
+! h5pset_istore_k_f
+!
+! PURPOSE
+! Sets the size of the parameter used to control the
+! B-trees for indexing chunked datasets
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! ik - 1/2 rank of chunked storage B-tree
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: ik ! 1/2 rank of chunked storage B-tree
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik) &
+ BIND(C,NAME='h5pset_istore_k_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ END FUNCTION h5pset_istore_k_c
+ END INTERFACE
+
+ hdferr = h5pset_istore_k_c(prp_id, ik)
+ END SUBROUTINE h5pset_istore_k_f
+
+!****s* H5P/h5pget_istore_k_f
+! NAME
+! h5pget_istore_k_f
+!
+! PURPOSE
+! Queries the 1/2 rank of an indexed storage B-tree.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! ik - 1/2 rank of chunked storage B-tree
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: ik ! 1/2 rank of chunked storage B-tree
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik) &
+ BIND(C,NAME='h5pget_istore_k_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ END FUNCTION h5pget_istore_k_c
+ END INTERFACE
+
+ hdferr = h5pget_istore_k_c(prp_id, ik)
+ END SUBROUTINE h5pget_istore_k_f
+
+!****s* H5P/h5pget_driver_f
+! NAME
+! h5pget_driver_f
+!
+! PURPOSE
+! Returns low-lever driver identifier.
+!
+! INPUTS
+!
+! prp_id - file access or data transfer property
+! list identifier.
+! OUTPUTS
+!
+! driver - low-level driver identifier
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: driver ! Low-level file driver identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_driver_c(prp_id, driver) &
+ BIND(C,NAME='h5pget_driver_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: driver
+ END FUNCTION h5pget_driver_c
+ END INTERFACE
+
+ hdferr = h5pget_driver_c(prp_id, driver)
+ END SUBROUTINE h5pget_driver_f
+
+!****s* H5P/h5pset_fapl_stdio_f
+! NAME
+! h5pset_fapl_stdio_f
+!
+! PURPOSE
+! Sets the standard I/O driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id) &
+ BIND(C,NAME='h5pset_fapl_stdio_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fapl_stdio_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_stdio_c(prp_id)
+ END SUBROUTINE h5pset_fapl_stdio_f
+
+!****s* H5P/h5pget_stdio_f
+! NAME
+! h5pget_stdio_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
+!
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: io ! value indicates that the file
+ !access property list is set to
+ !the stdio driver
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+! INTEGER, EXTERNAL :: h5pget_stdio_c
+! hdferr = h5pget_stdio_c(prp_id, io)
+! END SUBROUTINE h5pget_stdio_f
+
+!****s* H5P/h5pset_fapl_sec2_f
+! NAME
+! h5pset_fapl_sec2_f
+!
+! PURPOSE
+! Sets the sec2 driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id) &
+ BIND(C,NAME='h5pset_fapl_sec2_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ END FUNCTION h5pset_fapl_sec2_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_sec2_c(prp_id)
+ END SUBROUTINE h5pset_fapl_sec2_f
+
+!****s* H5P/h5pget_sec2_f
+! NAME
+! h5pget_sec2_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE! SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
+ !driver uses the functions declared
+ !in the unistd.h file
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+! INTEGER, EXTERNAL :: h5pget_sec2_c
+! hdferr = h5pget_sec2_c(prp_id, sec2)
+! END SUBROUTINE h5pget_sec2_f
+
+!****s* H5P/h5pset_alignment_f
+! NAME
+! h5pset_alignment_f
+!
+! PURPOSE
+! Sets alignment properties of a file access property list.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! threshold - threshold value
+! alignment - alignment value
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment) &
+ BIND(C,NAME='h5pset_alignment_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment
+ END FUNCTION h5pset_alignment_c
+ END INTERFACE
+
+ hdferr = h5pset_alignment_c(prp_id, threshold, alignment)
+ END SUBROUTINE h5pset_alignment_f
+
+!****s* H5P/h5pget_alignment_f
+! NAME
+! h5pget_alignment_f
+!
+! PURPOSE
+! Retrieves the current settings for alignment
+! properties from a file access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+!
+! OUTPUTS
+! threshold - threshold value
+! alignment - alignment value
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! alignment value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment) &
+ BIND(C,NAME='h5pget_alignment_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment
+ END FUNCTION h5pget_alignment_c
+ END INTERFACE
+
+ hdferr = h5pget_alignment_c(prp_id, threshold, alignment)
+ END SUBROUTINE h5pget_alignment_f
+
+!****s* H5P/h5pset_fapl_core_f
+! NAME
+! h5pset_fapl_core_f
+!
+! PURPOSE
+! Modifies the file access property list to use the
+! H5FD_CORE driver.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: increment ! File block size in bytes.
+ LOGICAL, INTENT(IN) :: backing_store ! Flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: backing_store_flag
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store_flag) &
+ BIND(C,NAME='h5pset_fapl_core_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: increment
+ INTEGER :: backing_store_flag
+ END FUNCTION h5pset_fapl_core_c
+ END INTERFACE
+ backing_store_flag = 0
+ IF(backing_store) backing_store_flag = 1
+ hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store_flag)
+ END SUBROUTINE h5pset_fapl_core_f
+
+!****s* H5P/h5pget_fapl_core_f
+! NAME
+! h5pget_fapl_core_f
+!
+! PURPOSE
+! Queries core file driver properties.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: increment ! File block size in bytes.
+ LOGICAL, INTENT(OUT) :: backing_store ! Flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: backing_store_flag
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag) &
+ BIND(C,NAME='h5pget_fapl_core_c')
+ IMPORT :: HID_T,SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: increment
+ INTEGER :: backing_store_flag
+ END FUNCTION h5pget_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
+ backing_store =.FALSE.
+ IF (backing_store_flag .EQ. 1) backing_store =.TRUE.
+ END SUBROUTINE h5pget_fapl_core_f
+
+!****s* H5P/ h5pset_fapl_family_f
+! NAME
+! h5pset_fapl_family_f
+!
+! PURPOSE
+! Sets the file access property list to use the family driver.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size ! Logical size, in bytes,
+ ! of each family member
+ INTEGER(HID_T), INTENT(IN) :: memb_plist ! Identifier of the file
+ ! access property list for
+ ! each member of the family
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist) &
+ BIND(C,NAME='h5pset_fapl_family_c')
+ IMPORT :: HID_T,HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size
+ INTEGER(HID_T), INTENT(IN) :: memb_plist
+ END FUNCTION h5pset_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pset_fapl_family_f
+
+!****s* H5P/h5pget_fapl_family_f
+! NAME
+! h5pget_fapl_family_f
+!
+! PURPOSE
+! Returns file access property list information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! hdferr - error code
+! Success: 0
+! Failure: -1
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size ! Logical size, in bytes,
+ ! of each family member
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist ! Identifier of the file
+ ! access property list for
+ ! each member of the family
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist) &
+ BIND(C,NAME='h5pget_fapl_family_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist
+ END FUNCTION h5pget_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pget_fapl_family_f
+
+!****s* H5P/h5pset_cache_f
+! NAME
+! h5pset_cache_f
+!
+! PURPOSE
+! Sets the meta data cache and raw data chunk
+! cache parameters
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: mdc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes ! Total size of the raw data
+ ! chunk cache, in bytes
+ REAL, INTENT(IN) :: rdcc_w0 ! Preemption policy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0) &
+ BIND(C,NAME='h5pset_cache_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: mdc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
+ REAL, INTENT(IN) :: rdcc_w0
+ END FUNCTION h5pset_cache_c
+ END INTERFACE
+
+ hdferr = h5pset_cache_c(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
+ END SUBROUTINE h5pset_cache_f
+
+!****s* H5P/h5pget_cache_f
+! NAME
+! h5pget_cache_f
+!
+! PURPOSE
+! Queries the meta data cache and raw data chunk cache
+! parameters.
+!
+! INPUTS
+! prp_id - file access property list identifier
+!
+! OUTPUTS
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Bug fix: type of the rdcc_nelmts parameter should be INTEGER
+! instead of INTEGER(SIZE_T) October 10, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: mdc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts ! Number of elements (objects)
+ ! in the meta data cache
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data
+ ! chunk cache, in bytes
+ REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0) &
+ BIND(C,NAME='h5pget_cache_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: mdc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
+ REAL, INTENT(OUT) :: rdcc_w0
+ END FUNCTION h5pget_cache_c
+ END INTERFACE
+
+ hdferr = h5pget_cache_c(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
+ END SUBROUTINE h5pget_cache_f
+
+!****s* H5P/h5pset_fapl_split_f
+! NAME
+! h5pset_fapl_split_f
+!
+! PURPOSE
+! Emulates the old split file driver.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! meta_ext - name of the extension for the metafile
+! filename
+! meta_plist - identifier of the meta file access property
+! list
+! raw_ext - name extension for the raw file filename
+! raw_plist - identifier of the raw file access property list
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext ! Name of the extension for
+ ! the metafile filename
+ INTEGER(HID_T), INTENT(IN) :: meta_plist ! Identifier of the meta file
+ ! access property list
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext ! Name extension for the raw file filename
+ INTEGER(HID_T), INTENT(IN) :: raw_plist ! Identifier of the raw file
+ ! access property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: meta_len, raw_len
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist) &
+ BIND(C,NAME='h5pset_fapl_split_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: meta_ext
+ INTEGER(HID_T), INTENT(IN) :: meta_plist
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: raw_plist
+ INTEGER :: meta_len, raw_len
+ END FUNCTION h5pset_fapl_split_c
+ END INTERFACE
+
+ meta_len = LEN(meta_ext)
+ raw_len = LEN(raw_ext)
+ hdferr = h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ END SUBROUTINE h5pset_fapl_split_f
+
+!****s* H5P/h5pget_split_f
+! NAME
+! h5pget_split_f
+!
+! PURPOSE
+! NOT AVAILABLE
+!
+! INPUTS
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! SOURCE
+! SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
+! raw_ext, raw_plist, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER(SIZE_T), INTENT(IN) :: meta_ext_size ! Number of characters of the meta
+ ! file extension to be copied to the
+ ! meta_ext buffer
+
+! CHARACTER(LEN=*), INTENT(OUT) :: meta_ext !Name of the extension for
+ !the metafile filename
+! INTEGER(HID_T), INTENT(OUT) :: meta_plist ! Identifier of the meta file
+ ! access property list
+! INTEGER(SIZE_T), INTENT(IN) :: raw_ext_size ! Number of characters of the raw
+ ! file extension to be copied to the
+ ! raw_ext buffer
+! CHARACTER(LEN=*), INTENT(OUT) :: raw_ext !Name extension for the raw file filename
+! INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
+ !access property list
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+! INTEGER, EXTERNAL :: h5pget_split_c
+! hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
+! raw_ext_size, raw_ext, raw_plist )
+! END SUBROUTINE h5pget_split_f
+
+!****s* H5P/h5pset_gc_references_f
+! NAME
+! h5pset_gc_references_f
+!
+! PURPOSE
+! Sets garbage collecting references flag.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: gc_reference ! The flag for garbage collecting
+ ! references for the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference) &
+ BIND(C,NAME='h5pset_gc_references_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: gc_reference
+ END FUNCTION h5pset_gc_references_c
+ END INTERFACE
+
+ hdferr = h5pset_gc_references_c(prp_id, gc_reference)
+ END SUBROUTINE h5pset_gc_references_f
+
+!****s* H5P/h5pget_gc_references_f
+! NAME
+! h5pget_gc_references_f
+!
+! PURPOSE
+! Returns garbage collecting references setting.
+!
+! INPUTS
+!
+! prp_id - file access property list identifier
+! OUTPUTS
+!
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_gc_references_f(prp_id, gc_reference, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: gc_reference ! The flag for garbage collecting
+ ! references for the file
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference) &
+ BIND(C,NAME='h5pget_gc_references_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: gc_reference
+ END FUNCTION h5pget_gc_references_c
+ END INTERFACE
+
+ hdferr = h5pget_gc_references_c(prp_id, gc_reference)
+ END SUBROUTINE h5pget_gc_references_f
+
+!****s* H5P/h5pset_layout_f
+! NAME
+! h5pset_layout_f
+!
+! PURPOSE
+! Sets the type of storage used store the raw data
+! for a dataset.
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: layout ! Type of storage layout for raw data
+ ! possible values are:
+ ! H5D_COMPACT_F
+ ! H5D_CONTIGUOUS_F
+ ! H5D_CHUNKED_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_layout_c(prp_id, layout) &
+ BIND(C,NAME='h5pset_layout_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: layout
+ END FUNCTION h5pset_layout_c
+ END INTERFACE
+
+ hdferr = h5pset_layout_c(prp_id, layout)
+ END SUBROUTINE h5pset_layout_f
+
+!****s* H5P/h5pget_layout_f
+! NAME
+! h5pget_layout_f
+!
+! PURPOSE
+! Returns the layout of the raw data for a dataset.
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! OUTPUTS
+!
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: layout ! Type of storage layout for raw data
+ ! possible values are:
+ ! H5D_COMPACT_F(0)
+ ! H5D_CONTIGUOUS_F(1)
+ ! H5D_CHUNKED_F(2)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_layout_c(prp_id, layout) &
+ BIND(C,NAME='h5pget_layout_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: layout
+ END FUNCTION h5pget_layout_c
+ END INTERFACE
+
+ hdferr = h5pget_layout_c(prp_id, layout)
+ END SUBROUTINE h5pget_layout_f
+
+!****s* H5P/h5pset_filter_f
+! NAME
+! h5pset_filter_f
+!
+! PURPOSE
+! Adds a filter to the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! February, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be added to the pipeline.
+ INTEGER, INTENT(IN) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values) &
+ BIND(C,NAME='h5pset_filter_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pset_filter_c
+ END INTERFACE
+
+ hdferr = h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
+ END SUBROUTINE h5pset_filter_f
+
+!****s* H5P/h5pget_nfilters_f
+! NAME
+! h5pget_nfilters_f
+!
+! PURPOSE
+! Returns the number of filters in the pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! OUTPUTS
+!
+! nfilters - number of filters in the pipeline
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: nfilters ! The number of filters in the pipeline
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters) &
+ BIND(C,NAME='h5pget_nfilters_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: nfilters
+ END FUNCTION h5pget_nfilters_c
+ END INTERFACE
+
+ hdferr = h5pget_nfilters_c(prp_id, nfilters)
+ END SUBROUTINE h5pget_nfilters_f
+
+!****s* H5P/h5pget_filter_f
+! NAME
+! h5pget_filter_f
+!
+! PURPOSE
+! Returns information about a filter in a pipeline
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter_number - sequence number within the filter
+! pipeline of the filter for which
+! information is sought
+! OUTPUTS
+!
+! filter_id - filter identification number
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter_number ! Sequence number within the filter
+ ! pipeline of the filter for which
+ ! information is sought
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of the filter
+ INTEGER, INTENT(OUT) :: filter_id ! Filter identification number
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+
+! INTEGER, EXTERNAL :: h5pget_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id ) &
+ BIND(C,NAME='h5pget_filter_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_number
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: filter_id
+ END FUNCTION h5pget_filter_c
+ END INTERFACE
+
+ hdferr = h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id )
+ END SUBROUTINE h5pget_filter_f
+
+!****s* H5P/h5pset_external_f
+! NAME
+! h5pset_external_f
+!
+! PURPOSE
+! Adds an external file to the list of external files.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data.
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Changed type of 'offset' from integer to off_t -- MSB January 9, 2012
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_external_f(prp_id, name, offset, bytes, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of an external file
+ INTEGER(OFF_T), INTENT(IN) :: offset ! Offset, in bytes, from the beginning
+ ! of the file to the location in the file
+ ! where the data starts.
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes ! Number of bytes reserved in the
+ ! file for the data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: namelen
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes) &
+ BIND(C,NAME='h5pset_external_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, OFF_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(OFF_T), INTENT(IN) :: offset
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes
+ END FUNCTION h5pset_external_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5pset_external_c(prp_id, name, namelen, offset, bytes)
+ END SUBROUTINE h5pset_external_f
+
+!****s* H5P/h5pget_external_count_f
+! NAME
+! h5pget_external_count_f
+!
+! PURPOSE
+! Returns the number of external files for a dataset.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+!
+! count - number of external files for the
+! specified dataset
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: count ! Number of external files for the
+ ! Specified dataset
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_count_c(prp_id, count) &
+ BIND(C,NAME='h5pget_external_count_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: count
+ END FUNCTION h5pget_external_count_c
+ END INTERFACE
+
+ hdferr = h5pget_external_count_c(prp_id, count)
+ END SUBROUTINE h5pget_external_count_f
+
+!****s* H5P/h5pget_external_f
+! NAME
+! h5pget_external_f
+!
+! PURPOSE
+! Returns information about an external file.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+!
+! idx - external file index
+! name_size - maximum size of name array
+! name - name of the external file
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Changed type of 'offset' from integer to off_t -- MSB January 9, 2012
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: idx ! External file index.
+ INTEGER(SIZE_T), INTENT(IN) :: name_size ! Maximum length of name array
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of an external file
+ INTEGER(OFF_T), INTENT(OUT) :: offset ! Offset, in bytes, from the beginning
+ ! of the file to the location in the file
+ ! where the data starts.
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes ! Number of bytes reserved in the
+ ! file for the data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes) &
+ BIND(C,NAME='h5pget_external_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T, HSIZE_T, OFF_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: idx
+ INTEGER(SIZE_T), INTENT(IN) :: name_size
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name
+ INTEGER(OFF_T), INTENT(OUT) :: offset
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes
+ END FUNCTION h5pget_external_c
+ END INTERFACE
+
+ hdferr = h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ END SUBROUTINE h5pget_external_f
+
+!****s* H5P/h5pset_btree_ratios_f
+! NAME
+! h5pset_btree_ratios_f
+!
+! PURPOSE
+! Sets B-tree split ratios for a dataset transfer
+! property list.
+!
+! INPUTS
+!
+! prp_id - the dataset transfer property list
+! identifier
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ REAL, INTENT(IN) :: left ! The B-tree split ratio for left-most nodes.
+ REAL, INTENT(IN) :: middle ! The B-tree split ratio for all other nodes
+ REAL, INTENT(IN) :: right ! The B-tree split ratio for right-most
+ ! nodes and lone nodes.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right) &
+ BIND(C,NAME='h5pset_btree_ratios_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(IN) :: left
+ REAL, INTENT(IN) :: middle
+ REAL, INTENT(IN) :: right
+ END FUNCTION h5pset_btree_ratios_c
+ END INTERFACE
+
+ hdferr = h5pset_btree_ratios_c(prp_id, left, middle, right)
+ END SUBROUTINE h5pset_btree_ratios_f
+
+!****s* H5P/h5pget_btree_ratios_f
+! NAME
+! h5pget_btree_ratios_f
+!
+! PURPOSE
+! Gets B-tree split ratios for a dataset transfer property list
+!
+! INPUTS
+!
+! prp_id - the dataset transfer property list
+! identifier
+! OUTPUTS
+!
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ REAL, INTENT(OUT) :: left ! The B-tree split ratio for left-most nodes.
+ REAL, INTENT(OUT) :: middle ! The B-tree split ratio for all other nodes
+ REAL, INTENT(OUT) :: right ! The B-tree split ratio for right-most
+ ! nodes and lone nodes.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right) &
+ BIND(C,NAME='h5pget_btree_ratios_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(OUT) :: left
+ REAL, INTENT(OUT) :: middle
+ REAL, INTENT(OUT) :: right
+ END FUNCTION h5pget_btree_ratios_c
+ END INTERFACE
+
+ hdferr = h5pget_btree_ratios_c(prp_id, left, middle, right)
+ END SUBROUTINE h5pget_btree_ratios_f
+
+!****s* H5P/h5pget_fclose_degree_f
+! NAME
+! h5pget_fclose_degree_f
+!
+! PURPOSE
+! Returns the degree for the file close behavior.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! OUTPUTS
+!
+! degree - Possible values are:
+! H5F_CLOSE_DEFAULT_F
+! H5F_CLOSE_WEAK_F
+! H5F_CLOSE_SEMI_F
+! H5F_CLOSE_STRONG_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! September 26, 2002
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fclose_degree_f(fapl_id, degree, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
+ INTEGER, INTENT(OUT) :: degree ! Possible values are:
+ ! H5F_CLOSE_DEFAULT_F
+ ! H5F_CLOSE_WEAK_F
+ ! H5F_CLOSE_SEMI_F
+ ! H5F_CLOSE_STRONG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_fclose_degree_c(fapl_id, degree) &
+ BIND(C,NAME='h5pget_fclose_degree_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER, INTENT(OUT) :: degree
+ END FUNCTION h5pget_fclose_degree_c
+ END INTERFACE
+
+ hdferr = h5pget_fclose_degree_c(fapl_id, degree)
+ END SUBROUTINE h5pget_fclose_degree_f
+
+!****s* H5P/h5pset_fclose_degree_f
+! NAME
+! h5pset_fclose_degree_f
+!
+! PURPOSE
+! Sets the degree for the file close behavior.
+!
+! INPUTS
+!
+! fapl_id - file access property list identifier
+! degree - Possible values are:
+! H5F_CLOSE_DEFAULT_F
+! H5F_CLOSE_WEAK_F
+! H5F_CLOSE_SEMI_F
+! H5F_CLOSE_STRONG_F
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! September 26, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fclose_degree_f(fapl_id, degree, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File Access Property list identifier
+ INTEGER, INTENT(IN) :: degree ! Possible values are:
+ ! H5F_CLOSE_DEFAULT_F
+ ! H5F_CLOSE_WEAK_F
+ ! H5F_CLOSE_SEMI_F
+ ! H5F_CLOSE_STRONG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fclose_degree_c(fapl_id, degree) &
+ BIND(C,NAME='h5pset_fclose_degree_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER, INTENT(IN) :: degree
+ END FUNCTION h5pset_fclose_degree_c
+ END INTERFACE
+
+ hdferr = h5pset_fclose_degree_c(fapl_id, degree)
+ END SUBROUTINE h5pset_fclose_degree_f
+
+!****s* H5P/h5pequal_f
+! NAME
+! h5pequal_f
+!
+! PURPOSE
+! Checks if two property lists are eqaul
+!
+! INPUTS
+!
+! plist1_id - property list identifier
+! plist2_id - property list identifier
+! OUTPUTS
+!
+! flag - flag, possible values
+! .TRUE. or .FALSE.
+! hdferr: - error code
+! Success: 0
+! Failure: -1, flag is set to .FALSE.
+!
+! AUTHOR
+! Elena Pourmal
+! September 30, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pequal_f(plist1_id, plist2_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist1_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: plist2_id ! Property list identifier
+ LOGICAL, INTENT(OUT) :: flag ! Flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: c_flag
+
+ INTERFACE
+ INTEGER FUNCTION h5pequal_c(plist1_id, plist2_id, c_flag) &
+ BIND(C,NAME='h5pequal_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist1_id
+ INTEGER(HID_T), INTENT(IN) :: plist2_id
+ INTEGER, INTENT(OUT) :: c_flag
+ END FUNCTION h5pequal_c
+ END INTERFACE
+
+ flag = .FALSE.
+ hdferr = h5pequal_c(plist1_id, plist2_id, c_flag)
+ IF (c_flag .GT. 0) flag = .TRUE.
+ END SUBROUTINE h5pequal_f
+
+!****s* H5P/h5pset_buffer_f
+! NAME
+! h5pset_buffer_f
+!
+! PURPOSE
+! Sets sixe for conversion buffer
+!
+! INPUTS
+! plist_id - data transfer property list identifier
+! size - buffer size
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 2, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_buffer_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
+ ! buffer is allocated and freed by
+ ! the library.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_buffer_c(plist_id, size) &
+ BIND(C,NAME='h5pset_buffer_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_buffer_c
+ END INTERFACE
+
+ hdferr = h5pset_buffer_c(plist_id, size)
+ END SUBROUTINE h5pset_buffer_f
+
+!****s* H5P/h5pget_buffer_f
+! NAME
+! h5pget_buffer_f
+!
+! PURPOSE
+! Gets size for conversion buffer
+!
+! INPUTS
+!
+! plist_id - data transfer property list identifier
+! OUTPUTS
+!
+! size - buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 2, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_buffer_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Data transfer property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Buffer size in bytes;
+ ! buffer is allocated and freed by
+ ! the library.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_buffer_c(plist_id, size) &
+ BIND(C,NAME='h5pget_buffer_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_buffer_c
+ END INTERFACE
+
+ hdferr = h5pget_buffer_c(plist_id, size)
+ END SUBROUTINE h5pget_buffer_f
+
+!****s* H5P/h5pfill_value_defined_f
+! NAME
+! h5pfill_value_defined_f
+!
+! PURPOSE
+! Check if fill value is defined.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! flag - fill value status flag
+! Possible values are:
+! H5D_FILL_VALUE_ERROR_F
+! H5D_FILL_VALUE_UNDEFINED_F
+! H5D_FILL_VALUE_DEFAULT_F
+! H5D_FILL_VALUE_USER_DEFINED_F
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pfill_value_defined_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Fill value status flag
+ ! H5D_FILL_VALUE_ERROR_F
+ ! H5D_FILL_VALUE_UNDEFINED_F
+ ! H5D_FILL_VALUE_DEFAULT_F
+ ! H5D_FILL_VALUE_USER_DEFINED_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pfill_value_defined_c(plist_id, flag) &
+ BIND(C,NAME='h5pfill_value_defined_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pfill_value_defined_c
+ END INTERFACE
+
+ hdferr = h5pfill_value_defined_c(plist_id, flag)
+ END SUBROUTINE h5pfill_value_defined_f
+
+!****s* H5P/h5pset_alloc_time_f
+! NAME
+! h5pset_alloc_time_f
+!
+! PURPOSE
+! Set space allocation time for dataset during creation.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! flag - allocation time flag:
+! H5D_ALLOC_TIME_ERROR_F
+! H5D_ALLOC_TIME_DEFAULT_F
+! H5D_ALLOC_TIME_EARLY_F
+! H5D_ALLOC_TIME_LATE_F
+! H5D_ALLOC_TIME_INCR_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_alloc_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(IN) :: flag ! Allocation time flag:
+ ! H5D_ALLOC_TIME_ERROR_F
+ ! H5D_ALLOC_TIME_DEFAULT_F
+ ! H5D_ALLOC_TIME_EARLY_F
+ ! H5D_ALLOC_TIME_LATE_F
+ ! H5D_ALLOC_TIME_INCR_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_alloc_time_c(plist_id, flag) &
+ BIND(C,NAME='h5pset_alloc_time_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_alloc_time_c
+ END INTERFACE
+
+ hdferr = h5pset_alloc_time_c(plist_id, flag)
+ END SUBROUTINE h5pset_alloc_time_f
+
+!****s* H5P/h5pget_alloc_time_f
+! NAME
+! h5pget_alloc_time_f
+!
+! PURPOSE
+! Get space allocation time for dataset during creation.
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! flag - allocation time flag:
+! H5D_ALLOC_TIME_ERROR_F
+! H5D_ALLOC_TIME_DEFAULT_F
+! H5D_ALLOC_TIME_EARLY_F
+! H5D_ALLOC_TIME_LATE_F
+! H5D_ALLOC_TIME_INCR_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Allocation time flag:
+ ! H5D_ALLOC_TIME_ERROR_F
+ ! H5D_ALLOC_TIME_DEFAULT_F
+ ! H5D_ALLOC_TIME_EARLY_F
+ ! H5D_ALLOC_TIME_LATE_F
+ ! H5D_ALLOC_TIME_INCR_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_alloc_time_c(plist_id, flag) &
+ BIND(C,NAME='h5pget_alloc_time_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_alloc_time_c
+ END INTERFACE
+
+ hdferr = h5pget_alloc_time_c(plist_id, flag)
+ END SUBROUTINE h5pget_alloc_time_f
+
+!****s* H5P/h5pset_fill_time_f
+! NAME
+! h5pset_fill_time_f
+!
+! PURPOSE
+! Set fill value writing time for dataset
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! flag - fill time flag:
+! H5D_FILL_TIME_ERROR_F
+! H5D_FILL_TIME_ALLOC_F
+! H5D_FILL_TIME_NEVER_F
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fill_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(IN) :: flag ! Fill time flag:
+ ! H5D_FILL_TIME_ERROR_F
+ ! H5D_FILL_TIME_ALLOC_F
+ ! H5D_FILL_TIME_NEVER_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_time_c(plist_id, flag) &
+ BIND(C,NAME='h5pset_fill_time_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fill_time_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_time_c(plist_id, flag)
+ END SUBROUTINE h5pset_fill_time_f
+
+!****s* H5P/h5pget_fill_time_f
+! NAME
+! h5pget_fill_time_f
+!
+! PURPOSE
+! Get fill value writing time for dataset
+!
+! INPUTS
+!
+! plist_id - dataset creation property list identifier
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! OPTIONAL PARAMETERS
+!
+! flag - fill time flag:
+! H5D_FILL_TIME_ERROR_F
+! H5D_FILL_TIME_ALLOC_F
+! H5D_FILL_TIME_NEVER_F
+! AUTHOR
+! Elena Pourmal
+! October 4, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fill_time_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Fill time flag:
+ ! H5D_FILL_TIME_ERROR_F
+ ! H5D_FILL_TIME_ALLOC_F
+ ! H5D_FILL_TIME_NEVER_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_time_c(plist_id, flag) &
+ BIND(C,NAME='h5pget_fill_time_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_fill_time_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_time_c(plist_id, flag)
+ END SUBROUTINE h5pget_fill_time_f
+
+!****s* H5P/ h5pset_meta_block_size_f
+! NAME
+! h5pset_meta_block_size_f
+!
+! PURPOSE
+! Sets the minimum size of metadata block allocations
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - metatdata block size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_meta_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Block size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_meta_block_size_c(plist_id, size) &
+ BIND(C,NAME='h5pset_meta_block_size_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_meta_block_size_c
+ END INTERFACE
+
+ hdferr = h5pset_meta_block_size_c(plist_id, size)
+ END SUBROUTINE h5pset_meta_block_size_f
+
+!****s* H5P/h5pget_meta_block_size_f
+! NAME
+! h5pget_meta_block_size_f
+!
+! PURPOSE
+! Gets the minimum size of metadata block allocations
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - metatdata block size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_meta_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Block size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_meta_block_size_c(plist_id, size) &
+ BIND(C,NAME='h5pget_meta_block_size_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_meta_block_size_c
+ END INTERFACE
+
+ hdferr = h5pget_meta_block_size_c(plist_id, size)
+ END SUBROUTINE h5pget_meta_block_size_f
+
+!****s* H5P/h5pset_sieve_buf_size_f
+! NAME
+! h5pset_sieve_buf_size_f
+!
+! PURPOSE
+! Sets the maximum size of the data sieve buffer
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - sieve buffer size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_sieve_buf_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size in bytes;
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_sieve_buf_size_c(plist_id, size) &
+ BIND(C,NAME='h5pset_sieve_buf_size_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_sieve_buf_size_c
+ END INTERFACE
+
+ hdferr = h5pset_sieve_buf_size_c(plist_id, size)
+ END SUBROUTINE h5pset_sieve_buf_size_f
+
+!****s* H5P/h5pget_sieve_buf_size_f
+! NAME
+! h5pget_sieve_buf_size_f
+!
+! PURPOSE
+! Gets the maximum size of the data sieve buffer
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - sieve buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_sieve_buf_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Buffer size in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_sieve_buf_size_c(plist_id, size) &
+ BIND(C,NAME='h5pget_sieve_buf_size_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_sieve_buf_size_c
+ END INTERFACE
+
+ hdferr = h5pget_sieve_buf_size_c(plist_id, size)
+ END SUBROUTINE h5pget_sieve_buf_size_f
+
+!****s* H5P/h5pset_small_data_block_size_f
+! NAME
+! h5pset_small_data_block_size_f
+!
+! PURPOSE
+! Sets the minimum size of "small" raw data block
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! size - small raw data block size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_small_data_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: size ! Small raw data block size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_small_data_block_size_c(plist_id, size) &
+ BIND(C,NAME='h5pset_small_data_block_size_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_small_data_block_size_c
+ END INTERFACE
+
+ hdferr = h5pset_small_data_block_size_c(plist_id, size)
+ END SUBROUTINE h5pset_small_data_block_size_f
+
+!****s* H5P/h5pget_small_data_block_size_f
+! NAME
+! h5pget_small_data_block_size_f
+!
+! PURPOSE
+! Gets the minimum size of "small" raw data block
+!
+! INPUTS
+!
+! plist_id - file access property list identifier
+! OUTPUTS
+!
+! size - small raw data block size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_small_data_block_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File access property list identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Small raw data block size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_small_data_block_size_c(plist_id, size) &
+ BIND(C,NAME='h5pget_small_data_block_size_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_small_data_block_size_c
+ END INTERFACE
+
+ hdferr = h5pget_small_data_block_size_c(plist_id, size)
+ END SUBROUTINE h5pget_small_data_block_size_f
+
+!****s* H5P/h5pset_hyper_vector_size_f
+! NAME
+! h5pset_hyper_vector_size_f
+!
+! PURPOSE
+! Set the number of "I/O" vectors (vector size)
+!
+! INPUTS
+!
+! plist_id - dataset transfer property list identifier
+! size - vector size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_hyper_vector_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Vector size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_hyper_vector_size_c(plist_id, size) &
+ BIND(C,NAME='h5pset_hyper_vector_size_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_hyper_vector_size_c
+ END INTERFACE
+
+ hdferr = h5pset_hyper_vector_size_c(plist_id, size)
+ END SUBROUTINE h5pset_hyper_vector_size_f
+
+!****s* H5P/ h5pget_hyper_vector_size_f
+! NAME
+! h5pget_hyper_vector_size_f
+!
+! PURPOSE
+! Get the number of "I/O" vectors (vector size)
+!
+! INPUTS
+!
+! plist_id - dataset transfer property list identifier
+! OUTPUTS
+!
+! size - vector size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 7, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_hyper_vector_size_f(plist_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset transfer property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Vector size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_hyper_vector_size_c(plist_id, size) &
+ BIND(C,NAME='h5pget_hyper_vector_size_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_hyper_vector_size_c
+ END INTERFACE
+
+ hdferr = h5pget_hyper_vector_size_c(plist_id, size)
+ END SUBROUTINE h5pget_hyper_vector_size_f
+
+!****s* H5P/h5pexist_f
+! NAME
+! h5pexist_f
+!
+! PURPOSE
+! Queries whether a property name exists in a property list or class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! name - name of property to check for
+! OUTPUTS
+!
+! flag - logical flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pexist_f(prp_id, name, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ LOGICAL, INTENT(OUT) :: flag ! .TRUE. if exists, .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pexist_c(prp_id, name, name_len) &
+ BIND(C,NAME='h5pexist_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pexist_c
+ END INTERFACE
+ flag = .FALSE.
+ name_len = LEN(name)
+ hdferr = h5pexist_c(prp_id, name , name_len)
+ IF (hdferr > 0) THEN
+ flag = .TRUE.
+ hdferr = 0
+ ENDIF
+ END SUBROUTINE h5pexist_f
+
+!****s* H5P/h5pget_size_f
+!
+! NAME
+! h5pget_size_f
+!
+! PURPOSE
+! Queries the size of a property value in bytes.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! name - name of property to query
+! OUTPUTS
+!
+! size - size of property in bytes
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_size_f(prp_id, name, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to query
+ INTEGER(SIZE_T), INTENT(OUT) :: size ! Size in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_size_c(prp_id, name, name_len, size) &
+ BIND(C,NAME='h5pget_size_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_size_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5pget_size_c(prp_id, name , name_len, size)
+ END SUBROUTINE h5pget_size_f
+
+!****s* H5P/h5pget_npros_f
+! NAME
+! h5pget_npros_f
+!
+! PURPOSE
+! Queries number of properties in property list or class
+!
+! INPUTS
+!
+! prp_id - iproperty list identifier to query
+! OUTPUTS
+!
+! nprops - number of properties in property object
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_nprops_f(prp_id, nprops, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: nprops ! Number of properties
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_nprops_c(prp_id, nprops) &
+ BIND(C,NAME='h5pget_nprops_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: nprops
+ END FUNCTION h5pget_nprops_c
+ END INTERFACE
+ hdferr = h5pget_nprops_c(prp_id, nprops)
+ END SUBROUTINE h5pget_nprops_f
+
+!****s* H5P/h5pget_class_name_f
+! NAME
+! h5pget_class_name_f
+!
+! PURPOSE
+! Queries the name of a class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! OUTPUTS
+!
+! name - name of a class
+! size - Actual length of the class name
+! NOTE: If provided buffer "name" is smaller,
+! than name will be truncated to fit into
+! provided user buffer.
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+! Returned the size of name as an argument
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_class_name_f(prp_id, name, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Buffer to retireve class name
+ INTEGER, INTENT(OUT) :: size ! Actual length of the class name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_name_c(prp_id, name, name_len) &
+ BIND(C,NAME='h5pget_class_name_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(INOUT) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pget_class_name_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ size = h5pget_class_name_c(prp_id, name, name_len)
+
+ hdferr = 0
+ IF(size.LT.0) hdferr = -1
+
+ END SUBROUTINE h5pget_class_name_f
+
+!****s* H5P/h5pget_class_parent_f
+! NAME
+! h5pget_class_parent_f
+!
+! PURPOSE
+! Retrieves the parent class of a genric property class.
+!
+! INPUTS
+!
+! prp_id - property list identifier to query
+! OUTPUTS
+!
+! parent_id - identifier of the parent class
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_class_parent_f(prp_id, parent_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(OUT) :: parent_id ! Parent class property list
+ ! identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_parent_c(prp_id, parent_id) &
+ BIND(C,NAME='h5pget_class_parent_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: parent_id
+ END FUNCTION h5pget_class_parent_c
+ END INTERFACE
+ hdferr = h5pget_class_parent_c(prp_id, parent_id)
+ END SUBROUTINE h5pget_class_parent_f
+
+!****s* H5P/h5pisa_class_f
+! NAME
+! h5pisa_class_f
+!
+! PURPOSE
+! Determines whether a property list is a member of a class.
+!
+! INPUTS
+!
+! plist - property list identifier
+! pclass - identifier of the property class
+! OUTPUTS
+!
+! flag - .TRUE. if a member, .FALSE. otherwise
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pisa_class_f(plist, pclass, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: pclass ! Class identifier
+ LOGICAL, INTENT(OUT) :: flag ! logical flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pisa_class_c(plist, pclass) &
+ BIND(C,NAME='h5pisa_class_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist
+ INTEGER(HID_T), INTENT(IN) :: pclass
+ END FUNCTION h5pisa_class_c
+ END INTERFACE
+ flag = .FALSE.
+ hdferr = h5pisa_class_c(plist, pclass)
+ IF (hdferr .GT. 0) THEN
+ flag = .TRUE.
+ hdferr = 0
+ ENDIF
+ END SUBROUTINE h5pisa_class_f
+
+!****s* H5P/h5pcopy_prop_f
+! NAME
+! h5pcopy_prop_f
+!
+! PURPOSE
+! Copies a property from one list or class to another.
+!
+! INPUTS
+!
+! dst_id - Identifier of the destination property list
+! src_id - Identifier of the source property list
+! name - name of the property to copy
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dst_id ! Destination property list
+ ! identifier
+ INTEGER(HID_T), INTENT(IN) :: src_id ! Source property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Property name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_prop_c(dst_id, src_id, name, name_len) &
+ BIND(C,NAME='h5pcopy_prop_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dst_id
+ INTEGER(HID_T), INTENT(IN) :: src_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5pcopy_prop_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5pcopy_prop_c(dst_id, src_id, name , name_len)
+ END SUBROUTINE h5pcopy_prop_f
+
+!****s* H5P/h5premove_f
+! NAME
+! h5premove_f
+!
+! PURPOSE
+! Removes a property from a property list.
+
+!
+! INPUTS
+!
+! plid - Property list identofoer
+! name - name of the property to remove
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5premove_f(plid, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plid ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to remove
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5premove_c(plid, name, name_len) &
+ BIND(C,NAME='h5premove_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plid
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5premove_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5premove_c(plid, name , name_len)
+ END SUBROUTINE h5premove_f
+
+!****s* H5P/h5punregister_f
+! NAME
+! h5punregister_f
+!
+! PURPOSE
+! Removes a property from a property list class.
+!
+! INPUTS
+!
+! class - Property list class identifier
+! name - name of the property to remove
+! OUTPUTS
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5punregister_f(class, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! name of property to remove
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5punregister_c(class, name, name_len) &
+ BIND(C,NAME='h5punregister_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ END FUNCTION h5punregister_c
+ END INTERFACE
+ name_len = LEN(name)
+ hdferr = h5punregister_c(class, name , name_len)
+ END SUBROUTINE h5punregister_f
+
+!****s* H5P/h5pclose_class_f
+! NAME
+! h5pclose_class_f
+!
+! PURPOSE
+! Closes an existing property list class.
+!
+! INPUTS
+!
+! class - Property list class identifier
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pclose_class_f(class, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pclose_class_c(class) &
+ BIND(C,NAME='h5pclose_class_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class
+ END FUNCTION h5pclose_class_c
+ END INTERFACE
+ hdferr = h5pclose_class_c(class)
+ END SUBROUTINE h5pclose_class_f
+
+!****s* H5P/h5pset_shuffle_f
+! NAME
+! h5pset_shuffle_f
+!
+! PURPOSE
+! Sets shuffling filter
+!
+! INPUTS
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_shuffle_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_shuffle_c(prp_id) &
+ BIND(C,NAME='h5pset_shuffle_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_shuffle_c
+ END INTERFACE
+ hdferr = h5pset_shuffle_c(prp_id)
+
+ END SUBROUTINE h5pset_shuffle_f
+
+!****s* H5P/h5pset_edc_check_f
+! NAME
+! h5pset_edc_check_f
+!
+! PURPOSE
+! Enables/disables error detecting
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! flag - EDC flag; possible values:
+! H5Z_DISABLE_EDC_F
+! H5Z_ENABLE_EDC_F
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_edc_check_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: flag ! Checksum filter flag
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_edc_check_c(prp_id, flag) &
+ BIND(C,NAME='h5pset_edc_check_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_edc_check_c
+ END INTERFACE
+ hdferr = h5pset_edc_check_c(prp_id, flag)
+
+ END SUBROUTINE h5pset_edc_check_f
+
+!****s* H5P/h5pget_edc_check_f
+! NAME
+! h5pget_edc_check_f
+!
+! PURPOSE
+! Queries error detecting
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_edc_check_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset transfer property list identifier
+ INTEGER, INTENT(OUT) :: flag ! Checksum filter flag
+ ! May have one of the following values:
+ ! H5Z_ERROR_EDC_F
+ ! H5Z_DISABLE_EDC_F
+ ! H5Z_ENABLE_EDC_F
+ ! H5Z_NO_EDC_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_edc_check_c(prp_id, flag) &
+ BIND(C,NAME='h5pget_edc_check_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_edc_check_c
+ END INTERFACE
+ hdferr = h5pget_edc_check_c(prp_id, flag)
+
+ END SUBROUTINE h5pget_edc_check_f
+
+!****s* H5P/h5pset_fletcher32_f
+! NAME
+! h5pset_fletcher32_f
+!
+! PURPOSE
+! Sets Fletcher32 checksum of EDC for a dataset creation
+! property list.
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! March 13, 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fletcher32_f(prp_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fletcher32_c(prp_id) &
+ BIND(C,NAME='h5pset_fletcher32_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fletcher32_c
+ END INTERFACE
+ hdferr = h5pset_fletcher32_c(prp_id)
+
+ END SUBROUTINE h5pset_fletcher32_f
+
+!****s* H5P/ h5pset_family_offset_f
+! NAME
+! h5pset_family_offset_f
+!
+! PURPOSE
+! Sets offset for family file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! offset - file offset
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! 19 March 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_family_offset_f(prp_id, offset, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HSIZE_T), INTENT(IN) :: offset ! Offset in bytes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_family_offset_c(prp_id, offset) &
+ BIND(C,NAME='h5pset_family_offset_c')
+ IMPORT :: HID_T, HSIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: offset
+ END FUNCTION h5pset_family_offset_c
+ END INTERFACE
+ hdferr = h5pset_family_offset_c(prp_id, offset)
+
+ END SUBROUTINE h5pset_family_offset_f
+
+!****s* H5P/h5pset_fapl_multi_l
+! NAME
+! h5pset_fapl_multi_l
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! mem_map - mapping array
+! memb_fapl - property list for each memory usage type
+! memb_name - names of member file
+! relax - flag
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! 20 March 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, DIMENSION(*), INTENT(IN) :: memb_map
+ INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl
+ CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name
+ REAL, DIMENSION(*), INTENT(IN) :: memb_addr
+ LOGICAL, INTENT(IN) :: relax
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: flag = 0
+ INTEGER :: i
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
+ maxlen, memb_addr, flag) &
+ BIND(C,NAME='h5pset_fapl_multi_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(*), INTENT(IN) :: memb_map
+ INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: memb_name
+ REAL, DIMENSION(*), INTENT(IN) :: memb_addr
+ INTEGER, DIMENSION(*) :: lenm
+ INTEGER :: maxlen
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fapl_multi_c
+ END INTERFACE
+
+ maxlen = LEN(memb_name(1))
+ DO i=1, H5FD_MEM_NTYPES_F
+ lenm(i) = LEN_TRIM(memb_name(i))
+ ENDDO
+ IF(relax) flag = 1
+ hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag)
+
+ END SUBROUTINE h5pset_fapl_multi_l
+!****s* H5P/h5pset_fapl_multi_s
+! NAME
+! h5pset_fapl_multi_s
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! relax - flag
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! 31 March 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_fapl_multi_s(prp_id, relax, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ LOGICAL, INTENT(IN) :: relax
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: flag
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag) &
+ BIND(C,NAME='h5pset_fapl_multi_sc')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_fapl_multi_sc
+ END INTERFACE
+ flag = 0
+ IF (relax) flag = 1
+ hdferr = h5pset_fapl_multi_sc(prp_id, flag)
+
+ END SUBROUTINE h5pset_fapl_multi_s
+!****s* H5P/h5pget_fapl_multi_f
+! NAME
+! h5pget_fapl_multi_f
+!
+! PURPOSE
+! Sets up use of the multi-file driver.
+!
+! INPUTS
+!
+! prp_id - file creation property list identifier
+! OUTPUTS
+!
+! mem_map - mapping array
+! memb_fapl - property list for each memory usage type
+! memb_name - names of member file
+! relax - flag
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! OPTIONAL PARAMETERS
+! maxlen_out - maximum length for memb_name array element
+!
+! AUTHOR
+! Elena Pourmal
+! 24 March 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map
+ INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl
+ CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name
+ REAL, DIMENSION(*), INTENT(OUT) :: memb_addr
+ INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out
+ LOGICAL, INTENT(OUT) :: relax
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: c_maxlen_out
+ INTEGER :: flag
+ INTEGER :: i
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
+ maxlen, memb_addr, flag, c_maxlen_out) &
+ BIND(C,NAME='h5pget_fapl_multi_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map
+ INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: memb_name
+ REAL, DIMENSION(*), INTENT(OUT) :: memb_addr
+ INTEGER, DIMENSION(*) :: lenm
+ INTEGER :: maxlen
+ INTEGER :: c_maxlen_out
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_fapl_multi_c
+ END INTERFACE
+
+ maxlen = LEN(memb_name(1))
+ DO i=1, H5FD_MEM_NTYPES_F
+ lenm(i) = LEN_TRIM(memb_name(i))
+ ENDDO
+ hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out)
+
+ relax = .TRUE.
+ IF(flag .EQ. 0) relax = .FALSE.
+ IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out
+ END SUBROUTINE h5pget_fapl_multi_f
+!****s* H5P/h5pset_szip_f
+! NAME
+! h5pset_szip_f
+!
+! PURPOSE
+! Sets up use of szip compression
+!
+! INPUTS
+!
+! prp_id - dataset creation property list identifier
+! options_mask - A bit-mask conveying the desired SZIP options.
+! Current valid values in Fortran are:
+! H5_SZIP_EC_OM_F
+! H5_SZIP_NN_OM_F
+! pixels_per_block - szip parameters
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_szip_f(prp_id, options_mask, pixels_per_block, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ INTEGER, INTENT(IN) :: options_mask ! A bit-mask conveying the desired
+ ! SZIP options
+ ! Current valid values in Fortran are:
+ ! H5_SZIP_EC_OM_F
+ ! H5_SZIP_NN_OM_F
+ INTEGER, INTENT(IN) :: pixels_per_block ! The number of pixels or data elements
+ ! in each data block
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_szip_c(prp_id, options_mask, pixels_per_block) &
+ BIND(C,NAME='h5pset_szip_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: options_mask
+ INTEGER, INTENT(IN) :: pixels_per_block
+ END FUNCTION h5pset_szip_c
+ END INTERFACE
+ hdferr = h5pset_szip_c(prp_id, options_mask, pixels_per_block)
+
+ END SUBROUTINE h5pset_szip_f
+
+!****s* H5P/h5pall_filters_avail_f
+! NAME
+! h5pall_filters_avail_f
+!
+! PURPOSE
+! Checks if all filters set in the dataset creation
+! property list are available
+!
+! INPUTS
+!
+! prp_id - data creation property list identifier
+! OUTPUTS
+!
+! flag - .TRUE. if all filters are available
+! .FALSE. otherwise
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
+ ! list identifier
+ LOGICAL, INTENT(OUT) :: flag ! .TRUE. if all filters are available
+ ! .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: status
+
+ INTERFACE
+ INTEGER FUNCTION h5pall_filters_avail_c(prp_id, status) &
+ BIND(C,NAME='h5pall_filters_avail_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: status
+ END FUNCTION h5pall_filters_avail_c
+ END INTERFACE
+ flag = .TRUE.
+ hdferr = h5pall_filters_avail_c(prp_id, status)
+ IF (status .EQ. 0 ) flag = .FALSE.
+
+ END SUBROUTINE h5pall_filters_avail_f
+
+!****s* H5P/h5pget_filter_by_id_f
+! NAME
+! h5pget_filter_by_id_f
+!
+! PURPOSE
+! Returns information about a filter in a pipeline
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! OUTPUTS
+!
+! filter_id - filter identifier
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter_id ! Filter identifier
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts ! Number of elements in cd_values.
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values ! Auxiliary data for the filter.
+ INTEGER, INTENT(OUT) :: flags ! Bit vector specifying certain general
+ ! properties of the filter.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen ! Anticipated number of characters in name.
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Name of the filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name) &
+ BIND(C,NAME='h5pget_filter_by_id_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_id
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name
+ END FUNCTION h5pget_filter_by_id_c
+ END INTERFACE
+
+ hdferr = h5pget_filter_by_id_c(prp_id, filter_id, flags, cd_nelmts, &
+ cd_values, namelen, name)
+ END SUBROUTINE h5pget_filter_by_id_f
+
+!****s* H5P/h5pmodify_filter_f
+! NAME
+! h5pmodify_filter_f
+!
+! PURPOSE
+! Adds a filter to the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be modified
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Elena Pourmal
+! April 10 2003
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pmodify_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be modified
+ INTEGER, INTENT(IN) :: flags ! Bit vector specifying certain general
+ ! properties of the filter
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts ! Number of elements in cd_values
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values ! Auxiliary data for the filter
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values) &
+ BIND(C,NAME='h5pmodify_filter_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pmodify_filter_c
+ END INTERFACE
+
+ hdferr = h5pmodify_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
+ END SUBROUTINE h5pmodify_filter_f
+
+!****s* H5P/h5premove_filter_f
+! NAME
+! h5premove_filter_f
+!
+! PURPOSE
+! Delete one or more filters from the filter pipeline.
+!
+! INPUTS
+!
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be removed
+! OUTPUTS
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! Quincey Koziol
+! January 27 2004
+!
+! Fortran90 Interface:
+ SUBROUTINE h5premove_filter_f(prp_id, filter, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property list
+ ! identifier
+ INTEGER, INTENT(IN) :: filter ! Filter to be removed
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5premove_filter_c(prp_id, filter) &
+ BIND(C,NAME='h5premove_filter_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ END FUNCTION h5premove_filter_c
+ END INTERFACE
+
+ hdferr = h5premove_filter_c(prp_id, filter)
+ END SUBROUTINE h5premove_filter_f
+
+!****s* H5P/H5Pget_attr_phase_change_f
+! NAME
+! H5Pget_attr_phase_change_f
+!
+! PURPOSE
+! Retrieves attribute storage phase change thresholds
+!
+! INPUTS
+!
+! ocpl_id - Object (dataset or group) creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! (Default: 8)
+! min_dense - Minimum number of attributes to be stored in dense storage
+! (Default: 6)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
+ INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ ! (Default: 8)
+ INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ ! (Default: 6)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_attr_phase_change_c(ocpl_id, max_compact, min_dense) &
+ BIND(C,NAME='h5pget_attr_phase_change_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id
+ INTEGER, INTENT(OUT) :: max_compact
+ INTEGER, INTENT(OUT) :: min_dense
+
+ END FUNCTION h5pget_attr_phase_change_c
+ END INTERFACE
+
+ hdferr = h5pget_attr_phase_change_c(ocpl_id, max_compact, min_dense)
+ END SUBROUTINE h5pget_attr_phase_change_f
+
+!****s* H5P/H5Pset_attr_creation_order_f
+! NAME
+! H5Pset_attr_creation_order_f
+!
+! PURPOSE
+! Sets tracking and indexing of attribute creation order
+!
+! INPUTS
+!
+! ocpl_id - Object creation property list identifier
+! crt_order_flags - Flags specifying whether to track and index attribute creation order
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_attr_creation_order_f(ocpl_id, crt_order_flags , hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
+ INTEGER, INTENT(IN) :: crt_order_flags ! Flags specifying whether to track and index attribute creation order
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION H5Pset_attr_creation_order_c(ocpl_id, crt_order_flags) &
+ BIND(C,NAME='h5pset_attr_creation_order_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id
+ INTEGER, INTENT(IN) :: crt_order_flags
+
+ END FUNCTION H5Pset_attr_creation_order_c
+ END INTERFACE
+
+ hdferr = H5Pset_attr_creation_order_c(ocpl_id, crt_order_flags)
+ END SUBROUTINE h5pset_attr_creation_order_f
+
+!****s* H5P/H5Pset_shared_mesg_nindexes_f
+! NAME
+! H5Pset_shared_mesg_nindexes_f
+!
+! PURPOSE
+! Sets number of shared object header message indexes
+!
+! INPUTS
+!
+! plist_id - file creation property list
+! nindexes - Number of shared object header message indexes to be available in files created with this property list
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_shared_mesg_nindexes_f( plist_id, nindexes, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list
+ INTEGER, INTENT(IN) :: nindexes ! Number of shared object header message indexes
+ ! available in files created WITH this property list
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_shared_mesg_nindexes_c(plist_id, nindexes) &
+ BIND(C,NAME='h5pset_shared_mesg_nindexes_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: nindexes
+
+ END FUNCTION H5pset_shared_mesg_nindexes_c
+ END INTERFACE
+
+ hdferr = h5pset_shared_mesg_nindexes_c(plist_id, nindexes)
+
+ END SUBROUTINE h5pset_shared_mesg_nindexes_f
+
+!****s* H5P/H5Pset_shared_mesg_index_f
+! NAME
+! H5Pset_shared_mesg_index_f
+!
+! PURPOSE
+! Configures the specified shared object header message index
+!
+! INPUTS
+!
+! fcpl_id - File creation property list identifier.
+! index_num - Index being configured.
+! mesg_type_flags - Types of messages that should be stored in this index.
+! min_mesg_size - Minimum message size.
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_shared_mesg_index_f(fcpl_id, index_num, mesg_type_flags, min_mesg_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fcpl_id ! file creation property list
+ INTEGER, INTENT(IN) :: index_num ! Index being configured.
+ INTEGER, INTENT(IN) :: mesg_type_flags ! Types of messages that should be stored in this index.
+ INTEGER, INTENT(IN) :: min_mesg_size ! Minimum message size.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_shared_mesg_index_c(fcpl_id, index_num, mesg_type_flags, min_mesg_size) &
+ BIND(C,NAME='h5pset_shared_mesg_index_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fcpl_id
+ INTEGER, INTENT(IN) :: index_num
+ INTEGER, INTENT(IN) :: mesg_type_flags
+ INTEGER, INTENT(IN) :: min_mesg_size
+ END FUNCTION H5pset_shared_mesg_index_c
+ END INTERFACE
+
+ hdferr = h5pset_shared_mesg_index_c(fcpl_id, index_num, mesg_type_flags, min_mesg_size)
+
+ END SUBROUTINE h5pset_shared_mesg_index_f
+
+!****s* H5P/H5Pget_attr_creation_order_f
+! NAME
+! H5Pget_attr_creation_order_f
+!
+! PURPOSE
+! Retrieves tracking and indexing settings for attribute creation order
+!
+! INPUTS
+!
+! ocpl_id - Object (group or dataset) creation property list identifier
+!
+! OUTPUTS
+!
+! crt_order_flags - Flags specifying whether to track and index attribute creation order
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_attr_creation_order_f(ocpl_id, crt_order_flags, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (group or dataset) creation property list identifier
+ INTEGER, INTENT(OUT) :: crt_order_flags ! Flags specifying whether to track and index attribute creation order
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_attr_creation_order_c(ocpl_id, crt_order_flags) &
+ BIND(C,NAME='h5pget_attr_creation_order_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id
+ INTEGER, INTENT(OUT) :: crt_order_flags
+ END FUNCTION H5pget_attr_creation_order_c
+ END INTERFACE
+
+ hdferr = h5pget_attr_creation_order_c(ocpl_id, crt_order_flags)
+
+ END SUBROUTINE h5pget_attr_creation_order_f
+
+!****s* H5P/H5Pset_libver_bounds_f
+! NAME
+! H5Pset_libver_bounds_f
+!
+! PURPOSE
+! Sets bounds on library versions, and indirectly format versions, to be used when creating objects.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! low - The earliest version of the library that will be used for writing objects.
+! high - The latest version of the library that will be used for writing objects.
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_libver_bounds_f(fapl_id, low, high, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
+ INTEGER, INTENT(IN) :: low ! The earliest version of the library that will be used for writing objects.
+ ! Currently, low must be one of two pre-defined values:
+ ! HDF_LIBVER_EARLIEST_F
+ ! HDF_LIBVER_LATEST_F
+ INTEGER, INTENT(IN) :: high ! The latest version of the library that will be used for writing objects.
+ ! Currently, low must set to the pre-defined value:
+ ! HDF_LIBVER_LATEST_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_libver_bounds_c(fapl_id, low, high) &
+ BIND(C,NAME='h5pset_libver_bounds_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER, INTENT(IN) :: low
+ INTEGER, INTENT(IN) :: high
+
+ END FUNCTION H5pset_libver_bounds_c
+ END INTERFACE
+
+ hdferr = h5pset_libver_bounds_c(fapl_id, low, high)
+
+ END SUBROUTINE h5pset_libver_bounds_f
+
+!****s* H5P/H5Pset_link_creation_order_f
+! NAME
+! H5Pset_link_creation_order_f
+!
+! PURPOSE
+! Sets creation order tracking and indexing for links in a group.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! crt_order_flags - Creation order flag(s)
+!
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 18, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! File access property list identifier
+ INTEGER, INTENT(IN) :: crt_order_flags ! Creation order flag(s)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_link_creation_order_c(gcpl_id, crt_order_flags) &
+ BIND(C,NAME='h5pset_link_creation_order_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(IN) :: crt_order_flags
+
+ END FUNCTION H5pset_link_creation_order_c
+ END INTERFACE
+
+ hdferr = h5pset_link_creation_order_c(gcpl_id, crt_order_flags)
+
+ END SUBROUTINE h5pset_link_creation_order_f
+
+!****s* H5P/H5Pget_link_phase_change_f
+! NAME
+! H5Pget_link_phase_change_f
+!
+! PURPOSE
+! Queries the settings for conversion between compact and dense groups.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! min_dense - Minimum number of attributes to be stored in dense storage
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 20, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER, INTENT(OUT) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ INTEGER, INTENT(OUT) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_link_phase_change_c(gcpl_id, max_compact, min_dense) &
+ BIND(C,NAME='h5pget_link_phase_change_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(OUT) :: max_compact
+ INTEGER, INTENT(OUT) :: min_dense
+
+ END FUNCTION h5pget_link_phase_change_c
+ END INTERFACE
+
+ hdferr = h5pget_link_phase_change_c(gcpl_id, max_compact, min_dense)
+ END SUBROUTINE h5pget_link_phase_change_f
+
+!****s* H5P/H5Pget_obj_track_times_f
+! NAME
+! H5Pget_obj_track_times_f
+!
+! PURPOSE
+! Returns whether times are tracked for an object.
+!
+! INPUTS
+!
+! plist_id - property list id
+! flag - object timestamp setting
+! .TRUE.,.FALSE.
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_obj_track_times_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
+ ! list identifier
+ LOGICAL, INTENT(OUT) :: flag ! Object timestamp setting
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: status
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_obj_track_times_c(plist_id, status) &
+ BIND(C,NAME='h5pget_obj_track_times_c')
+ IMPORT :: HID_T
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
+ INTEGER, INTENT(OUT) :: status
+ END FUNCTION h5pget_obj_track_times_c
+ END INTERFACE
+ flag = .TRUE.
+ hdferr = h5pget_obj_track_times_c(plist_id, status)
+ IF(status.EQ.0) flag = .FALSE.
+
+ END SUBROUTINE h5pget_obj_track_times_f
+
+!****s* H5P/H5Pset_obj_track_times_f
+! NAME
+! H5Pset_obj_track_times_f
+!
+! PURPOSE
+! Set whether the birth, access, modification & change times for
+! an object are stored.
+!
+! Birth time is the time the object was created. Access time is
+! the last time that metadata or raw data was read from this
+! object. Modification time is the last time the data for
+! this object was changed (either writing raw data to a dataset
+! or inserting/modifying/deleting a link in a group). Change
+! time is the last time the metadata for this object was written
+! (adding/modifying/deleting an attribute on an object, extending
+! the size of a dataset, etc).
+!
+! If these times are not tracked, they will be reported as
+! 12:00 AM UDT, Jan. 1, 1970 (i.e. 0 seconds past the UNIX
+! epoch) when queried.
+!
+! INPUTS
+!
+! plist_id - property list id
+! flag - object timestamp setting
+! .TRUE.,.FALSE.
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_obj_track_times_f(plist_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
+ ! list identifier
+ LOGICAL, INTENT(IN) :: flag ! Object timestamp setting
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: status
+!
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_obj_track_times_c(plist_id, status) &
+ BIND(C,NAME='h5pset_obj_track_times_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! File creation property list identifier
+ INTEGER, INTENT(IN) :: status
+ END FUNCTION h5pset_obj_track_times_c
+ END INTERFACE
+
+ status = 0
+ IF(flag) status = 1
+
+ hdferr = h5pset_obj_track_times_c(plist_id, status)
+
+ END SUBROUTINE h5pset_obj_track_times_f
+
+!****s* H5P/H5Pset_create_inter_group_f
+! NAME
+! H5Pset_create_inter_group_f
+!
+! PURPOSE
+! Specifies in property list whether to create missing intermediate groups.
+!
+! INPUTS
+!
+! lcpl_id - Link creation property list identifier
+! crt_intermed_group - crt_intermed_group specifying whether
+! to create intermediate groups upon the creation
+! of an object
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 22, 2008
+!
+! HISTORY
+! The long subroutine name (>31) on older f90 compilers causes problems
+! so had to shorten the name
+! Fortran90 Interface:
+ SUBROUTINE h5pset_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lcpl_id ! Link creation property list identifier
+ INTEGER, INTENT(IN) :: crt_intermed_group ! specifying whether to create intermediate groups
+ ! upon the creation of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_create_inter_group_c(lcpl_id, crt_intermed_group) &
+ BIND(C,NAME='h5pset_create_inter_group_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lcpl_id
+ INTEGER, INTENT(IN) :: crt_intermed_group
+ END FUNCTION h5pset_create_inter_group_c
+ END INTERFACE
+
+ hdferr = h5pset_create_inter_group_c(lcpl_id, crt_intermed_group)
+
+ END SUBROUTINE h5pset_create_inter_group_f
+
+!****s* H5P/H5Pget_link_creation_order_f
+! NAME
+! H5Pget_link_creation_order_f
+!
+! PURPOSE
+! Queries whether link creation order is tracked and/or indexed in a group.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+!
+! OUTPUTS
+!
+! crt_order_flags - Creation order flag(s)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER, INTENT(OUT) :: crt_order_flags ! Creation order flag(s)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_link_creation_order_c(gcpl_id, crt_order_flags) &
+ BIND(C,NAME='h5pget_link_creation_order_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(OUT) :: crt_order_flags
+
+ END FUNCTION H5pget_link_creation_order_c
+ END INTERFACE
+
+ hdferr = h5pget_link_creation_order_c(gcpl_id, crt_order_flags)
+
+ END SUBROUTINE h5pget_link_creation_order_f
+
+!****s* H5P/H5Pset_char_encoding_f
+! NAME
+! H5Pset_char_encoding_f
+!
+! PURPOSE
+! Sets the character encoding used to encode a string.
+!
+! INPUTS
+!
+! plist_id - Property list identifier
+! encoding - Valid values for encoding are:
+! H5T_CSET_ASCII_F -> US ASCII
+! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+!
+! OUTPUTS
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_char_encoding_f(plist_id, encoding, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
+ INTEGER, INTENT(IN) :: encoding ! String encoding character set:
+ ! H5T_CSET_ASCII_F -> US ASCII
+ ! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_char_encoding_c(plist_id, encoding) &
+ BIND(C,NAME='h5pset_char_encoding_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: encoding
+
+ END FUNCTION H5pset_char_encoding_c
+ END INTERFACE
+
+ hdferr = h5pset_char_encoding_c(plist_id, encoding)
+
+ END SUBROUTINE h5pset_char_encoding_f
+
+!****s* H5P/H5Pget_char_encoding_f
+! NAME
+! H5Pget_char_encoding_f
+!
+! PURPOSE
+! Retrieves the character encoding used to create a string
+!
+! INPUTS
+!
+! plist_id - Property list identifier
+!
+! OUTPUTS
+!
+! encoding - Valid values for encoding are:
+! H5T_CSET_ASCII_F -> US ASCII
+! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_char_encoding_f(plist_id, encoding, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
+
+ INTEGER, INTENT(OUT) :: encoding ! Valid values for encoding are:
+ ! H5T_CSET_ASCII_F -> US ASCII
+ ! H5T_CSET_UTF8_F -> UTF-8 Unicode encoding
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_char_encoding_c(plist_id, encoding) &
+ BIND(C,NAME='h5pget_char_encoding_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(OUT) :: encoding
+
+ END FUNCTION H5pget_char_encoding_c
+ END INTERFACE
+
+ hdferr = h5pget_char_encoding_c(plist_id, encoding)
+
+ END SUBROUTINE h5pget_char_encoding_f
+
+!****s* H5P/h5pset_copy_object_f
+! NAME
+! h5pset_copy_object_f
+!
+! PURPOSE
+! Sets properties to be used when an object is copied.
+!
+! INPUTS
+!
+! ocp_plist_id - Object copy property list identifier
+! copy_options - Copy option(s) to be set
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_copy_object_f(ocp_plist_id, copy_options, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocp_plist_id ! Object copy property list identifier
+ INTEGER, INTENT(IN) :: copy_options ! Copy option(s) to be set, valid options are:
+ ! H5O_COPY_SHALLOW_HIERARCHY_F
+ ! H5O_COPY_EXPAND_SOFT_LINK_F
+ ! H5O_COPY_EXPAND_EXT_LINK_F
+ ! H5O_COPY_EXPAND_REFERENCE_F
+ ! H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_copy_object_c(ocp_plist_id, copy_options) &
+ BIND(C,NAME='h5pset_copy_object_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocp_plist_id
+ INTEGER, INTENT(IN) :: copy_options
+ END FUNCTION h5pset_copy_object_c
+ END INTERFACE
+ hdferr = h5pset_copy_object_c(ocp_plist_id, copy_options)
+ END SUBROUTINE h5pset_copy_object_f
+
+!****s* H5P/h5pget_copy_object_f
+! NAME
+! h5pget_copy_object_f
+!
+! PURPOSE
+! Retrieves the properties to be used when an object is copied.
+!
+! INPUTS
+!
+! ocp_plist_id - Object copy property list identifier
+! OUTPUTS
+!
+! copy_options - Copy option(s) to be get
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 3, 2008
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_copy_object_f(ocp_plist_id, copy_options, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocp_plist_id ! Object copy property list identifier
+ INTEGER, INTENT(OUT) :: copy_options ! Valid copy options returned are:
+ ! H5O_COPY_SHALLOW_HIERARCHY_F
+ ! H5O_COPY_EXPAND_SOFT_LINK_F
+ ! H5O_COPY_EXPAND_EXT_LINK_F
+ ! H5O_COPY_EXPAND_REFERENCE_F
+ ! H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_copy_object_c(ocp_plist_id, copy_options) &
+ BIND(C,NAME='h5pget_copy_object_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocp_plist_id
+ INTEGER, INTENT(OUT) :: copy_options
+ END FUNCTION h5pget_copy_object_c
+ END INTERFACE
+ hdferr = h5pget_copy_object_c(ocp_plist_id, copy_options)
+ END SUBROUTINE h5pget_copy_object_f
+
+!****s* H5P/h5pget_data_transform_f
+! NAME
+! h5pget_data_transform_f
+!
+! PURPOSE
+! Retrieves a data transform expression.
+!
+! INPUTS
+!
+! plist_id - Identifier of the property list or class
+! OUTPUTS
+!
+! expression - buffer to hold transform expression
+! hdferr - Error code
+! Success: Actual lenght of the expression
+! If provided buffer "expression" is
+! smaller, than expression will be
+! truncated to fit into
+! provided user buffer
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 19, 2008
+!
+! HISTORY
+!
+! Should hdferr return just 0 or 1 and add another arguement for the size?
+! Fortran90 Interface:
+SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
+ CHARACTER(LEN=*), INTENT(OUT) :: expression ! Buffer to hold transform expression
+ INTEGER(SIZE_T), INTENT(OUT), OPTIONAL :: size ! Registered size of the transform expression
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: expression_len
+ INTEGER(SIZE_T) :: size_default
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_data_transform_c(plist_id, expression, expression_len, size_default) &
+ BIND(C,NAME='h5pget_data_transform_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: expression
+ INTEGER(SIZE_T) :: size_default
+ INTEGER :: expression_len
+ END FUNCTION h5pget_data_transform_c
+ END INTERFACE
+
+ size_default = 0
+ expression_len = LEN(expression)
+
+ hdferr = h5pget_data_transform_c(plist_id, expression, expression_len, size_default)
+
+ IF(present(size)) size = size_default
+
+ END SUBROUTINE h5pget_data_transform_f
+
+!****s* H5P/h5pset_data_transform_f
+! NAME
+! h5pset_data_transform_f
+!
+! PURPOSE
+! Sets a data transform expression.
+!
+! INPUTS
+!
+! plist_id - Identifier of the property list or class
+! expression - Buffer to hold transform expression
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 19, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_data_transform_f(plist_id, expression, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id ! Identifier of the property list or class
+ CHARACTER(LEN=*), INTENT(IN) :: expression ! Buffer to hold transform expression
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: expression_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_data_transform_c(plist_id, expression, expression_len) &
+ BIND(C,NAME='h5pset_data_transform_c')
+ IMPORT :: C_CHAR
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: expression
+ INTEGER :: expression_len
+ END FUNCTION h5pset_data_transform_c
+ END INTERFACE
+
+ expression_len = LEN(expression)
+ hdferr = h5pset_data_transform_c(plist_id, expression, expression_len)
+
+ END SUBROUTINE h5pset_data_transform_f
+
+!****s* H5P/H5Pget_local_heap_size_hint_f
+! NAME
+! H5Pget_local_heap_size_hint_f
+!
+! PURPOSE
+! Queries the local heap size hint for original-style groups.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
+!
+! size_hint - Hint for size of local heap
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: size_hint ! Hint for size of local heap
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_local_heap_size_hint_c(gcpl_id, size_hint) &
+ BIND(C,NAME='h5pget_local_heap_size_hint_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size_hint
+ END FUNCTION H5Pget_local_heap_size_hint_c
+ END INTERFACE
+
+ hdferr = H5Pget_local_heap_size_hint_c(gcpl_id, size_hint)
+
+ END SUBROUTINE h5pget_local_heap_size_hint_f
+
+!****s* H5P/H5Pget_est_link_info_f
+! NAME
+! H5Pget_est_link_info_f
+!
+! PURPOSE
+! Queries data required to estimate required local heap or object header size.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! OUTPUTS
+!
+! est_num_entries - Estimated number of links to be inserted into group
+! est_name_len - Estimated average length of link names
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER, INTENT(OUT) :: est_num_entries ! Estimated number of links to be inserted into group
+ INTEGER, INTENT(OUT) :: est_name_len ! Estimated average length of link names
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_est_link_info_c(gcpl_id, est_num_entries, est_name_len) &
+ BIND(C,NAME='h5pget_est_link_info_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(OUT) :: est_num_entries
+ INTEGER, INTENT(OUT) :: est_name_len
+ END FUNCTION h5pget_est_link_info_c
+ END INTERFACE
+
+ hdferr = h5pget_est_link_info_c(gcpl_id, est_num_entries, est_name_len)
+
+ END SUBROUTINE h5pget_est_link_info_f
+
+!****s* H5P/H5Pset_local_heap_size_hint_f
+! NAME
+! H5Pset_local_heap_size_hint_f
+!
+! PURPOSE
+! Sets the local heap size hint for original-style groups.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! size_hint - Hint for size of local heap
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: size_hint ! Hint for size of local heap
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_local_heap_size_hint_c(gcpl_id, size_hint) &
+ BIND(C,NAME='h5pset_local_heap_size_hint_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER(SIZE_T), INTENT(IN) :: size_hint
+ END FUNCTION h5pset_local_heap_size_hint_c
+ END INTERFACE
+
+ hdferr = H5Pset_local_heap_size_hint_c(gcpl_id, size_hint)
+
+ END SUBROUTINE h5pset_local_heap_size_hint_f
+
+!****s* H5P/h5pset_est_link_info_f
+! NAME
+! h5pset_est_link_info_f
+!
+! PURPOSE
+! Sets estimated number of links and length of link names in a group.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! est_num_entries - Estimated number of links to be inserted into group
+! est_name_len - Estimated average length of link names
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER, INTENT(IN) :: est_num_entries ! Estimated number of links to be inserted into group
+ INTEGER, INTENT(IN) :: est_name_len ! Estimated average length of link names
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_est_link_info_c(gcpl_id, est_num_entries, est_name_len) &
+ BIND(C,NAME='h5pset_est_link_info_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(IN) :: est_num_entries
+ INTEGER, INTENT(IN) :: est_name_len
+ END FUNCTION h5pset_est_link_info_c
+ END INTERFACE
+
+ hdferr = H5Pset_est_link_info_c(gcpl_id, est_num_entries, est_name_len)
+
+ END SUBROUTINE h5pset_est_link_info_f
+
+!****s* H5P/h5pset_link_phase_change_f
+! NAME
+! h5pset_link_phase_change_f
+!
+! PURPOSE
+! Sets the parameters for conversion between compact and dense groups.
+!
+! INPUTS
+!
+! gcpl_id - Group creation property list identifier
+! max_compact - Maximum number of attributes to be stored in compact storage
+! min_dense - Minimum number of attributes to be stored in dense storage
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+SUBROUTINE h5pset_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
+ INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_link_phase_change_c(gcpl_id, max_compact, min_dense) &
+ BIND(C,NAME='h5pset_link_phase_change_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: gcpl_id
+ INTEGER, INTENT(IN) :: max_compact
+ INTEGER, INTENT(IN) :: min_dense
+ END FUNCTION h5pset_link_phase_change_c
+ END INTERFACE
+
+ hdferr = h5pset_link_phase_change_c(gcpl_id, max_compact, min_dense)
+ END SUBROUTINE h5pset_link_phase_change_f
+
+!****s* H5P/h5pset_fapl_direct_f
+! NAME
+! h5pset_fapl_direct_f
+!
+! PURPOSE
+! Sets up use of the direct I/O driver.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! alignment - Required memory alignment boundary
+! block_size - File system block size
+! cbuf_size - Copy buffer size
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: alignment ! Required memory alignment boundary!
+ INTEGER(SIZE_T), INTENT(IN) :: block_size ! File system block size
+ INTEGER(SIZE_T), INTENT(IN) :: cbuf_size ! Copy buffer size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) &
+ BIND(C,NAME='h5pset_fapl_direct_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER(SIZE_T), INTENT(IN) :: alignment
+ INTEGER(SIZE_T), INTENT(IN) :: block_size
+ INTEGER(SIZE_T), INTENT(IN) :: cbuf_size
+ END FUNCTION h5pset_fapl_direct_c
+ END INTERFACE
+
+ hdferr = H5Pset_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size)
+ END SUBROUTINE h5pset_fapl_direct_f
+
+!****s* H5P/h5pget_fapl_direct_f
+! NAME
+! h5pget_fapl_direct_f
+!
+! PURPOSE
+! Gets up use of the direct I/O driver.
+!
+! INPUTS
+!
+! fapl_id - File access property list identifier
+! OUTPUTS
+!
+! alignment - Required memory alignment boundary
+! block_size - File system block size
+! cbuf_size - Copy buffer size
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: alignment ! Required memory alignment boundary!
+ INTEGER(SIZE_T), INTENT(OUT) :: block_size ! File system block size
+ INTEGER(SIZE_T), INTENT(OUT) :: cbuf_size ! Copy buffer size
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size) &
+ BIND(C,NAME='h5pget_fapl_direct_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ INTEGER(SIZE_T), INTENT(OUT) :: alignment
+ INTEGER(SIZE_T), INTENT(OUT) :: block_size
+ INTEGER(SIZE_T), INTENT(OUT) :: cbuf_size
+ END FUNCTION h5pget_fapl_direct_c
+ END INTERFACE
+
+ hdferr = H5Pget_fapl_direct_c(fapl_id, alignment, block_size, cbuf_size)
+ END SUBROUTINE h5pget_fapl_direct_f
+
+!****s* H5P/H5Pset_attr_phase_change_f
+! NAME
+! H5Pset_attr_phase_change_f
+!
+! PURPOSE
+! Sets attribute storage phase change thresholds.
+!
+! INPUTS
+!
+! ocpl_id - Object (dataset or group) creation property list identifier
+! OUTPUTS
+!
+! max_compact - Maximum number of attributes to be stored in compact storage
+! (Default: 8)
+! min_dense - Minimum number of attributes to be stored in dense storage
+! (Default: 6)
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! Fortran90 Interface:
+SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id ! Object (dataset or group) creation property list identifier
+ INTEGER, INTENT(IN) :: max_compact ! Maximum number of attributes to be stored in compact storage
+ !(Default: 8)
+ INTEGER, INTENT(IN) :: min_dense ! Minimum number of attributes to be stored in dense storage
+ ! (Default: 6)
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_attr_phase_change_c(ocpl_id, max_compact, min_dense) &
+ BIND(C,NAME='h5pset_attr_phase_change_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: ocpl_id
+ INTEGER, INTENT(IN) :: max_compact
+ INTEGER, INTENT(IN) :: min_dense
+
+ END FUNCTION h5pset_attr_phase_change_c
+ END INTERFACE
+
+ hdferr = h5pset_attr_phase_change_c(ocpl_id, max_compact, min_dense)
+
+
+ END SUBROUTINE h5pset_attr_phase_change_f
+
+!****s* H5P/H5Pset_nbit_f
+! NAME
+! H5Pset_nbit_f
+!
+! PURPOSE
+! Sets up the use of the N-Bit filter.
+!
+! Inputs:
+! plist_id - Dataset creation property list identifier.
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_nbit_f(plist_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION H5Pset_nbit_c(plist_id) &
+ BIND(C,NAME='h5pset_nbit_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ END FUNCTION H5Pset_nbit_c
+ END INTERFACE
+
+ hdferr = H5Pset_nbit_c(plist_id)
+
+ END SUBROUTINE h5pset_nbit_f
+
+!****s* H5P/h5pset_scaleoffset_f
+! NAME
+! h5pset_scaleoffset_f
+!
+! PURPOSE
+! Sets up the use of the scale-offset filter.
+!
+! Inputs:
+! plist_id - Dataset creation property list identifier.
+! scale_type - Flag indicating compression method. Valid values:
+! H5Z_SO_FLOAT_DSCALE_F
+! H5Z_SO_FLOAT_ESCALE_F
+! H5Z_SO_INT_F
+!
+! scale_factor - Parameter related to scale.
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 21, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_scaleoffset_f(plist_id, scale_type, scale_factor, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER , INTENT(IN) :: scale_type
+ INTEGER , INTENT(IN) :: scale_factor
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_scaleoffset_c(plist_id, scale_type, scale_factor) &
+ BIND(C,NAME='h5pset_scaleoffset_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist_id
+ INTEGER, INTENT(IN) :: scale_type
+ INTEGER, INTENT(IN) :: scale_factor
+ END FUNCTION h5pset_scaleoffset_c
+ END INTERFACE
+
+ hdferr = H5Pset_scaleoffset_c(plist_id, scale_type, scale_factor)
+
+ END SUBROUTINE h5pset_scaleoffset_f
+
+!****s* H5P/h5pset_nlinks_f
+! NAME
+! h5pset_nlinks_f
+!
+! PURPOSE
+! Sets maximum number of soft or user-defined link traversals.
+!
+! INPUTS
+!
+! lapl_id - File access property list identifier
+! nlinks - Maximum number of links to traverse
+!
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 24, 2008
+!
+! HISTORY
+!
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_nlinks_f(lapl_id, nlinks, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(IN) :: nlinks ! Maximum number of links to traverse
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_nlinks_c(lapl_id, nlinks) &
+ BIND(C,NAME='h5pset_nlinks_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lapl_id
+ INTEGER(SIZE_T), INTENT(IN) :: nlinks
+ END FUNCTION h5pset_nlinks_c
+ END INTERFACE
+
+ hdferr = h5pset_nlinks_c(lapl_id, nlinks)
+
+ END SUBROUTINE h5pset_nlinks_f
+
+!****s* H5P/h5pget_nlinks_f
+! NAME
+! h5pget_nlinks_f
+!
+! PURPOSE
+! Gets maximum number of soft or user-defined link traversals.
+!
+! INPUTS
+!
+! lapl_id - File access property list identifier
+! nlinks - Maximum number of links to traverse
+!
+! OUTPUTS
+!
+! hdferr - error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! March 24, 2008
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_nlinks_f(lapl_id, nlinks, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lapl_id ! File access property list identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: nlinks ! Maximum number of links to traverse
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_nlinks_c(lapl_id, nlinks) &
+ BIND(C,NAME='h5pget_nlinks_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lapl_id
+ INTEGER(SIZE_T), INTENT(OUT) :: nlinks
+ END FUNCTION h5pget_nlinks_c
+ END INTERFACE
+
+ hdferr = h5pget_nlinks_c(lapl_id, nlinks)
+
+ END SUBROUTINE h5pget_nlinks_f
+
+!****s* H5P/H5Pget_create_inter_group_f
+! NAME
+! H5Pget_create_inter_group_f
+!
+! PURPOSE
+! Determines whether property is set to enable creating missing intermediate groups.
+!
+! INPUTS
+!
+! lcpl_id - Link creation property list identifier
+! crt_intermed_group - Specifying whether to create intermediate groups upon
+! the creation of an object
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 4, 2008
+!
+! HISTORY
+!
+! The long subroutine name (>31) on older f90 compilers causes problems
+! so the name was shortened
+! Fortran90 Interface:
+ SUBROUTINE h5pget_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lcpl_id ! Link creation property list identifier
+ INTEGER, INTENT(IN) :: crt_intermed_group ! Flag specifying whether to create intermediate groups
+ ! upon creation of an object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_create_inter_group_c(lcpl_id, crt_intermed_group) &
+ BIND(C,NAME='h5pget_create_inter_group_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: lcpl_id
+ INTEGER, INTENT(IN) :: crt_intermed_group
+ END FUNCTION h5pget_create_inter_group_c
+ END INTERFACE
+
+ hdferr = h5pget_create_inter_group_c(lcpl_id, crt_intermed_group)
+
+ END SUBROUTINE h5pget_create_inter_group_f
+
+!****s* H5P/H5Pset_chunk_cache_f
+! NAME
+! H5Pset_chunk_cache_f
+!
+! PURPOSE
+! Set the number of objects in the meta data cache and the
+! maximum number of chunks and bytes in the raw data chunk cache.
+! Once set, these values will override the values in the file access
+! property list. Each of these values can be individually unset
+! (or not set at all) by passing the macros:
+! H5D_CHUNK_CACHE_NSLOTS_DFLT_F,
+! H5D_CHUNK_CACHE_NBYTES_DFLT_F, and/or
+! H5D_CHUNK_CACHE_W0_DFLT_F
+! as appropriate.
+!
+! The RDCC_W0 value should be between 0 and 1 inclusive and
+! indicates how much chunks that have been fully read or fully
+! written are favored for preemption. A value of zero means
+! fully read or written chunks are treated no differently than
+! other chunks (the preemption is strictly LRU) while a value
+! of one means fully read chunks are always preempted before
+! other chunks.
+!
+! INPUTS
+!
+! dapl_id - Dataset access property list identifier.
+! rdcc_nslots - The number of chunk slots in the raw data chunk cache for this dataset.
+! rdcc_nbytes - The total size of the raw data chunk cache for this dataset.
+! rdcc_w0 - The chunk preemption policy for this dataset.
+! OUTPUTS
+!
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! HISTORY
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pset_chunk_cache_f(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dapl_id ! Dataset access property list identifier.
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nslots ! The number of chunk slots in the raw data
+ ! chunk cache for this dataset.
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes ! The total size of the raw data chunk cache
+ ! for this dataset.
+ REAL, INTENT(IN) :: rdcc_w0 ! The chunk preemption policy for this dataset.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) &
+ BIND(C,NAME='h5pset_chunk_cache_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dapl_id
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nslots
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
+ REAL, INTENT(IN) :: rdcc_w0
+ END FUNCTION h5pset_chunk_cache_c
+ END INTERFACE
+
+ hdferr = h5pset_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0)
+
+ END SUBROUTINE h5pset_chunk_cache_f
+
+!****s* H5P/H5Pget_chunk_cache_f
+! NAME
+! H5Pget_chunk_cache_f
+!
+! PURPOSE
+! Retrieves the maximum possible number of elements in the meta
+! data cache and the maximum possible number of elements and
+! bytes and the RDCC_W0 value in the raw data chunk cache. Any
+! (or all) arguments may be null pointers in which case the
+! corresponding datum is not returned. If these properties have
+! not been set on this property list, the default values for a
+! file access property list are returned.
+!
+! INPUTS
+!
+! dapl_id - Dataset access property list identifier.
+! OUTPUTS
+!
+! rdcc_nslots - Number of chunk slots in the raw data chunk cache hash table.
+! rdcc_nbytes - Total size of the raw data chunk cache, in bytes.
+! rdcc_w0 - Preemption policy.
+! hdferr - Error code
+! Success: 0
+! Failure: -1
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! HISTORY
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_chunk_cache_f(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dapl_id ! Dataset access property list identifier.
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nslots ! Number of chunk slots in the raw data chunk cache hash table.
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes ! Total size of the raw data chunk cache, in bytes.
+ REAL, INTENT(OUT) :: rdcc_w0 ! Preemption policy.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0) &
+ BIND(C,NAME='h5pget_chunk_cache_c')
+ IMPORT :: HID_T, SIZE_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dapl_id
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nslots
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
+ REAL, INTENT(OUT) :: rdcc_w0
+ END FUNCTION h5pget_chunk_cache_c
+ END INTERFACE
+
+ hdferr = h5pget_chunk_cache_c(dapl_id, rdcc_nslots, rdcc_nbytes, rdcc_w0)
+
+ END SUBROUTINE h5pget_chunk_cache_f
+
+!
+!****s* H5P (F03)/h5pset_fill_value_f_F90
+!
+! NAME
+! h5pset_fill_value_f
+!
+! PURPOSE
+! Sets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+! fillvalue - Fillvalue
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! IMPLICIT NONE
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(VOID) , INTENT(IN) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+
+ SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_integer
+!
+!****s* H5P (F03)/h5pget_fill_value_f_F90
+!
+! NAME
+! h5pget_fill_value_f
+!
+! PURPOSE
+! Gets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+!
+! Outputs:
+! fillvalue - Fillvalue
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pget(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(VOID) , INTENT(OUT) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pget_fill_value_integer
+
+ SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_char
+
+ SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr ! C address
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(fillvalue)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ f_ptr = C_LOC(chr(1)(1:1))
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ DO i = 1, chr_len
+ fillvalue(i:i) = chr(i)
+ ENDDO
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pget_fill_value_char
+!
+!****s* H5P (F03)/h5pset_fill_value_f_F03
+!
+! NAME
+! h5pset_fill_value_f
+!
+! PURPOSE
+! Sets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+! fillvalue - Fillvalue
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(C_PTR) , INTENT(IN) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pset_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pset_fill_value_ptr
+
+!
+!****s* H5P (F03)/h5pget_fill_value_f_F03
+!
+! NAME
+! h5pget_fill_value_f
+!
+! PURPOSE
+! Gets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+!
+! Outputs:
+! fillvalue - Fillvalue
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pget(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pget_fill_value_ptr
+
+!
+!****s* H5P (F03)/h5pset_f_F90
+!
+! NAME
+! h5pset_f
+!
+! PURPOSE
+! Sets a property list value
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to modify
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_integer
+
+ SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pset_char
+!
+!****s* H5P (F03)/h5pget_f_F90
+!
+! NAME
+! h5pget_f
+!
+! PURPOSE
+! Queries the value of a property.
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to get
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE , INTENT(OUT) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pget_integer
+
+ SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+ TYPE(C_PTR) :: f_ptr
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DO i = 1, chr_len
+ value(i:i) = chr(i)
+ ENDDO
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pget_char
+
+!
+!****s* H5P (F03)/h5pset_f_F03
+!
+! NAME
+! h5pset_f
+!
+! PURPOSE
+! Sets a property list value
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to modify
+! value - Pointer to value to set the property to
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pset_ptr(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pset_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pset_ptr
+!
+!****s* H5P (F03)/h5pget_f_F03
+!
+! NAME
+! h5pget_f (F03)
+!
+! PURPOSE
+! Queries the value of a property.
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to get
+! value - Pointer to a location to which to copy the value of of the property
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE(C_PTR) , INTENT(OUT) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pget_ptr(prp_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pget_ptr
+!
+!****s* H5P (F03)/h5pregister_f_F90
+!
+! NAME
+! h5pregister
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! Inputs:
+! class - Property list class identifier
+! name - Name of property to register
+! size - Size of the property value
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: class
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+
+ END SUBROUTINE h5pregister_integer
+
+
+ SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+ DEALLOCATE(chr)
+ END SUBROUTINE h5pregister_char
+!
+!****s* H5P (F03)/h5pregister_f_F03
+!
+! NAME
+! h5pregister (F03)
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! Inputs:
+! class - Property list class identifier
+! name - Name of property to register
+! size - Size of the property value
+! value - Pointer to value to set the property to
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: class
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ TYPE(C_PTR), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, value)
+ END SUBROUTINE h5pregister_ptr
+
+!
+!****s* H5P (F03)/h5pinsert_f_F90
+!
+! NAME
+! h5pinsert (f90)
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! Inputs:
+! plist - Property list class identifier
+! name - Name of property to insert
+! size - Size of the property value
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pinsert_f
+!! INTEGER(HID_T) , INTENT(IN) :: plist
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+ END SUBROUTINE h5pinsert_integer
+
+ SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(c_ptr) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pinsert_char
+
+!
+!****s* H5P (F03)/h5pinsert_f_F03
+!
+! NAME
+! h5pinsert (f03)
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! Inputs:
+! plist - Property list class identifier
+! name - Name of property to insert
+! size - Size of the property value
+! value - Pointer to new value pointer for the property being modified
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pinsert_f
+!! INTEGER(HID_T) , INTENT(IN) :: plist
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pinsert_ptr(plist, name, size, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ TYPE(c_ptr), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_ptr
+!
+!****s* H5P (F03)/h5pcreate_class_f_F03
+!
+! NAME
+! h5pcreate_class_f
+!
+! PURPOSE
+! Create a new property list class
+!
+! Inputs:
+! parent - Parent property list class identifier
+! Possible values include:
+! H5P_ROOT_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! name - Name of property to create
+!
+! Outputs:
+! class - Property list class identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! Optional parameters:
+! H5P_cls_create_func_t (create) - Callback routine called when a property list is created
+! create_data - User pointer to any class creation information needed
+! H5P_cls_copy_func_t (copy) - Callback routine called when a property list is copied
+! copy_data - User pointer to any class copy information needed
+! H5P_cls_close_func_t (close) - Callback routine called when a property list is being closed
+! close_data - User pointer to any class close information needed
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+! Added callback arguments
+! M. Scot Breitenfeld, July 3, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, &
+ copy, copy_data, CLOSE, close_data)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: parent
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T) , INTENT(OUT) :: class
+ INTEGER , INTENT(OUT) :: hdferr
+ TYPE(C_PTR) , OPTIONAL :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR) , OPTIONAL :: create, copy, close
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: create_data_default, copy_data_default, close_data_default
+ TYPE(C_FUNPTR) :: create_default, copy_default, close_default
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, &
+ create, create_data, copy, copy_data, close, close_data) &
+ BIND(C, NAME='h5pcreate_class_c')
+ IMPORT :: c_char, c_ptr, c_funptr
+ IMPORT :: HID_T
+ INTEGER(HID_T), INTENT(IN) :: parent
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(HID_T), INTENT(OUT) :: class
+ TYPE(C_PTR), VALUE :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR), VALUE :: create, copy, close
+ END FUNCTION h5pcreate_class_c
+ END INTERFACE
+ name_len = LEN(name)
+
+ create_default = c_null_funptr !fix:scot
+ create_data_default = c_null_ptr
+ copy_default = c_null_funptr !fix:scot
+ copy_data_default = c_null_ptr
+ close_default = c_null_funptr !fix:scot
+ close_data_default = c_null_ptr
+
+ IF(PRESENT(create)) create_default = create
+ IF(PRESENT(create_data)) create_data_default = create_data
+ IF(PRESENT(copy)) copy_default = copy
+ IF(PRESENT(copy_data)) copy_data_default = copy_data
+ IF(PRESENT(close)) close_default = close
+ IF(PRESENT(close_data)) close_data_default = close_data
+
+ hdferr = h5pcreate_class_c(parent, name , name_len, class, &
+ create_default, create_data_default, &
+ copy_default, copy_data_default, &
+ close_default, close_data_default)
+
+ END SUBROUTINE h5pcreate_class_f
+
+!
+!****s* H5P (F03)/h5pset_file_image_f_F03
+!
+! NAME
+! h5pset_file_image_f
+!
+! PURPOSE
+! Sets an initial file image in a memory buffer.
+!
+! Inputs:
+! fapl_id - File access property list identifier
+! buf_ptr - Pointer to the initial file image,
+! or C_NULL_PTR if no initial file image is desired
+! buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 19, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pset_file_image_f(fapl_id, buf_ptr, buf_len, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: fapl_id
+ TYPE(C_PTR) , INTENT(IN) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) &
+ BIND(C, NAME='h5pset_file_image_c')
+ IMPORT :: c_ptr
+ IMPORT :: HID_T, SIZE_T
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ TYPE(C_PTR), VALUE :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ END FUNCTION h5pset_file_image_c
+ END INTERFACE
+
+ hdferr = h5pset_file_image_c(fapl_id, buf_ptr, buf_len)
+
+ END SUBROUTINE h5pset_file_image_f
+!
+!****s* H5P (F03)/h5pget_file_image_f_F03
+!
+! NAME
+! h5pget_file_image_f
+!
+! PURPOSE
+! Retrieves a copy of the file image designated as the initial content and structure of a file.
+!
+! Inputs:
+! fapl_id - File access property list identifier.
+!
+! Outputs:
+! buf_ptr - Will hold either a C_NULL_PTR or a scalar of type
+! c_loc. If buf_ptr is not C_NULL_PTR, on successful
+! return, buf_ptr shall contain a C pointer to a copy
+! of the initial image provided in the last call to
+! H5Pset_file_image_f for the supplied fapl_id, or
+! buf_ptr shall contain a C_NULL_PTR if there is no
+! initial image set.
+!
+! buf_len_ptr - Contains the value of the buffer parameter for
+! the initial image in the supplied fapl_id. The value
+! will be 0 if no initial image is set.
+!
+!
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 19, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pget_file_image_f(fapl_id, buf_ptr, buf_len_ptr, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: fapl_id
+ TYPE(C_PTR) , INTENT(OUT), DIMENSION(*) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
+ INTEGER , INTENT(OUT) :: hdferr
+
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) &
+ BIND(C, NAME='h5pget_file_image_c')
+ IMPORT :: c_ptr
+ IMPORT :: HID_T, SIZE_T
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
+ END FUNCTION h5pget_file_image_c
+ END INTERFACE
+
+ hdferr = h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr)
+
+ END SUBROUTINE h5pget_file_image_f
+
+! *********************************************************************
+! Fortran interfaces for H5P functions needed by parallel MPI programs.
+! *********************************************************************
+
+#ifdef H5_HAVE_PARALLEL
+!****s* H5P/h5pset_fapl_mpio_f
+!
+! NAME
+! h5pset_fapl_mpio_f
+!
+! PURPOSE
+! Stores MPI IO communicator information to the file
+! access property list.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: comm ! MPI communicator to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(IN) :: info ! MPI info object to be used for file open
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_mpio_c(prp_id, comm, info) &
+ BIND(C,NAME='h5pset_fapl_mpio_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(IN) :: comm
+ INTEGER , INTENT(IN) :: info
+ END FUNCTION h5pset_fapl_mpio_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
+
+ END SUBROUTINE h5pset_fapl_mpio_f
+
+!****s* H5P/h5pget_fapl_mpio_f
+!
+! NAME
+! h5pget_fapl_mpio_f
+!
+! PURPOSE
+! Returns MPI communicator information.
+!
+! INPUTS
+! prp_id - file access property list identifier
+! OUTPUTS
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
+ INTEGER, INTENT(OUT) :: info ! buffer to return info object
+ ! as defined in MPI_FILE_OPEN of MPI-2
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_mpio_c(prp_id, comm, info) &
+ BIND(C,NAME='h5pget_fapl_mpio_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(OUT) :: comm
+ INTEGER , INTENT(OUT) :: info
+ END FUNCTION h5pget_fapl_mpio_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
+
+ END SUBROUTINE h5pget_fapl_mpio_f
+
+!****s* H5P/h5pset_dxpl_mpio_f
+!
+! NAME
+! h5pset_dxpl_mpio_f
+!
+! PURPOSE
+! Sets data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! data_xfer_mode - transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pset_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(IN) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_dxpl_mpio_c(prp_id, data_xfer_mode) &
+ BIND(C,NAME='h5pset_dxpl_mpio_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(IN) :: data_xfer_mode
+ END FUNCTION h5pset_dxpl_mpio_c
+ END INTERFACE
+
+ hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pset_dxpl_mpio_f
+
+!****s* H5P/h5pget_dxpl_mpio_f
+!
+! NAME
+! h5pget_dxpl_mpio_f
+!
+! PURPOSE
+! Returns the data transfer mode.
+!
+! INPUTS
+! prp_id - data transfer property list identifier
+! OUTPUTS
+! data_xfer_mode- transfer mode; possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! November, 2000
+!
+! SOURCE
+ SUBROUTINE h5pget_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER, INTENT(OUT) :: data_xfer_mode ! Data transfer mode. Possible values are:
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_dxpl_mpio_c(prp_id, data_xfer_mode) &
+ BIND(C,NAME='h5pget_dxpl_mpio_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER , INTENT(OUT) :: data_xfer_mode
+ END FUNCTION h5pget_dxpl_mpio_c
+ END INTERFACE
+
+ hdferr = h5pget_dxpl_mpio_c(prp_id, data_xfer_mode)
+ END SUBROUTINE h5pget_dxpl_mpio_f
+
+!****s* H5P/h5pget_mpio_actual_io_mode_f
+! NAME
+! h5pget_mpio_actual_io_mode_f
+!
+! PURPOSE
+! Retrieves the type of I/O that HDF5 actually performed on the last
+! parallel I/O call. This is not necessarily the type of I/O requested.
+!
+! INPUTS
+! dxpl_id - Dataset transfer property list identifier.
+! OUTPUTS
+! actual_io_mode - The type of I/O performed by this process.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 27, 2012
+!
+! HISTORY
+!
+! Fortran90 Interface:
+ SUBROUTINE h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dxpl_id
+ INTEGER , INTENT(OUT) :: actual_io_mode
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode) &
+ BIND(C,NAME='h5pget_mpio_actual_io_mode_c')
+ IMPORT :: HID_T
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dxpl_id
+ INTEGER , INTENT(OUT) :: actual_io_mode
+ END FUNCTION h5pget_mpio_actual_io_mode_c
+ END INTERFACE
+
+ actual_io_mode = -1
+
+ hdferr = h5pget_mpio_actual_io_mode_c(dxpl_id, actual_io_mode)
+
+ END SUBROUTINE h5pget_mpio_actual_io_mode_f
+#endif
+
+END MODULE H5P
+
+
+