summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5Pff.f90
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2001-03-16 15:42:40 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2001-03-16 15:42:40 (GMT)
commit30e960da8abebc144295784df54c535d45a01b2d (patch)
tree1e014262fde39a3c5019bb3d28933afbc92aecf5 /fortran/src/H5Pff.f90
parent39142ffed0831778bbbff2308feb8b30751d90b8 (diff)
downloadhdf5-30e960da8abebc144295784df54c535d45a01b2d.zip
hdf5-30e960da8abebc144295784df54c535d45a01b2d.tar.gz
hdf5-30e960da8abebc144295784df54c535d45a01b2d.tar.bz2
[svn-r3649]
Purpose: Windows port and maintenance Description: Each C function called from F90 subroutine requires explicit interface. Some drivers functions were not implemented. Solution: Added interfaces and comment blocks to each F90 subroutine. Added the following subroutines: h5pset(get)_fapl_core_f h5pset(get)_fapl_family_f h5pset_fapl_sec2_f h5pset_fapl_stdio_f Platforms tested: Linux (eirene) to make sure that code still works on UNIX. More UNIX platforms will be tested before moving to Windows.
Diffstat (limited to 'fortran/src/H5Pff.f90')
-rw-r--r--fortran/src/H5Pff.f902236
1 files changed, 2111 insertions, 125 deletions
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index ec3414c..fa4fd91 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -26,22 +26,92 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5pcreate_f
+!
+! Purpose: Creates a new property as an instance of a property
+! list class.
+!
+! Inputs:
+! classtype - type of the property list to be created.
+! Possible values are:
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! Outputs:
+! prp_id - property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pcreate_f(classtype, prp_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5P_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5P_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcreate_c
+
+! INTEGER, EXTERNAL :: h5pcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_c(classtype, prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCREATE_C'::h5pcreate_c
+ INTEGER, INTENT(IN) :: classtype
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ END FUNCTION h5pcreate_c
+ END INTERFACE
+
hdferr = h5pcreate_c(classtype, prp_id)
END SUBROUTINE h5pcreate_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: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
IMPLICIT NONE
@@ -50,10 +120,47 @@
! transfer property for partila writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_preserve_c
+
+! INTEGER, EXTERNAL :: h5pset_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_PRESERVE_C'::h5pset_preserve_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_preserve_c
+ END INTERFACE
+
hdferr = h5pset_preserve_c(prp_id, flag)
END SUBROUTINE h5pset_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -61,27 +168,109 @@
! transfer property for partial writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_preserve_c
+
+! INTEGER, EXTERNAL :: h5pget_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_PRESERVE_C'::h5pget_preserve_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_preserve_c
+ END INTERFACE
+
hdferr = h5pget_preserve_c(prp_id, flag)
END SUBROUTINE h5pget_preserve_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
+! Possible values are:
+! H5P_NO_CLASS
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5PE_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_NO_CLASS (-1)
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5PE_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_NO_CLASS
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5PE_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_class_c
+
+! INTEGER, EXTERNAL :: h5pget_class_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CLASS_C'::h5pget_class_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: classtype
+ END FUNCTION h5pget_class_c
+ END INTERFACE
+
hdferr = h5pget_class_c(prp_id, classtype)
END SUBROUTINE h5pget_class_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
IMPLICIT NONE
@@ -90,19 +279,94 @@
! Identifier of property list
! copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcopy_c
+
+! INTEGER, EXTERNAL :: h5pcopy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCOPY_C'::h5pcopy_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pclose_f(prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pclose_c
+
+! INTEGER, EXTERNAL :: h5pclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pclose_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCLOSE_C'::h5pclose_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pclose_c
+ END INTERFACE
+
hdferr = h5pclose_c(prp_id)
END SUBROUTINE h5pclose_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
IMPLICIT NONE
@@ -112,10 +376,50 @@
! Array containing sizes of
! chunk dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_chunk_c
+
+! INTEGER, EXTERNAL :: h5pset_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CHUNK_C'::h5pset_chunk_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
IMPLICIT NONE
@@ -128,20 +432,99 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code; number of
! chunk dimensions on success,
! -1 on failure
- INTEGER, EXTERNAL :: h5pget_chunk_c
+
+! INTEGER, EXTERNAL :: h5pget_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CHUNK_C'::h5pget_chunk_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pset_deflate_c
+
+! INTEGER, EXTERNAL :: h5pset_deflate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_deflate_c(prp_id, level)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_DEFLATE_C'::h5pset_deflate_c
+ 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
+!----------------------------------------------------------------------
+! Name: h5pset(get)fill_value_f
+!
+! Purpose: Sets(gets) fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! Outputs:
+! ( type_id - datatype identifier for fill value )
+! ( fillvalue - fill value )
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment: h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, &
hdferr)
@@ -152,7 +535,20 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_integer
@@ -166,7 +562,20 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_integer
@@ -180,7 +589,20 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_real
@@ -194,7 +616,20 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_real
@@ -208,7 +643,20 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_double
@@ -222,11 +670,23 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_double
-
SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
IMPLICIT NONE
@@ -236,11 +696,24 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_char
-
SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
IMPLICIT NONE
@@ -250,10 +723,53 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER :: fillvalue
+ END FUNCTION h5pget_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_char
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
stab, shhdr, hdferr)
@@ -269,19 +785,96 @@
INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr !array to put shared
!object header version number
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_version_c
+
+! INTEGER, EXTERNAL :: h5pget_version_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_VERSION_C'::h5pget_version_c
+ 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
+
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
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
- INTEGER, EXTERNAL :: h5pset_userblock_c
+
+! INTEGER, EXTERNAL :: h5pset_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_USERBLOCK_C'::h5pset_userblock_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
IMPLICIT NONE
@@ -289,11 +882,48 @@
INTEGER(HSIZE_T), DIMENSION(:), INTENT(OUT) :: block_size !Size of the
!user-block in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_userblock_c
- INTEGER :: len
+
+! INTEGER, EXTERNAL :: h5pget_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_USERBLOCK_C'::h5pget_userblock_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5pget_userblock_c
+ END INTERFACE
hdferr = h5pget_userblock_c(prp_id, block_size)
END SUBROUTINE h5pget_userblock_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -302,10 +932,50 @@
INTEGER(SIZE_T), INTENT(IN) :: sizeof_size !Size of an object
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sizes_c
+
+! INTEGER, EXTERNAL :: h5pset_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SIZES_C'::h5pset_sizes_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
IMPLICIT NONE
@@ -316,10 +986,50 @@
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sizes_c
+
+! INTEGER, EXTERNAL :: h5pget_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SIZES_C'::h5pget_sizes_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -327,10 +1037,50 @@
INTEGER, INTENT(IN) :: lk ! Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pset_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SYM_K_C'::h5pset_sym_k_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
IMPLICIT NONE
@@ -338,76 +1088,344 @@
INTEGER, INTENT(OUT) :: ik !Symbol table tree rank
INTEGER, INTENT(OUT) :: lk !Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pget_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SYM_K_C'::h5pget_sym_k_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pset_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pset_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ISTORE_K_C'::h5pset_istore_k_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pget_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pget_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ISTORE_K_C'::h5pget_istore_k_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: driver !low-level file driver identifier
+ INTEGER(HID_T), INTENT(OUT) :: driver !low-level file driver identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_driver_c
+
+! INTEGER, EXTERNAL :: h5pget_driver_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_driver_c(prp_id, driver)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_DRIVER_C'::h5pget_driver_c
+ 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
- SUBROUTINE h5pset_stdio_f (prp_id, hdferr)
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ 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
- INTEGER, EXTERNAL :: h5pset_stdio_c
- hdferr = h5pset_stdio_c(prp_id)
- END SUBROUTINE h5pset_stdio_f
- 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
+! INTEGER, EXTERNAL :: h5pset_fapl_stdio_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_STDIO_C'::h5pset_fapl_stdio_c
+ 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
+
+!----------------------------------------------------------------------
+! Name: h5pget_stdio_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! 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
- INTEGER, EXTERNAL :: h5pget_stdio_c
- hdferr = h5pget_stdio_c(prp_id, io)
- END SUBROUTINE h5pget_stdio_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_stdio_c
+! hdferr = h5pget_stdio_c(prp_id, io)
+! END SUBROUTINE h5pget_stdio_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5pset_sec2_f (prp_id, hdferr)
+ 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
- INTEGER, EXTERNAL :: h5pset_sec2_c
- hdferr = h5pset_sec2_c(prp_id)
- END SUBROUTINE h5pset_sec2_f
- 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
+! INTEGER, EXTERNAL :: h5pset_fapl_sec2_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SEC2_C'::h5pset_fapl_sec2_c
+ 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
+
+!----------------------------------------------------------------------
+! Name: h5pget_sec2_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! 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
- INTEGER, EXTERNAL :: h5pget_sec2_c
- hdferr = h5pget_sec2_c(prp_id, sec2)
- END SUBROUTINE h5pget_sec2_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_sec2_c
+! hdferr = h5pget_sec2_c(prp_id, sec2)
+! END SUBROUTINE h5pget_sec2_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
IMPLICIT NONE
@@ -415,39 +1433,205 @@
INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_alignment_c
+
+! INTEGER, EXTERNAL :: h5pset_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ALIGNMENT_C'::h5pset_alignment_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pget_alignment_c
+
+! INTEGER, EXTERNAL :: h5pget_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ALIGNMENT_C'::h5pget_alignment_c
+ 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
- SUBROUTINE h5pset_core_f(prp_id, increment, hdferr)
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ 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.
+ INTEGER, 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
- INTEGER, EXTERNAL :: h5pset_core_c
- hdferr = h5pset_core_c(prp_id, increment)
- END SUBROUTINE h5pset_core_f
- SUBROUTINE h5pget_core_f(prp_id, increment, hdferr)
+! INTEGER, EXTERNAL :: h5pset_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_CORE_C'::h5pset_fapl_core_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: increment
+ INTEGER, INTENT(IN) :: backing_store
+ END FUNCTION h5pset_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pset_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ 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.
+ INTEGER, 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
- INTEGER, EXTERNAL :: h5pget_core_c
- hdferr = h5pget_core_c(prp_id, increment)
- END SUBROUTINE h5pget_core_f
- SUBROUTINE h5pset_family_f(prp_id, memb_size, memb_plist , hdferr)
+! INTEGER, EXTERNAL :: h5pget_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_CORE_C'::h5pget_fapl_core_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: increment
+ INTEGER, INTENT(OUT) :: backing_store
+ END FUNCTION h5pget_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pget_fapl_core_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ 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,
@@ -456,12 +1640,52 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_family_c
- hdferr = h5pset_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pset_family_f
+! INTEGER, EXTERNAL :: h5pset_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_FAMILY_C'::h5pset_fapl_family_c
+ 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
+
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5pget_family_f(prp_id, memb_size, memb_plist , hdferr)
+
+ 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,
@@ -470,9 +1694,53 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_family_c
- hdferr = h5pget_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pget_family_f
+
+! INTEGER, EXTERNAL :: h5pget_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_FAMILY_C'::h5pget_fapl_family_c
+ 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
+
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
IMPLICIT NONE
@@ -486,10 +1754,55 @@
REAL, INTENT(IN) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_cache_c
+! INTEGER, EXTERNAL :: h5pset_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CACHE_C'::h5pset_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: mdc_nelmts
+ INTEGER, 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
@@ -502,11 +1815,56 @@
REAL, INTENT(OUT) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CACHE_C'::h5pget_cache_c
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ INTEGER, INTENT(OUT) :: mdc_nelmts
+ INTEGER, 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
- SUBROUTINE h5pset_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ 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
@@ -517,38 +1875,104 @@
INTEGER(HID_T), INTENT(IN) :: raw_plist !Identifier of the raw file
!access property list
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: meta_len, raw_len;
+ INTEGER :: meta_len, raw_len
+
+! INTEGER, EXTERNAL :: h5pset_fapl_split_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SPLIT_C'::h5pset_fapl_split_c
+ !DEC$ATTRIBUTES reference :: meta_ext
+ !DEC$ATTRIBUTES reference :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext
+ INTEGER(HID_T), INTENT(IN) :: meta_plist
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: raw_plist
+ INTEGER :: meta_len, raw_len
+ END FUNCTION h5pset_fapl_split_c
+ END INTERFACE
- INTEGER, EXTERNAL :: h5pset_split_c
meta_len = LEN(meta_ext)
raw_len = LEN(raw_ext)
- hdferr = h5pset_split_c(prp_id, meta_len, meta_ext, meta_plist, raw_len, raw_ext, raw_plist )
- END SUBROUTINE h5pset_split_f
+ 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
- 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
+!----------------------------------------------------------------------
+! Name: h5pget_split_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! 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
+! 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
+! 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
+! 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
+! 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
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
- 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
+! 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
+
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
@@ -557,33 +1981,154 @@
INTEGER, INTENT(IN) :: gc_reference !the flag for garbage collecting
! references for the file
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pset_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_GC_REFERENCES_C'::h5pset_gc_references_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pget_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pget_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_GC_REFERENCES_C'::h5pget_gc_references_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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(0)
- !H5D_CONTIGUOUS_F(1)
- !H5D_CHUNKED_F(2)
+ !H5D_COMPACT_F
+ !H5D_CONTIGUOUS_F
+ !H5D_CHUNKED_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_layout_c
+
+! INTEGER, EXTERNAL :: h5pset_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_LAYOUT_C'::h5pset_layout_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -593,10 +2138,52 @@
!H5D_CONTIGUOUS_F(1)
!H5D_CHUNKED_F(2)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_layout_c
+
+! INTEGER, EXTERNAL :: h5pget_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_LAYOUT_C'::h5pget_layout_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
@@ -608,19 +2195,104 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_filter_c
+! INTEGER, EXTERNAL :: h5pset_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILTER_C'::h5pset_filter_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pget_nfilters_c
+
+! INTEGER, EXTERNAL :: h5pget_nfilters_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_NFILTERS_C'::h5pget_nfilters_c
+ 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
+!----------------------------------------------------------------------
+! Name: h5pget_filter_f
+!
+! Purpose: Returns information about a filter in a pipeline
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! 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
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
@@ -637,11 +2309,60 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_filter_c
+
+! 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 )
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILTER_C'::h5pget_filter_c
+ !DEC$ATTRIBUTES reference :: name
+ 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(LEN=*), 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -653,23 +2374,107 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_external_c
INTEGER :: namelen
- namelen = LEN(name)
- hdferr = h5pset_external_c(prp_id, name,namelen, offset, bytes)
+! INTEGER, EXTERNAL :: h5pset_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_EXTERNAL_C'::h5pset_external_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
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
- INTEGER, EXTERNAL :: h5pget_external_count_c
+! INTEGER, EXTERNAL :: h5pget_external_count_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_count_c(prp_id, count)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5Pget_external_count_C'::h5pget_external_count_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
IMPLICIT NONE
@@ -684,11 +2489,54 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_external_c
+! INTEGER, EXTERNAL :: h5pget_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_EXTERNAL_C'::h5pget_external_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: idx
+ INTEGER(SIZE_T), INTENT(IN) :: name_size
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, 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
+!----------------------------------------------------------------------
+! Name: h5pset_hyper_cache_f
+!
+! Purpose: Indicates whether to cache hyperslab blocks during I/O
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! cache - A flag indicating whether caching is to
+! be set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_hyper_cache_f(prp_id, cache, limit, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -697,10 +2545,51 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_HYPER_CACHE_C'::h5pset_hyper_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: cache
+ INTEGER, INTENT(IN) :: limit
+ END FUNCTION h5pset_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pset_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pset_hyper_cache_f
+!----------------------------------------------------------------------
+! Name: h5pget_hyper_cache_f
+!
+! Purpose: Returns information regarding the caching of hyperslab
+! blocks during I/O.
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! Outputs:
+! cache - a flag indicating whether caching is
+! set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_hyper_cache_f(prp_id, cache, limit, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -709,10 +2598,52 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_HYPER_CACHE_C'::h5pget_hyper_cache_c
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: cache
+ INTEGER, INTENT(OUT) :: limit
+ END FUNCTION h5pget_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pget_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pget_hyper_cache_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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -723,10 +2654,51 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_BTREE_RATIOS_C'::h5pset_btree_ratios_c
+ 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
+!----------------------------------------------------------------------
+! 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
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -737,7 +2709,21 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+
+! INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_BTREE_RATIOS_C'::h5pget_btree_ratios_c
+ 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