summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2008-09-30 16:42:10 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2008-09-30 16:42:10 (GMT)
commitfe1ca64d1672af7859c38c143b77533a14c518ec (patch)
treebbee085742020b59a4b6136f277c6dd4a0bc8de0
parentf361635ae5f344bc80aade6432e80bcf1647522b (diff)
downloadhdf5-fe1ca64d1672af7859c38c143b77533a14c518ec.zip
hdf5-fe1ca64d1672af7859c38c143b77533a14c518ec.tar.gz
hdf5-fe1ca64d1672af7859c38c143b77533a14c518ec.tar.bz2
[svn-r15727]
Maintenance: Merged new Fortran Features and tests from trunk into hdf5_1_8 branch (used svn merge -r 14941:14525 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran command).
-rw-r--r--fortran/src/H5Aff.f90762
-rw-r--r--fortran/src/H5Df.c1
-rw-r--r--fortran/src/H5Dff.f901177
-rw-r--r--fortran/src/H5Eff.f9012
-rw-r--r--fortran/src/H5Fff.f9045
-rw-r--r--fortran/src/H5Gff.f9058
-rw-r--r--fortran/src/H5Iff.f9023
-rw-r--r--fortran/src/H5Lff.f9059
-rw-r--r--fortran/src/H5Off.f906
-rw-r--r--fortran/src/H5Pff.f90792
-rw-r--r--fortran/src/H5Rff.f9032
-rw-r--r--fortran/src/H5Sf.c60
-rw-r--r--fortran/src/H5Sff.f90276
-rw-r--r--fortran/src/H5Tf.c3
-rw-r--r--fortran/src/H5Tff.f90248
-rw-r--r--fortran/src/H5Zff.f9014
-rw-r--r--fortran/src/H5_DBLE_InterfaceExclude.f9027
-rw-r--r--fortran/src/H5_DBLE_InterfaceInclude.f901863
-rw-r--r--fortran/src/H5_ff.f9014
-rw-r--r--fortran/src/H5test_kind.f90242
-rw-r--r--fortran/src/H5test_kind_SIZEOF.f90100
-rw-r--r--fortran/src/HDF5.f901
-rw-r--r--fortran/src/HDF5mpio.f901
-rw-r--r--fortran/src/Makefile.am33
-rw-r--r--fortran/src/Makefile.in54
-rw-r--r--fortran/src/hdf5_fortrandll.def81
-rw-r--r--fortran/test/Makefile.am1
-rw-r--r--fortran/test/fortranlib_test.f90429
-rw-r--r--fortran/test/fortranlib_test_1_8.f90646
-rw-r--r--fortran/test/tH5A_1_8.f90797
-rw-r--r--fortran/test/tH5G_1_8.f901045
-rw-r--r--fortran/test/tH5O.f90246
-rw-r--r--fortran/test/tH5Sselect.f90963
-rw-r--r--fortran/test/tH5T.f9087
-rw-r--r--fortran/test/tf.f9042
35 files changed, 4528 insertions, 5712 deletions
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index 3531d79..891a39c 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -51,16 +51,6 @@ MODULE H5A
MODULE PROCEDURE h5awrite_real_5
MODULE PROCEDURE h5awrite_real_6
MODULE PROCEDURE h5awrite_real_7
-! Comment if on Crays
- MODULE PROCEDURE h5awrite_double_scalar
- MODULE PROCEDURE h5awrite_double_1
- MODULE PROCEDURE h5awrite_double_2
- MODULE PROCEDURE h5awrite_double_3
- MODULE PROCEDURE h5awrite_double_4
- MODULE PROCEDURE h5awrite_double_5
- MODULE PROCEDURE h5awrite_double_6
- MODULE PROCEDURE h5awrite_double_7
-! End commnet if on Crays
END INTERFACE
@@ -90,17 +80,7 @@ MODULE H5A
MODULE PROCEDURE h5aread_real_5
MODULE PROCEDURE h5aread_real_6
MODULE PROCEDURE h5aread_real_7
-! Comment if on Crays
- MODULE PROCEDURE h5aread_double_scalar
- MODULE PROCEDURE h5aread_double_1
- MODULE PROCEDURE h5aread_double_2
- MODULE PROCEDURE h5aread_double_3
- MODULE PROCEDURE h5aread_double_4
- MODULE PROCEDURE h5aread_double_5
- MODULE PROCEDURE h5aread_double_6
- MODULE PROCEDURE h5aread_double_7
-! End commnet if on Crays
-!
+
END INTERFACE
CONTAINS
@@ -136,8 +116,7 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5acreate_f(loc_id, name, type_id, space_id, attr_id, &
- hdferr, acpl_id, aapl_id )
-!This definition is needed for Windows DLLs
+ hdferr, acpl_id, aapl_id )
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
@@ -214,8 +193,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
@@ -271,8 +249,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER, INTENT(IN) :: index ! Attribute index
@@ -298,8 +275,7 @@ CONTAINS
END SUBROUTINE h5aopen_idx_f
- SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -327,8 +303,7 @@ CONTAINS
hdferr = h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_scalar
- SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -360,8 +335,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_1
- SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -392,8 +366,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_2
- SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -423,8 +396,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_3
- SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -455,8 +427,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_4
- SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -486,8 +457,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_5
- SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -519,8 +489,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_6
- SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -552,8 +521,7 @@ CONTAINS
END SUBROUTINE h5awrite_integer_7
- SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -581,8 +549,7 @@ CONTAINS
hdferr = h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_scalar
- SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -614,8 +581,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_1
- SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -647,8 +613,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_2
- SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -680,8 +645,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_3
- SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -713,8 +677,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_4
- SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -746,8 +709,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_5
- SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -779,8 +741,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_6
- SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -812,266 +773,7 @@ CONTAINS
END SUBROUTINE h5awrite_real_7
- SUBROUTINE h5awrite_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_S_C'::h5awrite_double_s_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN)::buf
- END FUNCTION h5awrite_double_s_c
- END INTERFACE
-
- hdferr = h5awrite_double_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_scalar
-
- SUBROUTINE h5awrite_double_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_1_C'::h5awrite_double_1_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5awrite_double_1_c
- END INTERFACE
-
- hdferr = h5awrite_double_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_1
-
-
- SUBROUTINE h5awrite_double_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_2_C'::h5awrite_double_2_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awrite_double_2_c
- END INTERFACE
-
- hdferr = h5awrite_double_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_2
-
-
- SUBROUTINE h5awrite_double_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_3_C'::h5awrite_double_3_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awrite_double_3_c
- END INTERFACE
-
- hdferr = h5awrite_double_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_3
-
-
- SUBROUTINE h5awrite_double_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_4_C'::h5awrite_double_4_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awrite_double_4_c
- END INTERFACE
-
- hdferr = h5awrite_double_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_4
-
-
- SUBROUTINE h5awrite_double_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_5_C'::h5awrite_double_5_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awrite_double_5_c
- END INTERFACE
-
- hdferr = h5awrite_double_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_5
-
-
- SUBROUTINE h5awrite_double_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_6_C'::h5awrite_double_6_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awrite_double_6_c
- END INTERFACE
-
- hdferr = h5awrite_double_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_6
-
-
- SUBROUTINE h5awrite_double_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5awrite_double_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5awrite_double_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_7_C'::h5awrite_double_7_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awrite_double_7_c
- END INTERFACE
-
- hdferr = h5awrite_double_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_double_7
-
- SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1100,8 +802,7 @@ CONTAINS
hdferr = h5awritec_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_scalar
- SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1132,8 +833,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_1
- SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1166,8 +866,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_2
- SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1199,8 +898,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_3
- SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1232,8 +930,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_4
- SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1265,8 +962,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_5
- SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1298,8 +994,7 @@ CONTAINS
END SUBROUTINE h5awrite_char_6
- SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1368,8 +1063,7 @@ CONTAINS
! up to 7 dimensions.
!----------------------------------------------------------------------
- SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1396,8 +1090,7 @@ CONTAINS
hdferr = h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_scalar
- SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1426,8 +1119,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_1
- SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1456,8 +1148,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_2
- SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1488,8 +1179,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_3
- SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1521,8 +1211,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_4
- SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1554,8 +1243,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_5
- SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1587,8 +1275,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_6
- SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1620,8 +1307,7 @@ CONTAINS
END SUBROUTINE h5aread_integer_7
- SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1649,8 +1335,7 @@ CONTAINS
hdferr = h5aread_real_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_scalar
- SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1682,8 +1367,7 @@ CONTAINS
END SUBROUTINE h5aread_real_1
- SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1715,8 +1399,7 @@ CONTAINS
END SUBROUTINE h5aread_real_2
- SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1748,8 +1431,7 @@ CONTAINS
END SUBROUTINE h5aread_real_3
- SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1781,8 +1463,7 @@ CONTAINS
END SUBROUTINE h5aread_real_4
- SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1814,8 +1495,7 @@ CONTAINS
END SUBROUTINE h5aread_real_5
- SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1847,8 +1527,7 @@ CONTAINS
END SUBROUTINE h5aread_real_6
- SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -1879,269 +1558,7 @@ CONTAINS
hdferr = h5aread_real_7_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_7
-
- SUBROUTINE h5aread_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_S_C'::h5aread_double_s_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT)::buf
- END FUNCTION h5aread_double_s_c
- END INTERFACE
-
- hdferr = h5aread_double_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_scalar
-
- SUBROUTINE h5aread_double_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_1_C'::h5aread_double_1_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5aread_double_1_c
- END INTERFACE
-
- hdferr = h5aread_double_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_1
-
-
- SUBROUTINE h5aread_double_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_2_C'::h5aread_double_2_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5aread_double_2_c
- END INTERFACE
-
- hdferr = h5aread_double_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_2
-
-
- SUBROUTINE h5aread_double_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_3_C'::h5aread_double_3_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5aread_double_3_c
- END INTERFACE
-
- hdferr = h5aread_double_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_3
-
-
- SUBROUTINE h5aread_double_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_4_C'::h5aread_double_4_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5aread_double_4_c
- END INTERFACE
-
- hdferr = h5aread_double_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_4
-
-
- SUBROUTINE h5aread_double_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_5_C'::h5aread_double_5_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5aread_double_5_c
- END INTERFACE
-
- hdferr = h5aread_double_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_5
-
-
- SUBROUTINE h5aread_double_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_6_C'::h5aread_double_6_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5aread_double_6_c
- END INTERFACE
-
- hdferr = h5aread_double_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_6
-
-
- SUBROUTINE h5aread_double_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5aread_double_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5aread_double_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_7_C'::h5aread_double_7_c
- !DEC$ ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5aread_double_7_c
- END INTERFACE
-
- hdferr = h5aread_double_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_double_7
-
-
- SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2171,8 +1588,7 @@ CONTAINS
hdferr = h5areadc_s_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_scalar
- SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2205,8 +1621,7 @@ CONTAINS
END SUBROUTINE h5aread_char_1
- SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2239,8 +1654,7 @@ CONTAINS
END SUBROUTINE h5aread_char_2
- SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2273,8 +1687,7 @@ CONTAINS
END SUBROUTINE h5aread_char_3
- SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2307,8 +1720,7 @@ CONTAINS
END SUBROUTINE h5aread_char_4
- SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2341,8 +1753,7 @@ CONTAINS
END SUBROUTINE h5aread_char_5
- SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2375,8 +1786,7 @@ CONTAINS
END SUBROUTINE h5aread_char_6
- SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
@@ -2433,8 +1843,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(OUT) :: space_id
@@ -2482,8 +1891,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(OUT) :: type_id
@@ -2533,8 +1941,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size
@@ -2604,8 +2011,7 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5aget_name_by_idx_f(loc_id, obj_name, idx_type, order, &
- n, name, hdferr, size, lapl_id)
-!This definition is needed for Windows DLLs
+ n, name, hdferr, size, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
@@ -2700,8 +2106,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the
@@ -2751,8 +2156,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5adelete_f(obj_id, name, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5adelete_f(obj_id, name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
@@ -2803,8 +2207,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aclose_f(attr_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aclose_f(attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code:
@@ -2847,8 +2250,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_storage_size_f(attr_id, size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_storage_size_f(attr_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HSIZE_T), INTENT(OUT) :: size ! Attribute storage requirement
@@ -2892,8 +2294,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_create_plist_f(attr_id, creation_prop_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_create_plist_f(attr_id, creation_prop_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Identifier of the attribute
INTEGER(HID_T), INTENT(OUT) :: creation_prop_id ! Identifier for the attribute’s creation property
@@ -2942,9 +2343,7 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, &
- hdferr, lapl_id)
-
-!This definition is needed for Windows DLLs
+ hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
@@ -3021,8 +2420,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
@@ -3098,8 +2496,7 @@ CONTAINS
! Modifications: N/A
!
!----------------------------------------------------------------------
- SUBROUTINE h5adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
@@ -3175,8 +2572,7 @@ CONTAINS
! Modifications: N/A
!
!----------------------------------------------------------------------
- SUBROUTINE h5adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
@@ -3244,8 +2640,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
@@ -3334,8 +2729,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
@@ -3404,8 +2798,7 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5aget_info_by_idx_f(loc_id, obj_name, idx_type, order, n, &
- f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
@@ -3499,8 +2892,7 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5aget_info_by_name_f(loc_id, obj_name, attr_name, &
- f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
@@ -3587,9 +2979,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5acreate_by_name_f(loc_id, obj_name, attr_name, type_id, space_id, attr, hdferr, &
acpl_id, aapl_id, lapl_id)
-
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
@@ -3676,9 +3065,6 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5aexists_f(obj_id, attr_name, attr_exists, hdferr)
-
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
@@ -3737,9 +3123,6 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5aexists_by_name_f(loc_id, obj_name, attr_name, attr_exists, hdferr, lapl_id)
-
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
@@ -3811,9 +3194,6 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5aopen_by_name_f(loc_id, obj_name, attr_name, attr_id, hdferr, aapl_id, lapl_id)
-
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
@@ -3887,9 +3267,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5arename_f(loc_id, old_attr_name, new_attr_name, hdferr)
-
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5arename_f(loc_id, old_attr_name, new_attr_name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c
index 84c92c3..58f3ce2 100644
--- a/fortran/src/H5Df.c
+++ b/fortran/src/H5Df.c
@@ -1291,6 +1291,7 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims)
H5Sclose(c_space_id);
if(rank < 0 ) return ret_value;
+
/*
* Reverse dimensions due to C-FORTRAN storage order.
*/
diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90
index b3e7c84..b9b9f7b 100644
--- a/fortran/src/H5Dff.f90
+++ b/fortran/src/H5Dff.f90
@@ -47,16 +47,6 @@ MODULE H5D
MODULE PROCEDURE h5dwrite_real_5
MODULE PROCEDURE h5dwrite_real_6
MODULE PROCEDURE h5dwrite_real_7
- ! Comment if on Crays
- MODULE PROCEDURE h5dwrite_double_scalar
- MODULE PROCEDURE h5dwrite_double_1
- MODULE PROCEDURE h5dwrite_double_2
- MODULE PROCEDURE h5dwrite_double_3
- MODULE PROCEDURE h5dwrite_double_4
- MODULE PROCEDURE h5dwrite_double_5
- MODULE PROCEDURE h5dwrite_double_6
- MODULE PROCEDURE h5dwrite_double_7
- ! End comment if on Crays
END INTERFACE
INTERFACE h5dread_f
@@ -87,17 +77,6 @@ MODULE H5D
MODULE PROCEDURE h5dread_real_5
MODULE PROCEDURE h5dread_real_6
MODULE PROCEDURE h5dread_real_7
- ! Comment if on Crays
- MODULE PROCEDURE h5dread_double_scalar
- MODULE PROCEDURE h5dread_double_1
- MODULE PROCEDURE h5dread_double_2
- MODULE PROCEDURE h5dread_double_3
- MODULE PROCEDURE h5dread_double_4
- MODULE PROCEDURE h5dread_double_5
- MODULE PROCEDURE h5dread_double_6
- MODULE PROCEDURE h5dread_double_7
- ! End comment if on Crays
-
END INTERFACE
INTERFACE h5dwrite_vl_f
@@ -115,7 +94,6 @@ MODULE H5D
INTERFACE h5dfill_f
MODULE PROCEDURE h5dfill_integer
MODULE PROCEDURE h5dfill_real
- MODULE PROCEDURE h5dfill_double
MODULE PROCEDURE h5dfill_char
END INTERFACE
@@ -162,8 +140,6 @@ CONTAINS
SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, &
hdferr, dcpl_id, lcpl_id, dapl_id)
-
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
@@ -250,7 +226,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr, dapl_id)
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
@@ -312,8 +287,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dclose_f(dset_id, hdferr)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -337,8 +310,6 @@ CONTAINS
SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -404,8 +375,6 @@ CONTAINS
SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -475,8 +444,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -532,8 +499,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -591,8 +556,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -650,8 +613,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -710,8 +671,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -769,8 +728,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -830,8 +787,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -890,8 +845,6 @@ CONTAINS
SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -950,8 +903,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1008,8 +959,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1068,8 +1017,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1128,8 +1075,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1188,8 +1133,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1248,8 +1191,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1308,8 +1249,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1368,8 +1307,6 @@ CONTAINS
SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1427,8 +1364,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1482,8 +1417,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1541,8 +1474,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1600,8 +1531,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1658,8 +1587,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1716,8 +1643,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1774,8 +1699,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1832,8 +1755,6 @@ CONTAINS
SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -1887,478 +1808,6 @@ CONTAINS
END SUBROUTINE h5dwrite_real_7
-
- SUBROUTINE h5dwrite_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_S_C'::h5dwrite_double_s_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN) :: buf
- END FUNCTION h5dwrite_double_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_scalar
-
- SUBROUTINE h5dwrite_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_1_C'::h5dwrite_double_1_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwrite_double_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_1
-
- SUBROUTINE h5dwrite_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_2_C'::h5dwrite_double_2_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_double_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_2
-
- SUBROUTINE h5dwrite_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_3_C'::h5dwrite_double_3_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwrite_double_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_3
-
- SUBROUTINE h5dwrite_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_4_C'::h5dwrite_double_4_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwrite_double_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_4
-
- SUBROUTINE h5dwrite_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_5_C'::h5dwrite_double_5_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwrite_double_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_5
-
- SUBROUTINE h5dwrite_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_6_C'::h5dwrite_double_6_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwrite_double_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_6
-
- SUBROUTINE h5dwrite_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dwrite_double_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dwrite_double_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_7_C'::h5dwrite_double_7_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwrite_double_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_double_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_double_7
-
!----------------------------------------------------------------------
! Name: h5dread_f
!
@@ -2401,8 +1850,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2468,8 +1915,6 @@ CONTAINS
SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2539,8 +1984,6 @@ CONTAINS
SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2596,8 +2039,6 @@ CONTAINS
SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2655,8 +2096,6 @@ CONTAINS
SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2715,8 +2154,6 @@ CONTAINS
SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2775,8 +2212,6 @@ CONTAINS
SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2835,8 +2270,6 @@ CONTAINS
SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2895,8 +2328,6 @@ CONTAINS
SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -2955,8 +2386,6 @@ CONTAINS
SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3014,8 +2443,6 @@ CONTAINS
SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3072,8 +2499,6 @@ CONTAINS
SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3132,8 +2557,6 @@ CONTAINS
SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3192,8 +2615,6 @@ CONTAINS
SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3252,8 +2673,6 @@ CONTAINS
SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3312,8 +2731,6 @@ CONTAINS
SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3372,8 +2789,6 @@ CONTAINS
SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3432,8 +2847,6 @@ CONTAINS
SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3491,8 +2904,6 @@ CONTAINS
SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3547,8 +2958,6 @@ CONTAINS
SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3605,8 +3014,6 @@ CONTAINS
SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3663,8 +3070,6 @@ CONTAINS
SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3721,8 +3126,6 @@ CONTAINS
SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3779,8 +3182,6 @@ CONTAINS
SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3837,8 +3238,6 @@ CONTAINS
SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3895,8 +3294,6 @@ CONTAINS
SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -3951,478 +3348,6 @@ CONTAINS
END SUBROUTINE h5dread_real_7
- SUBROUTINE h5dread_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_s_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_S_C'::h5dread_double_s_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(OUT) :: buf
- END FUNCTION h5dread_double_s_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_scalar
-
- SUBROUTINE h5dread_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_1_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_1_C'::h5dread_double_1_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dread_double_1_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_1
-
- SUBROUTINE h5dread_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_2_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_2_C'::h5dread_double_2_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_double_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_2
-
- SUBROUTINE h5dread_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_3_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_3_C'::h5dread_double_3_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dread_double_3_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_3
-
- SUBROUTINE h5dread_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_4_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_4_C'::h5dread_double_4_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dread_double_4_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_4
-
- SUBROUTINE h5dread_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_5_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_5_C'::h5dread_double_5_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dread_double_5_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_5
-
- SUBROUTINE h5dread_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_6_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_6_C'::h5dread_double_6_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dread_double_6_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_6
-
- SUBROUTINE h5dread_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
- ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
- ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
- ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-! INTEGER, EXTERNAL :: h5dread_double_7_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dread_double_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_7_C'::h5dread_double_7_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- DOUBLE PRECISION, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dread_double_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- if (present(xfer_prp)) xfer_prp_default = xfer_prp
- if (present(mem_space_id)) mem_space_id_default = mem_space_id
- if (present(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_double_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_double_7
-
!----------------------------------------------------------------------
! Name: h5dget_space_f
!
@@ -4448,8 +3373,7 @@ CONTAINS
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: dataspace_id ! Dataspace identifier
@@ -4498,8 +3422,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: datatype_id ! Datatype identifier
@@ -4552,8 +3475,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
@@ -4606,8 +3528,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: plist_id ! Dataset creation
@@ -4655,8 +3576,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HSIZE_T), INTENT(OUT) :: size
@@ -4704,8 +3624,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
@@ -4732,8 +3651,6 @@ CONTAINS
SUBROUTINE h5dwrite_vl_integer(dset_id, mem_type_id, buf, dims, len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -4794,8 +3711,6 @@ CONTAINS
SUBROUTINE h5dread_vl_integer(dset_id, mem_type_id, buf, dims, len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -4859,8 +3774,6 @@ CONTAINS
SUBROUTINE h5dwrite_vl_real(dset_id, mem_type_id, buf, dims, len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -4921,8 +3834,6 @@ CONTAINS
SUBROUTINE h5dread_vl_real(dset_id, mem_type_id, buf, dims, len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -4986,8 +3897,6 @@ CONTAINS
SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -5059,8 +3968,6 @@ CONTAINS
SUBROUTINE h5dread_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
hdferr, &
mem_space_id, file_space_id, xfer_prp)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
@@ -5155,8 +4062,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER, INTENT(IN) :: fill_value ! Fill value
INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
@@ -5216,8 +4121,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
REAL, INTENT(IN) :: fill_valuer ! Fill value
INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
@@ -5252,68 +4155,6 @@ CONTAINS
END SUBROUTINE h5dfill_real
!----------------------------------------------------------------------
-! Name: h5dfill_double
-!
-! Purpose: Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! Inputs:
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! Programmer: Elena Pourmal
-! March 12, 2003
-!
-!----------------------------------------------------------------------
-
- SUBROUTINE h5dfill_double(fill_value, space_id, buf, hdferr)
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- DOUBLE PRECISION, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
-! INTEGER, EXTERNAL :: h5dfill_double_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dfill_double_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DFILL_DOUBLE_C'::h5dfill_double_c
- !DEC$ ENDIF
- DOUBLE PRECISION, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfill_double_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_DOUBLE
- mem_type_id = H5T_NATIVE_DOUBLE
-
- hdferr = h5dfill_double_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
-
-
- END SUBROUTINE h5dfill_double
-
-!----------------------------------------------------------------------
! Name: h5dfill_char
!
! Purpose: Fills dataspace elements with a fill value in a memory buffer.
@@ -5338,8 +4179,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
CHARACTER, INTENT(IN) :: fill_value ! Fill value
INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
@@ -5397,8 +4236,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr)
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier
INTEGER, INTENT(IN) :: flag ! Memory buffer to fill in
@@ -5448,8 +4285,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dcreate_anon_f(loc_id, type_id, space_id, dset_id, hdferr, dcpl_id, dapl_id)
-
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier.
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier.
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.f90
index 319d939..5489a07 100644
--- a/fortran/src/H5Eff.f90
+++ b/fortran/src/H5Eff.f90
@@ -47,9 +47,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5eclear_f(hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5eclear_f(hdferr)
IMPLICIT NONE
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -92,8 +90,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5eprint_f(hdferr, name)
-!
-!This definition is needed for Windows DLLs
CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name
INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTEGER, EXTERNAL :: h5eprint_c1, h5eprint_c2
@@ -157,8 +153,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5eget_major_f(error_no, name, namelen, hdferr)
-!
-!This definition is needed for Windows DLLs
INTEGER, INTENT(IN) :: error_no !Major error number
CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
! the error.
@@ -213,8 +207,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5eget_minor_f(error_no, name, hdferr)
-!
-!This definition is needed for Windows DLLs
INTEGER, INTENT(IN) :: error_no !Major error number
CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
! the error
@@ -267,8 +259,6 @@
SUBROUTINE h5eset_auto_f(printflag, hdferr)
-!
-!This definition is needed for Windows DLLs
INTEGER, INTENT(IN) :: printflag !flag to turn automatic error
!printing on or off
!possible values are:
diff --git a/fortran/src/H5Fff.f90 b/fortran/src/H5Fff.f90
index 14a4ac1..86d9c0e 100644
--- a/fortran/src/H5Fff.f90
+++ b/fortran/src/H5Fff.f90
@@ -51,9 +51,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fcreate_f(name, access_flags, file_id, hdferr, &
creation_prp, access_prp)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
INTEGER, INTENT(IN) :: access_flags ! File access flags
@@ -130,9 +127,6 @@
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5fflush_f(object_id, scope, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: object_id !identifier for any object
!associate with a file,
@@ -199,9 +193,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fmount_f(loc_id, name, child_id, hdferr, access_prp)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
! in which dsetname is defined
@@ -269,9 +260,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5funmount_f(loc_id, name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
! at which the specified file
@@ -330,9 +318,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fopen_f(name, access_flags, file_id, hdferr, &
access_prp)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
INTEGER, INTENT(IN) :: access_flags ! File access flags
@@ -398,9 +383,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5freopen_f(file_id, ret_file_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: ret_file_id ! New File identifier
@@ -451,9 +433,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: prop_id ! File creation property
@@ -505,9 +484,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: access_id ! File access property
@@ -559,9 +535,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fis_hdf5_f(name, status, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
LOGICAL, INTENT(OUT) :: status ! Indicates if file
@@ -619,9 +592,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fclose_f(file_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -674,9 +644,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fget_obj_count_f(file_id, obj_type, obj_count, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER, INTENT(IN) :: obj_type ! Object type
@@ -735,9 +702,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fget_obj_ids_f(file_id, obj_type, max_objs, obj_ids, hdferr, num_objs)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER, INTENT(IN) :: obj_type ! Object type
@@ -792,9 +756,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5fget_freespace_f(file_id, free_space, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: free_space
@@ -838,8 +799,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5fget_name_f(obj_id, buf, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(INOUT) :: buf
@@ -888,8 +848,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5fget_filesize_f(file_id, size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5fget_filesize_f(file_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! file identifier
INTEGER(HSIZE_T), INTENT(OUT) :: size ! Size of the file
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90
index fa3dfea..5852e4a 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.f90
@@ -63,8 +63,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5gcreate_f(loc_id, name, grp_id, hdferr, size_hint, lcpl_id, gcpl_id, gapl_id)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
@@ -156,13 +154,7 @@ CONTAINS
!!$!----------------------------------------------------------------------
!!$
!!$ SUBROUTINE h5gcreate2_f(name, loc_id, grp_id, hdferr, &
-!!$ lcpl_id, gcpl_id, gapl_id)
-!!$!
-!!$!This definition is needed for Windows DLLs
-!!$!DEC$if defined(BUILD_HDF5_DLL)
-!!$!DEC$attributes dllexport :: h5gcreate_f
-!!$!DEC$endif
-!!$!
+!!$ lcpl_id, gcpl_id, gapl_id)
!!$ IMPLICIT NONE
!!$ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
!!$ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -247,8 +239,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5gopen_f(loc_id, name, grp_id, hdferr, gapl_id)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
@@ -309,9 +299,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5gclose_f(grp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -364,9 +351,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gget_obj_info_idx_f(loc_id, name, idx, &
obj_name, obj_type, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
@@ -435,9 +419,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gn_members_f(loc_id, name, nmembers, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
@@ -503,9 +484,6 @@ CONTAINS
SUBROUTINE h5glink_f(loc_id, link_type, current_name, &
new_name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
INTEGER, INTENT(IN) :: link_type ! link type
@@ -581,9 +559,6 @@ CONTAINS
SUBROUTINE h5glink2_f(cur_loc_id, cur_name, link_type, new_loc_id, &
new_name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: cur_loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: cur_name
@@ -655,9 +630,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gunlink_f(loc_id, name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of an object
@@ -713,9 +685,6 @@ CONTAINS
SUBROUTINE h5gmove_f(loc_id, name, new_name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
@@ -774,9 +743,6 @@ CONTAINS
SUBROUTINE h5gmove2_f(src_loc_id, src_name, dst_loc_id, dst_name, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: src_name ! Original name of an object
@@ -845,9 +811,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gget_linkval_f(loc_id, name, size, buffer, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
@@ -910,9 +873,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gset_comment_f(loc_id, name, comment, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
@@ -975,9 +935,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gget_comment_f(loc_id, name, size, buffer, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Current name of an object
@@ -1036,8 +993,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5Gcreate_anon_f(loc_id, grp_id, hdferr, gcpl_id, gapl_id)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
INTEGER(HID_T), INTENT(OUT) :: grp_id ! Group identifier
@@ -1093,8 +1048,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5gget_create_plist_f(grp_id, gcpl_id, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
INTEGER(HID_T), INTENT(OUT) :: gcpl_id ! Property list for group creation
@@ -1149,8 +1102,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5gget_info_f(group_id, storage_type, nlinks, max_corder, hdferr, mounted)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5gget_info_f(group_id, storage_type, nlinks, max_corder, hdferr, mounted)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: group_id ! Group identifier
@@ -1232,8 +1184,7 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gget_info_by_idx_f(loc_id, group_name, index_type, order, n, &
- storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
-!This definition is needed for Windows DLLs
+ storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of group containing group for which information is to be retrieved
@@ -1334,8 +1285,7 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5gget_info_by_name_f(loc_id, group_name, &
- storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
-!This definition is needed for Windows DLLs
+ storage_type, nlinks, max_corder, hdferr, lapl_id, mounted)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of group containing group for which information is to be retrieved
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90
index 8b33d0a..07b6d29 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.f90
@@ -52,9 +52,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5iget_type_f(obj_id, type, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5iget_type_f(obj_id, type, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: type !type of an object.
@@ -110,8 +108,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5iget_name_f(obj_id, buf, buf_size, name_size, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5iget_name_f(obj_id, buf, buf_size, name_size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER(SIZE_T), INTENT(IN) :: buf_size ! Buffer size
@@ -161,9 +158,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5iinc_ref_f(obj_id, ref_count, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5iinc_ref_f(obj_id, ref_count, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
@@ -206,9 +201,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5idec_ref_f(obj_id, ref_count, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5idec_ref_f(obj_id, ref_count, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
@@ -251,9 +244,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5iget_ref_f(obj_id, ref_count, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5iget_ref_f(obj_id, ref_count, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: ref_count !Current reference count of ID
@@ -296,9 +287,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5iget_file_id_f(obj_id, file_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5iget_file_id_f(obj_id, file_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER(HID_T), INTENT(OUT) :: file_id ! File identifier
diff --git a/fortran/src/H5Lff.f90 b/fortran/src/H5Lff.f90
index 1bd73c0..5d5433b 100644
--- a/fortran/src/H5Lff.f90
+++ b/fortran/src/H5Lff.f90
@@ -51,9 +51,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5lcopy_f(src_loc_id, src_name, dest_loc_id, dest_name, hdferr, &
- lcpl_id, lapl_id)
-!
-!This definition is needed for Windows DLLs
+ lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_loc_id ! Location identifier of the source link
CHARACTER(LEN=*), INTENT(IN) :: src_name ! Name of the link to be copied
@@ -130,9 +128,7 @@ CONTAINS
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5ldelete_f(loc_id, name, hdferr, lapl_id)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5ldelete_f(loc_id, name, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier of the file or group containing the object
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the link to delete
@@ -192,9 +188,7 @@ CONTAINS
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5lcreate_soft_f(target_path, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5lcreate_soft_f(target_path, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: target_path ! Path to the target object, which is not required to exist.
INTEGER(HID_T), INTENT(IN) :: link_loc_id ! The file or group identifier for the new link.
@@ -272,9 +266,7 @@ CONTAINS
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5lcreate_hard_f(obj_loc_id, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5lcreate_hard_f(obj_loc_id, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_loc_id ! The file or group identifier for the target object.
CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of the target object, which must already exist.
@@ -354,9 +346,7 @@ CONTAINS
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5lcreate_external_f(file_name, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5lcreate_external_f(file_name, obj_name, link_loc_id, link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: file_name ! Name of the file containing the target object. Neither
! the file nor the target object is required to exist.
@@ -449,8 +439,7 @@ CONTAINS
! Modifications: N/A
!
!----------------------------------------------------------------------
- SUBROUTINE h5ldelete_by_idx_f(loc_id, group_name, index_field, order, n, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5ldelete_by_idx_f(loc_id, group_name, index_field, order, n, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of object, relative to location,
@@ -525,9 +514,6 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5lexists_f(loc_id, name, link_exists, hdferr, lapl_id)
-
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier of the file or group to query.
CHARACTER(LEN=*), INTENT(IN) :: name ! Link name to check.
@@ -605,8 +591,7 @@ CONTAINS
SUBROUTINE h5lget_info_f(link_loc_id, link_name, &
cset, corder, f_corder_valid, link_type, address, val_size, &
- hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: link_loc_id ! File or group identifier.
@@ -699,8 +684,7 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5lget_info_by_idx_f(loc_id, group_name, index_field, order, n, &
- f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier specifying location of subject group
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of subject group
@@ -785,8 +769,7 @@ CONTAINS
! Modifications: N/A
!
!----------------------------------------------------------------------
- SUBROUTINE h5lis_registered_f(link_cls_id, registered, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5lis_registered_f(link_cls_id, registered, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: link_cls_id ! User-defined link class identifier
LOGICAL, INTENT(OUT) :: registered ! .TRUE. - if the link class has been registered and
@@ -841,8 +824,7 @@ CONTAINS
! Modifications: N/A
!
!----------------------------------------------------------------------
- SUBROUTINE h5lmove_f(src_loc_id, src_name, dest_loc_id, dest_name, hdferr, lcpl_id, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5lmove_f(src_loc_id, src_name, dest_loc_id, dest_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_loc_id ! Original file or group identifier.
CHARACTER(LEN=*), INTENT(IN) :: src_name ! Original link name.
@@ -927,8 +909,7 @@ CONTAINS
!
!----------------------------------------------------------------------
SUBROUTINE h5lget_name_by_idx_f(loc_id, group_name, index_field, order, n, &
- name, hdferr, size, lapl_id)
-!This definition is needed for Windows DLLs
+ name, hdferr, size, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier specifying location of subject group
CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of subject group
@@ -1026,11 +1007,7 @@ CONTAINS
!!$!
!!$!----------------------------------------------------------------------
!!$ SUBROUTINE h5lget_val_by_idx_f(loc_id, group_name, index_field, order, n, &
-!!$ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
-!!$!This definition is needed for Windows DLLs
-!!$!DEC$if defined(BUILD_HDF5_DLL)
-!!$!DEC$attributes dllexport :: h5lget_val_by_idx_f
-!!$!DEC$endif
+!!$ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
!!$ IMPLICIT NONE
!!$ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier specifying location of subject group
!!$ CHARACTER(LEN=*), INTENT(IN) :: group_name ! Name of subject group
@@ -1120,11 +1097,7 @@ CONTAINS
!----------------------------------------------------------------------
!!$ SUBROUTINE h5lget_val_f(link_loc_id, link_name, size, linkval_buff, &
-!!$ hdferr, lapl_id)
-!!$!This definition is needed for Windows DLLs
-!!$!DEC$if defined(BUILD_HDF5_DLL)
-!!$!DEC$attributes dllexport :: h5lget_val_f
-!!$!DEC$endif
+!!$ hdferr, lapl_id)
!!$ IMPLICIT NONE
!!$ INTEGER(HID_T), INTENT(IN) :: link_loc_id ! File or group identifier.
!!$ CHARACTER(LEN=*), INTENT(IN) :: link_name ! Link whose value is to be returned.
@@ -1206,11 +1179,7 @@ CONTAINS
!
!----------------------------------------------------------------------
!!$ SUBROUTINE H5Lregistered_f(version, class_id, comment, create_func, &
-!!$ move_func, copy_func, trav_func, del_func, query_func, hdferr)
-!!$!This definition is needed for Windows DLLs
-!!$!DEC$if defined(BUILD_HDF5_DLL)
-!!$!DEC$attributes dllexport :: H5Lregistered_f
-!!$!DEC$endif
+!!$ move_func, copy_func, trav_func, del_func, query_func, hdferr)
!!$ IMPLICIT NONE
!!$ INTEGER, INTENT(IN) :: version ! Version number of this struct
!!$ INTEGER, INTENT(IN) :: class_id ! Link class identifier
diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.f90
index 4e7a3be..b79dbf2 100644
--- a/fortran/src/H5Off.f90
+++ b/fortran/src/H5Off.f90
@@ -46,8 +46,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5olink_f(object_id, new_loc_id, new_link_name, hdferr, lcpl_id, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5olink_f(object_id, new_loc_id, new_link_name, hdferr, lcpl_id, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: object_id ! Object to be linked
INTEGER(HID_T), INTENT(IN) :: new_loc_id ! File or group identifier specifying
@@ -114,8 +113,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5oopen_f(loc_id, name, obj_id, hdferr, lapl_id)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5oopen_f(loc_id, name, obj_id, hdferr, lapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Path to the object, relative to loc_id
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index a7dae95..b0b9933 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -23,54 +23,36 @@
INTERFACE h5pset_fill_value_f
MODULE PROCEDURE h5pset_fill_value_integer
MODULE PROCEDURE h5pset_fill_value_real
-! Comment if on Crays
- MODULE PROCEDURE h5pset_fill_value_double
-! End comment if on Crays
MODULE PROCEDURE h5pset_fill_value_char
END INTERFACE
INTERFACE h5pget_fill_value_f
MODULE PROCEDURE h5pget_fill_value_integer
MODULE PROCEDURE h5pget_fill_value_real
-! Comment if on Crays
- MODULE PROCEDURE h5pget_fill_value_double
-! End comment if on Crays
MODULE PROCEDURE h5pget_fill_value_char
END INTERFACE
INTERFACE h5pset_f
MODULE PROCEDURE h5pset_integer
MODULE PROCEDURE h5pset_real
-! Comment if on Crays
- MODULE PROCEDURE h5pset_double
-! End comment if on Crays
MODULE PROCEDURE h5pset_char
END INTERFACE
INTERFACE h5pget_f
MODULE PROCEDURE h5pget_integer
MODULE PROCEDURE h5pget_real
-! Comment if on Crays
- MODULE PROCEDURE h5pget_double
-! End comment if on Crays
MODULE PROCEDURE h5pget_char
END INTERFACE
INTERFACE h5pregister_f
MODULE PROCEDURE h5pregister_integer
MODULE PROCEDURE h5pregister_real
-! Comment if on Crays
- MODULE PROCEDURE h5pregister_double
-! End comment if on Crays
MODULE PROCEDURE h5pregister_char
END INTERFACE
INTERFACE h5pinsert_f
MODULE PROCEDURE h5pinsert_integer
MODULE PROCEDURE h5pinsert_real
-! Comment if on Crays
- MODULE PROCEDURE h5pinsert_double
-! End comment if on Crays
MODULE PROCEDURE h5pinsert_char
END INTERFACE
@@ -113,9 +95,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pcreate_f(class, prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pcreate_f(class, prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: class ! The type of the property list
! to be created. Possible values
@@ -176,9 +156,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -233,9 +211,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -295,9 +271,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -355,9 +329,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -408,9 +380,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pclose_f(prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pclose_f(prp_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -459,9 +429,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -516,9 +484,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -574,9 +540,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -630,9 +594,7 @@
SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -661,9 +623,7 @@
SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -692,9 +652,7 @@
SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -723,9 +681,7 @@
SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -753,71 +709,9 @@
END SUBROUTINE h5pget_fill_value_real
- SUBROUTINE h5pset_fill_value_double(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
- 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)
- DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pset_fill_value_double_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_DOUBLE_C'::h5pset_fill_value_double_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- DOUBLE PRECISION, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_value_double_c
- END INTERFACE
-
- hdferr = h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_double
-
-
- SUBROUTINE h5pget_fill_value_double(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
- 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)
- DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5pget_fill_value_double_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_DOUBLE_C'::h5pget_fill_value_double_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- DOUBLE PRECISION :: fillvalue
- END FUNCTION h5pget_fill_value_double_c
- END INTERFACE
-
- hdferr = h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_double
SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -846,9 +740,7 @@
END SUBROUTINE h5pset_fill_value_char
SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
-!
-!This definition is needed for Windows DLLs
+ hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -907,9 +799,6 @@
SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
stab, shhdr, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, DIMENSION(:), INTENT(OUT) :: boot !array to put boot
@@ -968,9 +857,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1019,9 +906,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1071,9 +956,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1128,9 +1011,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1185,9 +1066,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1241,9 +1120,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1294,9 +1171,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1346,9 +1221,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1397,9 +1270,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1446,9 +1317,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1492,9 +1361,8 @@
! Comment:
!----------------------------------------------------------------------
-! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
+! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
!
-!This definition is needed for Windows DLLs
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
! INTEGER, INTENT(OUT) :: io ! value indicates that the file
@@ -1529,9 +1397,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1612,9 +1478,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1666,9 +1530,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -1720,9 +1582,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -1778,9 +1638,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -1837,9 +1695,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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,
@@ -1895,9 +1751,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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,
@@ -1956,9 +1810,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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)
@@ -2024,9 +1876,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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)
@@ -2089,9 +1939,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2204,9 +2052,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2256,9 +2102,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_gc_references_f (prp_id, gc_reference, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2312,9 +2156,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2370,9 +2212,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2427,9 +2267,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -2486,9 +2324,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2544,9 +2380,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2618,9 +2452,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2681,9 +2513,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2739,9 +2569,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -2805,9 +2633,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -2864,9 +2690,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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.
@@ -2924,9 +2748,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_fclose_degree_f(fapl_id, degree, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -2983,9 +2805,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fclose_degree_f(fapl_id, degree, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3036,9 +2856,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pequal_f(plist1_id, plist2_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3086,9 +2904,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_buffer_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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;
@@ -3133,9 +2949,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_buffer_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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;
@@ -3185,9 +2999,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pfill_value_defined_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pfill_value_defined_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(OUT) :: flag
@@ -3236,9 +3048,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_alloc_time_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_alloc_time_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(IN) :: flag
@@ -3287,9 +3097,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pget_alloc_time_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(OUT) :: flag
@@ -3336,9 +3144,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fill_time_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_fill_time_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(IN) :: flag
@@ -3385,9 +3191,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_fill_time_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pget_fill_time_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id
INTEGER, INTENT(OUT) :: flag
@@ -3430,9 +3234,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_meta_block_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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;
@@ -3475,9 +3277,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_meta_block_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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;
@@ -3520,9 +3320,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_sieve_buf_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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;
@@ -3565,9 +3363,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_sieve_buf_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3610,9 +3406,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_small_data_block_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3655,9 +3449,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_small_data_block_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3700,9 +3492,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_hyper_vector_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3745,9 +3535,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_hyper_vector_size_f(plist_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3791,9 +3579,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -3843,9 +3629,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_real(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
@@ -3871,57 +3655,6 @@
hdferr = h5pset_real_c(prp_id, name , name_len, value)
END SUBROUTINE h5pset_real
-!----------------------------------------------------------------------
-! Name: h5pset_double
-!
-! Purpose: Sets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pset_double(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- DOUBLE PRECISION, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pset_double_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PSET_DOUBLE_C'::h5pset_double_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- DOUBLE PRECISION, INTENT(IN) :: value
- END FUNCTION h5pset_double_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pset_double_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pset_double
!----------------------------------------------------------------------
! Name: h5pset_char
@@ -3947,9 +3680,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4003,9 +3734,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4055,9 +3784,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pget_real(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
@@ -4083,57 +3810,6 @@
hdferr = h5pget_real_c(prp_id, name , name_len, value)
END SUBROUTINE h5pget_real
-!----------------------------------------------------------------------
-! Name: h5pget_double
-!
-! Purpose: Gets a property list value
-!
-! Inputs:
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! Outputs:
-! value - value of property
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 9, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pget_double(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- DOUBLE PRECISION, INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_double_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PGET_DOUBLE_C'::h5pget_double_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- DOUBLE PRECISION, INTENT(OUT) :: value
- END FUNCTION h5pget_double_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pget_double_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pget_double
!----------------------------------------------------------------------
! Name: h5pget_char
@@ -4159,9 +3835,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4215,9 +3889,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pexist_f(prp_id, name, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4271,9 +3943,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_size_f(prp_id, name, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4321,9 +3991,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_nprops_f(prp_id, nprops, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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 ! iNumber of properties
@@ -4369,9 +4037,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_class_name_f(prp_id, name, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4425,9 +4091,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_class_parent_f(prp_id, parent_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4472,9 +4136,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pisa_class_f(plist, pclass, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4524,9 +4186,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pcopy_prop_f(dst_id, src_id, name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dst_id ! Destination property list
! identifier
@@ -4577,9 +4237,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5premove_f(plid, name, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4627,9 +4285,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5punregister_f(class, name, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4676,9 +4332,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pclose_class_f(class, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pclose_class_f(class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: class ! property list class identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -4728,9 +4382,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class
! identifier
@@ -4785,9 +4437,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -4842,9 +4492,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pregister_real(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
@@ -4873,63 +4521,6 @@
END SUBROUTINE h5pregister_real
!----------------------------------------------------------------------
-! Name: h5pregister_double
-!
-! Purpose: Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pregister_double(class, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
- 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
- DOUBLE PRECISION, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pregister_double_c(class, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_DOUBLE_C'::h5pregister_double_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- DOUBLE PRECISION, INTENT(IN) :: value
- END FUNCTION h5pregister_double_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pregister_double_c(class, name , name_len, size, value)
- END SUBROUTINE h5pregister_double
-
-!----------------------------------------------------------------------
! Name: h5pregister_char
!
! Purpose: Registers a permanent property with a property list class.
@@ -4956,9 +4547,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5016,9 +4605,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5072,9 +4659,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pinsert_real(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
@@ -5102,61 +4687,6 @@
hdferr = h5pinsert_real_c(plist, name , name_len, size, value)
END SUBROUTINE h5pinsert_real
-!----------------------------------------------------------------------
-! Name: h5pinsert_double
-!
-! Purpose: Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - property list identifier
-! permanent property within
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! Outputs:
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! Optional parameters:
-! NONE
-!
-! Programmer: Elena Pourmal
-! October 10, 2002
-!
-! Modifications:
-!
-! Comment:
-!----------------------------------------------------------------------
-
- SUBROUTINE h5pinsert_double(plist, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
- 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
- DOUBLE PRECISION, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_double_c(plist, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_DOUBLE_C'::h5pinsert_double_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- DOUBLE PRECISION, INTENT(IN) :: value
- END FUNCTION h5pinsert_double_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pinsert_double_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_double
!----------------------------------------------------------------------
! Name: h5pinsert_char
@@ -5184,9 +4714,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5241,9 +4769,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_shuffle_f(prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5290,9 +4816,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_edc_check_f(prp_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5338,9 +4862,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_edc_check_f(prp_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5391,9 +4913,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fletcher32_f(prp_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5438,9 +4958,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_family_offset_f(prp_id, offset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5490,9 +5008,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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 ! File creation property list identifier
INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
@@ -5562,9 +5078,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pset_fapl_multi_s(prp_id, relax, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5616,9 +5130,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
-!
-!This definition is needed for Windows DLLs
+ 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(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map
@@ -5692,8 +5204,6 @@
SUBROUTINE h5pset_szip_f(prp_id, options_mask, pixels_per_block, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
! list identifier
@@ -5745,9 +5255,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pall_filters_avail_f(prp_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property
! list identifier
@@ -5804,9 +5312,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_filter_by_id_f(prp_id, filter_id, flags, cd_nelmts, cd_values, namelen, name, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5874,9 +5380,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pmodify_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -5932,8 +5436,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5premove_filter_f(prp_id, filter, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Dataset creation property list
! identifier
@@ -5984,8 +5486,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -6036,8 +5536,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_attr_creation_order_f(ocpl_id, crt_order_flags , hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -6086,8 +5584,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_shared_mesg_nindexes_f( plist_id, nindexes, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! file creation property list
INTEGER, INTENT(IN) :: nindexes ! Number of shared object header message indexes
@@ -6140,8 +5636,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_shared_mesg_index_f(fcpl_id, index_num, mesg_type_flags, min_mesg_size, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: fcpl_id ! file creation property list
INTEGER, INTENT(IN) :: index_num ! Index being configured.
@@ -6196,8 +5690,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_attr_creation_order_f(ocpl_id, crt_order_flags, hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -6248,8 +5740,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_libver_bounds_f(fapl_id, low, high, hdferr)
-!
-!This definition is needed for Windows DLLs
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.
@@ -6306,8 +5796,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: gcpl_id ! File access property list identifier
INTEGER, INTENT(IN) :: crt_order_flags ! Creation order flag(s)
@@ -6357,8 +5845,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -6407,9 +5893,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_obj_track_times_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pget_obj_track_times_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
! list identifier
@@ -6473,9 +5957,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_obj_track_times_f(plist_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_obj_track_times_f(plist_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property
! list identifier
@@ -6529,9 +6011,7 @@
! so had to shorten the name
!--------------------------------------------------------------------------------------
- SUBROUTINE h5pset_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -6580,8 +6060,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_link_creation_order_f(gcpl_id, crt_order_flags, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: gcpl_id ! Group creation property list identifier
INTEGER, INTENT(OUT) :: crt_order_flags ! Creation order flag(s)
@@ -6633,8 +6111,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_char_encoding_f(plist_id, encoding, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
@@ -6689,8 +6165,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_char_encoding_f(plist_id, encoding, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Property list identifier
@@ -6741,9 +6215,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_copy_object_f(ocp_plist_id, copy_options, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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:
@@ -6793,9 +6265,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_copy_object_f(ocp_plist_id, copy_options, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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:
@@ -6848,9 +6318,7 @@
! Comment: Should hdferr return just 0 or 1 and add another arguement for the size?
!----------------------------------------------------------------------
- SUBROUTINE h5pget_data_transform_f(plist_id, expression, hdferr, size)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -6909,9 +6377,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_data_transform_f(plist_id, expression, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -6960,9 +6426,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7009,9 +6473,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7059,9 +6521,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_local_heap_size_hint_f(gcpl_id, size_hint, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7108,9 +6568,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_est_link_info_f(gcpl_id, est_num_entries, est_name_len, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7160,8 +6618,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_link_phase_change_f(gcpl_id, max_compact, min_dense, hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -7212,8 +6668,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
INTEGER(SIZE_T), INTENT(IN) :: alignment ! Required memory alignment boundary!
@@ -7265,8 +6719,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pget_fapl_direct_f(fapl_id, alignment, block_size, cbuf_size, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
INTEGER(SIZE_T), INTENT(OUT) :: alignment ! Required memory alignment boundary!
@@ -7319,8 +6771,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
-!
-!This definition is needed for Windows DLLs
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
@@ -7371,9 +6821,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_nbit_f(plist_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_nbit_f(plist_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -7418,9 +6866,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_scaleoffset_f(plist_id, scale_type, scale_factor, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5pset_scaleoffset_f(plist_id, scale_type, scale_factor, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: plist_id ! Dataset creation property list identifier
INTEGER, INTENT(IN) :: scale_type ! Flag indicating compression method.
@@ -7469,9 +6915,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pset_nlinks_f(lapl_id, nlinks, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7518,9 +6962,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5pget_nlinks_f(lapl_id, nlinks, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
@@ -7568,9 +7010,7 @@
! so had to shorten the name
!--------------------------------------------------------------------------------------
- SUBROUTINE h5pget_create_inter_group_f(lcpl_id, crt_intermed_group, hdferr)
-!
-!This definition is needed for Windows DLLs
+ 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
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
index 7da8d20..de4f5f0 100644
--- a/fortran/src/H5Rff.f90
+++ b/fortran/src/H5Rff.f90
@@ -94,9 +94,7 @@
! subroutine.
!----------------------------------------------------------------------
- SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
@@ -159,9 +157,7 @@
! subroutine.
!----------------------------------------------------------------------
- SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
@@ -228,9 +224,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
@@ -289,9 +283,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
@@ -351,9 +343,7 @@
- SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
@@ -417,9 +407,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
@@ -481,9 +469,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
! or for the group that dataset is in.
@@ -548,9 +534,7 @@
!----------------------------------------------------------------------
- SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the dataset containing the reference
! or for the group that dataset is in.
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index 5cf5b51..82e760c 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -210,7 +210,9 @@ nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points)
* Returns: 0 on success, -1 on failure
* Programmer: Xiangyang Su
* Monday, November 15, 1999
- * Modifications:
+ * Modifications:
+ * Transpose dimension arrays because of C-FORTRAN storage order
+ * M.S. Breitenfeld
*---------------------------------------------------------------------------*/
int_f
@@ -222,6 +224,7 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
hsize_t c_num_blocks;
hsize_t i;
+ int j,k,m,n;
int rank;
hsize_t c_startblock, *c_buf;
@@ -237,10 +240,23 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
ret_value = H5Sget_select_hyper_blocklist(c_space_id, c_startblock,
c_num_blocks, c_buf);
- for(i = 0; i < c_num_blocks*2*rank; i++)
- {
- buf[i] = (hsize_t_f)c_buf[i] +1;
+
+ /*
+ * Transpose dimension arrays because of C-FORTRAN storage order and add 1
+ */
+ n = 0;
+ m = 0;
+ for (i=0; i < c_num_blocks; i++) {
+ for (j=0; j < rank; j++) {
+ for (k=0; k < rank; k++) {
+ int t= (m + rank - k - 1);
+ buf[n] = (hsize_t_f)c_buf[t]+1;
+ n = n + 1;
+ }
+ m = m + rank;
+ }
}
+
HDfree(c_buf);
if (ret_value >= 0 ) ret_value = 0;
return ret_value;
@@ -258,7 +274,9 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
* Returns: 0 on success, -1 on failure
* Programmer: Xiangyang Su
* Wednesday, November 17, 1999
- * Modifications:
+ * Modifications: swapped array bounds to account for C and Fortran reversed
+ * matrix notation.
+ * M.S. Breitenfeld
*---------------------------------------------------------------------------*/
int_f
@@ -282,8 +300,8 @@ nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end)
ret_value = H5Sget_select_bounds(c_space_id, c_start, c_end);
for(i = 0; i < rank; i++)
{
- start[i] = (hsize_t_f)(c_start[i]+1);
- end[i] = (hsize_t_f)(c_end[i]+1);
+ start[i] = (hsize_t_f)(c_start[rank-i-1]+1);
+ end[i] = (hsize_t_f)(c_end[rank-i-1]+1);
}
if (ret_value >= 0 ) ret_value = 0;
@@ -321,8 +339,9 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
hid_t c_space_id;
hsize_t c_num_points;
hsize_t c_startpoint,* c_buf;
+ hsize_t i, i1;
int rank;
- hssize_t i;
+ int j,i2;
c_space_id = *space_id;
c_num_points = (hsize_t)* numpoints;
@@ -335,10 +354,23 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
if (!c_buf) return ret_value;
ret_value = H5Sget_select_elem_pointlist(c_space_id, c_startpoint,
c_num_points, c_buf);
- for (i = (c_num_points*rank)-1; i >= 0; i--) {
- buf[i] = (hsize_t_f)(c_buf[i]+1);
+
+ /* re-arrange the return buffer to account for Fortran ordering of 2D arrays */
+ /* and add 1 to account for array's starting at one in Fortran */
+ i2 = 0;
+ for( i = 0; i < c_num_points; i++) {
+ i1 = rank*(i+1);
+ for(j = 0; j < rank; j++) {
+ buf[i2] = (hsize_t_f)(c_buf[i1-1]+1);
+ i2 = i2 + 1;
+ i1 = i1 - 1;
+ }
}
+/* for( i = 0; i < c_num_points*rank; i++) { */
+/* printf("%i \n", (int)c_buf[i]+1); */
+/* } */
+
if (ret_value >= 0 ) ret_value = 0;
HDfree(c_buf);
@@ -464,7 +496,7 @@ nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints )
c_space_id = *space_id;
c_npoints = H5Sget_select_npoints(c_space_id);
- if ( c_npoints == 0 ) ret_value = -1;
+ if ( c_npoints < 0 ) ret_value = -1;
*npoints = (hssize_t_f)c_npoints;
return ret_value;
}
@@ -1006,8 +1038,10 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi
/*
if (*op != H5S_SELECT_SET_F) return ret_value;
*/
- if (*op != H5S_SELECT_SET) return ret_value;
- c_op = H5S_SELECT_SET;
+/* if (*op != H5S_SELECT_SET) return ret_value; */
+/* c_op = H5S_SELECT_SET; */
+
+ c_op = (H5S_seloper_t)*op;
c_space_id = *space_id;
rank = H5Sget_simple_extent_ndims(c_space_id);
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90
index e8c5b21..f7feca2 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.f90
@@ -47,9 +47,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims)
IMPLICIT NONE
INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
@@ -119,9 +117,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5sclose_f(space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -168,10 +163,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5screate_f(classtype, space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5screate_f(classtype, space_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the dataspace
! to be created.
@@ -225,10 +217,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HID_T), INTENT(OUT) :: new_space_id
@@ -278,10 +267,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks
@@ -336,10 +322,7 @@
!----------------------------------------------------------------------
SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, &
- num_blocks, buf, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ num_blocks, buf, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), INTENT(IN) :: startblock
@@ -403,38 +386,32 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_select_bounds_f(space_id, start, end, hdferr)
-!
-!This definition is needed for Windows DLLs
-
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start
- !Starting coordinates of the bounding box.
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: end
- !Ending coordinates of the bounding box,
- !i.e., the coordinates of the diagonally
- !opposite corner
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
-! INTEGER, EXTERNAL :: h5sget_select_bounds_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5sget_select_bounds_c(space_id, start, end)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
-!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_BOUNDS_C'::h5sget_select_bounds_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: end
- END FUNCTION h5sget_select_bounds_c
- END INTERFACE
+ SUBROUTINE h5sget_select_bounds_f(space_id, start, END, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start
+ ! Starting coordinates of the bounding box.
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END
+ !Ending coordinates of the bounding box,
+ !i.e., the coordinates of the diagonally
+ !opposite corner
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
- hdferr = h5sget_select_bounds_c(space_id, start, end)
+ INTERFACE
+ INTEGER FUNCTION h5sget_select_bounds_c(space_id, start, END)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SGET_SELECT_BOUNDS_C'::h5sget_select_bounds_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: start
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: END
+ END FUNCTION h5sget_select_bounds_c
+ END INTERFACE
+
+ hdferr = h5sget_select_bounds_c(space_id, start, END)
- END SUBROUTINE h5sget_select_bounds_f
+ END SUBROUTINE h5sget_select_bounds_f
!----------------------------------------------------------------------
! Name: h5sget_select_elem_npoints_f
@@ -461,10 +438,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: num_points
@@ -519,9 +493,7 @@
!----------------------------------------------------------------------
SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, &
- num_points, buf, hdferr)
-!
-!This definition is needed for Windows DLLs
+ num_points, buf, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), INTENT(IN) :: startpoint
@@ -532,9 +504,6 @@
!List of element points selected
INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5sget_select_elem_pointlist_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
INTERFACE
INTEGER FUNCTION h5sget_select_elem_pointlist_c(space_id, startpoint, &
num_points, buf )
@@ -551,6 +520,7 @@
hdferr = h5sget_select_elem_pointlist_c(space_id, startpoint, &
num_points, buf )
+
END SUBROUTINE h5sget_select_elem_pointlist_f
!----------------------------------------------------------------------
@@ -584,57 +554,61 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sselect_elements_f(space_id, operator, rank, &
- num_elements, coord, hdferr)
-!
-!This definition is needed for Windows DLLs
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
- ! H5S_SELECT_SET_F (0)
- ! H5S_SELECT_OR_F (1)
- INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
- INTEGER(SIZE_T), INTENT(IN) :: num_elements ! Number of elements to be
+ SUBROUTINE h5sselect_elements_f(space_id, OPERATOR, rank, &
+ num_elements, coord, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+ INTEGER, INTENT(IN) :: OPERATOR ! Flag, valid values are:
+ ! H5S_SELECT_SET_F (0)
+ ! H5S_SELECT_OR_F (1)
+ INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
+ INTEGER(SIZE_T), INTENT(IN) :: num_elements ! Number of elements to be
! selected
- INTEGER(HSIZE_T), &
- DIMENSION(rank,num_elements), INTENT(IN) :: coord
+ INTEGER(HSIZE_T), DIMENSION(rank,num_elements), INTENT(IN) :: coord
! Array with the coordinates
! of the selected elements
! coord(rank, num_elements)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:,:) :: c_coord
- INTEGER :: error, i,j
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:,:) :: c_coord
+ INTEGER :: error, i,j
-! INTEGER, EXTERNAL :: h5sselect_elements_c
-! MS FORTRAN needs explicit interface for C functions called here.
+ INTERFACE
+ INTEGER FUNCTION h5sselect_elements_c(space_id, OPERATOR,&
+ num_elements,c_c_coord)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_ELEMENTS_C'::h5sselect_elements_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(IN) :: OPERATOR
+ INTEGER(SIZE_T), INTENT(IN) :: num_elements
+ INTEGER(HSIZE_T),DIMENSION(*) :: c_c_coord
+ END FUNCTION h5sselect_elements_c
+ END INTERFACE
+
+ ALLOCATE(c_coord(rank,num_elements), STAT = error)
+ IF (error.NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+ DO i = 1, rank
+ c_coord(i,:) = coord(rank-i+1, :) - 1
+ ENDDO
+ hdferr = h5sselect_elements_c(space_id, OPERATOR, num_elements, c_coord)
+
+! ALLOCATE(c_coord(num_elements,rank), stat = error)
+! IF (error.NE. 0) THEN
+! hdferr = -1
+! RETURN
+! ENDIF
!
- INTERFACE
- INTEGER FUNCTION h5sselect_elements_c(space_id, operator,&
- num_elements,c_c_coord)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5SSELECT_ELEMENTS_C'::h5sselect_elements_c
- !DEC$ ENDIF
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER, INTENT(IN) :: operator
- INTEGER(SIZE_T), INTENT(IN) :: num_elements
- INTEGER(HSIZE_T),DIMENSION(*) :: c_c_coord
- END FUNCTION h5sselect_elements_c
- END INTERFACE
+! c_coord = TRANSPOSE(coord)
+! hdferr = h5sselect_elements_c(space_id, OPERATOR, INT(rank,size_t), c_coord)
- allocate(c_coord(rank, num_elements), stat = error)
- if (error.NE. 0) then
- hdferr = -1
- return
- endif
- do i = 1, rank
- c_coord(i,:) = coord(rank-i+1, :) - 1
- enddo
- hdferr = h5sselect_elements_c(space_id, operator, num_elements, &
- c_coord)
- deallocate(c_coord)
+
+ DEALLOCATE(c_coord)
- END SUBROUTINE h5sselect_elements_f
+ END SUBROUTINE h5sselect_elements_f
!----------------------------------------------------------------------
! Name: h5sselect_all_f
@@ -661,9 +635,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sselect_all_f(space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5sselect_all_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -710,10 +682,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sselect_none_f(space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sselect_none_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -760,10 +729,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sselect_valid_f(space_id, status, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sselect_valid_f(space_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
LOGICAL, INTENT(OUT) :: status ! TRUE if the selection is
@@ -817,10 +783,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), INTENT(OUT) :: npoints ! Number of elements in
@@ -870,10 +833,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: npoints ! Number of elements in the
@@ -923,10 +883,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: rank ! Number of dimensions
@@ -977,10 +934,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
@@ -1040,10 +994,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: classtype ! Class type , possible values
@@ -1102,9 +1053,6 @@
SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, &
maximum_size, hdferr)
-!
-!This definition is needed for Windows DLLs
-
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(IN) :: rank ! Dataspace rank
@@ -1165,10 +1113,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sis_simple_f(space_id, status, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sis_simple_f(space_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
LOGICAL, INTENT(OUT) :: status ! Flag, idicates if dataspace
@@ -1222,10 +1167,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset
@@ -1278,10 +1220,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dest_space_id ! Identifier of destination
! dataspace
@@ -1330,10 +1269,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sset_extent_none_f(space_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5sset_extent_none_f(space_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -1388,9 +1324,7 @@
!----------------------------------------------------------------------
SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, &
- hdferr, stride, block)
-!
-!This definition is needed for Windows DLLs
+ hdferr, stride, block)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
@@ -1523,9 +1457,7 @@
!----------------------------------------------------------------------
! SUBROUTINE h5scombine_hyperslab_f(space_id, operator, start, count, &
-! hyper_id, hdferr, stride, block)
-!
-!This definition is needed for Windows DLLs
+! hyper_id, hdferr, stride, block)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
! INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
@@ -1661,9 +1593,7 @@
!----------------------------------------------------------------------
! SUBROUTINE h5scombine_select_f(space1_id, operator, space2_id, &
-! ds_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+! ds_id, hdferr)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier
! INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier
@@ -1736,9 +1666,7 @@
!----------------------------------------------------------------------
! SUBROUTINE h5sselect_select_f(space1_id, operator, space2_id, &
-! hdferr)
-!
-!This definition is needed for Windows DLLs
+! hdferr)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(INOUT) :: space1_id ! Dataspace identifier to
! modify
@@ -1801,9 +1729,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sget_select_type_f(space_id, type, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5sget_select_type_f(space_id, type, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(INOUT) :: space_id ! Dataspace identifier to
INTEGER, INTENT(OUT) :: type ! Selection type
@@ -1853,9 +1779,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sdecode_f(buf, obj_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5sdecode_f(buf, obj_id, hdferr)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: buf ! Buffer for the data space object to be decoded.
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID
@@ -1901,9 +1825,7 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5sencode_f(obj_id, buf, nalloc, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5sencode_f(obj_id, buf, nalloc, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Identifier of the object to be encoded.
CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer for the object to be encoded into.
@@ -1953,8 +1875,6 @@
!----------------------------------------------------------------------
SUBROUTINE h5sextent_equal_f(space1_id, space2_id, equal, hdferr)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space1_id ! First dataspace identifier.
INTEGER(HID_T), INTENT(IN) :: space2_id ! Second dataspace identifier.
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index 5f3d27c..13fea93 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -413,6 +413,7 @@ nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision)
* Tuesday, January 25, 2000
* Modifications:
*---------------------------------------------------------------------------*/
+
int_f
nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset)
{
@@ -1839,7 +1840,6 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag)
ret_value = 0;
return ret_value;
}
-
/*----------------------------------------------------------------------------
* Name: h5tget_native_type_c
* Purpose: Call H5Tget_native_type
@@ -1865,3 +1865,4 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype
ret_value = 0;
return ret_value;
}
+
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index 0db4843..eb4ff30 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -52,8 +52,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5topen_f(loc_id, name, type_id, hdferr, tapl_id)
-!
-!This definition is needed for Windows DLLs
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Datatype name within file or group
@@ -125,9 +123,7 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr, &
- lcpl_id, tcpl_id, tapl_id )
-!
-!This definition is needed for Windows DLLs
+ lcpl_id, tcpl_id, tapl_id )
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name
@@ -206,9 +202,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: new_type_id
@@ -260,9 +254,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type1_id ! Datatype identifier
INTEGER(HID_T), INTENT(IN) :: type2_id ! Datatype identifier
@@ -315,9 +307,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tclose_f(type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tclose_f(type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -374,9 +364,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tget_class_f(type_id, class, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_class_f(type_id, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: class
@@ -436,9 +424,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tget_size_f(type_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_size_f(type_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: size ! Datatype size
@@ -487,9 +473,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tset_size_f(type_id, size, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_size_f(type_id, size, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Datatype size
@@ -542,9 +526,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tget_order_f(type_id, order, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_order_f(type_id, order, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: order
@@ -601,9 +583,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tset_order_f(type_id, order, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_order_f(type_id, order, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: order ! Datatype byte order, bossible values
@@ -656,9 +636,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tget_precision_f(type_id, precision, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_precision_f(type_id, precision, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: precision ! Datatype precision
@@ -706,9 +684,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_precision_f(type_id, precision, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_precision_f(type_id, precision, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: precision ! Datatype precision
@@ -756,9 +732,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_offset_f(type_id, offset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_offset_f(type_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: offset ! Datatype bit offset of the
@@ -807,9 +781,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_offset_f(type_id, offset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_offset_f(type_id, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: offset ! Datatype bit offset of the
@@ -866,9 +838,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: lsbpad ! padding type of the
@@ -934,9 +904,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: lsbpad ! padding type of the
@@ -999,9 +967,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_sign_f(type_id, sign, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_sign_f(type_id, sign, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: sign ! sign type for an integer type
@@ -1059,9 +1025,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_sign_f(type_id, sign, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_sign_f(type_id, sign, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: sign !sign type for an integer type
@@ -1118,9 +1082,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: spos ! sign bit-position
@@ -1128,7 +1090,7 @@ CONTAINS
INTEGER(SIZE_T), INTENT(OUT) :: esize ! size of exponent in bits
INTEGER(SIZE_T), INTENT(OUT) :: mpos ! mantissa bit-position
INTEGER(SIZE_T), INTENT(OUT) :: msize ! size of mantissa in bits
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTEGER, EXTERNAL :: h5tget_fields_c
! MS FORTRAN needs explicit interface for C functions called here.
@@ -1181,9 +1143,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_fields_f(type_id, spos, epos, esize, mpos, msize, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: spos ! sign bit-position
@@ -1239,9 +1199,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: ebias ! Datatype exponent bias of a floating-point type
@@ -1290,9 +1248,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: ebias !Datatype exponent bias of a floating-point type
@@ -1344,9 +1300,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_norm_f(type_id, norm, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_norm_f(type_id, norm, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: norm !mantissa normalization of a floating-point datatype
@@ -1403,9 +1357,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tset_norm_f(type_id, norm, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_norm_f(type_id, norm, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: norm !mantissa normalization of a floating-point datatype
@@ -1463,9 +1415,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: padtype ! padding type for unused bits
@@ -1523,9 +1473,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: padtype ! padding type for unused bits
@@ -1580,9 +1528,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_cset_f(type_id, cset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_cset_f(type_id, cset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype
@@ -1634,9 +1580,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_cset_f(type_id, cset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_cset_f(type_id, cset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: cset !character set type of a string datatype
@@ -1691,9 +1635,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: strpad
@@ -1746,9 +1688,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: strpad ! string padding method for a string datatype
@@ -1797,9 +1737,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: num_members !number of fields in a compound datatype
@@ -1849,9 +1787,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_member_name_f(type_id, index, member_name, namelen, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: index !Field index (0-based) of the field name to retrieve
@@ -1906,9 +1842,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the field
@@ -1958,9 +1892,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_member_index_f(type_id, name, index, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Field or member name
@@ -2010,9 +1942,8 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
-! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr)
+! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr)
!
-!This definition is needed for Windows DLLs
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of
@@ -2055,10 +1986,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims !buffer to store array datatype
@@ -2108,10 +2036,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER, INTENT(OUT) :: ndims ! number of array dimensions
@@ -2160,10 +2085,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier
INTEGER(HID_T), INTENT(OUT) :: base_type_id ! identifier of the datatype
@@ -2215,9 +2137,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of the field type to retrieve
@@ -2273,9 +2193,7 @@ CONTAINS
!----------------------------------------------------------------------
- SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: class ! Datatype class can be one of
! H5T_COMPOUND_F
@@ -2331,9 +2249,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the field to insert
@@ -2390,9 +2306,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tpack_f(type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tpack_f(type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -2436,9 +2350,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
-! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm)
-!
-!This definition is needed for Windows DLLs
+! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm)
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: parent_id ! identifier of the parent compound datatype
! CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
@@ -2492,9 +2404,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: base_id ! identifier of array base datatype
INTEGER, INTENT(IN) :: rank ! Rank of the array
@@ -2549,9 +2459,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: parent_id ! Datatype identifier for
! the base datatype
@@ -2601,9 +2509,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
@@ -2660,9 +2566,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the enumeration datatype.
@@ -2717,9 +2621,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the enumeration datatype.
@@ -2774,9 +2676,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the enumeration datatype member
@@ -2827,9 +2727,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tset_tag_f(type_id, tag, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tset_tag_f(type_id, tag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: tag !Unique ASCII string with which
@@ -2841,7 +2739,7 @@ CONTAINS
! MS FORTRAN needs explicit interface for C functions called here.
!
INTERFACE
- INTEGER FUNCTION h5tset_tag_c(type_id, tag, namelen)
+ INTEGER FUNCTION h5tset_tag_c(type_id, tag, taglen)
USE H5GLOBAL
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5TSET_TAG_C'::h5tset_tag_c
@@ -2883,9 +2781,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(OUT) :: tag !Unique ASCII string with which
@@ -2935,9 +2831,7 @@ CONTAINS
! Comment: Only basic Fortran base datatypes are supported
!----------------------------------------------------------------------
- SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tvlen_create_f(type_id, vltype_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: vltype_id ! VL datatype identifier
@@ -2981,10 +2875,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5tis_variable_str_f(type_id, status, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
LOGICAL, INTENT(OUT) :: status ! Flag, idicates if datatype
@@ -3050,10 +2941,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5tget_member_class_f(type_id, member_no, class, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no ! Member number
@@ -3108,9 +2996,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tcommit_anon_f(loc_id, dtype_id, hdferr, tcpl_id, tapl_id)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tcommit_anon_f(loc_id, dtype_id, hdferr, tcpl_id, tapl_id)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! A file or group identifier specifying
! the file in which the new named datatype
@@ -3176,9 +3062,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tcommitted_f(dtype_id, committed, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tcommitted_f(dtype_id, committed, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! A datatype identifier
LOGICAL, INTENT(OUT) :: committed ! .TRUE., if the datatype has been committed
@@ -3236,9 +3120,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tdecode_f(buf, obj_id, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tdecode_f(buf, obj_id, hdferr)
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: buf ! Buffer for the data space object to be decoded.
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID
@@ -3284,9 +3166,7 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5tencode_f(obj_id, buf, nalloc, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tencode_f(obj_id, buf, nalloc, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Identifier of the object to be encoded.
CHARACTER(LEN=*), INTENT(OUT) :: buf ! Buffer for the object to be encoded into.
@@ -3332,8 +3212,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5tget_create_plist_f(dtype_id, dtpl_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_create_plist_f(dtype_id, dtpl_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: dtpl_id ! Datatype property list identifier.
@@ -3379,8 +3258,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5tcompiler_conv_f( src_id, dst_id, flag, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tcompiler_conv_f( src_id, dst_id, flag, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: src_id ! Identifier for the source datatype.
INTEGER(HID_T), INTENT(IN) :: dst_id ! Identifier for the destination datatype.
@@ -3437,8 +3315,7 @@ CONTAINS
!
!----------------------------------------------------------------------
- SUBROUTINE h5tget_native_type_f(dtype_id, direction, native_dtype_id, hdferr)
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5tget_native_type_f(dtype_id, direction, native_dtype_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dtype_id ! Datatype identifier
INTEGER, INTENT(IN) :: direction ! Direction of search:
@@ -3462,4 +3339,5 @@ CONTAINS
hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id)
END SUBROUTINE h5tget_native_type_f
+
END MODULE H5T
diff --git a/fortran/src/H5Zff.f90 b/fortran/src/H5Zff.f90
index 553722f..343f680 100644
--- a/fortran/src/H5Zff.f90
+++ b/fortran/src/H5Zff.f90
@@ -45,9 +45,7 @@
!
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5zunregister_f(filter, hdferr)
-!
-!This definition is needed for Windows DLLs
+ SUBROUTINE h5zunregister_f(filter, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -88,10 +86,7 @@
! Modifications:
!
!----------------------------------------------------------------------
- SUBROUTINE h5zfilter_avail_f(filter, status, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5zfilter_avail_f(filter, status, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
! H5Z_FILTER_DEFLATE_F
@@ -148,10 +143,7 @@
! Modifications:
!
!----------------------------------------------------------------------
- SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)
-!
-!This definition is needed for Windows DLLs
-
+ SUBROUTINE h5zget_filter_info_f(filter, config_flags, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter ! Filter; may be one of the following:
! H5Z_FILTER_DEFLATE_F
diff --git a/fortran/src/H5_DBLE_InterfaceExclude.f90 b/fortran/src/H5_DBLE_InterfaceExclude.f90
new file mode 100644
index 0000000..4db8bdd
--- /dev/null
+++ b/fortran/src/H5_DBLE_InterfaceExclude.f90
@@ -0,0 +1,27 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! 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. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!
+! FUNCTION
+! This module is included for when the default REAL is of type DOUBLE PRECISION.
+! We do not include the double precision interfaces if the defaut REAL is
+! DOUBLE PRECISION since this would lead to a non-unique conflict with the
+! generic interfaces declared as REAL.
+!
+!
+MODULE H5_DBLE_INTERFACE
+
+
+END MODULE H5_DBLE_INTERFACE
diff --git a/fortran/src/H5_DBLE_InterfaceInclude.f90 b/fortran/src/H5_DBLE_InterfaceInclude.f90
new file mode 100644
index 0000000..69be022
--- /dev/null
+++ b/fortran/src/H5_DBLE_InterfaceInclude.f90
@@ -0,0 +1,1863 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! 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. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+!
+! FUNCTION
+! This module is included for when the default REAL is not of the type DOUBLE PRECISION.
+! We do not include the double precision interfaces if the defaut REAL is
+! DOUBLE PRECISION since this would lead to a non-unique conflict with the
+! generic interfaces declared as REAL. Otherwise it is okay to include the interfaces.
+!
+!
+MODULE H5_DBLE_INTERFACE
+
+ USE H5GLOBAL
+
+ !
+ ! ----- H5A ----
+ !
+ INTERFACE h5awrite_f
+ MODULE PROCEDURE h5awrite_double_scalar
+ MODULE PROCEDURE h5awrite_double_1
+ MODULE PROCEDURE h5awrite_double_2
+ MODULE PROCEDURE h5awrite_double_3
+ MODULE PROCEDURE h5awrite_double_4
+ MODULE PROCEDURE h5awrite_double_5
+ MODULE PROCEDURE h5awrite_double_6
+ MODULE PROCEDURE h5awrite_double_7
+ END INTERFACE
+
+ INTERFACE h5aread_f
+ MODULE PROCEDURE h5aread_double_scalar
+ MODULE PROCEDURE h5aread_double_1
+ MODULE PROCEDURE h5aread_double_2
+ MODULE PROCEDURE h5aread_double_3
+ MODULE PROCEDURE h5aread_double_4
+ MODULE PROCEDURE h5aread_double_5
+ MODULE PROCEDURE h5aread_double_6
+ MODULE PROCEDURE h5aread_double_7
+ END INTERFACE
+ !
+ ! ----- H5D ----
+ !
+ INTERFACE h5dwrite_f
+ MODULE PROCEDURE h5dwrite_double_scalar
+ MODULE PROCEDURE h5dwrite_double_1
+ MODULE PROCEDURE h5dwrite_double_2
+ MODULE PROCEDURE h5dwrite_double_3
+ MODULE PROCEDURE h5dwrite_double_4
+ MODULE PROCEDURE h5dwrite_double_5
+ MODULE PROCEDURE h5dwrite_double_6
+ MODULE PROCEDURE h5dwrite_double_7
+ END INTERFACE
+
+ INTERFACE h5dread_f
+ MODULE PROCEDURE h5dread_double_scalar
+ MODULE PROCEDURE h5dread_double_1
+ MODULE PROCEDURE h5dread_double_2
+ MODULE PROCEDURE h5dread_double_3
+ MODULE PROCEDURE h5dread_double_4
+ MODULE PROCEDURE h5dread_double_5
+ MODULE PROCEDURE h5dread_double_6
+ MODULE PROCEDURE h5dread_double_7
+ END INTERFACE
+
+ INTERFACE h5dfill_f
+ MODULE PROCEDURE h5dfill_double
+ END INTERFACE
+
+ !
+ ! ----- H5P ----
+ !
+ INTERFACE h5pset_fill_value_f
+ MODULE PROCEDURE h5pset_fill_value_double
+ END INTERFACE
+
+ INTERFACE h5pget_fill_value_f
+ MODULE PROCEDURE h5pget_fill_value_double
+ END INTERFACE
+
+ INTERFACE h5pset_f
+ MODULE PROCEDURE h5pset_double
+ END INTERFACE
+
+ INTERFACE h5pget_f
+ MODULE PROCEDURE h5pget_double
+ END INTERFACE
+
+ INTERFACE h5pregister_f
+ MODULE PROCEDURE h5pregister_double
+ END INTERFACE
+
+ INTERFACE h5pinsert_f
+ MODULE PROCEDURE h5pinsert_double
+ END INTERFACE
+
+CONTAINS
+
+ !
+ ! ----- H5A ----
+ !
+ SUBROUTINE h5awrite_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_S_C'::h5awrite_double_s_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN)::buf
+ END FUNCTION h5awrite_double_s_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_scalar
+
+ SUBROUTINE h5awrite_double_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_1_C'::h5awrite_double_1_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5awrite_double_1_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_1
+
+
+ SUBROUTINE h5awrite_double_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_2_C'::h5awrite_double_2_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awrite_double_2_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_2
+
+
+ SUBROUTINE h5awrite_double_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_3_C'::h5awrite_double_3_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awrite_double_3_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_3
+
+
+ SUBROUTINE h5awrite_double_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_4_C'::h5awrite_double_4_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awrite_double_4_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_4
+
+
+ SUBROUTINE h5awrite_double_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_5_C'::h5awrite_double_5_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awrite_double_5_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_5
+
+
+ SUBROUTINE h5awrite_double_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_6_C'::h5awrite_double_6_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awrite_double_6_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_6
+
+
+ SUBROUTINE h5awrite_double_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5awrite_double_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5awrite_double_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_DOUBLE_7_C'::h5awrite_double_7_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awrite_double_7_c
+ END INTERFACE
+
+ hdferr = h5awrite_double_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5awrite_double_7
+
+
+ SUBROUTINE h5aread_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_s_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_S_C'::h5aread_double_s_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT)::buf
+ END FUNCTION h5aread_double_s_c
+ END INTERFACE
+
+ hdferr = h5aread_double_s_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_scalar
+
+ SUBROUTINE h5aread_double_1(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_1_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_1_C'::h5aread_double_1_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_double_1_c
+ END INTERFACE
+
+ hdferr = h5aread_double_1_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_1
+
+
+ SUBROUTINE h5aread_double_2(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_2_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_2_C'::h5aread_double_2_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_double_2_c
+ END INTERFACE
+
+ hdferr = h5aread_double_2_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_2
+
+
+ SUBROUTINE h5aread_double_3(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_3_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_3_C'::h5aread_double_3_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_double_3_c
+ END INTERFACE
+
+ hdferr = h5aread_double_3_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_3
+
+
+ SUBROUTINE h5aread_double_4(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_4_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_4_C'::h5aread_double_4_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_double_4_c
+ END INTERFACE
+
+ hdferr = h5aread_double_4_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_4
+
+
+ SUBROUTINE h5aread_double_5(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_5_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_5_C'::h5aread_double_5_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_double_5_c
+ END INTERFACE
+
+ hdferr = h5aread_double_5_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_5
+
+
+ SUBROUTINE h5aread_double_6(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_6_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_6_C'::h5aread_double_6_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_double_6_c
+ END INTERFACE
+
+ hdferr = h5aread_double_6_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_6
+
+
+ SUBROUTINE h5aread_double_7(attr_id, memtype_id, buf, dims, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5aread_double_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5aread_double_7_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5AREAD_DOUBLE_7_C'::h5aread_double_7_c
+ !DEC$ ENDIF
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_double_7_c
+ END INTERFACE
+
+ hdferr = h5aread_double_7_c(attr_id, memtype_id, buf, dims)
+ END SUBROUTINE h5aread_double_7
+
+
+ !
+ ! ----- H5D ----
+ !
+ SUBROUTINE h5dwrite_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_S_C'::h5dwrite_double_s_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_double_s_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_scalar
+
+ SUBROUTINE h5dwrite_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_1_C'::h5dwrite_double_1_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_double_1_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_1
+
+ SUBROUTINE h5dwrite_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_2_C'::h5dwrite_double_2_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_double_2_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_2
+
+ SUBROUTINE h5dwrite_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_3_C'::h5dwrite_double_3_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_double_3_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_3
+
+ SUBROUTINE h5dwrite_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_4_C'::h5dwrite_double_4_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_double_4_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_4
+
+ SUBROUTINE h5dwrite_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_5_C'::h5dwrite_double_5_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_double_5_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_5
+
+ SUBROUTINE h5dwrite_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_6_C'::h5dwrite_double_6_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_double_6_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_6
+
+ SUBROUTINE h5dwrite_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dwrite_double_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_double_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_DOUBLE_7_C'::h5dwrite_double_7_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_double_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_double_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dwrite_double_7
+
+ SUBROUTINE h5dread_double_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_s_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_s_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_S_C'::h5dread_double_s_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(OUT) :: buf
+ END FUNCTION h5dread_double_s_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_s_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_scalar
+
+ SUBROUTINE h5dread_double_1(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_1_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_1_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_1_C'::h5dread_double_1_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_double_1_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_1_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_1
+
+ SUBROUTINE h5dread_double_2(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_2_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_2_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_2_C'::h5dread_double_2_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_double_2_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_2_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_2
+
+ SUBROUTINE h5dread_double_3(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_3_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_3_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_3_C'::h5dread_double_3_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_double_3_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_3_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_3
+
+ SUBROUTINE h5dread_double_4(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_4_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_4_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_4_C'::h5dread_double_4_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dread_double_4_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_4_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_4
+
+ SUBROUTINE h5dread_double_5(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_5_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_5_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_5_C'::h5dread_double_5_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_double_5_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_5_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_5
+
+ SUBROUTINE h5dread_double_6(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_6_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_6_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_6_C'::h5dread_double_6_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_double_6_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_6_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_6
+
+ SUBROUTINE h5dread_double_7(dset_id, mem_type_id, buf, dims, hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
+ ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id
+ ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
+ ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ ! INTEGER, EXTERNAL :: h5dread_double_7_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dread_double_7_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DREAD_DOUBLE_7_C'::h5dread_double_7_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_double_7_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ if (present(xfer_prp)) xfer_prp_default = xfer_prp
+ if (present(mem_space_id)) mem_space_id_default = mem_space_id
+ if (present(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_double_7_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, buf, dims)
+
+ END SUBROUTINE h5dread_double_7
+
+ !----------------------------------------------------------------------
+ ! Name: h5dfill_double
+ !
+ ! Purpose: Fills dataspace elements with a fill value in a memory buffer.
+ ! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
+ ! of the fillvalues and buffers are supported. Buffer and fillvalue
+ ! are assumed to have the same datatype.
+ ! Only one-dimesional buffers are supported.
+ !
+ ! Inputs:
+ ! fill_value - fill value
+ ! space_id - memory space selection identifier
+ ! buf - data buffer iin memory ro apply selection to
+ ! - of k-th dimension of the buf array
+ ! Outputs:
+ ! hdferr: - error code
+ ! Success: 0
+ ! Failure: -1
+ !
+ ! Programmer: Elena Pourmal
+ ! March 12, 2003
+ !
+ !----------------------------------------------------------------------
+
+ SUBROUTINE h5dfill_double(fill_value, space_id, buf, hdferr)
+ IMPLICIT NONE
+ DOUBLE PRECISION, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ DOUBLE PRECISION, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+
+ ! INTEGER, EXTERNAL :: h5dfill_double_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dfill_double_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5DFILL_DOUBLE_C'::h5dfill_double_c
+ !DEC$ ENDIF
+ DOUBLE PRECISION, INTENT(IN) :: fill_value ! Fill value
+ INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
+ DOUBLE PRECISION, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
+ INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
+ END FUNCTION h5dfill_double_c
+ END INTERFACE
+ fill_type_id = H5T_NATIVE_DOUBLE
+ mem_type_id = H5T_NATIVE_DOUBLE
+
+ hdferr = h5dfill_double_c(fill_value, fill_type_id, space_id, &
+ buf, mem_type_id)
+
+
+ END SUBROUTINE h5dfill_double
+
+ !
+ ! -- H5P ---
+ !
+
+ SUBROUTINE h5pset_fill_value_double(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)
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5pset_fill_value_double_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_DOUBLE_C'::h5pset_fill_value_double_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_double_c
+ END INTERFACE
+
+ hdferr = h5pset_fill_value_double_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pset_fill_value_double
+
+
+ SUBROUTINE h5pget_fill_value_double(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)
+ DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ ! INTEGER, EXTERNAL :: h5pget_fill_value_double_c
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_DOUBLE_C'::h5pget_fill_value_double_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ DOUBLE PRECISION :: fillvalue
+ END FUNCTION h5pget_fill_value_double_c
+ END INTERFACE
+
+ hdferr = h5pget_fill_value_double_c(prp_id, type_id, fillvalue)
+ END SUBROUTINE h5pget_fill_value_double
+
+
+ !----------------------------------------------------------------------
+ ! Name: h5pset_double
+ !
+ ! Purpose: Sets a property list value
+ !
+ ! Inputs:
+ ! prp_id - iproperty list identifier to modify
+ ! name - name of property to modify
+ ! value - value to set property to
+ ! Outputs:
+ ! hdferr: - error code
+ ! Success: 0
+ ! Failure: -1
+ ! Optional parameters:
+ ! NONE
+ !
+ ! Programmer: Elena Pourmal
+ ! October 9, 2002
+ !
+ ! Modifications:
+ !
+ ! Comment:
+ !----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_double(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
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_double_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PSET_DOUBLE_C'::h5pset_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pset_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pset_double_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pset_double
+
+
+ !----------------------------------------------------------------------
+ ! Name: h5pget_double
+ !
+ ! Purpose: Gets a property list value
+ !
+ ! Inputs:
+ ! prp_id - iproperty list identifier to modify
+ ! name - name of property to modify
+ ! Outputs:
+ ! value - value of property
+ ! hdferr: - error code
+ ! Success: 0
+ ! Failure: -1
+ ! Optional parameters:
+ ! NONE
+ !
+ ! Programmer: Elena Pourmal
+ ! October 9, 2002
+ !
+ ! Modifications:
+ !
+ ! Comment:
+ !----------------------------------------------------------------------
+
+ SUBROUTINE h5pget_double(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
+ DOUBLE PRECISION, INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_double_c(prp_id, name, name_len, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PGET_DOUBLE_C'::h5pget_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ DOUBLE PRECISION, INTENT(OUT) :: value
+ END FUNCTION h5pget_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pget_double_c(prp_id, name , name_len, value)
+ END SUBROUTINE h5pget_double
+
+
+ !----------------------------------------------------------------------
+ ! Name: h5pregister_double
+ !
+ ! Purpose: Registers a permanent property with a property list class.
+ !
+ ! Inputs:
+ ! class - property list class to register
+ ! permanent property within
+ ! name - name of property to register
+ ! size - size of property in bytes
+ ! value - default value for property in newly
+ ! created property lists
+ ! Outputs:
+ ! hdferr: - error code
+ ! Success: 0
+ ! Failure: -1
+ ! Optional parameters:
+ ! NONE
+ !
+ ! Programmer: Elena Pourmal
+ ! October 10, 2002
+ !
+ ! Modifications:
+ !
+ ! Comment:
+ !----------------------------------------------------------------------
+
+ SUBROUTINE h5pregister_double(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
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_double_c(class, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_DOUBLE_C'::h5pregister_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pregister_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pregister_double_c(class, name , name_len, size, value)
+ END SUBROUTINE h5pregister_double
+
+ !----------------------------------------------------------------------
+ ! Name: h5pinsert_double
+ !
+ ! Purpose: Registers a temporary property with a property list class.
+ !
+ ! Inputs:
+ ! plist - property list identifier
+ ! permanent property within
+ ! name - name of property to insert
+ ! size - size of property in bytes
+ ! value - initial value for the property
+ ! Outputs:
+ ! hdferr: - error code
+ ! Success: 0
+ ! Failure: -1
+ ! Optional parameters:
+ ! NONE
+ !
+ ! Programmer: Elena Pourmal
+ ! October 10, 2002
+ !
+ ! Modifications:
+ !
+ ! Comment:
+ !----------------------------------------------------------------------
+
+ SUBROUTINE h5pinsert_double(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
+ DOUBLE PRECISION, INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_double_c(plist, name, name_len, size, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_DOUBLE_C'::h5pinsert_double_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ DOUBLE PRECISION, INTENT(IN) :: value
+ END FUNCTION h5pinsert_double_c
+ END INTERFACE
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_double_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_double
+
+END MODULE H5_DBLE_INTERFACE
diff --git a/fortran/src/H5_ff.f90 b/fortran/src/H5_ff.f90
index a8cbc3b..5a372b6 100644
--- a/fortran/src/H5_ff.f90
+++ b/fortran/src/H5_ff.f90
@@ -39,8 +39,6 @@ CONTAINS
! Comment:
!----------------------------------------------------------------------
SUBROUTINE h5open_f(error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
@@ -120,8 +118,6 @@ CONTAINS
END INTERFACE
error_0 = h5open_c()
error_1 = h5init_types_c(predef_types, floating_types, integer_types)
- print*,'here'
- print*,predef_types
error_2 = h5init_flags_c(H5D_flags, &
H5F_flags, &
H5FD_flags, &
@@ -165,8 +161,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5close_f(error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
@@ -227,8 +221,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5get_libversion_f(majnum, minnum, relnum, error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
@@ -269,8 +261,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5check_version_f(majnum, minnum, relnum, error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
@@ -310,8 +300,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5garbage_collect_f(error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
@@ -349,8 +337,6 @@ CONTAINS
!----------------------------------------------------------------------
SUBROUTINE h5dont_atexit_f(error)
-!
-!This definition is needed for Windows DLLs
USE H5GLOBAL
IMPLICIT NONE
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index db7178e..e357fea 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -17,131 +17,123 @@
! This fortran program generates H5fortran_detect.f90
!
!
- PROGRAM test_kind
- INTEGER :: i, j, ii, last, kind_numbers(10)
- INTEGER :: jr, jd
- last = -1
- ii = 0
- j = SELECTED_INT_KIND(18)
-! write(*,*) j
- DO i = 1,100
- j = SELECTED_INT_KIND(i)
- IF(j .NE. last) THEN
- IF(last .NE. -1) THEN
- ii = ii + 1
- kind_numbers(ii) = last
- ENDIF
- last = j
- IF(j .EQ. -1) EXIT
- ENDIF
- ENDDO
-! write(*,*) kind_numbers(1:ii)
+PROGRAM test_kind
+ INTEGER :: i, j, ii, last, kind_numbers(10)
+ INTEGER :: jr, jd
+ last = -1
+ ii = 0
+ j = SELECTED_INT_KIND(18)
+ DO i = 1,100
+ j = SELECTED_INT_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ii = ii + 1
+ kind_numbers(ii) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
! Generate a program
- WRITE(*,*) "program int_kind"
- WRITE(*,*) "write(*,*) "" /*generating header file*/ """
- j = 0
- WRITE(*, "("" call i"", i2.2,""()"")") j
- jr = 0
- WRITE(*, "("" call r"", i2.2,""()"")") jr
- jd = 0
- WRITE(*, "("" call d"", i2.2,""()"")") jd
- DO i = 1, ii
- j = kind_numbers(i)
- WRITE(*, "("" call i"", i2.2,""()"")") j
- ENDDO
- WRITE(*,*) "end program int_kind"
- j = 0
- WRITE(*, "("" subroutine i"", i2.2,""()"")") j
- WRITE(*,*)" implicit none"
- WRITE(*,*)" integer :: a = 0"
- WRITE(*,*)" integer :: a_size"
- WRITE(*,*)" a_size = bit_size(a)"
- WRITE(*,*)" if (a_size .eq. 8) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_1"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 16) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_2"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 32) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_4"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 64) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_8"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 128) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_16"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" return"
- WRITE(*,*)" end subroutine"
- jr = 0
- WRITE(*, "("" subroutine r"", i2.2,""()"")") j
- WRITE(*,*)" implicit none"
- WRITE(*,*)" real :: b(1) = 0"
- WRITE(*,*)" integer :: a(1) = 0"
- WRITE(*,*)" integer :: a_size"
- WRITE(*,*)" integer :: real_size"
- WRITE(*,*)" integer :: ab_size ! How many integers needed to hold a real"
- WRITE(*,*)" integer :: ba_size ! How many reals needed to hold an integer"
- WRITE(*,*)" a_size = bit_size(a(1)) ! Size in bits for integer"
- WRITE(*,*)" ab_size = size(transfer(b,a))"
- WRITE(*,*)" ba_size = size(transfer(a,b))"
- WRITE(*,*)" if (ab_size .eq. ba_size) real_size=a_size"
- WRITE(*,*)" if (ab_size .gt. ba_size) real_size=a_size*ba_size"
- WRITE(*,*)" if (ab_size .lt. ba_size) real_size=a_size/ba_size"
- WRITE(*,*)" if (real_size .eq. 32) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_4"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (real_size .eq. 64) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_8"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (real_size .eq. 128) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_16"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" return"
- WRITE(*,*)" end subroutine"
- jd = 0
- WRITE(*, "("" subroutine d"", i2.2,""()"")") jd
- WRITE(*,*)" implicit none"
- WRITE(*,*)" double precision :: b = 0"
- WRITE(*,*)" integer :: a(8) = 0"
- WRITE(*,*)" integer :: a_size"
- WRITE(*,*)" integer :: b_size"
- WRITE(*,*)" a_size = bit_size(a(1))"
- WRITE(*,*)" b_size = size(transfer(b,a))*a_size"
- WRITE(*,*)" if (b_size .eq. 64) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_8"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (b_size .eq. 128) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_16"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" return"
- WRITE(*,*)" end subroutine"
- DO i = 1, ii
- j = kind_numbers(i)
- WRITE(*, "("" subroutine i"", i2.2,""()"")") j
- WRITE(*,*)" implicit none"
- WRITE(*,*)" integer(",j,") :: a = 0"
- WRITE(*,*)" integer :: a_size"
- WRITE(*,*)" a_size = bit_size(a)"
- WRITE(*,*)" if (a_size .eq. 8) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_INTEGER_1"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 16) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_INTEGER_2"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 32) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_INTEGER_4"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 64) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_INTEGER_8"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" if (a_size .eq. 128) then"
- WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_INTEGER_16"" "
- WRITE(*,*)" endif"
- WRITE(*,*)" return"
- WRITE(*,*)" end subroutine"
- ENDDO
- END PROGRAM
-
+ WRITE(*,*) "PROGRAM int_kind"
+ WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
+ j = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ jr = 0
+ WRITE(*, "("" CALL r"", i2.2,""()"")") jr
+ jd = 0
+ WRITE(*, "("" CALL d"", i2.2,""()"")") jd
+ DO i = 1, ii
+ j = kind_numbers(i)
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ENDDO
+ WRITE(*,*) "END PROGRAM int_kind"
+ j = 0
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" INTEGER :: a = 0"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" a_size = BIT_SIZE(a)"
+ WRITE(*,*)" IF (a_size .EQ. 8) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_1"" "
+ WRITE(*,*)" endif"
+ WRITE(*,*)" IF (a_size .EQ. 16) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_2"" "
+ WRITE(*,*)" endif"
+ WRITE(*,*)" IF (a_size .EQ. 32) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_4"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 64) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_8"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 128) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_NATIVE_16"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jr = 0
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" REAL :: b(32)"
+ WRITE(*,*)" INTEGER :: a(1)"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER :: real_size"
+ WRITE(*,*)" a_size = BIT_SIZE(a(1)) ! Size in bits for integer"
+ WRITE(*,*)" real_size = (SIZE(TRANSFER(b,a))*a_size)/SIZE(b)"
+ WRITE(*,*)" IF (real_size .EQ. 32) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_4"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (real_size .EQ. 64) THEN"
+ WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_8"" "
+ WRITE(*,*)" endif"
+ WRITE(*,*)" IF (real_size .EQ. 128) THEN"
+ WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_NATIVE_16"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jd = 0
+ WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" DOUBLE PRECISION :: b=0"
+ WRITE(*,*)" INTEGER :: a(8)=0"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER :: b_size"
+ WRITE(*,*)" a_size = BIT_SIZE(a(1))"
+ WRITE(*,*)" b_size = SIZE(transfer(b,a))*a_size"
+ WRITE(*,*)" IF (b_size .EQ. 64) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_8"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (b_size .EQ. 128) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_DOUBLE_NATIVE_16"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ DO i = 1, ii
+ j = kind_numbers(i)
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" INTEGER(",j,") :: a = 0"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" a_size = BIT_SIZE(a)"
+ WRITE(*,*)" IF (a_size .EQ. 8) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_1"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 16) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_2"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 32) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_4"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 64) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_8"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (a_size .EQ. 128) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_INTEGER_16"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)" END SUBROUTINE"
+ ENDDO
+END PROGRAM test_kind
+
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
new file mode 100644
index 0000000..72d9176
--- /dev/null
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -0,0 +1,100 @@
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! H5test_kind_SIZEOF.f90
+!
+! This fortran program generates H5fortran_detect.f90
+!
+!
+PROGRAM test_kind
+ INTEGER :: i, j, ii, last, kind_numbers(10)
+ INTEGER :: jr, jd
+ last = -1
+ ii = 0
+ j = SELECTED_INT_KIND(18)
+ DO i = 1,100
+ j = SELECTED_INT_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ii = ii + 1
+ kind_numbers(ii) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
+! Generate a program
+ WRITE(*,*) "PROGRAM int_kind"
+ WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
+ j = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ jr = 0
+ WRITE(*, "("" CALL r"", i2.2,""()"")") jr
+ jd = 0
+ WRITE(*, "("" CALL d"", i2.2,""()"")") jd
+ DO i = 1, ii
+ j = kind_numbers(i)
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ENDDO
+ WRITE(*,*) "END PROGRAM int_kind"
+ j = 0
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" INTEGER :: a"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" a_size = SIZEOF(a)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jr = 0
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" REAL :: a"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" a_size = SIZEOF(a)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ jd = 0
+ WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" DOUBLE PRECISION :: a"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" a_size = SIZEOF(a)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ DO i = 1, ii
+ j = kind_numbers(i)
+ WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" INTEGER(",j,") :: a"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" a_size = SIZEOF(a)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ ENDDO
+END PROGRAM test_kind
+
+
+
diff --git a/fortran/src/HDF5.f90 b/fortran/src/HDF5.f90
index 04ad33d..1d758fb 100644
--- a/fortran/src/HDF5.f90
+++ b/fortran/src/HDF5.f90
@@ -28,6 +28,7 @@ MODULE HDF5
USE H5P
USE H5R
USE H5Z
+ USE H5_DBLE_INTERFACE
USE H5LIB
END MODULE HDF5
diff --git a/fortran/src/HDF5mpio.f90 b/fortran/src/HDF5mpio.f90
index 59ec309..6febef8 100644
--- a/fortran/src/HDF5mpio.f90
+++ b/fortran/src/HDF5mpio.f90
@@ -29,5 +29,6 @@
USE H5FDMPIO
USE H5R
USE H5Z
+ USE H5_DBLE_INTERFACE
USE H5LIB
END MODULE HDF5
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index 47caf20..2f8e841 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -45,13 +45,25 @@ else
PARALLEL_COND_SRC = HDF5.f90
endif
+# Condition for including/excluding the DBLE interfaces for when the
+# default REAL is of type DOUBLE PRECISION.
+# We do not include the double precision interfaces if the defaut REAL is
+# DOUBLE PRECISION since this would lead to a non-unique conflict with the
+# generic interfaces declared as REAL.
+if FORTRAN_DEFAULT_REALisDBLE_F
+ F_DBLE = Exclude
+else
+ F_DBLE = Include
+endif
+
# Source files for the library.
libhdf5_fortran_la_SOURCES=H5fortran_flags.f90 H5f90global.f90 \
H5fortran_types.f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
H5Tff.f90 H5Zff.f90 \
+ H5_DBLE_Interface$(F_DBLE).f90 \
H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
$(PARALLEL_COND_SRC)
# h5fc and libhdf5_fortran.settings are generated during configure.
@@ -140,13 +152,20 @@ H5match_types.$(OBJEXT): H5fort_type_defines.h
# files.
H5fortran_detect_SOURCES = H5fortran_detect.f90
-# H5test_kind.f90 generates H5fortran_detect.f90.
+# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if
+# intrinsic function SIZEOF is available.
+
H5fortran_detect.f90: H5test_kind$(EXEEXT)
$(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90
# H5test_kind.f90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
-H5test_kind_SOURCES = $(srcdir)/H5test_kind.f90
+
+if FORTRAN_HAVE_SIZEOF
+ H5test_kind_SOURCES = $(srcdir)/H5test_kind_SIZEOF.f90
+else
+ H5test_kind_SOURCES = $(srcdir)/H5test_kind.f90
+endif
# Mark this directory as part of the Fortran API
FORTRAN_API=yes
@@ -160,6 +179,7 @@ H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_flags.lo H5fortran_type
H5fortran_types.lo: H5fortran_types.f90
H5fortran_detect.lo: H5fortran_detect.f90
H5test_kind.lo: $(srcdir)/H5test_kind.f90
+H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo
H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
@@ -174,12 +194,15 @@ H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff.lo H5Dff.lo H5Pff.lo
+
HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo \
H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo
+ H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo
H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5Aff.lo \
H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5FDmpioff.lo
+ H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
include $(top_srcdir)/config/conclude.am
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index d717520..29299e2 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -80,18 +80,19 @@ am__libhdf5_fortran_la_SOURCES_DIST = H5fortran_flags.f90 \
H5f90global.f90 H5fortran_types.f90 H5_ff.f90 H5Aff.f90 \
H5Dff.f90 H5Eff.f90 H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 \
H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 H5Tff.f90 H5Zff.f90 \
- H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c H5If.c \
- H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c HDF5.f90 \
- H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+ H5_DBLE_Interface$(F_DBLE).f90 H5f90kit.c H5_f.c H5Af.c H5Df.c \
+ H5Ef.c H5Ff.c H5Gf.c H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c \
+ H5Tf.c H5Zf.c HDF5.f90 H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
@BUILD_PARALLEL_CONDITIONAL_FALSE@am__objects_1 = HDF5.lo
@BUILD_PARALLEL_CONDITIONAL_TRUE@am__objects_1 = H5FDmpiof.lo \
@BUILD_PARALLEL_CONDITIONAL_TRUE@ HDF5mpio.lo H5FDmpioff.lo
am_libhdf5_fortran_la_OBJECTS = H5fortran_flags.lo H5f90global.lo \
H5fortran_types.lo H5_ff.lo H5Aff.lo H5Dff.lo H5Eff.lo \
H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Off.lo H5Pff.lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Zff.lo H5f90kit.lo H5_f.lo H5Af.lo H5Df.lo \
- H5Ef.lo H5Ff.lo H5Gf.lo H5If.lo H5Lf.lo H5Of.lo H5Pf.lo \
- H5Rf.lo H5Sf.lo H5Tf.lo H5Zf.lo $(am__objects_1)
+ H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo \
+ H5f90kit.lo H5_f.lo H5Af.lo H5Df.lo H5Ef.lo H5Ff.lo H5Gf.lo \
+ H5If.lo H5Lf.lo H5Of.lo H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo \
+ H5Zf.lo $(am__objects_1)
libhdf5_fortran_la_OBJECTS = $(am_libhdf5_fortran_la_OBJECTS)
PROGRAMS = $(noinst_PROGRAMS)
am_H5fortran_detect_OBJECTS = H5fortran_detect.$(OBJEXT)
@@ -100,7 +101,12 @@ H5fortran_detect_LDADD = $(LDADD)
H5match_types_SOURCES = H5match_types.c
H5match_types_OBJECTS = H5match_types.$(OBJEXT)
H5match_types_LDADD = $(LDADD)
-am_H5test_kind_OBJECTS = H5test_kind.$(OBJEXT)
+am__H5test_kind_SOURCES_DIST = $(srcdir)/H5test_kind.f90 \
+ $(srcdir)/H5test_kind_SIZEOF.f90
+@FORTRAN_HAVE_SIZEOF_FALSE@am_H5test_kind_OBJECTS = \
+@FORTRAN_HAVE_SIZEOF_FALSE@ H5test_kind.$(OBJEXT)
+@FORTRAN_HAVE_SIZEOF_TRUE@am_H5test_kind_OBJECTS = \
+@FORTRAN_HAVE_SIZEOF_TRUE@ H5test_kind_SIZEOF.$(OBJEXT)
H5test_kind_OBJECTS = $(am_H5test_kind_OBJECTS)
H5test_kind_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
@@ -126,7 +132,7 @@ SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5fortran_detect_SOURCES) \
H5match_types.c $(H5test_kind_SOURCES)
DIST_SOURCES = $(am__libhdf5_fortran_la_SOURCES_DIST) \
$(H5fortran_detect_SOURCES) H5match_types.c \
- $(H5test_kind_SOURCES)
+ $(am__H5test_kind_SOURCES_DIST)
settingsDATA_INSTALL = $(INSTALL_DATA)
DATA = $(settings_DATA)
ETAGS = etags
@@ -397,14 +403,23 @@ lib_LTLIBRARIES = libhdf5_fortran.la
# Include HDF5.f90 if parallel is disabled, HDF5mpiof* if parallel is enabled
@BUILD_PARALLEL_CONDITIONAL_TRUE@PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+@FORTRAN_DEFAULT_REALisDBLE_F_FALSE@F_DBLE = Include
+
+# Condition for including/excluding the DBLE interfaces for when the
+# default REAL is of type DOUBLE PRECISION.
+# We do not include the double precision interfaces if the defaut REAL is
+# DOUBLE PRECISION since this would lead to a non-unique conflict with the
+# generic interfaces declared as REAL.
+@FORTRAN_DEFAULT_REALisDBLE_F_TRUE@F_DBLE = Exclude
# Source files for the library.
libhdf5_fortran_la_SOURCES = H5fortran_flags.f90 H5f90global.f90 \
H5fortran_types.f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
H5Tff.f90 H5Zff.f90 \
+ H5_DBLE_Interface$(F_DBLE).f90 \
H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
$(PARALLEL_COND_SRC)
@@ -436,10 +451,11 @@ BUILT_SOURCES = H5f90i_gen.h
# Automake knows how to build fortran programs if we tell it the source
# files.
H5fortran_detect_SOURCES = H5fortran_detect.f90
+@FORTRAN_HAVE_SIZEOF_FALSE@H5test_kind_SOURCES = $(srcdir)/H5test_kind.f90
# H5test_kind.f90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
-H5test_kind_SOURCES = $(srcdir)/H5test_kind.f90
+@FORTRAN_HAVE_SIZEOF_TRUE@H5test_kind_SOURCES = $(srcdir)/H5test_kind_SIZEOF.f90
# Mark this directory as part of the Fortran API
FORTRAN_API = yes
@@ -603,6 +619,12 @@ H5test_kind.o: $(srcdir)/H5test_kind.f90
H5test_kind.obj: $(srcdir)/H5test_kind.f90
$(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o H5test_kind.obj `if test -f '$(srcdir)/H5test_kind.f90'; then $(CYGPATH_W) '$(srcdir)/H5test_kind.f90'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/H5test_kind.f90'; fi`
+H5test_kind_SIZEOF.o: $(srcdir)/H5test_kind_SIZEOF.f90
+ $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o H5test_kind_SIZEOF.o `test -f '$(srcdir)/H5test_kind_SIZEOF.f90' || echo '$(srcdir)/'`$(srcdir)/H5test_kind_SIZEOF.f90
+
+H5test_kind_SIZEOF.obj: $(srcdir)/H5test_kind_SIZEOF.f90
+ $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o H5test_kind_SIZEOF.obj `if test -f '$(srcdir)/H5test_kind_SIZEOF.f90'; then $(CYGPATH_W) '$(srcdir)/H5test_kind_SIZEOF.f90'; else $(CYGPATH_W) '$(srcdir)/$(srcdir)/H5test_kind_SIZEOF.f90'; fi`
+
mostlyclean-libtool:
-rm -f *.lo
@@ -870,7 +892,9 @@ H5fort_type_defines.h: H5fortran_detect$(EXEEXT)
H5match_types.$(OBJEXT): H5fort_type_defines.h
-# H5test_kind.f90 generates H5fortran_detect.f90.
+# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if
+# intrinsic function SIZEOF is available.
+
H5fortran_detect.f90: H5test_kind$(EXEEXT)
$(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90
@@ -883,6 +907,7 @@ H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_flags.lo H5fortran_type
H5fortran_types.lo: H5fortran_types.f90
H5fortran_detect.lo: H5fortran_detect.f90
H5test_kind.lo: $(srcdir)/H5test_kind.f90
+H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo
H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
@@ -897,13 +922,16 @@ H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff.lo H5Dff.lo H5Pff.lo
+
HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5Aff.lo \
H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo
+ H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo
H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5Aff.lo \
H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
- H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5FDmpioff.lo
+ H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
diff --git a/fortran/src/hdf5_fortrandll.def b/fortran/src/hdf5_fortrandll.def
index 4f8b7bb..501570b 100644
--- a/fortran/src/hdf5_fortrandll.def
+++ b/fortran/src/hdf5_fortrandll.def
@@ -1,11 +1,51 @@
EXPORTS
; H5LIB
H5LIB_mp_H5OPEN_F
-H5LIB_mp_H5CLOSE_F
+H5LIB_mp_H5CLOSE_F
H5LIB_mp_H5GET_LIBVERSION_F
H5LIB_mp_H5CHECK_VERSION_F
H5LIB_mp_H5GARBAGE_COLLECT_F
H5LIB_mp_H5DONT_ATEXIT_F
+; H5_DBLE_INTERFACE
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE
; H5A
H5A_mp_H5ACREATE_F
H5A_mp_H5AOPEN_NAME_F
@@ -26,14 +66,6 @@ H5A_mp_H5AWRITE_REAL_4
H5A_mp_H5AWRITE_REAL_5
H5A_mp_H5AWRITE_REAL_6
H5A_mp_H5AWRITE_REAL_7
-H5A_mp_H5AWRITE_DOUBLE_SCALAR
-H5A_mp_H5AWRITE_DOUBLE_1
-H5A_mp_H5AWRITE_DOUBLE_2
-H5A_mp_H5AWRITE_DOUBLE_3
-H5A_mp_H5AWRITE_DOUBLE_4
-H5A_mp_H5AWRITE_DOUBLE_5
-H5A_mp_H5AWRITE_DOUBLE_6
-H5A_mp_H5AWRITE_DOUBLE_7
H5A_mp_H5AWRITE_CHAR_SCALAR
H5A_mp_H5AWRITE_CHAR_1
H5A_mp_H5AWRITE_CHAR_2
@@ -58,14 +90,6 @@ H5A_mp_H5AREAD_REAL_4
H5A_mp_H5AREAD_REAL_5
H5A_mp_H5AREAD_REAL_6
H5A_mp_H5AREAD_REAL_7
-H5A_mp_H5AREAD_DOUBLE_SCALAR
-H5A_mp_H5AREAD_DOUBLE_1
-H5A_mp_H5AREAD_DOUBLE_2
-H5A_mp_H5AREAD_DOUBLE_3
-H5A_mp_H5AREAD_DOUBLE_4
-H5A_mp_H5AREAD_DOUBLE_5
-H5A_mp_H5AREAD_DOUBLE_6
-H5A_mp_H5AREAD_DOUBLE_7
H5A_mp_H5AREAD_CHAR_SCALAR
H5A_mp_H5AREAD_CHAR_1
H5A_mp_H5AREAD_CHAR_2
@@ -126,14 +150,6 @@ H5D_mp_H5DWRITE_REAL_4
H5D_mp_H5DWRITE_REAL_5
H5D_mp_H5DWRITE_REAL_6
H5D_mp_H5DWRITE_REAL_7
-H5D_mp_H5DWRITE_DOUBLE_SCALAR
-H5D_mp_H5DWRITE_DOUBLE_1
-H5D_mp_H5DWRITE_DOUBLE_2
-H5D_mp_H5DWRITE_DOUBLE_3
-H5D_mp_H5DWRITE_DOUBLE_4
-H5D_mp_H5DWRITE_DOUBLE_5
-H5D_mp_H5DWRITE_DOUBLE_6
-H5D_mp_H5DWRITE_DOUBLE_7
H5D_mp_H5DREAD_REFERENCE_OBJ
H5D_mp_H5DREAD_REFERENCE_DSETREG
H5D_mp_H5DREAD_INTEGER_SCALAR
@@ -160,14 +176,6 @@ H5D_mp_H5DREAD_REAL_4
H5D_mp_H5DREAD_REAL_5
H5D_mp_H5DREAD_REAL_6
H5D_mp_H5DREAD_REAL_7
-H5D_mp_H5DREAD_DOUBLE_SCALAR
-H5D_mp_H5DREAD_DOUBLE_1
-H5D_mp_H5DREAD_DOUBLE_2
-H5D_mp_H5DREAD_DOUBLE_3
-H5D_mp_H5DREAD_DOUBLE_4
-H5D_mp_H5DREAD_DOUBLE_5
-H5D_mp_H5DREAD_DOUBLE_6
-H5D_mp_H5DREAD_DOUBLE_7
H5D_mp_H5DGET_SPACE_F
H5D_mp_H5DGET_TYPE_F
H5D_mp_H5DSET_EXTENT_F
@@ -182,7 +190,6 @@ H5D_mp_H5DWRITE_VL_STRING
H5D_mp_H5DREAD_VL_STRING
H5D_mp_H5DFILL_INTEGER
H5D_mp_H5DFILL_REAL
-H5D_mp_H5DFILL_DOUBLE
H5D_mp_H5DFILL_CHAR
H5D_mp_H5DGET_SPACE_STATUS_F
H5D_mp_H5DCREATE_ANON_F
@@ -291,8 +298,6 @@ H5P_mp_H5PSET_FILL_VALUE_INTEGER
H5P_mp_H5PGET_FILL_VALUE_INTEGER
H5P_mp_H5PSET_FILL_VALUE_REAL
H5P_mp_H5PGET_FILL_VALUE_REAL
-H5P_mp_H5PSET_FILL_VALUE_DOUBLE
-H5P_mp_H5PGET_FILL_VALUE_DOUBLE
H5P_mp_H5PSET_FILL_VALUE_CHAR
H5P_mp_H5PGET_FILL_VALUE_CHAR
H5P_mp_H5PGET_VERSION_F
@@ -348,11 +353,9 @@ H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F
H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F
H5P_mp_H5PSET_INTEGER
H5P_mp_H5PSET_REAL
-H5P_mp_H5PSET_DOUBLE
H5P_mp_H5PSET_CHAR
H5P_mp_H5PGET_INTEGER
H5P_mp_H5PGET_REAL
-H5P_mp_H5PGET_DOUBLE
H5P_mp_H5PGET_CHAR
H5P_mp_H5PEXIST_F
H5P_mp_H5PGET_SIZE_F
@@ -367,11 +370,9 @@ H5P_mp_H5PCLOSE_CLASS_F
H5P_mp_H5PCREATE_CLASS_F
H5P_mp_H5PREGISTER_INTEGER
H5P_mp_H5PREGISTER_REAL
-H5P_mp_H5PREGISTER_DOUBLE
H5P_mp_H5PREGISTER_CHAR
H5P_mp_H5PINSERT_INTEGER
H5P_mp_H5PINSERT_REAL
-H5P_mp_H5PINSERT_DOUBLE
H5P_mp_H5PINSERT_CHAR
H5P_mp_H5PSET_SHUFFLE_F
H5P_mp_H5PSET_EDC_CHECK_F
diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am
index 7d619d9..ca0a1b4 100644
--- a/fortran/test/Makefile.am
+++ b/fortran/test/Makefile.am
@@ -70,4 +70,5 @@ FORTRAN_API=yes
# fflush2 depends on files created by fflush1
fflush2.chkexe_: fflush1.chkexe_
+
include $(top_srcdir)/config/conclude.am
diff --git a/fortran/test/fortranlib_test.f90 b/fortran/test/fortranlib_test.f90
index 0462740..be8d257 100644
--- a/fortran/test/fortranlib_test.f90
+++ b/fortran/test/fortranlib_test.f90
@@ -17,333 +17,226 @@
!
! Testing Fortran functionality.
!
- PROGRAM fortranlibtest
-
- USE HDF5
-
- IMPLICIT NONE
- INTEGER :: total_error = 0
- INTEGER :: error
- INTEGER :: mounting_total_error = 0
- INTEGER :: reopen_total_error = 0
- INTEGER :: fclose_total_error = 0
- INTEGER :: fspace_total_error = 0
- INTEGER :: dataset_total_error = 0
- INTEGER :: extend_dataset_total_error = 0
- INTEGER :: refobj_total_error = 0
- INTEGER :: refreg_total_error = 0
- INTEGER :: dataspace_total_error = 0
- INTEGER :: hyperslab_total_error = 0
- INTEGER :: element_total_error = 0
- INTEGER :: basic_select_total_error = 0
- INTEGER :: total_error_compoundtest = 0
- INTEGER :: basic_datatype_total_error = 0
- INTEGER :: enum_total_error = 0
- INTEGER :: external_total_error = 0
- INTEGER :: multi_file_total_error = 0
- INTEGER :: attribute_total_error = 0
- INTEGER :: identifier_total_error = 0
- INTEGER :: group_total_error = 0
- INTEGER :: error_total_error = 0
- INTEGER :: vl_total_error = 0
- INTEGER :: z_total_error = 0
- INTEGER :: sz_total_error = 0
- INTEGER :: derived_flt_error = 0
- INTEGER :: majnum, minnum, relnum
- CHARACTER(LEN=8) error_string
- CHARACTER(LEN=8) :: success = ' PASSED '
- CHARACTER(LEN=8) :: failure = '*FAILED*'
- CHARACTER(LEN=8) :: skip = '--SKIP--'
- CHARACTER(LEN=4) :: e_format ='(8a)'
- LOGICAL :: cleanup = .TRUE.
-! LOGICAL :: cleanup = .FALSE.
- LOGICAL :: szip_flag
-
- CALL h5open_f(error)
- write(*,*) ' ========================== '
- write(*,*) ' FORTRAN tests '
- write(*,*) ' ========================== '
- CALL h5get_libversion_f(majnum, minnum, relnum, total_error)
- if(total_error .eq. 0) then
-
- write(*, '(" FORTRANLIB_TEST is linked with HDF5 Library version ")', advance="NO")
- write(*, '(I1)', advance="NO") majnum
- write(*, '(".")', advance="NO")
- write(*, '(I1)', advance="NO") minnum
- write(*, '(" release ")', advance="NO")
- write(*, '(I3)') relnum
- else
- total_error = total_error + 1
- endif
- write(*,*)
+PROGRAM fortranlibtest
+
+ USE HDF5
+
+ IMPLICIT NONE
+ INTEGER :: total_error = 0
+ INTEGER :: error
+ INTEGER :: majnum, minnum, relnum
+ LOGICAL :: cleanup = .TRUE.
+! LOGICAL :: cleanup = .FALSE.
+ LOGICAL :: szip_flag
+ INTEGER :: ret_total_error
+
+ CALL h5open_f(error)
+ WRITE(*,*) ' ========================== '
+ WRITE(*,*) ' FORTRAN tests '
+ WRITE(*,*) ' ========================== '
+ CALL h5get_libversion_f(majnum, minnum, relnum, total_error)
+ IF(total_error .EQ. 0) THEN
+
+
+ WRITE(*, '(" FORTRANLIB_TEST is linked with HDF5 Library version ")', advance="NO")
+ WRITE(*, '(I1)', advance="NO") majnum
+ WRITE(*, '(".")', advance="NO")
+ WRITE(*, '(I1)', advance="NO") minnum
+ WRITE(*, '(" release ")', advance="NO")
+ WRITE(*, '(I3)') relnum
+ ELSE
+ total_error = total_error + 1
+ ENDIF
+ WRITE(*,*)
! CALL h5check_version_f(1,4,4,total_error)
! write(*,*) '========================================='
! write(*,*) 'Testing FILE Interface '
! write(*,*) '========================================='
- error_string = failure
- CALL mountingtest(cleanup, mounting_total_error)
- IF (mounting_total_error == 0) error_string = success
- write(*, fmt = '(14a)', advance = 'no') ' Mounting test'
- write(*, fmt = '(56x,a)', advance = 'no') ' '
-
- write(*, fmt = e_format) error_string
- total_error = total_error + mounting_total_error
- error_string = failure
- CALL reopentest(cleanup, reopen_total_error)
- IF (reopen_total_error == 0) error_string = success
- write(*, fmt = '(12a)', advance = 'no') ' Reopen test'
- write(*, fmt = '(58x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + reopen_total_error
+
+
+ ret_total_error = 0
+ CALL mountingtest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Mounting test', total_error)
+
+ ret_total_error = 0
+ CALL reopentest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Reopen test', total_error)
!DEC$ if defined(H5_VMS)
- goto 100
+ GOTO 8
!DEC$ else
- error_string = failure
- CALL file_close(cleanup, fclose_total_error)
- IF (fclose_total_error == 0) error_string = success
- write(*, fmt = '(21a)', advance = 'no') ' File open/close test'
- write(*, fmt = '(49x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + fclose_total_error
+ ret_total_error = 0
+ CALL file_close(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' File open/close test', total_error)
!DEC$ endif
-100 continue
- error_string = failure
- CALL file_space(cleanup, fspace_total_error)
- IF (fspace_total_error == 0) error_string = success
- write(*, fmt = '(21a)', advance = 'no') ' File free space test'
- write(*, fmt = '(49x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + fspace_total_error
+8 CONTINUE
+
+ ret_total_error = 0
+ CALL file_space(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' File free space test', total_error)
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing DATASET Interface '
! write(*,*) '========================================='
- error_string = failure
- CALL datasettest(cleanup, dataset_total_error)
- IF (dataset_total_error == 0) error_string = success
- write(*, fmt = '(13a)', advance = 'no') ' Dataset test'
- write(*, fmt = '(57x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + dataset_total_error
- error_string = failure
- CALL extenddsettest(cleanup, extend_dataset_total_error)
- IF (extend_dataset_total_error == 0) error_string = success
- write(*, fmt = '(24a)', advance = 'no') ' Extendible dataset test'
- write(*, fmt = '(46x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + extend_dataset_total_error
+ ret_total_error = 0
+ CALL datasettest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Dataset test', total_error)
+
+ ret_total_error = 0
+ CALL extenddsettest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Extendible dataset test', total_error)
+
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing DATASPACE Interface '
! write(*,*) '========================================='
- error_string = failure
- CALL dataspace_basic_test(cleanup, dataspace_total_error)
- IF (dataspace_total_error == 0) error_string = success
- write(*, fmt = '(21a)', advance = 'no') ' Basic dataspace test'
- write(*, fmt = '(49x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + dataspace_total_error
-
+ ret_total_error = 0
+ CALL dataspace_basic_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Basic dataspace test', total_error)
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing REFERENCE Interface '
! write(*,*) '========================================='
- error_string = failure
- CALL refobjtest(cleanup, refobj_total_error)
- IF (refobj_total_error == 0) error_string = success
- write(*, fmt = '(25a)', advance = 'no') ' Reference to object test'
- write(*, fmt = '(45x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + refobj_total_error
-
- error_string = failure
- CALL refregtest(cleanup, refreg_total_error)
- IF (refreg_total_error == 0) error_string = success
- write(*, fmt = '(33a)', advance = 'no') ' Reference to dataset region test'
- write(*, fmt = '(37x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + refreg_total_error
+ ret_total_error = 0
+ CALL refobjtest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Reference to object test', total_error)
+
+ ret_total_error = 0
+ CALL refregtest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Reference to dataset region test', total_error)
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing selection functionalities '
! write(*,*) '========================================='
- error_string = failure
- CALL test_basic_select(cleanup, basic_select_total_error)
- IF (basic_select_total_error == 0) error_string = success
- write(*, fmt = '(21a)', advance = 'no') ' Basic selection test'
- write(*, fmt = '(49x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + basic_select_total_error
-
- error_string = failure
- CALL test_select_hyperslab( cleanup, hyperslab_total_error)
- IF ( hyperslab_total_error == 0) error_string = success
- write(*, fmt = '(25a)', advance = 'no') ' Hyperslab selection test'
- write(*, fmt = '(45x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + hyperslab_total_error
-
- error_string = failure
- CALL test_select_element(cleanup, element_total_error)
- IF (element_total_error == 0) error_string = success
- write(*, fmt = '(23a)', advance = 'no') ' Element selection test'
- write(*, fmt = '(47x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + element_total_error
+ ret_total_error = 0
+ CALL test_basic_select(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Basic selection test', total_error)
+
+ ret_total_error = 0
+ CALL test_select_hyperslab( cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Hyperslab selection test', total_error)
+
+ ret_total_error = 0
+ CALL test_select_element(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Element selection test', total_error)
+ ret_total_error = 0
+ CALL test_select_point(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Element selection functions test ', total_error)
+
+ ret_total_error = 0
+ CALL test_select_combine(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Selection combinations test ', total_error)
+
+ ret_total_error = 0
+ CALL test_select_bounds(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Selection bounds test ', total_error)
+
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing DATATYPE interface '
! write(*,*) '========================================='
- error_string = failure
- CALL basic_data_type_test(cleanup, basic_datatype_total_error)
- IF (basic_datatype_total_error == 0) error_string = success
- write(*, fmt = '(20a)', advance = 'no') ' Basic datatype test'
- write(*, fmt = '(50x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + basic_datatype_total_error
-
- error_string = failure
- CALL compoundtest(cleanup, total_error_compoundtest)
- IF (total_error_compoundtest == 0) error_string = success
- write(*, fmt = '(23a)', advance = 'no') ' Compound datatype test'
- write(*, fmt = '(47x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + total_error_compoundtest
- error_string = failure
- CALL enumtest(cleanup, enum_total_error)
- IF (enum_total_error == 0) error_string = success
- write(*, fmt = '(19a)', advance = 'no') ' Enum datatype test'
- write(*, fmt = '(51x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + enum_total_error
-
- error_string = failure
- CALL test_derived_flt(cleanup, derived_flt_error)
- IF (derived_flt_error == 0) error_string = success
- write(*, fmt = '(28a)', advance = 'no') ' Derived float datatype test'
- write(*, fmt = '(42x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + derived_flt_error
+ ret_total_error = 0
+ CALL basic_data_type_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Basic datatype test', total_error)
+
+ ret_total_error = 0
+ CALL compoundtest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Compound datatype test', total_error)
+ ret_total_error = 0
+ CALL enumtest(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Enum datatype test', total_error)
+
+ ret_total_error = 0
+ CALL test_derived_flt(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Derived float datatype test', total_error)
+
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing PROPERTY interface '
! write(*,*) '========================================='
- error_string = failure
- CALL external_test(cleanup, external_total_error)
- IF (external_total_error == 0) error_string = success
- write(*, fmt = '(22a)', advance = 'no') ' External dataset test'
- write(*, fmt = '(48x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + external_total_error
-
- error_string = failure
-! error_string = skip
- cleanup = .FALSE.
- CALL multi_file_test(cleanup, multi_file_total_error)
- IF (multi_file_total_error == 0) error_string = success
- write(*, fmt = '(23a)', advance = 'no') ' Multi file driver test'
- write(*, fmt = '(47x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + multi_file_total_error
+ ret_total_error = 0
+ CALL external_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' External dataset test', total_error)
+
+ ret_total_error = 0
+ cleanup = .FALSE.
+ CALL multi_file_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Multi file driver test', total_error)
+
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing ATTRIBUTE interface '
! write(*,*) '========================================='
- error_string = failure
- CALL attribute_test(cleanup, attribute_total_error)
- write(*, fmt = '(15a)', advance = 'no') ' Attribute test'
- write(*, fmt = '(55x,a)', advance = 'no') ' '
- IF (attribute_total_error == 0) error_string = success
- write(*, fmt = e_format) error_string
- total_error = total_error + attribute_total_error
+ ret_total_error = 0
+ CALL attribute_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Attribute test', total_error)
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing IDENTIFIER interface '
! write(*,*) '========================================='
- error_string = failure
- CALL identifier_test(cleanup, identifier_total_error)
- IF (identifier_total_error == 0) error_string = success
- write(*, fmt = '(16a)', advance = 'no') ' Identifier test'
- write(*, fmt = '(54x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + identifier_total_error
- error_string = failure
- CALL filters_test(cleanup, z_total_error)
- IF (z_total_error == 0) error_string = success
- write(*, fmt = '(13a)', advance = 'no') ' Filters test'
- write(*, fmt = '(57x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + z_total_error
-
- CALL szip_test(szip_flag, cleanup, sz_total_error)
- IF (sz_total_error == 0) error_string = success
- ! Reset the flag is compression was not available
- IF (.NOT. szip_flag) error_string = skip
- IF (sz_total_error .gt. 0) error_string = failure
- write(*, fmt = '(18a)', advance = 'no') ' SZIP filter test'
- write(*, fmt = '(53x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- if(sz_total_error .gt. 0) total_error = total_error + sz_total_error
+ ret_total_error = 0
+ CALL identifier_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Identifier test', total_error)
+
+ ret_total_error = 0
+ CALL filters_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Filters test', total_error)
+
+ ret_total_error = 0
+ CALL szip_test(szip_flag, cleanup, ret_total_error)
+
+ IF (.NOT. szip_flag) THEN ! test not available
+ CALL write_test_status(-1, ' SZIP filter test', total_error)
+ ELSE
+ CALL write_test_status(ret_total_error, ' SZIP filter test', total_error)
+ ENDIF
! write(*,*)
! write(*,*) '========================================='
! write(*,*) 'Testing GROUP interface '
! write(*,*) '========================================='
- error_string = failure
- CALL group_test(cleanup, group_total_error)
- IF (group_total_error == 0) error_string = success
- write(*, fmt = '(11a)', advance = 'no') ' Group test'
- write(*, fmt = '(59x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
-
- error_string = failure
- CALL error_report_test(cleanup, error_total_error)
- IF (error_total_error == 0) error_string = success
- write(*, fmt = '(11a)', advance = 'no') ' Error test'
- write(*, fmt = '(59x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + error_total_error
-
- error_string = failure
- CALL vl_test_integer(cleanup, vl_total_error)
- CALL vl_test_real(cleanup, vl_total_error)
- CALL vl_test_string(cleanup, vl_total_error)
- IF (vl_total_error == 0) error_string = success
- write(*, fmt = '(11a)', advance = 'no') ' VL test'
- write(*, fmt = '(62x,a)', advance = 'no') ' '
- write(*, fmt = e_format) error_string
- total_error = total_error + vl_total_error
-
- write(*,*)
-
- write(*,*) ' ============================================ '
- write(*, fmt = '(19x, 27a)', advance='NO') ' FORTRAN tests completed with '
- write(*, fmt = '(i4)', advance='NO') total_error
- write(*, fmt = '(12a)' ) ' error(s) ! '
- write(*,*) ' ============================================ '
-
- CALL h5close_f(error)
-
- ! if errors detected, exit with non-zero code.
- IF (total_error .ne. 0) CALL h5_exit_f (1)
-
- END PROGRAM fortranlibtest
+ ret_total_error = 0
+ CALL group_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Group test', total_error)
+
+ ret_total_error = 0
+ CALL error_report_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' Error test', total_error)
+
+ ret_total_error = 0
+ CALL vl_test_integer(cleanup, ret_total_error)
+ CALL vl_test_real(cleanup, ret_total_error)
+ CALL vl_test_string(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, ' VL test', total_error)
+
+ WRITE(*,*)
+
+ WRITE(*,*) ' ============================================ '
+ WRITE(*, fmt = '(19x, 27a)', advance='NO') ' FORTRAN tests completed with '
+ WRITE(*, fmt = '(i4)', advance='NO') total_error
+ WRITE(*, fmt = '(12a)' ) ' error(s) ! '
+ WRITE(*,*) ' ============================================ '
+
+ CALL h5close_f(error)
+
+ ! if errors detected, exit with non-zero code.
+ IF (total_error .NE. 0) CALL h5_exit_f (1)
+
+END PROGRAM fortranlibtest
diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90
index acfd1af..4ff3e0f 100644
--- a/fortran/test/fortranlib_test_1_8.f90
+++ b/fortran/test/fortranlib_test_1_8.f90
@@ -23,33 +23,11 @@ PROGRAM fortranlibtest
IMPLICIT NONE
INTEGER :: total_error = 0
- INTEGER :: error
- INTEGER :: mounting_total_error = 0
- INTEGER :: reopen_total_error = 0
- INTEGER :: fclose_total_error = 0
- INTEGER :: fspace_total_error = 0
- INTEGER :: dataset_total_error = 0
- INTEGER :: extend_dataset_total_error = 0
- INTEGER :: refobj_total_error = 0
- INTEGER :: refreg_total_error = 0
- INTEGER :: dataspace_total_error = 0
- INTEGER :: hyperslab_total_error = 0
- INTEGER :: element_total_error = 0
- INTEGER :: basic_select_total_error = 0
- INTEGER :: total_error_compoundtest = 0
- INTEGER :: basic_datatype_total_error = 0
- INTEGER :: enum_total_error = 0
- INTEGER :: external_total_error = 0
- INTEGER :: multi_file_total_error = 0
- INTEGER :: attribute_total_error = 0
- INTEGER :: group_total_error = 0
+ INTEGER :: error
+ INTEGER :: ret_total_error
INTEGER :: majnum, minnum, relnum
- CHARACTER(LEN=8) error_string
- CHARACTER(LEN=8) :: success = ' PASSED '
- CHARACTER(LEN=8) :: failure = '*FAILED*'
- CHARACTER(LEN=4) :: e_format ='(8a)'
LOGICAL :: cleanup = .TRUE.
- ! LOGICAL :: cleanup = .FALSE.
+! LOGICAL :: cleanup = .FALSE.
CALL h5open_f(error)
WRITE(*,*) ' ========================== '
@@ -68,65 +46,49 @@ PROGRAM fortranlibtest
ENDIF
WRITE(*,*)
- error_string = failure
- CALL file_space(cleanup, fspace_total_error)
- IF (fspace_total_error == 0) error_string = success
- WRITE(*, fmt = '(21a)', advance = 'no') ' Testing file free space'
- WRITE(*, fmt = '(52x,a)', advance = 'no') ' '
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + fspace_total_error
-
- ! write(*,*)
- ! write(*,*) '========================================='
- ! write(*,*) 'Testing ATTRIBUTE interface '
- ! write(*,*) '========================================='
-
- error_string = failure
- CALL attribute_test_1_8(cleanup, attribute_total_error)
- WRITE(*, fmt = '(15a)', advance = 'no') ' Testing attributes'
- WRITE(*, fmt = '(57x,a)', advance = 'no') ' '
- IF (attribute_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + attribute_total_error
-
- CALL group_test(cleanup, group_total_error)
- WRITE(*, fmt = '(15a)', advance = 'no') ' Testing groups'
- WRITE(*, fmt = '(61x,a)', advance = 'no') ' '
- IF (group_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
-
- CALL test_h5o(cleanup, group_total_error )
- WRITE(*, fmt = '(15a)', advance = 'no') ' Testing object interface'
- WRITE(*, fmt = '(51x,a)', advance = 'no') ' '
- IF (group_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
-
- CALL dtransform(cleanup, group_total_error)
- WRITE(*, fmt = '(15a)', advance = 'no') ' Testing data transform'
- WRITE(*, fmt = '(53x,a)', advance = 'no') ' '
- IF (group_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
-
- CALL test_genprop_basic_class(cleanup, group_total_error)
- WRITE(*, fmt = '(30a)', advance = 'no') ' Testing basic generic properties'
- WRITE(*, fmt = '(43x,a)', advance = 'no') ' '
- IF (group_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
-
- CALL test_h5s_encode(cleanup, group_total_error)
- WRITE(*, fmt = '(15a)', advance = 'no') ' Testing dataspace encoding and decoding'
- WRITE(*, fmt = '(36x,a)', advance = 'no') ' '
- IF (group_total_error == 0) error_string = success
- WRITE(*, fmt = e_format) error_string
- total_error = total_error + group_total_error
+ ret_total_error = 0
+ CALL file_space(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing file free space', &
+ total_error)
-! CALL test_hard_query(group_total_error)
+ ret_total_error = 0
+ CALL attribute_test_1_8(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing attributes', &
+ total_error)
+
+ ret_total_error = 0
+ CALL group_test(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing groups', &
+ total_error)
- total_error = total_error + group_total_error
+ ret_total_error = 0
+ CALL test_h5o(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing object interface', &
+ total_error)
+
+ ret_total_error = 0
+ CALL dtransform(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing data transform', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_genprop_basic_class(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing basic generic properties', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_h5s_encode(cleanup, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing dataspace encoding and decoding', &
+ total_error)
+
+! CALL test_hard_query(group_total_error)
WRITE(*,*)
@@ -150,8 +112,8 @@ SUBROUTINE dtransform(cleanup, total_error)
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(INOUT) :: total_error
- INTEGER(HID_T) :: dxpl_id_c_to_f, dxpl_id_c_to_f_copy
- INTEGER(HID_T) :: dxpl_id_simple, dxpl_id_polynomial, dxpl_id_polynomial_copy, dxpl_id_utrans_inv, file_id
+ INTEGER(HID_T) :: dxpl_id_c_to_f
+ INTEGER(HID_T) :: file_id
CHARACTER(LEN=15), PARAMETER :: c_to_f = "(9/5.0)*x + 123"
INTEGER :: error
@@ -217,7 +179,6 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
INTEGER(HID_T) :: cid1 !/* Generic Property class ID */
INTEGER(HID_T) :: cid2 !/* Generic Property class ID */
- INTEGER(HID_T) :: cid3 !/* Generic Property class ID */
CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1"
CHARACTER(LEN=7) :: name ! /* Name of class */
@@ -305,10 +266,10 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(INOUT) :: total_error
- INTEGER(hid_t) :: sid1, sid2, sid3! /* Dataspace ID */
- INTEGER(hid_t) :: decoded_sid1, decoded_sid2, decoded_sid3
+ INTEGER(hid_t) :: sid1, sid3! /* Dataspace ID */
+ INTEGER(hid_t) :: decoded_sid1, decoded_sid3
INTEGER :: rank !/* LOGICAL rank of dataspace */
- INTEGER(size_t) :: sbuf_size=0, null_size=0, scalar_size=0
+ INTEGER(size_t) :: sbuf_size=0, scalar_size=0
! Make sure the size is large, need variable length in fortran 2003
CHARACTER(LEN=288) :: sbuf
@@ -406,41 +367,6 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
CALL h5sclose_f(decoded_sid1, error)
CALL check("h5sclose_f", error, total_error)
-!!$
-!!$ ret = H5Sclose(decoded_sid1);
-!!$ CHECK(ret, FAIL, "H5Sclose");
-!!$
-!!$ /*-------------------------------------------------------------------------
-!!$ * Test encoding and decoding of null dataspace.
-!!$ *-------------------------------------------------------------------------
-!!$ */
-!!$ sid2 = H5Screate(H5S_NULL);
-!!$ CHECK(sid2, FAIL, "H5Screate");
-!!$
-!!$ /* Encode null data space in a buffer */
-!!$ ret = H5Sencode(sid2, NULL, &null_size);
-!!$ CHECK(ret, FAIL, "H5Sencode");
-!!$
-!!$ if(null_size>0)
-!!$ null_sbuf = (unsigned char*)HDcalloc((size_t)1, null_size);
-!!$
-!!$ ret = H5Sencode(sid2, null_sbuf, &null_size);
-!!$ CHECK(ret, FAIL, "H5Sencode");
-!!$
-!!$ /* Decode from the dataspace buffer and return an object handle */
-!!$ decoded_sid2=H5Sdecode(null_sbuf);
-!!$ CHECK(decoded_sid2, FAIL, "H5Sdecode");
-!!$
-!!$ /* Verify decoded dataspace */
-!!$ space_type = H5Sget_simple_extent_type(decoded_sid2);
-!!$ VERIFY(space_type, H5S_NULL, "H5Sget_simple_extent_type");
-!!$
-!!$ ret = H5Sclose(sid2);
-!!$ CHECK(ret, FAIL, "H5Sclose");
-!!$
-!!$ ret = H5Sclose(decoded_sid2);
-!!$ CHECK(ret, FAIL, "H5Sclose");
-!!$
! /*-------------------------------------------------------------------------
! * Test encoding and decoding of scalar dataspace.
! *-------------------------------------------------------------------------
@@ -491,477 +417,3 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
END SUBROUTINE test_h5s_encode
-!/*-------------------------------------------------------------------------
-! * Function: test_hard_query
-! *
-! * Purpose: Tests H5Tcompiler_conv() for querying whether a conversion is
-! * a hard one.
-! *
-! * Return: Success: 0
-! *
-! * Failure: number of errors
-! *
-! * Programmer: Raymond Lu
-! * Friday, Sept 2, 2005
-! *
-! * Modifications:
-! *
-! *-------------------------------------------------------------------------
-! */
-
-!!$SUBROUTINE test_hard_query(total_error)
-!!$
-!!$ USE HDF5 ! This module contains all necessary modules
-!!$
-!!$ IMPLICIT NONE
-!!$ INTEGER, INTENT(INOUT) :: total_error
-!!$
-!!$ INTEGER :: error
-!!$ LOGICAL :: flag
-!!$
-!!$ WRITE(*,*) "query functions of compiler conversion"
-!!$
-!!$ ! /* Verify the conversion from int to float is a hard conversion. */
-!!$
-!!$ CALL H5Tcompiler_conv_f(H5T_INTEGER_F, H5T_FLOAT_F, flag, error)
-!!$ CALL check("H5Tcompiler_conv", error, total_error)
-!!$ CALL VerifyLogical("H5Tcompiler_conv", flag, .TRUE.,total_error)
-
-!!$ if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=TRUE) {
-!!$ H5_FAILED();
-!!$ printf("Can't query conversion function\n");
-!!$ goto error;
-!!$ }
-
-!!$ /* Unregister the hard conversion from int to float. Verify the conversion
-!!$ * is a soft conversion. */
-!!$ H5Tunregister(H5T_PERS_HARD, NULL, H5T_NATIVE_INT, H5T_NATIVE_FLOAT, H5T_conv_int_float);
-!!$ if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=FALSE) {
-!!$ H5_FAILED();
-!!$ printf("Can't query conversion function\n");
-!!$ goto error;
-!!$ }
-!!$
-!!$ /* Register the hard conversion from int to float. Verify the conversion
-!!$ * is a hard conversion. */
-!!$ H5Tregister(H5T_PERS_HARD, "int_flt", H5T_NATIVE_INT, H5T_NATIVE_FLOAT, H5T_conv_int_float);
-!!$ if((ret = H5Tcompiler_conv(H5T_NATIVE_INT, H5T_NATIVE_FLOAT))!=TRUE) {
-!!$ H5_FAILED();
-!!$ printf("Can't query conversion function\n");
-!!$ goto error;
-!!$ }
-!!$
-!!$ PASSED();
-!!$ reset_hdf5();
-!!$
-!!$ return 0;
-!!$
-!!$END SUBROUTINE test_hard_query
-
-
-!/*-------------------------------------------------------------------------
-! * Function: test_encode
-! *
-! * Purpose: Tests functions of encoding and decoding datatype.
-! *
-! * Return: Success: 0
-! *
-! * Failure: number of errors
-! *
-! * Programmer: Raymond Lu
-! * July 14, 2004
-! *
-! * Modifications:
-! *
-! *-------------------------------------------------------------------------
-! */
-
-!!$SUBROUTINE test_encode(total_error)
-!!$
-!!$ USE HDF5 ! This module contains all necessary modules
-!!$ struct s1 {
-!!$ int a;
-!!$ float b;
-!!$ long c;
-!!$ double d;
-!!$ };
-!!$ IMPLICIT NONE
-!!$ INTEGER, INTENT(INOUT) :: total_error
-!!$ INTEGER(SIZE_T), PARAMETER :: sizechar = 1024
-!!$ INTEGER :: error
-!!$ INTEGER(hid_t) :: file=-1, tid1=-1, tid2=-1
-!!$ INTEGER(hid_t) :: decoded_tid1=-1, decoded_tid2=-1
-!!$ CHARACTER(LEN=1024) :: filename = 'encode.h5'
-!!$ char compnd_type[]="Compound_type", enum_type[]="Enum_type";
-!!$ short enum_val;
-!!$ size_t cmpd_buf_size = 0;
-!!$ size_t enum_buf_size = 0;
-!!$ unsigned char *cmpd_buf=NULL, *enum_buf=NULL;
-!!$ herr_t ret;
-!!$ INTEGER(HID_T) :: dt5_id ! Memory datatype identifier
-!!$
-!!$ INTEGER(SIZE_T) :: type_sizec ! Size of the character datatype
-!!$
-!!$ WRITE(*,*) "functions of encoding and decoding datatypes"
-!!$
-!!$ !/* Create File */
-!!$
-!!$ CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file, error)
-!!$ CALL check("H5Fcreate_f", error, total_error)
-!!$
-!!$ !/*-----------------------------------------------------------------------
-!!$ ! * Create compound and enumerate datatypes
-!!$ ! *-----------------------------------------------------------------------
-!!$ ! */
-!!$
-!!$ ! /* Create a compound datatype */
-!!$ CALL h5tcopy_f(H5T_NATIVE_CHARACTER, dt5_id, error)
-!!$ CALL check("h5tcopy_f", error, total_error)
-!!$ sizechar = 2
-!!$ CALL h5tset_size_f(dt5_id, sizechar, error)
-!!$ CALL check("h5tset_size_f", error, total_error)
-!!$ CALL h5tget_size_f(dt5_id, type_sizec, error)
-!!$ CALL check("h5tget_size_f", error, total_error)
-!!$
-!!$ CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizec, error)
-!!$ CALL check("h5tget_size_f", error, total_error)
-!!$ CALL h5tcreate_f(H5T_COMPOUND_F, type_sizec, dtype_id, error)
-!!$
-!!$
-!!$ if((tid1=H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't create datatype!\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tinsert(tid1, "a", HOFFSET(struct s1, a), H5T_NATIVE_INT) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field 'a'\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tinsert(tid1, "b", HOFFSET(struct s1, b), H5T_NATIVE_FLOAT) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field 'b'\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tinsert(tid1, "c", HOFFSET(struct s1, c), H5T_NATIVE_LONG) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field 'c'\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tinsert(tid1, "d", HOFFSET(struct s1, d), H5T_NATIVE_DOUBLE) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field 'd'\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Create a enumerate datatype */
-!!$ if((tid2=H5Tcreate(H5T_ENUM, sizeof(short))) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't create enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tenum_insert(tid2, "RED", (enum_val=0,&enum_val)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field into enumeration type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tenum_insert(tid2, "GREEN", (enum_val=1,&enum_val)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field into enumeration type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tenum_insert(tid2, "BLUE", (enum_val=2,&enum_val)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field into enumeration type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tenum_insert(tid2, "ORANGE", (enum_val=3,&enum_val)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field into enumeration type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tenum_insert(tid2, "YELLOW", (enum_val=4,&enum_val)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't insert field into enumeration type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /*-----------------------------------------------------------------------
-!!$ * Test encoding and decoding compound and enumerate datatypes
-!!$ *-----------------------------------------------------------------------
-!!$ */
-!!$ /* Encode compound type in a buffer */
-!!$ if(H5Tencode(tid1, NULL, &cmpd_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode compound type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(cmpd_buf_size>0)
-!!$ cmpd_buf = (unsigned char*)calloc(1, cmpd_buf_size);
-!!$
-!!$ /* Try decoding bogus buffer */
-!!$ H5E_BEGIN_TRY {
-!!$ ret = H5Tdecode(cmpd_buf);
-!!$ } H5E_END_TRY;
-!!$ if(ret!=FAIL) {
-!!$ H5_FAILED();
-!!$ printf("Decoded bogus buffer!\n");
-!!$ goto error;
-!!$ }
-!!$
-!!$ if(H5Tencode(tid1, cmpd_buf, &cmpd_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode compound type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Decode from the compound buffer and return an object handle */
-!!$ if((decoded_tid1 = H5Tdecode(cmpd_buf)) < 0)
-!!$ FAIL_PUTS_ERROR("Can't decode compound type\n")
-!!$
-!!$ /* Verify that the datatype was copied exactly */
-!!$ if(H5Tequal(decoded_tid1, tid1)<=0) {
-!!$ H5_FAILED();
-!!$ printf("Datatype wasn't encoded & decoded identically\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Query member number and member index by name, for compound type. */
-!!$ if(H5Tget_nmembers(decoded_tid1)!=4) {
-!!$ H5_FAILED();
-!!$ printf("Can't get member number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tget_member_index(decoded_tid1, "c")!=2) {
-!!$ H5_FAILED();
-!!$ printf("Can't get correct index number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$
-!!$ /* Encode enumerate type in a buffer */
-!!$ if(H5Tencode(tid2, NULL, &enum_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(enum_buf_size>0)
-!!$ enum_buf = (unsigned char*)calloc(1, enum_buf_size);
-!!$
-!!$ if(H5Tencode(tid2, enum_buf, &enum_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Decode from the enumerate buffer and return an object handle */
-!!$ if((decoded_tid2=H5Tdecode(enum_buf)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't decode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Verify that the datatype was copied exactly */
-!!$ if(H5Tequal(decoded_tid2, tid2)<=0) {
-!!$ H5_FAILED();
-!!$ printf("Datatype wasn't encoded & decoded identically\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Query member number and member index by name, for enumeration type. */
-!!$ if(H5Tget_nmembers(decoded_tid2)!=5) {
-!!$ H5_FAILED();
-!!$ printf("Can't get member number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tget_member_index(decoded_tid2, "ORANGE") != 3) {
-!!$ H5_FAILED();
-!!$ printf("Can't get correct index number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /*-----------------------------------------------------------------------
-!!$ * Commit and reopen the compound and enumerate datatypes
-!!$ *-----------------------------------------------------------------------
-!!$ */
-!!$ /* Commit compound datatype and close it */
-!!$ if(H5Tcommit2(file, compnd_type, tid1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't commit compound datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(tid1) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(decoded_tid1) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ free(cmpd_buf);
-!!$ cmpd_buf_size = 0;
-!!$
-!!$ /* Commit enumeration datatype and close it */
-!!$ if(H5Tcommit2(file, enum_type, tid2, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't commit compound datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(tid2) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(decoded_tid2) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ free(enum_buf);
-!!$ enum_buf_size = 0;
-!!$
-!!$ /* Open the dataytpe for query */
-!!$ if((tid1 = H5Topen2(file, compnd_type, H5P_DEFAULT)) < 0)
-!!$ FAIL_STACK_ERROR
-!!$ if((tid2 = H5Topen2(file, enum_type, H5P_DEFAULT)) < 0)
-!!$ FAIL_STACK_ERROR
-!!$
-!!$
-!!$ /* Encode compound type in a buffer */
-!!$ if(H5Tencode(tid1, NULL, &cmpd_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode compound type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(cmpd_buf_size>0)
-!!$ cmpd_buf = (unsigned char*)calloc(1, cmpd_buf_size);
-!!$
-!!$ if(H5Tencode(tid1, cmpd_buf, &cmpd_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode compound type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Decode from the compound buffer and return an object handle */
-!!$ if((decoded_tid1 = H5Tdecode(cmpd_buf)) < 0)
-!!$ FAIL_PUTS_ERROR("Can't decode compound type\n")
-!!$
-!!$ /* Verify that the datatype was copied exactly */
-!!$ if(H5Tequal(decoded_tid1, tid1)<=0) {
-!!$ H5_FAILED();
-!!$ printf("Datatype wasn't encoded & decoded identically\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Query member number and member index by name, for compound type. */
-!!$ if(H5Tget_nmembers(decoded_tid1)!=4) {
-!!$ H5_FAILED();
-!!$ printf("Can't get member number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tget_member_index(decoded_tid1, "c")!=2) {
-!!$ H5_FAILED();
-!!$ printf("Can't get correct index number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /*-----------------------------------------------------------------------
-!!$ * Test encoding and decoding compound and enumerate datatypes
-!!$ *-----------------------------------------------------------------------
-!!$ */
-!!$ /* Encode enumerate type in a buffer */
-!!$ if(H5Tencode(tid2, NULL, &enum_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(enum_buf_size>0)
-!!$ enum_buf = (unsigned char*)calloc(1, enum_buf_size);
-!!$
-!!$ if(H5Tencode(tid2, enum_buf, &enum_buf_size) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't encode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Decode from the enumerate buffer and return an object handle */
-!!$ if((decoded_tid2=H5Tdecode(enum_buf)) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't decode enumerate type\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Verify that the datatype was copied exactly */
-!!$ if(H5Tequal(decoded_tid2, tid2)<=0) {
-!!$ H5_FAILED();
-!!$ printf("Datatype wasn't encoded & decoded identically\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Query member number and member index by name, for enumeration type. */
-!!$ if(H5Tget_nmembers(decoded_tid2)!=5) {
-!!$ H5_FAILED();
-!!$ printf("Can't get member number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tget_member_index(decoded_tid2, "ORANGE")!=3) {
-!!$ H5_FAILED();
-!!$ printf("Can't get correct index number\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /*-----------------------------------------------------------------------
-!!$ * Close and release
-!!$ *-----------------------------------------------------------------------
-!!$ */
-!!$ /* Close datatype and file */
-!!$ if(H5Tclose(tid1) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(tid2) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(H5Tclose(decoded_tid1) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$ if(H5Tclose(decoded_tid2) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close datatype\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ if(H5Fclose(file) < 0) {
-!!$ H5_FAILED();
-!!$ printf("Can't close file\n");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ free(cmpd_buf);
-!!$ free(enum_buf);
-!!$
-!!$ PASSED();
-!!$ return 0;
-!!$
-!!$ error:
-!!$ H5E_BEGIN_TRY {
-!!$ H5Tclose (tid1);
-!!$ H5Tclose (tid2);
-!!$ H5Tclose (decoded_tid1);
-!!$ H5Tclose (decoded_tid2);
-!!$ H5Fclose (file);
-!!$ } H5E_END_TRY;
-!!$ return 1;
-!!$}
diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90
index 3a969d3..d45d9e3 100644
--- a/fortran/test/tH5A_1_8.f90
+++ b/fortran/test/tH5A_1_8.f90
@@ -22,7 +22,7 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
!
USE HDF5 ! This module contains all necessary modules
-
+
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(INOUT) :: total_error
@@ -56,12 +56,13 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
LOGICAL, DIMENSION(1:2) :: new_format = (/.TRUE.,.FALSE./)
LOGICAL, DIMENSION(1:2) :: use_shared = (/.TRUE.,.FALSE./)
+ INTEGER :: ret_total_error
! ********************
! test_attr equivelent
! ********************
- WRITE(*,*) "TESTING ATTRIBUTES"
+! WRITE(*,*) "TESTING ATTRIBUTES"
CALL H5Pcreate_f(H5P_FILE_ACCESS_F,fapl,error)
CALL check("h5Pcreate_f",error,total_error)
@@ -81,14 +82,20 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
CALL check(" H5Pset_shared_mesg_index_f",error, total_error)
DO i = 1, 2
+
IF (new_format(i)) THEN
- WRITE(*,*) " - Testing with new file format"
+ WRITE(*,'(1X,A)') "Testing with new file format:"
my_fapl = fapl2
ELSE
- WRITE(*,*) " - Testing with old file format"
+ WRITE(*,'(1X,A)') "Testing with old file format:"
my_fapl = fapl
END IF
- CALL test_attr_basic_write(my_fapl, total_error)
+ ret_total_error = 0
+ CALL test_attr_basic_write(my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Tests INT attributes on both datasets and groups', &
+ total_error)
+
!!$ CALL test_attr_basic_read(my_fapl)
!!$ CALL test_attr_flush(my_fapl)
!!$ CALL test_attr_plist(my_fapl) ! this is next
@@ -104,39 +111,88 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
IF(new_format(i)) THEN
DO j = 1, 2
IF (use_shared(j)) THEN
- WRITE(*,*) " - Testing with shared attributes"
+ WRITE(*,*) " - Testing with shared attributes:"
my_fcpl = fcpl2
ELSE
- WRITE(*,*) " - Testing without shared attributes"
+ WRITE(*,*) " - Testing without shared attributes:"
my_fcpl = fcpl
END IF
!!$ CALL test_attr_dense_create(my_fcpl, my_fapl)
- CALL test_attr_dense_open(my_fcpl, my_fapl, total_error)
+ ret_total_error = 0
+ CALL test_attr_dense_open(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing INT attributes on both datasets and groups', &
+ total_error)
!!$ CALL test_attr_dense_delete(my_fcpl, my_fapl)
!!$ CALL test_attr_dense_rename(my_fcpl, my_fapl)
!!$ CALL test_attr_dense_unlink(my_fcpl, my_fapl)
!!$ CALL test_attr_dense_limits(my_fcpl, my_fapl)
!!$ CALL test_attr_big(my_fcpl, my_fapl)
- CALL test_attr_null_space(my_fcpl, my_fapl, total_error)
+ ret_total_error = 0
+ CALL test_attr_null_space(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing storing attribute with "null" dataspace', &
+ total_error)
!!$ CALL test_attr_deprec(fcpl, my_fapl)
- CALL test_attr_many(new_format(i), my_fcpl, my_fapl, total_error)
- CALL test_attr_corder_create_basic(my_fcpl, my_fapl, total_error)
- CALL test_attr_corder_create_compact(my_fcpl, my_fapl, total_error)
+ ret_total_error = 0
+ CALL test_attr_many(new_format(i), my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing storing lots of attributes', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_attr_corder_create_basic(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing creating objects with attribute creation order', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_attr_corder_create_compact(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing compact storage on objects with attribute creation order', &
+ total_error)
!!$ CALL test_attr_corder_create_dense(my_fcpl, my_fapl)
!!$ CALL test_attr_corder_create_reopen(my_fcpl, my_fapl)
!!$ CALL test_attr_corder_transition(my_fcpl, my_fapl)
!!$ CALL test_attr_corder_delete(my_fcpl, my_fapl)
- CALL test_attr_info_by_idx(new_format(i), my_fcpl, my_fapl, total_error)
- CALL test_attr_delete_by_idx(new_format(i), my_fcpl, my_fapl, total_error)
-!!$ CALL test_attr_iterate2(new_format(i), my_fcpl, my_fapl)
-!!$ CALL test_attr_open_by_idx(new_format(i), my_fcpl, my_fapl)
-!!$ CALL test_attr_open_by_name(new_format(i), my_fcpl, my_fapl)
- CALL test_attr_create_by_name(new_format(i), my_fcpl, my_fapl, total_error)
+
+ ret_total_error = 0
+ CALL test_attr_info_by_idx(new_format, my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing querying attribute info by index', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_attr_delete_by_idx(new_format, my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing deleting attribute by index', &
+ total_error)
+
+!!$ CALL test_attr_iterate2(new_format, my_fcpl, my_fapl)
+!!$ CALL test_attr_open_by_idx(new_format, my_fcpl, my_fapl)
+!!$ CALL test_attr_open_by_name(new_format, my_fcpl, my_fapl)
+ ret_total_error = 0
+ CALL test_attr_create_by_name(new_format(i), my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' - Testing creating attributes by name', &
+ total_error)
+
! /* More complex tests with both "new format" and "shared" attributes */
IF( use_shared(j) ) THEN
!!$ CALL test_attr_shared_write(my_fcpl, my_fapl)
- CALL test_attr_shared_rename(my_fcpl, my_fapl, total_error)
- CALL test_attr_shared_delete(my_fcpl, my_fapl, total_error)
+ ret_total_error = 0
+ CALL test_attr_shared_rename(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error,&
+ ' - Testing renaming shared attributes in "compact" & "dense" storage', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_attr_shared_delete(my_fcpl, my_fapl, ret_total_error)
+ CALL write_test_status(ret_total_error,&
+ ' - Testing deleting shared attributes in "compact" & "dense" storage', &
+ total_error)
+
+
!!$ CALL test_attr_shared_unlink(my_fcpl, my_fapl)
END IF
!!$ CALL test_attr_bug1(my_fcpl, my_fapl)
@@ -155,7 +211,7 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
!!$ CALL test_attr_bug1(fcpl, my_fapl)
END IF
- END DO
+ ENDDO
CALL H5Pclose_f(fcpl, error)
CALL CHECK("H5Pclose", error,total_error)
@@ -171,6 +227,13 @@ END SUBROUTINE attribute_test_1_8
SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
+!/****************************************************************
+!**
+!** test_attr_corder_create_compact(): Test basic H5A (attribute) code.
+!** Tests compact attribute storage on objects with attribute creation order info
+!**
+!****************************************************************/
+
! Needed for get_info_by_name
USE HDF5 ! This module contains all necessary modules
@@ -195,12 +258,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
INTEGER, PARAMETER :: NUM_DSETS = 3
INTEGER :: curr_dset
-!!$
-!!$! - - - local declarations - - -
-!!$
-!!$ INTEGER :: max_compact,min_dense,curr_dset,u
-!!$ CHARACTER (LEN=NAME_BUF_SIZE) :: attrname
-!!$
+
INTEGER(HID_T) :: dset1, dset2, dset3
INTEGER(HID_T) :: my_dataset
@@ -221,13 +279,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
data_dims = 0
-!!$ INTEGER :: sid
-!!$ INTEGER :: attr
-!!$ INTEGER :: dcpl
-!!$ INTEGER ::is_empty
-!!$ INTEGER ::is_dense
-!!$
- WRITE(*,*) " - Testing Compact Storage of Attributes with Creation Order Info"
+! WRITE(*,*) " - Testing Compact Storage of Attributes with Creation Order Info"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -237,7 +289,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CALL H5Pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error)
CALL check("H5Pset_attr_creation_order",error,total_error)
-! ret = H5Pset_attr_creation_order(dcpl, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED));
! /* Query the attribute creation properties */
CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
@@ -246,8 +297,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CALL h5screate_f(H5S_SCALAR_F, sid, error)
CALL check("h5screate_f",error,total_error)
-! FIX: need to check optional parameters i.e. h5dcreate1/2_f
-
CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl_id=dcpl )
CALL check("h5dcreate_f",error,total_error)
@@ -257,10 +306,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error, dcpl_id=dcpl )
CALL check("h5dcreate_f",error,total_error)
-!!$ dset1 = H5Dcreate2(fid, DSET1_NAME, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)
-!!$ dset2 = H5Dcreate2(fid, DSET2_NAME, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)
-!!$ dset3 = H5Dcreate2(fid, DSET3_NAME, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)
-
DO curr_dset = 0,NUM_DSETS-1
SELECT CASE (curr_dset)
CASE (0)
@@ -280,9 +325,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
! /* Create attribute */
WRITE(chr2,'(I2.2)') u
attrname = 'attr '//chr2
-
- ! attr = H5Acreate2(my_dataset, attrname, H5T_NATIVE_UINT, sid, H5P_DEFAULT, H5P_DEFAULT);
- ! check with the optional information create2 specs.
+
CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error)
CALL check("h5acreate_f",error,total_error)
@@ -326,9 +369,6 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl)
CALL check("h5open_f",error,total_error)
-!!$ fid = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl)
-!!$ CALL CHECK(fid, FAIL, "H5Fopen")
-
CALL h5dopen_f(fid, DSET1_NAME, dset1, error)
CALL check("h5dopen_f",error,total_error)
CALL h5dopen_f(fid, DSET2_NAME, dset2, error)
@@ -399,7 +439,12 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
END SUBROUTINE test_attr_corder_create_compact
SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
-! --------------------------------------------------
+!/****************************************************************
+!**
+!** test_attr_null_space(): Test basic H5A (attribute) code.
+!** Tests storing attribute with "null" dataspace
+!**
+!****************************************************************/
USE HDF5
IMPLICIT NONE
@@ -424,7 +469,7 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
INTEGER(HID_T) :: attr_sid
INTEGER(HSIZE_T), DIMENSION(7) :: data_dims
- INTEGER(HSIZE_T) :: storage_size ! attributes storage requirements .MSB.
+ INTEGER(HSIZE_T) :: storage_size ! attributes storage requirements
LOGICAL :: f_corder_valid ! Indicates whether the the creation order data is valid for this attribute
INTEGER :: corder ! Is a positive integer containing the creation order of the attribute
@@ -435,22 +480,17 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
! test: H5Sextent_equal_f
-
data_dims = 0
-! CHARACTER (LEN=NAME_BUF_SIZE) :: attrname
-
-! /* Output message about test being performed */
- WRITE(*,*) " - Testing Storing Attributes with 'null' dataspace"
+ ! /* Output message about test being performed */
+! WRITE(*,*) " - Testing Storing Attributes with 'null' dataspace"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
-! /* Close file */
+ ! /* Close file */
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
-!!$ empty_filesize = h5_get_file_size(FILENAME)
-!!$ IF (empty_filesize < 0) CALL TestErrPrintf("Line %d: file size wrong!\n"C, __LINE__)
! /* Re-open file */
CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error)
CALL check("h5open_f",error,total_error)
@@ -463,16 +503,12 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
! /* Create a dataset */
CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error)
CALL check("h5dcreate_f",error,total_error)
-!!$ dataset = H5Dcreate2(fid, DSET1_NAME, H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)
-!!$ CALL CHECK(dataset, FAIL, "H5Dcreate2")
! /* Add attribute with 'null' dataspace */
! /* Create attribute */
CALL h5acreate_f(dataset, "null attr", H5T_NATIVE_INTEGER, null_sid, attr, error)
CALL check("h5acreate_f",error,total_error)
-!!$ CALL HDstrcpy(attrname, "null attr")
-!!$ attr = H5Acreate2(dataset, attrname, H5T_NATIVE_UINT, null_sid, H5P_DEFAULT, H5P_DEFAULT)
! /* Try to read data from the attribute */
! /* (shouldn't fail, but should leave buffer alone) */
value(1) = 103
@@ -496,7 +532,6 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
CALL check("H5Sextent_equal_f",error,total_error)
CALL Verifylogical("H5Sextent_equal_f",equal,.TRUE.,total_error)
-
!!$ ret = H5Sclose(attr_sid)
!!$ CALL CHECK(ret, FAIL, "H5Sclose")
@@ -505,78 +540,24 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
CALL VERIFY("h5aget_storage_size_f",INT(storage_size),0,total_error)
CALL h5aget_info_f(attr, f_corder_valid, corder, cset, data_size, error)
- CALL VERIFY("h5aget_info_f",INT(data_size),INT(storage_size),total_error)
+ CALL check("h5aget_info_f", error, total_error)
+ ! /* Check the attribute's information */
+ CALL VERIFY("h5aget_info_f.corder",corder,0,total_error)
+ CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error)
+ CALL h5aget_storage_size_f(attr, storage_size, error)
+ CALL check("h5aget_storage_size_f",error,total_error)
+ CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error)
CALL h5aclose_f(attr,error)
CALL check("h5aclose_f",error,total_error)
-
-
-!!$ CALL HDstrcpy(attrname, "null attr #2")
-!!$ attr = H5Acreate2(dataset, attrname, H5T_NATIVE_UINT, null_sid, H5P_DEFAULT, H5P_DEFAULT)
-!!$ CALL CHECK(attr, FAIL, "H5Acreate2")
-!!$ value = 23
-!!$ ret = H5Awrite(attr, H5T_NATIVE_UINT, value)
-!!$ CALL CHECK(ret, FAIL, "H5Awrite")
-!!$ CALL VERIFY(value, 23, "H5Awrite")
-!!$ ret = H5Aclose(attr)
-!!$ CALL CHECK(ret, FAIL, "H5Aclose")
-!!$ ret = H5Dclose(dataset)
-!!$ CALL CHECK(ret, FAIL, "H5Dclose")
-!!$ ret = H5Fclose(fid)
-!!$ CALL CHECK(ret, FAIL, "H5Fclose")
-!!$ fid = H5Fopen(FILENAME, H5F_ACC_RDWR, fapl)
-!!$ CALL CHECK(fid, FAIL, "H5Fopen")
-!!$ dataset = H5Dopen2(fid, DSET1_NAME, H5P_DEFAULT)
-!!$ CALL CHECK(dataset, FAIL, "H5Dopen2")
-!!$ CALL HDstrcpy(attrname, "null attr #2")
-!!$ attr = H5Aopen(dataset, attrname, H5P_DEFAULT)
-!!$ CALL CHECK(attr, FAIL, "H5Aopen")
-!!$ value = 23
-!!$ ret = H5Aread(attr, H5T_NATIVE_UINT, value)
-!!$ CALL CHECK(ret, FAIL, "H5Aread")
-!!$ CALL VERIFY(value, 23, "H5Aread")
-!!$ attr_sid = H5Aget_space(attr)
-!!$ CALL CHECK(attr_sid, FAIL, "H5Aget_space")
-!!$ cmp = H5Sextent_equal(attr_sid, null_sid)
-!!$ CALL CHECK(cmp, FAIL, "H5Sextent_equal")
-!!$ CALL VERIFY(cmp, TRUE, "H5Sextent_equal")
-
CALL H5Sclose_f(attr_sid, error)
CALL check("H5Sclose_f",error,total_error)
-
-
-!!$ ret = H5Sclose(attr_sid)
-!!$ CALL CHECK(ret, FAIL, "H5Sclose")
-!!$ storage_size = H5Aget_storage_size(attr)
-!!$ CALL VERIFY(storage_size, 0, "H5Aget_storage_size")
-!!$ ret = H5Aget_info(attr, ainfo)
-!!$ CALL CHECK(ret, FAIL, "H5Aget_info")
-!!$ CALL VERIFY(ainfo%data_size, storage_size, "H5Aget_info")
-!!$ ret = H5Aclose(attr)
-!!$ CALL CHECK(ret, FAIL, "H5Aclose")
-!!$ CALL HDstrcpy(attrname, "null attr")
-!!$ attr = H5Aopen(dataset, attrname, H5P_DEFAULT)
-!!$ CALL CHECK(attr, FAIL, "H5Aopen")
-!!$ value = 23
-!!$ ret = H5Awrite(attr, H5T_NATIVE_UINT, value)
-!!$ CALL CHECK(ret, FAIL, "H5Awrite")
-!!$ CALL VERIFY(value, 23, "H5Awrite")
-
-
-!!$ CALL H5Aclose_f(attr, error)
-!!$ CALL check("H5Aclose_f", error,total_error)
-!!$ CALL H5Ddelete_f(fid, DSET1_NAME, H5P_DEFAULT_F, error)
-!!$ CALL check("H5Aclose_f", error,total_error)
CALL H5Dclose_f(dataset, error)
CALL check("H5Dclose_f", error,total_error)
-!!$ ret = H5delete(fid, DSET1_NAME, H5P_DEFAULT)
-!!$ CALL CHECK(ret, FAIL, "H5Ldelete")
-
-! TESTING1
CALL H5Fclose_f(fid, error)
CALL check("H5Fclose_f", error,total_error)
@@ -587,14 +568,18 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
CALL H5Sclose_f(null_sid, error)
CALL check("H5Sclose_f", error,total_error)
-!!$ filesize = h5_get_file_size(FILENAME)
-!!$ CALL VERIFY(filesize, empty_filesize, "h5_get_file_size")
-
END SUBROUTINE test_attr_null_space
SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
+!/****************************************************************
+!**
+!** test_attr_create_by_name(): Test basic H5A (attribute) code.
+!** Tests creating attributes by name
+!**
+!****************************************************************/
+
USE HDF5
IMPLICIT NONE
@@ -653,11 +638,11 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
! /* Loop over using index for creation order value */
DO i = 1, 2
! /* Print appropriate test message */
- IF(use_index(i))THEN
- WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index"
- ELSE
- WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,*) " - Testing Creating Attributes By Name w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,*) " - Testing Creating Attributes By Name w/o Creation Order Index"
+!!$ ENDIF
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
CALL check("h5fcreate_f",error,total_error)
@@ -749,7 +734,6 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
CALL attr_open_check(fid, dsetname, my_dataset, u, total_error)
- ! CHECK(ret, FAIL, "attr_open_check");
ENDDO
@@ -765,8 +749,6 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
CASE (2)
my_dataset = dset3
dsetname = DSET3_NAME
-! CASE DEFAULT
-! CALL HDassert(0.AND."Toomanydatasets!")
END SELECT
! /* Create more attributes, to push into dense form */
@@ -850,6 +832,13 @@ END SUBROUTINE test_attr_create_by_name
SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
+!/****************************************************************
+!**
+!** test_attr_info_by_idx(): Test basic H5A (attribute) code.
+!** Tests querying attribute info by index
+!**
+!****************************************************************/
+
USE HDF5
IMPLICIT NONE
@@ -903,17 +892,6 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
INTEGER(HSIZE_T) :: htmp
data_dims = 0
-!!$ htri_t is_empty; /* Are there any attributes? */
-!!$ htri_t is_dense; /* Are attributes stored densely? */
-!!$ hsize_t nattrs; /* Number of attributes on object */
-!!$ hsize_t name_count; /* # of records in name index */
-!!$ hsize_t corder_count; /* # of records in creation order index */
-!!$ hbool_t use_index; /* Use index on creation order values */
-!!$ char attrname[NAME_BUF_SIZE]; /* Name of attribute */
-!!$ char tmpname[NAME_BUF_SIZE]; /* Temporary attribute name */
-!!$ unsigned curr_dset; /* Current dataset to work on */
-!!$ unsigned u; /* Local index variable */
-!!$ herr_t ret; /* Generic return value */
! /* Create dataspace for dataset & attributes */
@@ -936,11 +914,11 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
DO i = 1, 2
! /* Output message about test being performed */
- IF(use_index(i))THEN
- WRITE(*,'(A72)') " - Testing Querying Attribute Info By Index w/Creation Order Index"
- ELSE
- WRITE(*,'(A74)') " - Testing Querying Attribute Info By Index w/o Creation Order Index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(A72)') " - Testing Querying Attribute Info By Index w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,'(A74)') " - Testing Querying Attribute Info By Index w/o Creation Order Index"
+!!$ ENDIF
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
@@ -1052,78 +1030,6 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
!CHECK(ret, FAIL, "attr_info_by_idx_check");
ENDDO
- ! /* Verify state of object */
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, max_compact, "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
-
- ! /* Check for out of bound offset queries */
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, &ainfo, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_info_by_idx");
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)u, &ainfo, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_info_by_idx");
-!!$ ret = H5Aget_name_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_name_by_idx");
-!!$
-!!$ /* Create more attributes, to push into dense form */
-!!$ for(; u < (max_compact * 2); u++) {
-!!$ /* Create attribute */
-!!$ sprintf(attrname, "attr %02u", u);
-!!$ attr = H5Acreate2(my_dataset, attrname, H5T_NATIVE_UINT, sid, H5P_DEFAULT, H5P_DEFAULT);
-!!$ CHECK(attr, FAIL, "H5Acreate2");
-!!$
-!!$ /* Write data into the attribute */
-!!$ ret = H5Awrite(attr, H5T_NATIVE_UINT, &u);
-!!$ CHECK(ret, FAIL, "H5Awrite");
-!!$
-!!$ /* Close attribute */
-!!$ ret = H5Aclose(attr);
-!!$ CHECK(ret, FAIL, "H5Aclose");
-!!$
-!!$ /* Verify state of object */
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-!!$
-!!$ /* Verify information for new attribute */
-!!$ ret = attr_info_by_idx_check(my_dataset, attrname, (hsize_t)u, use_index);
-!!$ CHECK(ret, FAIL, "attr_info_by_idx_check");
-!!$ } /* end for */
-!!$
-!!$ /* Verify state of object */
-!!$ ret = H5O_num_attrs_test(my_dataset, &nattrs);
-!!$ CHECK(ret, FAIL, "H5O_num_attrs_test");
-!!$ VERIFY(nattrs, (max_compact * 2), "H5O_num_attrs_test");
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, FALSE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-!!$
-!!$ if(new_format) {
-!!$ /* Retrieve & verify # of records in the name & creation order indices */
-!!$ ret = H5O_attr_dense_info_test(my_dataset, &name_count, &corder_count);
-!!$ CHECK(ret, FAIL, "H5O_attr_dense_info_test");
-!!$ if(use_index)
-!!$ VERIFY(name_count, corder_count, "H5O_attr_dense_info_test");
-!!$ VERIFY(name_count, (max_compact * 2), "H5O_attr_dense_info_test");
-!!$ } /* end if */
-!!$
-!!$ /* Check for out of bound offset queries */
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, &ainfo, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_info_by_idx");
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)u, &ainfo, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_info_by_idx");
-!!$ ret = H5Aget_name_by_idx(my_dataset, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, (hsize_t)u, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Aget_name_by_idx");
-!!$ } /* end for */
-!!$
-
-!!$ } /* end for */
-!!$
-
ENDDO
@@ -1173,18 +1079,6 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
CHARACTER(LEN=7) :: tmpname
INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T
-!!$
-!!$ INTEGER :: const
-!!$ INTEGER :: har
-!!$ INTEGER :: attrname
-!!$ INTEGER :: hsize_t
-!!$ INTEGER :: hbool_t
-!!$ INTEGER :: se_index
-!!$ INTEGER :: old_nerrs
-!!$ CHARACTER (LEN=NAME_BUF_SIZE) :: tmpname
-!!$ ainfo
-!!$ ret
-!!$ old_nerrs = GetTestNumErrs()
! /* Verify the information for first attribute, in increasing creation order */
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, hzero, &
@@ -1219,15 +1113,12 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
! * index.
! */
IF (use_index) THEN
- ! CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
! /* Verify the information for first attribute, in native creation order */
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, hzero, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error)
- ! CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
-
! /* Verify the information for new attribute, in native creation order */
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, n, &
f_corder_valid, corder, cset, data_size, error)
@@ -1235,7 +1126,6 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
! /* Verify the name for new link, in increasing native order */
- ! CALL HDmemset(tmpname, 0, (size_t))
CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, &
n, tmpname, error) ! check with no optional parameters
CALL check("h5aget_name_by_idx_f",error,total_error)
@@ -1253,7 +1143,6 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error)
- ! CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
!EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_DEC_F, 0_HSIZE_T, &
! -- CHECK PASSING AN INTEGER CONSTANT IN DIFFERENT FORMS --
@@ -1279,37 +1168,27 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
-!!$ CALL HDmemset(tmpname, 0, (size_t))
-!!$ ret = H5Aget_name_by_idx(obj_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT)
-!!$ CALL CHECK(ret, FAIL, "H5Aget_name_by_idx")
-!!$ IF (HDstrcmp(attrname, tmpname)) CALL TestErrPrintf("Line %d: attribute name size wrong!\n"C, __LINE__)
-!!$ CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
!EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, 0_HSIZE_T, &
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, hzero, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error)
-!!$ CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_INC_F, n, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
-!!$ CALL HDmemset(tmpname, 0, (size_t))
!!$ ret = H5Aget_name_by_idx(obj_id, ".", H5_INDEX_NAME, H5_ITER_INC, n, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT)
!!$ CALL CHECK(ret, FAIL, "H5Aget_name_by_idx")
!!$ IF (HDstrcmp(attrname, tmpname)) CALL TestErrPrintf("Line %d: attribute name size wrong!\n"C, __LINE__)
-!!$ CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, n, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error)
-!!$ CALL HDmemset(ainfo, 0, SIZEOF(ainfo)
!EP CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, 0_HSIZE_T, &
CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_NAME_F, H5_ITER_DEC_F, hzero, &
f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_by_idx_f",error,total_error)
CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
-!!$ CALL HDmemset(tmpname, 0, (size_t))
!!$ ret = H5Aget_name_by_idx(obj_id, ".", H5_INDEX_NAME, H5_ITER_DEC, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT)
!!$ CALL CHECK(ret, FAIL, "H5Aget_name_by_idx")
!!$ IF (HDstrcmp(attrname, tmpname)) CALL TestErrPrintf("Line %d: attribute name size wrong!\n"C, __LINE__)
@@ -1384,9 +1263,8 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
INTEGER :: arank = 1 ! Attribure rank
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Renaming Shared & Unshared Attributes in Compact & Dense Storage"
+! WRITE(*,*) " - Testing Renaming Shared & Unshared Attributes in Compact & Dense Storage"
!!$ /* Initialize "big" attribute data */
-!!$ CALL HDmemset(big_value, 1, SIZEOF(big_value)
! /* Create dataspace for dataset */
CALL h5screate_f(H5S_SCALAR_F, sid, error)
@@ -1414,26 +1292,18 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
! /* Make attributes > 500 bytes shared */
CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error)
CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_nindexes");
CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
CALL check(" H5Pset_shared_mesg_index_f",error, total_error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
ELSE
! /* Set up copy of file creation property list */
CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error)
-!!$
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_nindexes");
-!!$
+
! /* Make attributes > 500 bytes shared */
- CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
-!!$
+ CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */
CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
ENDIF
! /* Create file */
@@ -1447,12 +1317,6 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
-!!$
-!!$ /* Get size of file */
-!!$ empty_filesize = h5_get_file_size(FILENAME);
-!!$ if(empty_filesize < 0)
-!!$ TestErrPrintf("Line %d: file size wrong!\n", __LINE__);
-
! /* Re-open file */
CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl)
CALL check("h5open_f",error,total_error)
@@ -1531,7 +1395,7 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
CALL check("h5acreate_f",error,total_error)
-!!$
+
! Check that attribute is shared */
!!$ is_shared = H5A_is_shared_test(attr);
!!$ VERIFY(is_shared, TRUE, "H5A_is_shared_test");
@@ -1823,6 +1687,13 @@ END SUBROUTINE test_attr_shared_rename
SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
+!/****************************************************************
+!**
+!** test_attr_delete_by_idx(): Test basic H5A (attribute) code.
+!** Tests deleting attribute by index
+!**
+!****************************************************************/
+
USE HDF5
IMPLICIT NONE
@@ -1832,9 +1703,9 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
INTEGER(HID_T), INTENT(IN) :: fapl
INTEGER, INTENT(INOUT) :: total_error
CHARACTER(LEN=8) :: FileName = "tattr.h5"
- INTEGER(HID_T) :: fid
- INTEGER(HID_T) :: dcpl
- INTEGER(HID_T) :: sid
+ INTEGER(HID_T) :: fid ! /* HDF5 File ID */
+ INTEGER(HID_T) :: dcpl ! /* Dataset creation property list ID */
+ INTEGER(HID_T) :: sid ! /* Dataspace ID */
CHARACTER(LEN=8) :: DSET1_NAME = "Dataset1"
CHARACTER(LEN=8) :: DSET2_NAME = "Dataset2"
@@ -1873,39 +1744,13 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
INTEGER :: idx_type
INTEGER :: order
- INTEGER :: u
+ INTEGER :: u ! /* Local index variable */
INTEGER :: Input1
INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T
INTEGER :: minusone = -1
data_dims = 0
-!!$test_attr_delete_by_idx(hbool_t new_format, hid_t fcpl, hid_t fapl)
-!!${
-!!$ hid_t fid; /* HDF5 File ID */
-!!$ hid_t dset1, dset2, dset3; /* Dataset IDs */
-!!$ hid_t my_dataset; /* Current dataset ID */
-!!$ hid_t sid; /* Dataspace ID */
-!!$ hid_t attr; /* Attribute ID */
-!!$ hid_t dcpl; /* Dataset creation property list ID */
-!!$ H5A_info_t ainfo; /* Attribute information */
-!!$ unsigned max_compact; /* Maximum # of links to store in group compactly */
-!!$ unsigned min_dense; /* Minimum # of links to store in group "densely" */
-!!$ htri_t is_empty; /* Are there any attributes? */
-!!$ htri_t is_dense; /* Are attributes stored densely? */
-!!$ hsize_t nattrs; /* Number of attributes on object */
-!!$ hsize_t name_count; /* # of records in name index */
-!!$ hsize_t corder_count; /* # of records in creation order index */
-!!$ H5_index_t idx_type; /* Type of index to operate on */
-!!$ H5_iter_order_t order; /* Order within in the index */
-!!$ hbool_t use_index; /* Use index on creation order values */
-!!$ char attrname[NAME_BUF_SIZE]; /* Name of attribute */
-!!$ char tmpname[NAME_BUF_SIZE]; /* Temporary attribute name */
-!!$ unsigned curr_dset; /* Current dataset to work on */
-!!$ unsigned u; /* Local index variable */
-!!$ herr_t ret; /* Generic return value */
-!!$
-
! /* Create dataspace for dataset & attributes */
CALL h5screate_f(H5S_SCALAR_F, sid, error)
CALL check("h5screate_f",error,total_error)
@@ -1929,39 +1774,39 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
DO i = 1, 2
! /* Print appropriate test message */
- IF(idx_type .EQ. H5_INDEX_CRT_ORDER_F)THEN
- IF(order .EQ. H5_ITER_INC_F) THEN
- IF(use_index(i))THEN
- WRITE(*,'(A102)') &
- " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/Creation Order Index"
- ELSE
- WRITE(*,'(A104)') &
- " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/o Creation Order Index"
- ENDIF
- ELSE
- IF(use_index(i))THEN
- WRITE(*,'(A102)') &
- " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/Creation Order Index"
- ELSE
- WRITE(*,'(A104)') &
- " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/o Creation Order Index"
- ENDIF
- ENDIF
- ELSE
- IF(order .EQ. H5_ITER_INC_F)THEN
- IF(use_index(i))THEN
- WRITE(*,'(7X,A86)')"- Testing Deleting Attribute By Name Index in Increasing Order w/Creation Order Index"
- ELSE
- WRITE(*,'(7X,A88)')"- Testing Deleting Attribute By Name Index in Increasing Order w/o Creation Order Index"
- ENDIF
- ELSE
- IF(use_index(i))THEN
- WRITE(*,'(7X,A86)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/Creation Order Index"
- ELSE
- WRITE(*,'(7X,A88)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/o Creation Order Index"
- ENDIF
- ENDIF
- ENDIF
+!!$ IF(idx_type .EQ. H5_INDEX_CRT_ORDER_F)THEN
+!!$ IF(order .EQ. H5_ITER_INC_F) THEN
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(A102)') &
+!!$ " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,'(A104)') &
+!!$ " - Testing Deleting Attribute By Creation Order Index in Increasing Order w/o Creation Order Index"
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(A102)') &
+!!$ " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,'(A104)') &
+!!$ " - Testing Deleting Attribute By Creation Order Index in Decreasing Order w/o Creation Order Index"
+!!$ ENDIF
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(order .EQ. H5_ITER_INC_F)THEN
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(7X,A86)')"- Testing Deleting Attribute By Name Index in Increasing Order w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,'(7X,A88)')"- Testing Deleting Attribute By Name Index in Increasing Order w/o Creation Order Index"
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(7X,A86)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/Creation Order Index"
+!!$ ELSE
+!!$ WRITE(*,'(7X,A88)') "- Testing Deleting Attribute By Name Index in Decreasing Order w/o Creation Order Index"
+!!$ ENDIF
+!!$ ENDIF
+!!$ ENDIF
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
@@ -2220,16 +2065,10 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error)
CALL check("H5Adelete_by_idx_f",error,total_error)
-
-
! /* Verify the attribute information for first attribute in appropriate order */
-!!$ HDmemset(&ainfo, 0, sizeof(ainfo));
-
CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), &
f_corder_valid, corder, cset, data_size, error)
-
-
IF(new_format)THEN
IF(order.EQ.H5_ITER_INC_F)THEN
CALL VERIFY("H5Aget_info_by_idx_f",corder,u + 1,total_error)
@@ -2238,7 +2077,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL VERIFY("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error)
ENDIF
-
! /* Verify the name for first attribute in appropriate order */
! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
@@ -2271,168 +2109,6 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
ENDDO
-
-!!$
-!!$
-!!$ /* Delete attributes in middle */
-!!$
-!!$
-!!$ /* Work on all the datasets */
-!!$ for(curr_dset = 0; curr_dset < NUM_DSETS; curr_dset++) {
-!!$ switch(curr_dset) {
-!!$ case 0:
-!!$ my_dataset = dset1;
-!!$ break;
-!!$
-!!$ case 1:
-!!$ my_dataset = dset2;
-!!$ break;
-!!$
-!!$ case 2:
-!!$ my_dataset = dset3;
-!!$ break;
-!!$
-!!$ default:
-!!$ HDassert(0 && "Too many datasets!");
-!!$ } /* end switch */
-!!$
-!!$ /* Create attributes, to push into dense form */
-!!$ for(u = 0; u < (max_compact * 2); u++) {
-!!$ /* Create attribute */
-!!$ sprintf(attrname, "attr %02u", u);
-!!$ attr = H5Acreate2(my_dataset, attrname, H5T_NATIVE_UINT, sid, H5P_DEFAULT, H5P_DEFAULT);
-!!$ CHECK(attr, FAIL, "H5Acreate2");
-!!$
-!!$ /* Write data into the attribute */
-!!$ ret = H5Awrite(attr, H5T_NATIVE_UINT, &u);
-!!$ CHECK(ret, FAIL, "H5Awrite");
-!!$
-!!$ /* Close attribute */
-!!$ ret = H5Aclose(attr);
-!!$ CHECK(ret, FAIL, "H5Aclose");
-!!$
-!!$ /* Verify state of object */
-!!$ if(u >= max_compact) {
-!!$ is_dense = H5O_is_attr_dense_test(my_dataset);
-!!$ VERIFY(is_dense, (new_format ? TRUE : FALSE), "H5O_is_attr_dense_test");
-!!$ } /* end if */
-!!$
-!!$ /* Verify information for new attribute */
-!!$ ret = attr_info_by_idx_check(my_dataset, attrname, (hsize_t)u, use_index);
-!!$ CHECK(ret, FAIL, "attr_info_by_idx_check");
-!!$ } /* end for */
-!!$ } /* end for */
-!!$
-!!$ /* Work on all the datasets */
-!!$ for(curr_dset = 0; curr_dset < NUM_DSETS; curr_dset++) {
-!!$ switch(curr_dset) {
-!!$ case 0:
-!!$ my_dataset = dset1;
-!!$ break;
-!!$
-!!$ case 1:
-!!$ my_dataset = dset2;
-!!$ break;
-!!$
-!!$ case 2:
-!!$ my_dataset = dset3;
-!!$ break;
-!!$
-!!$ default:
-!!$ HDassert(0 && "Too many datasets!");
-!!$ } /* end switch */
-!!$
-!!$ /* Delete every other attribute from dense storage, in appropriate order */
-!!$ for(u = 0; u < max_compact; u++) {
-!!$ /* Delete attribute */
-!!$ ret = H5Adelete_by_idx(my_dataset, ".", idx_type, order, (hsize_t)u, H5P_DEFAULT);
-!!$ CHECK(ret, FAIL, "H5Adelete_by_idx");
-!!$
-!!$ /* Verify the attribute information for first attribute in appropriate order */
-!!$ HDmemset(&ainfo, 0, sizeof(ainfo));
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", idx_type, order, (hsize_t)u, &ainfo, H5P_DEFAULT);
-!!$ if(new_format) {
-!!$ if(order == H5_ITER_INC) {
-!!$ VERIFY(ainfo.corder, ((u * 2) + 1), "H5Aget_info_by_idx");
-!!$ } /* end if */
-!!$ else {
-!!$ VERIFY(ainfo.corder, ((max_compact * 2) - ((u * 2) + 2)), "H5Aget_info_by_idx");
-!!$ } /* end else */
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for first attribute in appropriate order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ ret = H5Aget_name_by_idx(my_dataset, ".", idx_type, order, (hsize_t)u, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT);
-!!$ if(order == H5_ITER_INC)
-!!$ sprintf(attrname, "attr %02u", ((u * 2) + 1));
-!!$ else
-!!$ sprintf(attrname, "attr %02u", ((max_compact * 2) - ((u * 2) + 2)));
-!!$ ret = HDstrcmp(attrname, tmpname);
-!!$ VERIFY(ret, 0, "H5Aget_name_by_idx");
-!!$ } /* end for */
-!!$ } /* end for */
-!!$
-!!$ /* Work on all the datasets */
-!!$ for(curr_dset = 0; curr_dset < NUM_DSETS; curr_dset++) {
-!!$ switch(curr_dset) {
-!!$ case 0:
-!!$ my_dataset = dset1;
-!!$ break;
-!!$
-!!$ case 1:
-!!$ my_dataset = dset2;
-!!$ break;
-!!$
-!!$ case 2:
-!!$ my_dataset = dset3;
-!!$ break;
-!!$
-!!$ default:
-!!$ HDassert(0 && "Too many datasets!");
-!!$ } /* end switch */
-!!$
-!!$ /* Delete remaining attributes from dense storage, in appropriate order */
-!!$ for(u = 0; u < (max_compact - 1); u++) {
-!!$ /* Delete attribute */
-!!$ ret = H5Adelete_by_idx(my_dataset, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT);
-!!$ CHECK(ret, FAIL, "H5Adelete_by_idx");
-!!$
-!!$ /* Verify the attribute information for first attribute in appropriate order */
-!!$ HDmemset(&ainfo, 0, sizeof(ainfo));
-!!$ ret = H5Aget_info_by_idx(my_dataset, ".", idx_type, order, (hsize_t)0, &ainfo, H5P_DEFAULT);
-!!$ if(new_format) {
-!!$ if(order == H5_ITER_INC) {
-!!$ VERIFY(ainfo.corder, ((u * 2) + 3), "H5Aget_info_by_idx");
-!!$ } /* end if */
-!!$ else {
-!!$ VERIFY(ainfo.corder, ((max_compact * 2) - ((u * 2) + 4)), "H5Aget_info_by_idx");
-!!$ } /* end else */
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for first attribute in appropriate order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ ret = H5Aget_name_by_idx(my_dataset, ".", idx_type, order, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT);
-!!$ if(order == H5_ITER_INC)
-!!$ sprintf(attrname, "attr %02u", ((u * 2) + 3));
-!!$ else
-!!$ sprintf(attrname, "attr %02u", ((max_compact * 2) - ((u * 2) + 4)));
-!!$ ret = HDstrcmp(attrname, tmpname);
-!!$ VERIFY(ret, 0, "H5Aget_name_by_idx");
-!!$ } /* end for */
-!!$
-!!$ /* Delete last attribute */
-!!$ ret = H5Adelete_by_idx(my_dataset, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT);
-!!$ CHECK(ret, FAIL, "H5Adelete_by_idx");
-!!$
-!!$ /* Verify state of attribute storage (empty) */
-!!$ is_empty = H5O_is_attr_empty_test(my_dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$
-!!$ /* Check for deletion on empty attribute storage again */
-!!$ ret = H5Adelete_by_idx(my_dataset, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT);
-!!$ VERIFY(ret, FAIL, "H5Adelete_by_idx");
-!!$ } /* end for */
-
! /* Close Datasets */
CALL h5dclose_f(dset1, error)
CALL check("h5dclose_f",error,total_error)
@@ -2517,11 +2193,9 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
INTEGER :: arank = 1 ! Attribure rank
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Deleting Shared & Unshared Attributes in Compact & Dense Storage"
+! WRITE(*,*) " - Testing Deleting Shared & Unshared Attributes in Compact & Dense Storage"
! /* Initialize "big" attribute DATA */
-!!$ HDmemset(big_value, 1, sizeof(big_value));
-!!$
! /* Create dataspace for dataset */
CALL h5screate_f(H5S_SCALAR_F, sid, error)
CALL check("h5screate_f",error,total_error)
@@ -2558,16 +2232,10 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
ELSE
! /* Set up copy of file creation property list */
CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error)
-!!$
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_nindexes");
-!!$
! /* Make attributes > 500 bytes shared */
CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
-!!$
! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */
CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error)
-!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
CALL H5Pset_shared_mesg_index_f(my_fcpl, 2, H5O_SHMESG_SDSPACE_FLAG_F, 1,error)
!!$ CHECK_I(ret, "H5Pset_shared_mesg_index");
ENDIF
@@ -2582,11 +2250,6 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
! /* Close file */
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
-!!$
-!!$ /* Get size of file */
-!!$ empty_filesize = h5_get_file_size(FILENAME);
-!!$ if(empty_filesize < 0)
-!!$ TestErrPrintf("Line %d: file size wrong!\n", __LINE__);
! /* Re-open file */
CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl)
@@ -2924,7 +2587,7 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
data_dims = 0
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Opening Attributes in Dense Storage"
+! WRITE(*,*) " - Testing Opening Attributes in Dense Storage"
! /* Create file */
@@ -2936,10 +2599,6 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
CALL check("h5fclose_f",error,total_error)
- ! /* Get size of file */
-!!$ empty_filesize = h5_get_file_size(FILENAME);
-!!$ if(empty_filesize < 0)
-!!$ TestErrPrintf("Line %d: file size wrong!\n", __LINE__);
! /* Re-open file */
CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl)
@@ -3118,8 +2777,6 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error)
DO u=0, max_attr-1
-! size_t name_len; /* Length of attribute name */
-! char check_name[ATTR_NAME_LEN]; /* Buffer for checking attribute names */
! /* Open attribute */
@@ -3182,7 +2839,7 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
INTEGER :: minusone = -1
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Basic Code for Attributes with Creation Order Info"
+! WRITE(*,*) " - Testing Basic Code for Attributes with Creation Order Info"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
@@ -3226,11 +2883,6 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
CALL h5sclose_f(sid, error)
CALL check("h5sclose_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_empty = H5O_is_attr_empty_test(dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
! /* Close Dataset */
CALL h5dclose_f(dataset, error)
@@ -3252,11 +2904,6 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
CALL h5dopen_f(fid, DSET1_NAME, dataset, error, H5P_DEFAULT_F )
CALL check("h5dopen_f",error,total_error)
- ! /* Check on dataset's attribute storage status */
-!!$ is_empty = H5O_is_attr_empty_test(dataset);
-!!$ VERIFY(is_empty, TRUE, "H5O_is_attr_empty_test");
-!!$ is_dense = H5O_is_attr_dense_test(dataset);
-!!$ VERIFY(is_dense, FALSE, "H5O_is_attr_dense_test");
! /* Retrieve dataset creation property list for group */
CALL H5Dget_create_plist_f(dataset, dcpl, error)
@@ -3310,7 +2957,6 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
INTEGER(HID_T) :: attr,attr2 !String Attribute identifier
INTEGER(HID_T) :: group
- INTEGER(HSIZE_T), DIMENSION(7) :: data_dims
CHARACTER(LEN=25) :: check_name
CHARACTER(LEN=18) :: chr_exact_size
@@ -3344,7 +2990,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
attr_data1a(3) = -99890
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Basic Scalar Attribute Writing Functions"
+! WRITE(*,*) " - Testing Basic Scalar Attribute Writing Functions"
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid1, error, H5P_DEFAULT_F, fapl)
@@ -3529,7 +3175,7 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
data_dims = 0
! /* Output message about test being performed */
- WRITE(*,*) " - Testing Storing Many Attributes"
+! WRITE(*,*) " - Testing Storing Many Attributes"
!/* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
@@ -3596,54 +3242,7 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
CALL h5fclose_f(fid, error)
CALL check("h5fclose_f",error,total_error)
-!!$ /* Re-open the file and check on the attributes */
-!!$
-!!$ /* Re-open file */
-!!$ fid = H5Fopen(FILENAME, H5F_ACC_RDONLY, fapl);
-!!$ CHECK(fid, FAIL, "H5Fopen");
-!!$
-!!$ /* Re-open group */
-!!$ gid = H5Gopen2(fid, GROUP1_NAME, H5P_DEFAULT);
-!!$ CHECK(gid, FAIL, "H5Gopen2");
-!!$
-!!$ /* Verify attributes */
-!!$ for(u = 0; u < nattr; u++) {
-!!$ unsigned value; /* Attribute value */
-!!$
-!!$ sprintf(attrname, "a-%06u", u);
-!!$
-!!$ exists = H5Aexists(gid, attrname);
-!!$ VERIFY(exists, TRUE, "H5Aexists");
-!!$
-!!$ exists = H5Aexists_by_name(fid, GROUP1_NAME, attrname, H5P_DEFAULT);
-!!$ VERIFY(exists, TRUE, "H5Aexists_by_name");
-!!$
-!!$ aid = H5Aopen(gid, attrname, H5P_DEFAULT);
-!!$ CHECK(aid, FAIL, "H5Aopen");
-!!$
-!!$ exists = H5Aexists(gid, attrname);
-!!$ VERIFY(exists, TRUE, "H5Aexists");
-!!$
-!!$ exists = H5Aexists_by_name(fid, GROUP1_NAME, attrname, H5P_DEFAULT);
-!!$ VERIFY(exists, TRUE, "H5Aexists_by_name");
-!!$
-!!$ ret = H5Aread(aid, H5T_NATIVE_UINT, &value);
-!!$ CHECK(ret, FAIL, "H5Aread");
-!!$ VERIFY(value, u, "H5Aread");
-!!$
-!!$ ret = H5Aclose(aid);
-!!$ CHECK(ret, FAIL, "H5Aclose");
-!!$ } /* end for */
-!!$
- ! /* Close group */
-!!$ CALL H5Gclose_f(gid, error)
-!!$ CALL check("h5gclose_f",error,total_error)
-
- ! /* Close file */
-!!$ CALL h5fclose_f(fid, error)
-!!$ CALL check("h5fclose_f",error,total_error)
-
-! /* Close dataspaces */
+ ! /* Close dataspaces */
CALL h5sclose_f(sid, error)
CALL check("h5sclose_f",error,total_error)
@@ -3657,8 +3256,8 @@ END SUBROUTINE test_attr_many
! * Return: Success: 0
! * Failure: -1
! *
-! * Programmer: Quincey Koziol
-! * Wednesday, February 21, 2007
+! * Programmer: Fortran version (M.S. Breitenfeld)
+! * March 21, 2008
! *
! *-------------------------------------------------------------------------
! */
@@ -3683,6 +3282,7 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
INTEGER :: cset ! Indicates the character set used for the attribute’s name
INTEGER(HSIZE_T) :: data_size ! indicates the size, in the number of characters
+ INTEGER(HSIZE_T) :: storage_size ! attributes storage requirements
CHARACTER(LEN=2) :: chr2
INTEGER(HID_T) attr_id
! /* Open each attribute on object by index and check that it's the correct one */
@@ -3702,8 +3302,16 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_f",error,total_error)
- ! /* Check that the object is the correct one */
- CALL VERIFY("h5aget_info_f",corder,u,total_error)
+
+ ! /* Check that the object's attributes are correct */
+ CALL VERIFY("h5aget_info_f.corder",corder,u,total_error)
+ CALL Verifylogical("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error)
+ CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error)
+ CALL h5aget_storage_size_f(attr_id, storage_size, error)
+ CALL check("h5aget_storage_size_f",error,total_error)
+
+ CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error)
+
! /* Close attribute */
CALL h5aclose_f(attr_id, error)
@@ -3716,9 +3324,13 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_f",error,total_error)
- ! /* Get the attribute's information */
+ ! /* Check the attribute's information */
CALL VERIFY("h5aget_info_f",corder,u,total_error)
-
+ CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error)
+ CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error)
+ CALL h5aget_storage_size_f(attr_id, storage_size, error)
+ CALL check("h5aget_storage_size_f",error,total_error)
+ CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error)
! /* Close attribute */
CALL h5aclose_f(attr_id, error)
@@ -3734,8 +3346,13 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, error)
CALL check("h5aget_info_f",error,total_error)
- ! /* Check that the object is the correct one */
+ ! /* Check the attribute's information */
CALL VERIFY("h5aget_info_f",corder,u,total_error)
+ CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error)
+ CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error)
+ CALL h5aget_storage_size_f(attr_id, storage_size, error)
+ CALL check("h5aget_storage_size_f",error,total_error)
+ CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error)
! /* Close attribute */
CALL h5aclose_f(attr_id, error)
diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90
index 2fe39aa..0caec01 100644
--- a/fortran/test/tH5G_1_8.f90
+++ b/fortran/test/tH5G_1_8.f90
@@ -22,9 +22,9 @@ SUBROUTINE group_test(cleanup, total_error)
INTEGER(HID_T) :: fapl, fapl2, my_fapl ! /* File access property lists */
- INTEGER :: error
+ INTEGER :: error, ret_total_error
- WRITE(*,*) "TESTING GROUPS"
+! WRITE(*,*) "TESTING GROUPS"
CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
CALL check("H5Pcreate_f",error, total_error)
@@ -40,19 +40,60 @@ SUBROUTINE group_test(cleanup, total_error)
my_fapl = fapl2
- CALL mklinks(fapl2, total_error)
- CALL cklinks(fapl2, total_error)
+ ret_total_error = 0
+ CALL mklinks(fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing building a file with assorted links', &
+ total_error)
+
+ ret_total_error = 0
+ CALL cklinks(fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing links are correct and building assorted links', &
+ total_error)
+
+ ret_total_error = 0
+ CALL group_info(cleanup, fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing create group with creation order indices, test querying group info', &
+ total_error)
- CALL group_info(cleanup, fapl2,total_error)
! CALL ud_hard_links(fapl2,total_error)
- CALL timestamps(cleanup, fapl2, total_error)
- CALL test_move_preserves(fapl2, total_error)
- CALL delete_by_idx(cleanup,fapl2, total_error)
- CALL test_lcpl(cleanup, fapl, total_error)
-
- CALL objcopy(fapl, total_error)
-
- CALL lifecycle(cleanup, fapl2, total_error)
+ ret_total_error = 0
+ CALL timestamps(cleanup, fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing disabling tracking timestamps for an object', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_move_preserves(fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing moving and renaming links preserves their properties', &
+ total_error)
+
+ ret_total_error = 0
+ CALL delete_by_idx(cleanup,fapl2,ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing deleting links by index', &
+ total_error)
+
+ ret_total_error = 0
+ CALL test_lcpl(cleanup, fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing link creation property lists', &
+ total_error)
+
+ ret_total_error = 0
+ CALL objcopy(fapl, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing object copy', &
+ total_error)
+
+ ret_total_error = 0
+ CALL lifecycle(cleanup, fapl2, ret_total_error)
+ CALL write_test_status(ret_total_error, &
+ ' Testing adding links to a group follow proper "lifecycle"', &
+ total_error)
IF(cleanup) CALL h5_cleanup_f("TestLinks", H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
@@ -116,7 +157,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
CHARACTER(LEN=17), PARAMETER :: CORDER_SOFT_GROUP_NAME = "corder_soft_group"
INTEGER(HID_T) :: file_id ! /* File ID */
INTEGER :: error ! /* Generic return value */
-
+ LOGICAL :: mounted
LOGICAL :: cleanup
! /* Create group creation property list */
@@ -137,48 +178,48 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN
IF(iorder == H5_ITER_INC_F)THEN
order = H5_ITER_INC_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/o creation order index"
+!!$ ENDIF
ELSE IF (iorder == H5_ITER_DEC_F) THEN
order = H5_ITER_DEC_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/o creation order index"
+!!$ ENDIF
ELSE
order = H5_ITER_NATIVE_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in native order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in native order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in native order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in native order w/o creation order index"
+!!$ ENDIF
ENDIF
ELSE
IF(iorder == H5_ITER_INC_F)THEN
order = H5_ITER_INC_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in increasing order w/o creation order index"
+!!$ ENDIF
ELSE IF (iorder == H5_ITER_DEC_F) THEN
order = H5_ITER_DEC_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in decreasing order w/o creation order index"
+!!$ ENDIF
ELSE
order = H5_ITER_NATIVE_F
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"query group info by creation order index in native order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"query group info by creation order index in native order w/o creation order index"
- ENDIF
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in native order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"query group info by creation order index in native order w/o creation order index"
+!!$ ENDIF
ENDIF
END IF
@@ -207,7 +248,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
! /* Check for out of bound query by index on empty group, should fail */
CALL H5Gget_info_by_idx_f(group_id, ".", H5_INDEX_NAME_F, order, INT(0,HSIZE_T), &
storage_type, nlinks, max_corder, error)
- CALL VERIFY("H5Gget_info_by_idx", error, -1, total_error)
+ CALL VERIFY("H5Gget_info_by_idx_f", error, -1, total_error)
! /* Create several links, up to limit of compact form */
DO u = 0, max_compact-1
@@ -221,31 +262,33 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
CALL check("H5Gcreate_f", error, total_error)
! /* Retrieve group's information */
- CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error)
+ CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error, mounted)
CALL check("H5Gget_info_f", error, total_error)
! /* Check (new/empty) group's information */
CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error)
CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error)
+ CALL verifyLogical("H5Gget_info_f.mounted", mounted,.FALSE.,total_error)
! /* Retrieve group's information */
- CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error)
- CALL check("H5Gget_info_by_name", error, total_error)
+ CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error, mounted=mounted)
+ CALL check("H5Gget_info_by_name_f", error, total_error)
! /* Check (new/empty) group's information */
- CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
- CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error)
- CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error)
+ CALL verifyLogical("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error)
! /* Retrieve group's information */
CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error)
CALL check("H5Gget_info_by_name", error, total_error)
! /* Check (new/empty) group's information */
- CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
- CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error)
- CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error)
! /* Create objects in new group created */
DO v = 0, u
@@ -286,23 +329,25 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
! /* Check (new) group's information */
CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
- CALL VERIFY("H5Gget_info_by_name_f2", max_corder, u+1, total_error)
+ CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error)
CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error)
! /* Retrieve group's information */
IF(order.NE.H5_ITER_NATIVE_F)THEN
IF(order.EQ.H5_ITER_INC_F) THEN
CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(u,HSIZE_T), &
- storage_type, nlinks, max_corder, error,lapl_id=H5P_DEFAULT_F)
+ storage_type, nlinks, max_corder, error,lapl_id=H5P_DEFAULT_F, mounted=mounted)
CALL check("H5Gget_info_by_idx_f", error, total_error)
+ CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error)
ELSE
CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(0,HSIZE_T), &
- storage_type, nlinks, max_corder, error)
+ storage_type, nlinks, max_corder, error, mounted=mounted)
+ CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error)
CALL check("H5Gget_info_by_idx_f", error, total_error)
ENDIF
! /* Check (new) group's information */
CALL VERIFY("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
- CALL VERIFY("H5Gget_info_by_idx_f33", max_corder, u+1, total_error)
+ CALL VERIFY("H5Gget_info_by_idx_f", max_corder, u+1, total_error)
CALL VERIFY("H5Gget_info_by_idx_f", nlinks, u+1, total_error)
ENDIF
! /* Close group created */
@@ -315,7 +360,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
! /* Check main group's information */
CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
- CALL VERIFY("H5Gget_info_f2", max_corder, u+1, total_error)
+ CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error)
CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error)
! /* Retrieve main group's information, by name */
@@ -351,156 +396,6 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error)
ENDDO
- ! /* Verify state of group (compact) */
- ! if(H5G_has_links_test(group_id, NULL) != TRUE) TEST_ERROR
-
- !/* Check for out of bound query by index */
- ! H5E_BEGIN_TRY {
- ! ret = H5Gget_info_by_idx(group_id, ".", H5_INDEX_NAME, order, (hsize_t)u, &grp_info, H5P_DEFAULT);
- ! } H5E_END_TRY;
- ! if(ret >= 0) TEST_ERROR
-
- ! /* Create more links, to push group into dense form */
-!!$ for(; u < (max_compact * 2); u++) {
-!!$ hid_t group_id2, group_id3; /* Group IDs */
-!!$
-!!$ /* Make name for link */
-!!$ sprintf(objname, "filler %02u", u);
-!!$
-!!$ /* Create hard link, with group object */
-!!$ if((group_id2 = H5Gcreate2(group_id, objname, H5P_DEFAULT, gcpl_id, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$
-!!$ /* Retrieve group's information */
-!!$ if(H5Gget_info(group_id2, &grp_info) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new/empty) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_COMPACT) TEST_ERROR
-!!$ if(grp_info.max_corder != 0) TEST_ERROR
-!!$ if(grp_info.nlinks != 0) TEST_ERROR
-!!$
-!!$ /* Retrieve group's information, by name */
-!!$ if(H5Gget_info_by_name(group_id, objname, &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new/empty) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_COMPACT) TEST_ERROR
-!!$ if(grp_info.max_corder != 0) TEST_ERROR
-!!$ if(grp_info.nlinks != 0) TEST_ERROR
-!!$
-!!$ /* Retrieve group's information, by name */
-!!$ if(H5Gget_info_by_name(group_id2, ".", &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new/empty) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_COMPACT) TEST_ERROR
-!!$ if(grp_info.max_corder != 0) TEST_ERROR
-!!$ if(grp_info.nlinks != 0) TEST_ERROR
-!!$
-!!$
-!!$ /* Create objects in new group created */
-!!$ for(v = 0; v <= u; v++) {
-!!$ /* Make name for link */
-!!$ sprintf(objname2, "filler %02u", v);
-!!$
-!!$ /* Create hard link, with group object */
-!!$ if((group_id3 = H5Gcreate2(group_id2, objname2, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Close group created */
-!!$ if(H5Gclose(group_id3) < 0) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$
-!!$ /* Retrieve group's information */
-!!$ if(H5Gget_info(group_id2, &grp_info) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$ /* Retrieve group's information, by name */
-!!$ if(H5Gget_info_by_name(group_id, objname, &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$ /* Retrieve group's information, by name */
-!!$ if(H5Gget_info_by_name(group_id2, ".", &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check (new) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$
-!!$ /* Retrieve group's information */
-!!$ if(order != H5_ITER_NATIVE) {
-!!$ if(order == H5_ITER_INC) {
-!!$ if(H5Gget_info_by_idx(group_id, ".", idx_type, order, (hsize_t)u, &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ } /* end if */
-!!$ else {
-!!$ if(H5Gget_info_by_idx(group_id, ".", idx_type, order, (hsize_t)0, &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ } /* end else */
-!!$
-!!$ /* Check (new) group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Close group created */
-!!$ if(H5Gclose(group_id2) < 0) TEST_ERROR
-!!$
-!!$
-!!$ /* Retrieve main group's information */
-!!$ if(H5Gget_info(group_id, &grp_info) < 0) TEST_ERROR
-!!$
-!!$ /* Check main group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$ /* Retrieve main group's information, by name */
-!!$ if(H5Gget_info_by_name(file_id, CORDER_GROUP_NAME, &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check main group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$ /* Retrieve main group's information, by name */
-!!$ if(H5Gget_info_by_name(group_id, ".", &grp_info, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Check main group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$
-!!$
-!!$ /* Create soft link in another group, to objects in main group */
-!!$ sprintf(valname, "/%s/%s", CORDER_GROUP_NAME, objname);
-!!$ if(H5Lcreate_soft(valname, soft_group_id, objname, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Retrieve soft link group's information, by name */
-!!$ if(H5Gget_info(soft_group_id, &grp_info) < 0) TEST_ERROR
-!!$
-!!$ /* Check soft link group's information */
-!!$ if(grp_info.storage_type != H5G_STORAGE_TYPE_DENSE) TEST_ERROR
-!!$ if(grp_info.max_corder != (int64_t)(u + 1)) TEST_ERROR
-!!$ if(grp_info.nlinks != (hsize_t)(u + 1)) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Verify state of group (dense) */
-!!$ if(H5G_is_new_dense_test(group_id) != TRUE) TEST_ERROR
-!!$
-!!$ /* Check for out of bound query by index */
-!!$ H5E_BEGIN_TRY {
-!!$ ret = H5Gget_info_by_idx(group_id, ".", H5_INDEX_NAME, order, (hsize_t)u, &grp_info, H5P_DEFAULT);
-!!$ } H5E_END_TRY;
-!!$ if(ret >= 0) TEST_ERROR
-
-
! /* Close the groups */
CALL H5Gclose_f(group_id, error)
@@ -563,7 +458,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
INTEGER :: error
! /* Print test message */
- WRITE(*,*) "timestamps on objects"
+! WRITE(*,*) "timestamps on objects"
! /* Create group creation property list */
CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error )
@@ -749,7 +644,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
INTEGER :: arank = 1 ! Attribure rank
INTEGER :: error
- WRITE(*,*) "link creation (w/new group format)"
+! WRITE(*,*) "link creation (w/new group format)"
! /* Create a file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file, error, H5P_DEFAULT_F, fapl)
@@ -818,7 +713,6 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
INTEGER(HID_T):: group_id
INTEGER(HID_T):: fcpl_id ! /* Group creation property list ID */
INTEGER(HID_T):: lcpl_id
- INTEGER(HID_T):: lcpl2_id
!H5O_info_t oinfo;
!H5L_info_t linfo;
INTEGER :: old_cset
@@ -846,7 +740,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
INTEGER :: error
- WRITE(*,*) "moving and copying links preserves their properties (w/new group format)"
+! WRITE(*,*) "moving and copying links preserves their properties (w/new group format)"
!/* Create a file creation property list with creation order stored for links
! * in the root group
@@ -997,165 +891,6 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
END SUBROUTINE test_move_preserves
-!!$!/*-------------------------------------------------------------------------
-!!$! * Function: ud_hard_links
-!!$! *
-!!$! * Purpose: Check that the functionality of hard links can be duplicated
-!!$! * with user-defined links.
-!!$! *
-!!$! *
-!!$! * Programmer: M.S. Breitenfeld
-!!$! * February, 2008
-!!$! *
-!!$! *-------------------------------------------------------------------------
-!!$! */
-!!$!
-!!$!/* Callback functions for UD hard links. */
-!!$!/* UD_hard_create increments the object's reference count */
-!!$
-!!$ SUBROUTINE ud_hard_links(fapl, total_error)
-!!$
-!!$ USE HDF5 ! This module contains all necessary modules
-!!$
-!!$ IMPLICIT NONE
-!!$ INTEGER, INTENT(OUT) :: total_error
-!!$ INTEGER(HID_T), INTENT(IN) :: fapl
-!!$
-!!$ INTEGER(HID_T) :: fid ! /* File ID */
-!!$ INTEGER(HID_T) :: gid ! /* Group IDs */
-!!$
-!!$ CHARACTER(LEN=10) :: objname = 'objname.h5' ! /* Object name */
-!!$ CHARACTER(LEN=10), PARAMETER :: filename = 'filname.h5'
-!!$
-!!$ INTEGER(HSIZE_T) :: name_len ! /* Size of an empty file */
-!!$
-!!$ INTEGER, PARAMETER :: UD_HARD_TYPE=201
-!!$ LOGICAL :: registered
-!!$
-!!$!/* Link information */
-!!$
-!!$! ssize_t name_len; /* Length of object name */
-!!$! h5_stat_size_t empty_size; /* Size of an empty file */
-!!$
-!!$
-!!$ WRITE(*,*) "user-defined hard link (w/new group format)"
-!!$
-!!$ ! /* Set up filename and create file*/
-!!$
-!!$ CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, H5P_DEFAULT_F, fapl)
-!!$ CALL check("h5fcreate_f",error,total_error)
-!!$
-!!$ ! /* Close file */
-!!$ CALL h5fclose_f(fid, error)
-!!$ CALL check("h5fclose_f",error,total_error)
-!!$
-!!$ ! if((empty_size = h5_get_file_size(filename))<0) TEST_ERROR
-!!$
-!!$ ! /* Create file */
-!!$ CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, H5P_DEFAULT_F, fapl)
-!!$ CALL check("h5fcreate_f",error,total_error)
-!!$
-!!$ ! /* Check that external links are registered and UD hard links are not */
-!!$
-!!$ CALL H5Lis_registered(H5L_TYPE_EXTERNAL, registered, error)
-!!$ CALL VerifyLogical("H5Lis_registered", registered, .TRUE., total_error)
-!!$
-!!$ CALL H5Lis_registered(UD_HARD_TYPE, registered, error)
-!!$ CALL VerifyLogical("H5Lis_registered", registered, .FALSE., total_error)
-!!$
-!!$ !/* Register "user-defined hard links" with the library */
-!!$! if(H5Lregister(UD_hard_class) < 0) TEST_ERROR
-!!$
-!!$ /* Check that UD hard links are now registered */
-!!$ if(H5Lis_registered(H5L_TYPE_EXTERNAL) != TRUE) TEST_ERROR
-!!$ if(H5Lis_registered(UD_HARD_TYPE) != TRUE) TEST_ERROR
-!!$
-!!$ /* Create a group for the UD hard link to point to */
-!!$ if((gid = H5Gcreate2(fid, "group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Get address for the group to give to the hard link */
-!!$ if(H5Lget_info(fid, "group", &li, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ if(H5Gclose(gid) < 0) TEST_ERROR
-!!$
-!!$
-!!$ /* Create a user-defined "hard link" to the group using the address we got
-!!$ * from H5Lget_info */
-!!$ if(H5Lcreate_ud(fid, "ud_link", UD_HARD_TYPE, &(li.u.address), sizeof(haddr_t), H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Close and re-open file to ensure that data is written to disk */
-!!$ if(H5Fclose(fid) < 0) TEST_ERROR
-!!$ if((fid = H5Fopen(filename, H5F_ACC_RDWR, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Open group through UD link */
-!!$ if((gid = H5Gopen2(fid, "ud_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Check name */
-!!$ if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
-!!$ if(HDstrcmp(objname, "/group")) TEST_ERROR
-!!$
-!!$ /* Create object in group */
-!!$ if((gid2 = H5Gcreate2(gid, "new_group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Close groups*/
-!!$ if(H5Gclose(gid2) < 0) TEST_ERROR
-!!$ if(H5Gclose(gid) < 0) TEST_ERROR
-!!$
-!!$ /* Re-open group without using ud link to check that it was created properly */
-!!$ if((gid = H5Gopen2(fid, "group/new_group", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Check name */
-!!$ if((name_len = H5Iget_name( gid, objname, (size_t)NAME_BUF_SIZE )) < 0) TEST_ERROR
-!!$ if(HDstrcmp(objname, "/group/new_group")) TEST_ERROR
-!!$
-!!$ /* Close opened object */
-!!$ if(H5Gclose(gid) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Check that H5Lget_objinfo works on the hard link */
-!!$ if(H5Lget_info(fid, "ud_link", &li, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ /* UD hard links have no query function, thus return a "link length" of 0 */
-!!$ if(li.u.val_size != 0) TEST_ERROR
-!!$ if(UD_HARD_TYPE != li.type) {
-!!$ H5_FAILED();
-!!$ puts(" Unexpected link class - should have been a UD hard link");
-!!$ goto error;
-!!$ } /* end if */
-!!$
-!!$ /* Unlink the group pointed to by the UD link. It shouldn't be
-!!$ * deleted because of the UD link. */
-!!$ if(H5Ldelete(fid, "/group", H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Ensure we can open the group through the UD link */
-!!$ if((gid = H5Gopen2(fid, "ud_link", H5P_DEFAULT)) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Unlink the group contained within it. */
-!!$ if(H5Ldelete(gid, "new_group", H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ if(H5Gclose(gid) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Now delete the UD link. This should cause the group to be
-!!$ * deleted, too. */
-!!$ if(H5Ldelete(fid, "ud_link", H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Close file */
-!!$ if(H5Fclose(fid) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* The file should be empty again. */
-!!$ if(empty_size != h5_get_file_size(filename)) TEST_ERROR
-!!$
-!!$ if(H5Lunregister(UD_HARD_TYPE) < 0) FAIL_STACK_ERROR
-!!$
-!!$ PASSED();
-!!$ return 0;
-!!$
-!!$ error:
-!!$ H5E_BEGIN_TRY {
-!!$ H5Gclose(gid2);
-!!$ H5Gclose(gid);
-!!$ H5Fclose(fid);
-!!$ } H5E_END_TRY;
-!!$ return -1;
-!!$} /* end ud_hard_links() */
-
!/*-------------------------------------------------------------------------
! * Function: lifecycle
! *
@@ -1186,18 +921,13 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
INTEGER(HID_T) :: fid !/* File ID */
INTEGER(HID_T) :: gid !/* Group ID */
- INTEGER(HID_T) :: gid2 !/* Datatype ID */
INTEGER(HID_T) :: gcpl !/* Group creation property list ID */
INTEGER(size_t) :: lheap_size_hint !/* Local heap size hint */
INTEGER :: max_compact !/* Maximum # of links to store in group compactly */
INTEGER :: min_dense !/* Minimum # of links to store in group "densely" */
INTEGER :: est_num_entries !/* Estimated # of entries in group */
INTEGER :: est_name_len !/* Estimated length of entry name */
- INTEGER :: nmsgs !/* Number of messages in group's header */
- CHARACTER(LEN=NAME_BUF_SIZE) :: objname ! /* Object name */
CHARACTER(LEN=NAME_BUF_SIZE) :: filename = 'fixx.h5'
- INTEGER :: empty_size ! /* Size of an empty file */
- INTEGER :: u ! /* Local index variable */
INTEGER(SIZE_T) :: LIFECYCLE_LOCAL_HEAP_SIZE_HINT = 256
INTEGER :: LIFECYCLE_MAX_COMPACT = 4
INTEGER :: LIFECYCLE_MIN_DENSE = 3
@@ -1211,7 +941,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
INTEGER :: H5G_CRT_GINFO_EST_NAME_LEN = 8
logical :: cleanup
- WRITE(*,*) 'group lifecycle'
+! WRITE(*,*) 'group lifecycle'
! /* Create file */
CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl2)
@@ -1283,105 +1013,6 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
CALL verify("H5Pget_est_link_info_f", est_name_len, LIFECYCLE_EST_NAME_LEN,total_error)
- ! /* Use internal testing routine to check that the group has no links or symbol table */
- ! if(H5G_is_empty_test(gid) != TRUE) TEST_ERROR
-
-!!$ /* Create first "bottom" group */
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, (unsigned)0);
-!!$ IF((gid2 = H5Gcreate2(gid, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Check on bottom group's status */
-!!$ if(H5G_is_empty_test(gid2) != TRUE) TEST_ERROR
-!!$
-!!$ /* Close bottom group */
-!!$ if(H5Gclose(gid2) < 0) TEST_ERROR
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) == TRUE) TEST_ERROR
-!!$ if(H5G_has_links_test(gid, &nmsgs) != TRUE) TEST_ERROR
-!!$ if(nmsgs != 1) TEST_ERROR
-!!$
-!!$ /* Create several more bottom groups, to push the top group almost to a symbol table */
-!!$ /* (Start counting at '1', since we've already created one bottom group */
-!!$ for(u = 1; u < LIFECYCLE_MAX_COMPACT; u++) {
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$ if((gid2 = H5Gcreate2(gid, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Check on bottom group's status */
-!!$ if(H5G_is_empty_test(gid2) != TRUE) TEST_ERROR
-!!$
-!!$ /* Close bottom group */
-!!$ if(H5Gclose(gid2) < 0) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) == TRUE) TEST_ERROR
-!!$ if(H5G_has_links_test(gid, &nmsgs) != TRUE) TEST_ERROR
-!!$ if(nmsgs != LIFECYCLE_MAX_COMPACT) TEST_ERROR
-!!$ if(H5G_is_new_dense_test(gid) != FALSE) TEST_ERROR
-!!$
-!!$ /* Check that the object header is only one chunk and the space has been allocated correctly */
-!!$ if(H5Oget_info(gid, &oinfo) < 0) TEST_ERROR
-!!$ if(oinfo.hdr.space.total != 151) TEST_ERROR
-!!$ if(oinfo.hdr.space.free != 0) TEST_ERROR
-!!$ if(oinfo.hdr.nmesgs != 6) TEST_ERROR
-!!$ if(oinfo.hdr.nchunks != 1) TEST_ERROR
-!!$
-!!$ /* Create one more "bottom" group, which should push top group into using a symbol table */
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$ if((gid2 = H5Gcreate2(gid, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$
-!!$ /* Check on bottom group's status */
-!!$ if(H5G_is_empty_test(gid2) != TRUE) TEST_ERROR
-!!$
-!!$ /* Close bottom group */
-!!$ if(H5Gclose(gid2) < 0) TEST_ERROR
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) == TRUE) TEST_ERROR
-!!$ if(H5G_has_links_test(gid, NULL) == TRUE) TEST_ERROR
-!!$ if(H5G_is_new_dense_test(gid) != TRUE) TEST_ERROR
-!!$
-!!$ /* Check that the object header is still one chunk and the space has been allocated correctly */
-!!$ if(H5Oget_info(gid, &oinfo) < 0) TEST_ERROR
-!!$ if(oinfo.hdr.space.total != 151) TEST_ERROR
-!!$ if(oinfo.hdr.space.free != 92) TEST_ERROR
-!!$ if(oinfo.hdr.nmesgs != 3) TEST_ERROR
-!!$ if(oinfo.hdr.nchunks != 1) TEST_ERROR
-!!$
-!!$ /* Unlink objects from top group */
-!!$ while(u >= LIFECYCLE_MIN_DENSE) {
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$
-!!$ if(H5Ldelete(gid, objname, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$
-!!$ u--;
-!!$ } /* end while */
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) == TRUE) TEST_ERROR
-!!$ if(H5G_has_links_test(gid, NULL) == TRUE) TEST_ERROR
-!!$ if(H5G_is_new_dense_test(gid) != TRUE) TEST_ERROR
-!!$
-!!$ /* Unlink one more object from the group, which should transform back to using links */
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$ if(H5Ldelete(gid, objname, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ u--;
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) == TRUE) TEST_ERROR
-!!$ if(H5G_has_links_test(gid, &nmsgs) != TRUE) TEST_ERROR
-!!$ if(nmsgs != (LIFECYCLE_MIN_DENSE - 1)) TEST_ERROR
-!!$
-!!$ /* Unlink last two objects from top group */
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$ if(H5Ldelete(gid, objname, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ u--;
-!!$ sprintf(objname, LIFECYCLE_BOTTOM_GROUP, u);
-!!$ if(H5Ldelete(gid, objname, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$
-!!$ /* Check on top group's status */
-!!$ if(H5G_is_empty_test(gid) != TRUE) TEST_ERROR
!/* Close top group */
CALL H5Gclose_f(gid, error)
@@ -1400,12 +1031,6 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
CALL H5Fclose_f(fid,error)
CALL check("H5Fclose_f",error,total_error)
-!!$ /* Get size of file as empty */
-!!$ if((file_size = h5_get_file_size(filename)) < 0) TEST_ERROR
-!!$
-!!$ /* Verify that file is correct size */
-!!$ if(file_size != empty_size) TEST_ERROR
-
IF(cleanup) CALL h5_cleanup_f("fixx", H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)
@@ -1444,18 +1069,11 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
! H5L_info_t linfo2;
CHARACTER(LEN=12), PARAMETER :: filename ='TestLinks.h5'
- CHARACTER(LEN=12) :: linkval
! TYPE(C_PTR) :: linkval
LOGICAL :: Lexists
-
-!!$ if(new_format)
-!!$ TESTING("link queries (w/new group format)")
-!!$ else
-!!$ TESTING("link queries")
-
! /* Open the file */
CALL H5Fopen_f(filename, H5F_ACC_RDONLY_F, file, error,access_prp=fapl)
CALL check("H5Fopen_f",error,total_error)
@@ -1483,93 +1101,11 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
CALL H5Lexists_f(file,"grp1/hard",Lexists, error)
CALL verifylogical("test_lcpl.H5Lexists", Lexists,.TRUE.,total_error)
-
-!!$ /* Symbolic link */
-!!$ if(H5Oget_info_by_name(file, "grp1/soft", &oinfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ if(H5O_TYPE_DATASET != oinfo2.type) {
-!!$ H5_FAILED();
-!!$ printf(" %d: Unexpected object type should have been a dataset\n", __LINE__);
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5F_addr_ne(oinfo1.addr, oinfo2.addr)) {
-!!$ H5_FAILED();
-!!$ puts(" Soft link test failed. Link seems not to point to the ");
-!!$ puts(" expected file location.");
-!!$ TEST_ERROR
-!!$ } /* end if */
-
-! CALL H5Lget_val(file, "grp1/soft", INT(LEN(linkval), SIZE_T), linkval, error)
-
-
-!!$ if(H5Lget_val(file, "grp1/soft", linkval, sizeof linkval, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ if(HDstrcmp(linkval, "/d1")) {
-!!$ H5_FAILED();
-!!$ puts(" Soft link test failed. Wrong link value");
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lexists(file, "grp1/soft", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
-!!$
-!!$ /* Dangling link */
-!!$ H5E_BEGIN_TRY {
-!!$ status = H5Oget_info_by_name(file, "grp1/dangle", &oinfo2, H5P_DEFAULT);
-!!$ } H5E_END_TRY;
-!!$ if(status >= 0) {
-!!$ H5_FAILED();
-!!$ puts(" H5Oget_info_by_name() should have failed for a dangling link.");
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lget_info(file, "grp1/dangle", &linfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ if(H5L_TYPE_SOFT != linfo2.type) {
-!!$ H5_FAILED();
-!!$ printf(" %d: Unexpected object type should have been a symbolic link\n", __LINE__);
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lget_val(file, "grp1/dangle", linkval, sizeof linkval, H5P_DEFAULT) < 0) {
-!!$ H5_FAILED();
-!!$ printf(" %d: Can't retrieve link value\n", __LINE__);
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(HDstrcmp(linkval, "foobar")) {
-!!$ H5_FAILED();
-!!$ puts(" Dangling link test failed. Wrong link value");
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lexists(file, "grp1/dangle", H5P_DEFAULT) != TRUE) FAIL_STACK_ERROR
-!!$
-!!$ /* Recursive link */
-!!$ H5E_BEGIN_TRY {
-!!$ status = H5Oget_info_by_name(file, "grp1/recursive", &oinfo2, H5P_DEFAULT);
-!!$ } H5E_END_TRY;
-!!$ if(status >= 0) {
-!!$ H5_FAILED();
-!!$ puts(" H5Oget_info_by_name() should have failed for a recursive link.");
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lget_info(file, "grp1/recursive", &linfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
-!!$ if(H5L_TYPE_SOFT != linfo2.type) {
-!!$ H5_FAILED();
-!!$ printf(" %d: Unexpected object type should have been a symbolic link\n", __LINE__);
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(H5Lget_val(file, "grp1/recursive", linkval, sizeof linkval, H5P_DEFAULT) < 0) {
-!!$ H5_FAILED();
-!!$ printf(" %d: Can't retrieve link value\n", __LINE__);
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$ if(HDstrcmp(linkval, "/grp1/recursive")) {
-!!$ H5_FAILED();
-!!$ puts(" Recursive link test failed. Wrong link value");
-!!$ TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Non-existant link */
-!!$ if(H5Lexists(file, "foobar", H5P_DEFAULT) == TRUE) FAIL_STACK_ERROR
-
! /* Cleanup */
- CALL H5Fclose_f(file,error)
- CALL check("H5Fclose_f",error,total_error)
+ CALL H5Fclose_f(file,error)
+ CALL check("H5Fclose_f",error,total_error)
- END SUBROUTINE cklinks
+END SUBROUTINE cklinks
!/*-------------------------------------------------------------------------
@@ -1608,7 +1144,6 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
CHARACTER(LEN=7) :: objname ! /* Object name */
CHARACTER(LEN=8) :: filename = 'file0.h5' ! /* File name */
- CHARACTER(LEN=7) :: tmpname ! /* Temporary link name */
CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group"
LOGICAL :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
@@ -1626,11 +1161,8 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
!
!
!
- CHARACTER(LEN=6) :: filename1
- CHARACTER(LEN=6) :: filename2
CHARACTER(LEN=80) :: fix_filename1
CHARACTER(LEN=80) :: fix_filename2
- INTEGER(SIZE_T) :: size_tmp
INTEGER(HSIZE_T) :: htmp
LOGICAL :: cleanup
@@ -1647,37 +1179,35 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
! /* Loop over using index for creation order value */
DO i = 1, 2
! /* Print appropriate test message */
- IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN
- IF(iorder == H5_ITER_INC_F)THEN
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"deleting links by creation order index in increasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"deleting links by creation order index in increasing order w/o creation order index"
- ENDIF
- ELSE
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"deleting links by creation order index in decreasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"deleting links by creation order index in decreasing order w/o creation order index"
- ENDIF
- ENDIF
- ELSE
- IF(iorder == H5_ITER_INC_F)THEN
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"deleting links by name index in increasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"deleting links by name index in increasing order w/o creation order index"
- ENDIF
- ELSE
- IF(use_index(i))THEN
- WRITE(*,'(5x,A)')"deleting links by name index in decreasing order w/creation order index"
- ELSE
- WRITE(*,'(5x,A)')"deleting links by name index in decreasing order w/o creation order index"
- ENDIF
- ENDIF
- ENDIF
-! CALL h5_fixname_f(filename1, fix_filename1, H5P_DEFAULT_F, error)
-! IF(error .NE. 0) STOP
+!!$ IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN
+!!$ IF(iorder == H5_ITER_INC_F)THEN
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"deleting links by creation order index in increasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"deleting links by creation order index in increasing order w/o creation order index"
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"deleting links by creation order index in decreasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"deleting links by creation order index in decreasing order w/o creation order index"
+!!$ ENDIF
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(iorder == H5_ITER_INC_F)THEN
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"deleting links by name index in increasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"deleting links by name index in increasing order w/o creation order index"
+!!$ ENDIF
+!!$ ELSE
+!!$ IF(use_index(i))THEN
+!!$ WRITE(*,'(5x,A)')"deleting links by name index in decreasing order w/creation order index"
+!!$ ELSE
+!!$ WRITE(*,'(5x,A)')"deleting links by name index in decreasing order w/o creation order index"
+!!$ ENDIF
+!!$ ENDIF
+!!$ ENDIF
! /* Create file */
CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp=fapl)
@@ -1771,158 +1301,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
!!$ PRINT*,objname, tmpname
!!$ CALL verifyString("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname, total_error)
ENDDO
-!!$
-!!$ /* Delete last link */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify state of group (empty) */
-!!$ if(H5G_has_links_test(group_id, NULL) == TRUE) TEST_ERROR
-!!$
-!!$ /* Create more links, to push group into dense form */
-!!$ for(u = 0; u < (max_compact * 2); u++) {
-!!$ hid_t group_id2; /* Group ID */
-!!$
-!!$ /* Make name for link */
-!!$ sprintf(objname, "filler %02u", u);
-!!$
-!!$ /* Create hard link, with group object */
-!!$ if((group_id2 = H5Gcreate2(group_id, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$ if(H5Gclose(group_id2) < 0) TEST_ERROR
-!!$
-!!$ /* Verify state of group (dense) */
-!!$ if(u >= max_compact)
-!!$ if(H5G_is_new_dense_test(group_id) != TRUE) TEST_ERROR
-!!$
-!!$ /* Verify link information for new link */
-!!$ if(link_info_by_idx_check(group_id, objname, (hsize_t)u, TRUE, use_index) < 0) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Check for out of bound deletion again */
-!!$ H5E_BEGIN_TRY {
-!!$ ret = H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)u, H5P_DEFAULT);
-!!$ } H5E_END_TRY;
-!!$ if(ret >= 0) TEST_ERROR
-!!$
-!!$ /* Delete links from dense group, in appropriate order */
-!!$ for(u = 0; u < ((max_compact * 2) - 1); u++) {
-!!$ /* Delete first link in appropriate order */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for first link in appropriate order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", idx_type, order, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC) {
-!!$ if(linfo.corder != (u + 1)) TEST_ERROR
-!!$ } /* end if */
-!!$ else {
-!!$ if(linfo.corder != ((max_compact * 2) - (u + 2))) TEST_ERROR
-!!$ } /* end else */
-!!$
-!!$ /* Verify the name for first link in appropriate order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", idx_type, order, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC)
-!!$ sprintf(objname, "filler %02u", (u + 1));
-!!$ else
-!!$ sprintf(objname, "filler %02u", ((max_compact * 2) - (u + 2)));
-!!$ if(HDstrcmp(objname, tmpname)) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Delete last link */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify state of group (empty) */
-!!$ if(H5G_has_links_test(group_id, NULL) == TRUE) TEST_ERROR
-!!$ if(H5G_is_new_dense_test(group_id) == TRUE) TEST_ERROR
-!!$
-!!$ /* Check for deletion on empty group again */
-!!$ H5E_BEGIN_TRY {
-!!$ ret = H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT);
-!!$ } H5E_END_TRY;
-!!$ if(ret >= 0) TEST_ERROR
-!!$
-!!$
-!!$ /* Delete links in middle */
-!!$
-!!$
-!!$ /* Create more links, to push group into dense form */
-!!$ for(u = 0; u < (max_compact * 2); u++) {
-!!$ hid_t group_id2; /* Group ID */
-!!$
-!!$ /* Make name for link */
-!!$ sprintf(objname, "filler %02u", u);
-!!$
-!!$ /* Create hard link, with group object */
-!!$ if((group_id2 = H5Gcreate2(group_id, objname, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
-!!$ if(H5Gclose(group_id2) < 0) TEST_ERROR
-!!$
-!!$ /* Verify state of group (dense) */
-!!$ if(u >= max_compact)
-!!$ if(H5G_is_new_dense_test(group_id) != TRUE) TEST_ERROR
-!!$
-!!$ /* Verify link information for new link */
-!!$ if(link_info_by_idx_check(group_id, objname, (hsize_t)u, TRUE, use_index) < 0) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Delete every other link from dense group, in appropriate order */
-!!$ for(u = 0; u < max_compact; u++) {
-!!$ /* Delete link */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)u, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for current link in appropriate order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", idx_type, order, (hsize_t)u, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC) {
-!!$ if(linfo.corder != ((u * 2) + 1)) TEST_ERROR
-!!$ } /* end if */
-!!$ else {
-!!$ if(linfo.corder != ((max_compact * 2) - ((u * 2) + 2))) TEST_ERROR
-!!$ } /* end else */
-!!$
-!!$ /* Verify the name for current link in appropriate order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", idx_type, order, (hsize_t)u, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC)
-!!$ sprintf(objname, "filler %02u", ((u * 2) + 1));
-!!$ else
-!!$ sprintf(objname, "filler %02u", ((max_compact * 2) - ((u * 2) + 2)));
-!!$ if(HDstrcmp(objname, tmpname)) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Delete remaining links from dense group, in appropriate order */
-!!$ for(u = 0; u < (max_compact - 1); u++) {
-!!$ /* Delete link */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for first link in appropriate order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", idx_type, order, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC) {
-!!$ if(linfo.corder != ((u * 2) + 3)) TEST_ERROR
-!!$ } /* end if */
-!!$ else {
-!!$ if(linfo.corder != ((max_compact * 2) - ((u * 2) + 4))) TEST_ERROR
-!!$ } /* end else */
-!!$
-!!$ /* Verify the name for first link in appropriate order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", idx_type, order, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(order == H5_ITER_INC)
-!!$ sprintf(objname, "filler %02u", ((u * 2) + 3));
-!!$ else
-!!$ sprintf(objname, "filler %02u", ((max_compact * 2) - ((u * 2) + 4)));
-!!$ if(HDstrcmp(objname, tmpname)) TEST_ERROR
-!!$ } /* end for */
-!!$
-!!$ /* Delete last link */
-!!$ if(H5Ldelete_by_idx(group_id, ".", idx_type, order, (hsize_t)0, H5P_DEFAULT) < 0) TEST_ERROR
-!!$
-!!$ /* Verify state of group (empty) */
-!!$ if(H5G_has_links_test(group_id, NULL) == TRUE) TEST_ERROR
-!!$ if(H5G_is_new_dense_test(group_id) == TRUE) TEST_ERROR
-!!$
-!!$
-!!$
+
! /* Close the group */
CALL H5Gclose_f(group_id, error)
CALL check("delete_by_idx.H5Gclose_f", error, total_error)
@@ -1941,17 +1320,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
ENDDO
ENDDO
ENDDO
-!!$
-!!$ return 0;
-!!$
-!!$error:
-!!$ H5E_BEGIN_TRY {
-!!$ H5Pclose(gcpl_id);
-!!$ H5Gclose(group_id);
-!!$ H5Fclose(file_id);
-!!$ } H5E_END_TRY;
-!!$ return -1;
-!!$} /* end delete_by_idx() */
+
END SUBROUTINE delete_by_idx
@@ -1997,7 +1366,6 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
CHARACTER(LEN=10) :: tmpname_big !/* to big temporary link name */
CHARACTER(LEN=7) :: valname !/* Link value name */
- CHARACTER(LEN=7) :: tmpval !/* Temporary link value */
CHARACTER(LEN=2) :: chr2
INTEGER(SIZE_T) :: size_tmp
INTEGER :: error
@@ -2056,122 +1424,6 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! Try with a buffer set to small
-!!$ size_tmp = INT(4,SIZE_T)
-!!$ CALL H5Lget_name_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), size_tmp, tmpname, error)
-!!$ CALL check("H5Lget_name_by_idx_f", error, total_error)
-!!$ CALL verifyString("H5Lget_name_by_idx_f", linkname, tmpname, total_error)
-
-
-!!$
-!!$ if(H5Lget_name_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, n, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(linkname, tmpname)) TEST_ERROR
-
-!!$ /* Don't test "native" order if there is no creation order index, since
-!!$ * there's not a good way to easily predict the link's order in the name
-!!$ * index.
-!!$ */
-!!$ if(use_index) {
-!!$ /* Verify the link information for first link, in native creation order (which is increasing) */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for new link, in native creation order (which is increasing) */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, n, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != (int64_t)n) TEST_ERROR
-!!$
-!!$ /* Verify value for new soft link, in native creation order (which is increasing) */
-!!$ if(!hard_link) {
-!!$ HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_val_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, n, tmpval, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(valname, tmpval)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for new link, in native creation order (which is increasing) */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_NATIVE, n, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(linkname, tmpname)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Verify the link information for first link, in decreasing creation order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, n, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for new link, in decreasing creation order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != (int64_t)n) TEST_ERROR
-!!$
-!!$ /* Verify value for new soft link, in decreasing creation order */
-!!$ if(!hard_link) {
-!!$ HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_val_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)0, tmpval, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(valname, tmpval)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for new link, in decreasing creation order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", H5_INDEX_CRT_ORDER, H5_ITER_DEC, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(linkname, tmpname)) TEST_ERROR
-!!$
-!!$
-!!$ /* Verify the link information for first link, in increasing link name order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_INC, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for new link, in increasing link name order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_INC, n, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != (int64_t)n) TEST_ERROR
-!!$
-!!$ /* Verify value for new soft link, in increasing link name order */
-!!$ if(!hard_link) {
-!!$ HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_val_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_INC, n, tmpval, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(valname, tmpval)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for new link, in increasing link name order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_INC, n, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(linkname, tmpname)) TEST_ERROR
-!!$
-!!$ /* Don't test "native" order queries on link name order, since there's not
-!!$ * a good way to easily predict the order of the links in the name index.
-!!$ */
-!!$
-!!$ /* Verify the link information for first link, in decreasing link name order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_DEC, n, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != 0) TEST_ERROR
-!!$
-!!$ /* Verify the link information for new link, in decreasing link name order */
-!!$ HDmemset(&linfo, 0, sizeof(linfo));
-!!$ if(H5Lget_info_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_DEC, (hsize_t)0, &linfo, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(linfo.corder != (int64_t)n) TEST_ERROR
-!!$
-!!$ /* Verify value for new soft link, in decreasing link name order */
-!!$ if(!hard_link) {
-!!$ HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_val_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_DEC, (hsize_t)0, tmpval, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(valname, tmpval)) TEST_ERROR
-!!$ } /* end if */
-!!$
-!!$ /* Verify the name for new link, in decreasing link name order */
-!!$ HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
-!!$ if(H5Lget_name_by_idx(group_id, ".", H5_INDEX_NAME, H5_ITER_DEC, (hsize_t)0, tmpname, (size_t)NAME_BUF_SIZE, H5P_DEFAULT) < 0) TEST_ERROR
-!!$ if(HDstrcmp(linkname, tmpname)) TEST_ERROR
-!!$
-!!$ /* Success */
-!!$ return(0);
-!!$
-!!$error:
-!!$ /* Failure */
-!!$ return(-1);
-!!$} /* end link_info_by_idx_check() */
END SUBROUTINE link_info_by_idx_check
@@ -2220,7 +1472,6 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
! H5L_LINK_ERROR _F - Error
INTEGER :: address ! If the link is a hard link, address specifies the file address that the link points to
INTEGER(HSIZE_T) :: val_size ! If the link is a symbolic link, val_size will be the length of the link value
- INTEGER(HSIZE_T) :: data_size ! Indicates the size, in the number of characters, of the attribute
CHARACTER(LEN=1024) :: filename = 'tempfile.h5'
INTEGER, PARAMETER :: TEST6_DIM1 = 8, TEST6_DIM2 = 7
@@ -2235,7 +1486,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
INTEGER :: i
INTEGER :: tmp1, tmp2
- WRITE(*,*) "link creation property lists (w/new group format)"
+! WRITE(*,*) "link creation property lists (w/new group format)"
!/* Actually, intermediate group creation is tested elsewhere (tmisc).
@@ -2576,23 +1827,17 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
INTEGER(HID_T) :: fid = (-1) !/* File ID */
INTEGER(HID_T) :: gid = (-1), gid2 = (-1) !/* Group IDs */
INTEGER(HID_T) :: plist = (-1) ! /* lapl ID */
- INTEGER(HID_T) :: tid = (-1), sid = (-1), did = (-1) ! /* Other IDs */
+ INTEGER(HID_T) :: tid = (-1) ! /* Other IDs */
INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! /* Other property lists */
CHARACTER(LEN=7) :: objname ! /* Object name */
INTEGER(size_t) :: name_len ! /* Length of object name */
CHARACTER(LEN=12) :: filename = 'TestLinks.h5'
INTEGER(size_t) :: nlinks ! /* nlinks for H5Pset_nlinks */
- INTEGER(hsize_t), DIMENSION(2) :: dims
INTEGER(size_t) :: buf_size = 7
- WRITE(*,*) "adjusting nlinks with LAPL (w/new group format)"
+! WRITE(*,*) "adjusting nlinks with LAPL (w/new group format)"
-!!$ /* Make certain test is valid */
-!!$ /* XXX: should probably make a "generic" test that creates the proper
-!!$ * # of links based on this value - QAK
-!!$ */
-!!$ HDassert(H5L_NUM_LINKS == 16);
! /* Create file */
CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl)
diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90
index 53046f1..0aa4abd 100644
--- a/fortran/test/tH5O.f90
+++ b/fortran/test/tH5O.f90
@@ -19,6 +19,7 @@ SUBROUTINE test_h5o(cleanup, total_error)
IMPLICIT NONE
LOGICAL, INTENT(IN) :: cleanup
INTEGER, INTENT(OUT) :: total_error
+ INTEGER :: error
! /* Output message about test being performed */
! WRITE(*,*) "Testing Objects"
@@ -27,9 +28,14 @@ SUBROUTINE test_h5o(cleanup, total_error)
!!$ test_h5o_open_by_addr(); /* Test opening objects by address */
!!$ test_h5o_close(); /* Test generic CLOSE FUNCTION */
!!$ test_h5o_refcount(); /* Test incrementing and decrementing reference count */
-!!$ test_h5o_plist(); /* Test object creation properties */
+ CALL test_h5o_plist(total_error) ! /* Test object creation properties */
CALL test_h5o_link(total_error) ! /* Test object link routine */
+ IF(cleanup) CALL h5_cleanup_f("TestFile", H5P_DEFAULT_F, error)
+ CALL check("h5_cleanup_f", error, total_error)
+ IF(cleanup) CALL h5_cleanup_f("test", H5P_DEFAULT_F, error)
+ CALL check("h5_cleanup_f", error, total_error)
+
END SUBROUTINE test_h5o
!/****************************************************************
@@ -53,7 +59,7 @@ SUBROUTINE test_h5o_link(total_error)
INTEGER(HID_T) :: fapl_id
INTEGER(HID_T) :: lcpl_id
INTEGER(HID_T) :: mem_space_id, file_space_id, xfer_prp
- CHARACTER(LEN=8), PARAMETER :: TEST_FILENAME = 'TestFile'
+ CHARACTER(LEN=11), PARAMETER :: TEST_FILENAME = 'TestFile.h5'
INTEGER, PARAMETER :: TEST6_DIM1 = 2, TEST6_DIM2 = 5
!EP INTEGER(HSIZE_T), DIMENSION(1:2), PARAMETER :: dims = (/TEST6_DIM1,TEST6_DIM2/)
INTEGER(HSIZE_T), DIMENSION(1:2) :: dims = (/TEST6_DIM1,TEST6_DIM2/)
@@ -109,10 +115,10 @@ SUBROUTINE test_h5o_link(total_error)
! /* Create and commit a datatype with no name */
CALL H5Tcopy_f( H5T_NATIVE_INTEGER, type_id, error)
- CALL check("H5Tcopy",error,total_error)
+ CALL check("H5Tcopy_F",error,total_error)
CALL H5Tcommit_anon_f(file_id, type_id, error) ! using no optional parameters
- CALL check("H5Tcommit_anon",error,total_error)
+ CALL check("H5Tcommit_anon_F",error,total_error)
CALL H5Tcommitted_f(type_id, committed, error)
CALL check("H5Tcommitted_f",error,total_error)
@@ -212,3 +218,235 @@ SUBROUTINE test_h5o_link(total_error)
CALL check("h5pclose_f", error, total_error)
END SUBROUTINE test_h5o_link
+
+!/****************************************************************
+!**
+!** test_h5o_plist(): Test object creation properties
+!**
+!****************************************************************/
+
+SUBROUTINE test_h5o_plist(total_error)
+
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+ INTEGER, INTENT(OUT) :: total_error
+
+ INTEGER(hid_t) :: fid !/* HDF5 File ID */
+ INTEGER(hid_t) :: grp, dset, dtype, dspace !/* Object identifiers */
+ INTEGER(hid_t) :: fapl !/* File access property list */
+ INTEGER(hid_t) :: gcpl, dcpl, tcpl !/* Object creation properties */
+ INTEGER :: def_max_compact, def_min_dense !/* Default phase change parameters */
+ INTEGER :: max_compact, min_dense !/* Actual phase change parameters */
+ INTEGER :: error !/* Value returned from API calls */
+ CHARACTER(LEN=7), PARAMETER :: TEST_FILENAME = 'test.h5'
+
+
+! PRINT*,'Testing object creation properties'
+
+ !/* Make a FAPL that uses the "use the latest version of the format" flag */
+ CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
+ CALL check("H5Pcreate_f", error, total_error)
+
+ ! /* Set the "use the latest version of the format" bounds for creating objects in the file */
+ CALL H5Pset_libver_bounds_f(fapl, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error)
+ CALL check("H5Pcreate_f", error, total_error)
+
+ ! /* Create a new HDF5 file */
+ CALL H5Fcreate_f(TEST_FILENAME, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl)
+ CALL check("H5Fcreate_f", error, total_error)
+
+ ! /* Create group, dataset & named datatype creation property lists */
+ CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl, error)
+ CALL check("H5Pcreate_f", error, total_error)
+ CALL H5Pcreate_f(H5P_DATASET_CREATE_F, dcpl, error)
+ CALL check("H5Pcreate_f", error, total_error)
+ CALL H5Pcreate_f(H5P_DATATYPE_CREATE_F, tcpl, error)
+ CALL check("H5Pcreate_f", error, total_error)
+
+ ! /* Retrieve default attribute phase change values */
+ CALL H5Pget_attr_phase_change_f(gcpl, def_max_compact, def_min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+
+ ! /* Set non-default attribute phase change values on each creation property list */
+ CALL H5Pset_attr_phase_change_f(gcpl, def_max_compact+1, def_min_dense-1, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL H5Pset_attr_phase_change_f(dcpl, def_max_compact+1, def_min_dense-1, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL H5Pset_attr_phase_change_f(tcpl, def_max_compact+1, def_min_dense-1, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+
+ ! /* Retrieve attribute phase change values on each creation property list and verify */
+ CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+
+ !/* Create a group, dataset, and committed datatype within the file,
+ ! * using the respective type of creation property lists.
+ ! */
+
+ !/* Create the group anonymously and link it in */
+ CALL H5Gcreate_anon_f(fid, grp, error, gcpl_id=gcpl)
+ CALL check("H5Gcreate_anon_f", error, total_error)
+
+ CALL H5Olink_f(grp, fid, "group", error)
+ CALL check("H5Olink_f", error, total_error)
+
+ ! /* Commit the type inside the group anonymously and link it in */
+ CALL h5tcopy_f(H5T_NATIVE_INTEGER, dtype, error)
+ CALL check("h5tcopy_f", error, total_error)
+
+ CALL H5Tcommit_anon_f(fid, dtype, error, tcpl_id=tcpl)
+ CALL check("H5Tcommit_anon_f",error,total_error)
+
+ CALL H5Olink_f(dtype, fid, "datatype", error)
+ CALL check("H5Olink_f", error, total_error)
+
+ ! /* Create the dataspace for the dataset. */
+ CALL h5screate_f(H5S_SCALAR_F, dspace, error)
+ CALL check("h5screate_f",error,total_error)
+
+ ! /* Create the dataset anonymously and link it in */
+ CALL H5Dcreate_anon_f(fid, H5T_NATIVE_INTEGER, dspace, dset, error, dcpl )
+ CALL check("H5Dcreate_anon_f",error,total_error)
+
+ CALL H5Olink_f(dset, fid, "dataset", error)
+ CALL check("H5Olink_f", error, total_error)
+
+ CALL h5sclose_f(dspace, error)
+ CALL check("h5sclose_f",error,total_error)
+
+
+ ! /* Close current creation property lists */
+ CALL h5pclose_f(gcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(dcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(tcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+
+ ! /* Retrieve each object's creation property list */
+
+ CALL H5Gget_create_plist_f(grp, gcpl, error)
+ CALL check("H5Gget_create_plist", error, total_error)
+
+ CALL H5Tget_create_plist_f(dtype, tcpl, error)
+ CALL check("H5Tget_create_plist_f", error, total_error)
+
+ CALL H5Dget_create_plist_f(dset, dcpl, error)
+ CALL check("H5Dget_create_plist_f", error, total_error)
+
+
+ ! /* Retrieve attribute phase change values on each creation property list and verify */
+ CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+
+ !/* Close current objects */
+
+ CALL h5pclose_f(gcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(dcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(tcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+
+ CALL h5gclose_f(grp, error)
+ CALL check("h5gclose_f",error,total_error)
+
+ CALL h5tclose_f(dtype, error)
+ CALL check("h5tclose_f",error,total_error)
+ CALL h5dclose_f(dset, error)
+ CALL check("h5dclose_f",error,total_error)
+ CALL h5fclose_f(fid, error)
+ CALL check("h5fclose_f",error,total_error)
+ ! /* Re-open the file and check that the object creation properties persist */
+ CALL h5fopen_f(TEST_FILENAME, H5F_ACC_RDONLY_F, fid, error, access_prp=fapl)
+ CALL check("H5fopen_f",error,total_error)
+
+ ! /* Re-open objects */
+ CALL H5Gopen_f(fid, "group", grp, error)
+ CALL check("h5gopen_f", error, total_error)
+
+ CALL H5Topen_f(fid, "datatype", dtype,error)
+ CALL check("h5topen_f", error, total_error)
+
+ CALL H5Dopen_f(fid, "dataset", dset, error)
+ CALL check("h5dopen_f", error, total_error)
+
+ ! /* Retrieve each object's creation property list */
+ CALL H5Gget_create_plist_f(grp, gcpl, error)
+ CALL check("H5Gget_create_plist", error, total_error)
+
+ CALL H5Tget_create_plist_f(dtype, tcpl, error)
+ CALL check("H5Tget_create_plist_f", error, total_error)
+
+ CALL H5Dget_create_plist_f(dset, dcpl, error)
+ CALL check("H5Dget_create_plist_f", error, total_error)
+
+
+ ! /* Retrieve attribute phase change values on each creation property list and verify */
+ CALL H5Pget_attr_phase_change_f(gcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+ CALL H5Pget_attr_phase_change_f(tcpl, max_compact, min_dense, error)
+ CALL check("H5Pget_attr_phase_change_f", error, total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", max_compact, (def_max_compact + 1), total_error)
+ CALL VERIFY("H5Pget_attr_phase_change_f", min_dense, (def_min_dense - 1), total_error)
+
+
+ ! /* Close current objects */
+
+ CALL h5pclose_f(gcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(dcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+ CALL h5pclose_f(tcpl,error)
+ CALL check("h5pclose_f", error, total_error)
+
+ CALL h5gclose_f(grp, error)
+ CALL check("h5gclose_f",error,total_error)
+
+ CALL h5tclose_f(dtype, error)
+ CALL check("h5tclose_f",error,total_error)
+ CALL h5dclose_f(dset, error)
+ CALL check("h5dclose_f",error,total_error)
+ CALL h5fclose_f(fid, error)
+ CALL check("h5fclose_f",error,total_error)
+
+ ! /* Close the FAPL */
+ CALL H5Pclose_f(fapl, error)
+ CALL check("H5Pclose_f", error, total_error)
+
+END SUBROUTINE test_h5o_plist
diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90
index 2a3bfd4..19364df 100644
--- a/fortran/test/tH5Sselect.f90
+++ b/fortran/test/tH5Sselect.f90
@@ -794,6 +794,8 @@
INTEGER :: error
INTEGER(HSIZE_T), DIMENSION(3) :: data_dims
+ INTEGER :: i
+
!
!initialize the coord array to give the selected points' position
!
@@ -916,7 +918,7 @@
CALL h5sget_select_hyper_blocklist_f(dataspace, startblock, &
num_blocks, blocklist, error)
CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
- !write(*,*) (blocklist(i), i =1, num_blocks*RANK*2)
+! write(*,*) (blocklist(i), i =1, num_blocks*RANK*2)
!result of blocklist selected is:
!1, 1, 2, 2, 4, 1, 5, 2, 1, 4, 2, 5, 4, 4, 5, 5
!
@@ -1009,4 +1011,963 @@
RETURN
END SUBROUTINE test_basic_select
+!/****************************************************************
+!**
+!** test_select_point(): Test basic H5S (dataspace) selection code.
+!** Tests element selections between dataspaces of various sizes
+!** and dimensionalities.
+!**
+!****************************************************************/
+
+SUBROUTINE test_select_point(cleanup, total_error)
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(OUT) :: total_error
+ INTEGER(HID_T) :: xfer_plist
+
+ INTEGER, PARAMETER :: SPACE1_DIM1=3
+ INTEGER, PARAMETER :: SPACE1_DIM2=15
+ INTEGER, PARAMETER :: SPACE1_DIM3=13
+ INTEGER, PARAMETER :: SPACE2_DIM1=30
+ INTEGER, PARAMETER :: SPACE2_DIM2=26
+ INTEGER, PARAMETER :: SPACE3_DIM1=15
+ INTEGER, PARAMETER :: SPACE3_DIM2=26
+
+ INTEGER, PARAMETER :: SPACE1_RANK=3
+ INTEGER, PARAMETER :: SPACE2_RANK=2
+ INTEGER, PARAMETER :: SPACE3_RANK=2
+
+ ! /* Element selection information */
+ INTEGER, PARAMETER :: POINT1_NPOINTS=10
+ INTEGER(hid_t) ::fid1 ! /* HDF5 File IDs */
+ INTEGER(hid_t) ::dataset ! /* Dataset ID */
+ INTEGER(hid_t) ::sid1,sid2 ! /* Dataspace ID */
+ INTEGER(hsize_t), DIMENSION(1:3) :: dims1 = (/SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3/)
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims2 = (/SPACE2_DIM1, SPACE2_DIM2/)
+ INTEGER(hsize_t), DIMENSION(1:2) :: dims3 = (/SPACE3_DIM1, SPACE3_DIM2/)
+
+ INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 !/* Coordinates for point selection */
+ INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 !/* Coordinates for point selection */
+ INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 !/* Coordinates for point selection */
+ INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 !/* Coordinates for point selection */
+ INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 !/* Coordinates for point selection */
+ INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 !/* Coordinates for point selection */
+ INTEGER(hssize_t) :: npoints
+
+!!$ uint8_t *wbuf, /* buffer to write to disk */
+!!$ *rbuf, /* buffer read from disk */
+!!$ *tbuf; /* temporary buffer pointer */
+ INTEGER :: i,j; !/* Counters */
+! struct pnt_iter pi; /* Custom Pointer iterator struct */
+ INTEGER :: error !/* Generic return value */
+ CHARACTER(LEN=12) :: filename = 'h5s_hyper.h5'
+ CHARACTER(LEN=1), DIMENSION(1:SPACE2_DIM1,1:SPACE2_DIM2) :: wbuf, rbuf
+
+ xfer_plist = H5P_DEFAULT_F
+! MESSAGE(5, ("Testing Element Selection Functions\n"));
+
+ !/* Allocate write & read buffers */
+!!$ wbuf = HDmalloc(sizeof(uint8_t) * SPACE2_DIM1 * SPACE2_DIM2);
+!!$ rbuf = HDcalloc(sizeof(uint8_t), (size_t)(SPACE3_DIM1 * SPACE3_DIM2));
+!!$
+ !/* Initialize WRITE buffer */
+
+ DO i = 1, SPACE2_DIM1
+ DO j = 1, SPACE2_DIM2
+ wbuf(i,j) = 'a'
+ ENDDO
+ ENDDO
+
+!!$ for(i=0, tbuf=wbuf; i<SPACE2_DIM1; i++)
+!!$ for(j=0; j<SPACE2_DIM2; j++)
+!!$ *tbuf++=(uint8_t)((i*SPACE2_DIM2)+j);
+
+ !/* Create file */
+ CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, fid1, error)
+ CALL check("h5fcreate_f", error, total_error)
+
+ !/* Create dataspace for dataset */
+ CALL h5screate_simple_f(SPACE1_RANK, dims1, sid1, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ !/* Create dataspace for write buffer */
+ CALL h5screate_simple_f(SPACE2_RANK, dims2, sid2, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ !/* Select sequence of ten points for disk dataset */
+ coord1(1,1)=1; coord1(2,1)=11; coord1(3,1)= 6;
+ coord1(1,2)=2; coord1(2,2)= 3; coord1(3,2)= 8;
+ coord1(1,3)=3; coord1(2,3)= 5; coord1(3,3)=10;
+ coord1(1,4)=1; coord1(2,4)= 7; coord1(3,4)=12;
+ coord1(1,5)=2; coord1(2,5)= 9; coord1(3,5)=14;
+ coord1(1,6)=3; coord1(2,6)=13; coord1(3,6)= 1;
+ coord1(1,7)=1; coord1(2,7)=15; coord1(3,7)= 3;
+ coord1(1,8)=2; coord1(2,8)= 1; coord1(3,8)= 5;
+ coord1(1,9)=3; coord1(2,9)= 2; coord1(3,9)= 7;
+ coord1(1,10)=1; coord1(2,10)= 4; coord1(3,10)= 9
+
+
+ CALL h5sselect_elements_f(sid1, H5S_SELECT_SET_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+
+ !/* Verify correct elements selected */
+
+ CALL h5sget_select_elem_pointlist_f(sid1, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error)
+ ENDDO
+
+ CALL H5Sget_select_npoints_f(sid1, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
+
+ !/* Append another sequence of ten points to disk dataset */
+
+ coord1(1,1)=1; coord1(2,1)=3; coord1(3,1)= 1;
+ coord1(1,2)=2; coord1(2,2)=11; coord1(3,2)= 9;
+ coord1(1,3)=3; coord1(2,3)= 9; coord1(3,3)=11;
+ coord1(1,4)=1; coord1(2,4)= 8; coord1(3,4)=13;
+ coord1(1,5)=2; coord1(2,5)= 4; coord1(3,5)=12;
+ coord1(1,6)=3; coord1(2,6)= 2; coord1(3,6)= 2;
+ coord1(1,7)=1; coord1(2,7)=14; coord1(3,7)= 8;
+ coord1(1,8)=2; coord1(2,8)=15; coord1(3,8)= 7;
+ coord1(1,9)=3; coord1(2,9)= 3; coord1(3,9)= 6;
+ coord1(1,10)=1; coord1(2,10)= 7; coord1(3,10)= 14
+
+
+ CALL h5sselect_elements_f(sid1, H5S_SELECT_APPEND_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+ ! /* Verify correct elements selected */
+
+ CALL h5sget_select_elem_pointlist_f(sid1, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(1,i)), INT(coord1(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(2,i)), INT(coord1(2,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord1(3,i)), INT(coord1(3,i)), total_error)
+ ENDDO
+
+ CALL H5Sget_select_npoints_f(sid1, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
+
+ ! /* Select sequence of ten points for memory dataset */
+ coord2(1,1)=13; coord2(2,1)= 4;
+ coord2(1,2)=16; coord2(2,2)=14;
+ coord2(1,3)= 8; coord2(2,3)=26;
+ coord2(1,4)= 1; coord2(2,4)= 7;
+ coord2(1,5)=14; coord2(2,5)= 1;
+ coord2(1,6)=25; coord2(2,6)=12;
+ coord2(1,7)=13; coord2(2,7)=22;
+ coord2(1,8)=30; coord2(2,8)= 5;
+ coord2(1,9)= 9; coord2(2,9)= 9;
+ coord2(1,10)=20; coord2(2,10)=18
+
+ CALL h5sselect_elements_f(sid2, H5S_SELECT_SET_F, SPACE2_RANK, INT(POINT1_NPOINTS,size_t), coord2, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+
+
+ !/* Verify correct elements selected */
+
+ CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error)
+ ENDDO
+
+!!$
+!!$ /* Save points for later iteration */
+!!$ /* (these are in the second half of the buffer, because we are prepending */
+!!$ /* the next list of points to the beginning of the point selection list) */
+!!$ HDmemcpy(((char *)pi.coord)+sizeof(coord2),coord2,sizeof(coord2));
+!!$
+
+ CALL H5Sget_select_npoints_f(sid2, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
+
+ !/* Append another sequence of ten points to memory dataset */
+ coord2(1,1)=25; coord2(2,1)= 1;
+ coord2(1,2)= 3; coord2(2,2)=26;
+ coord2(1,3)=14; coord2(2,3)=18;
+ coord2(1,4)= 9; coord2(2,4)= 4;
+ coord2(1,5)=30; coord2(2,5)= 5;
+ coord2(1,6)=12; coord2(2,6)=15;
+ coord2(1,7)= 6; coord2(2,7)=23;
+ coord2(1,8)=13; coord2(2,8)= 3;
+ coord2(1,9)=22; coord2(2,9)=13;
+ coord2(1,10)= 10; coord2(2,10)=19
+
+ CALL h5sselect_elements_f(sid2, H5S_SELECT_PREPEND_F, SPACE2_RANK, INT(POINT1_NPOINTS,size_t), coord2, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+
+
+ !/* Verify correct elements selected */
+ CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(1,i)), INT(coord2(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord2(2,i)), INT(coord2(2,i)), total_error)
+ ENDDO
+
+ CALL H5Sget_select_npoints_f(sid2, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
+
+!!$ /* Save points for later iteration */
+!!$ HDmemcpy(pi.coord,coord2,sizeof(coord2));
+
+ ! /* Create a dataset */
+ CALL h5dcreate_f(fid1, "Dataset1", H5T_NATIVE_CHARACTER, sid1, dataset, error)
+ CALL check("h5dcreate_f", error, total_error)
+
+ ! /* Write selection to disk */
+ CALL h5dwrite_f(dataset, H5T_NATIVE_CHARACTER, wbuf, dims2, error, sid2, sid1, xfer_plist)
+ CALL check("h5dwrite_f", error, total_error)
+
+ ! /* Close memory dataspace */
+ CALL h5sclose_f(sid2, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Create dataspace for reading buffer */
+ CALL h5screate_simple_f(SPACE3_RANK, dims3, sid2, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ ! /* Select sequence of points for read dataset */
+ coord3(1,1)= 1; coord3(2,1)= 3;
+ coord3(1,2)= 5; coord3(2,2)= 9;
+ coord3(1,3)=14; coord3(2,3)=14;
+ coord3(1,4)=15; coord3(2,4)=21;
+ coord3(1,5)= 8; coord3(2,5)=10;
+ coord3(1,6)= 3; coord3(2,6)= 1;
+ coord3(1,7)= 10; coord3(2,7)=20;
+ coord3(1,8)= 2; coord3(2,8)=23;
+ coord3(1,9)=13; coord3(2,9)=22;
+ coord3(1,10)=12; coord3(2,10)=7;
+
+ CALL h5sselect_elements_f(sid2, H5S_SELECT_SET_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+
+ ! /* Verify correct elements selected */
+ CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error)
+ ENDDO
+
+ CALL H5Sget_select_npoints_f(sid2, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
+
+ !/* Append another sequence of ten points to disk dataset */
+ coord3(1,1)=15; coord3(2,1)=26;
+ coord3(1,2)= 1; coord3(2,2)= 1;
+ coord3(1,3)=12; coord3(2,3)=12;
+ coord3(1,4)= 6; coord3(2,4)=15;
+ coord3(1,5)= 4; coord3(2,5)= 6;
+ coord3(1,6)= 3; coord3(2,6)= 3;
+ coord3(1,7)= 8; coord3(2,7)=14;
+ coord3(1,8)=10; coord3(2,8)=17;
+ coord3(1,9)=13; coord3(2,9)=23;
+ coord3(1,10)=14; coord3(2,10)=10
+
+ CALL h5sselect_elements_f(sid2, H5S_SELECT_APPEND_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+ ! /* Verify correct elements selected */
+ CALL h5sget_select_elem_pointlist_f(sid2, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error)
+ CALL check("h5sget_select_elem_pointlist_f", error, total_error)
+ DO i= 1, POINT1_NPOINTS
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(1,i)), INT(coord3(1,i)), total_error)
+ CALL VERIFY("h5sget_select_elem_pointlist_f", INT(temp_coord3(2,i)), INT(coord3(2,i)), total_error)
+ ENDDO
+
+ CALL H5Sget_select_npoints_f(sid2, npoints, error)
+ CALL check("h5sget_select_npoints_f", error, total_error)
+ CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
+
+! F2003 feature
+!!$ /* Read selection from disk */
+!!$ ret=H5Dread(dataset,H5T_NATIVE_UCHAR,sid2,sid1,xfer_plist,rbuf);
+!!$ CHECK(ret, FAIL, "H5Dread");
+!!$
+!!$ /* Check that the values match with a dataset iterator */
+!!$ pi.buf=wbuf;
+!!$ pi.offset=0;
+!!$ ret = H5Diterate(rbuf,H5T_NATIVE_UCHAR,sid2,test_select_point_iter1,&pi);
+!!$ CHECK(ret, FAIL, "H5Diterate");
+!!$
+! F2003 feature
+
+ !/* Close memory dataspace */
+ CALL h5sclose_f(sid2, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ !/* Close disk dataspace */
+ CALL h5sclose_f(sid1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ !/* Close Dataset */
+ CALL h5dclose_f(dataset, error)
+ CALL check("h5dclose_f", error, total_error)
+
+ !/* Close file */
+ CALL h5fclose_f(fid1, error)
+ CALL check("h5fclose_f", error, total_error)
+
+END SUBROUTINE test_select_point
+
+
+!/****************************************************************
+!**
+!** test_select_combine(): Test basic H5S (dataspace) selection code.
+!** Tests combining "all" and "none" selections with hyperslab
+!** operations.
+!**
+!****************************************************************/
+
+SUBROUTINE test_select_combine(cleanup, total_error)
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(OUT) :: total_error
+
+ INTEGER, PARAMETER :: SPACE7_RANK = 2
+ INTEGER, PARAMETER :: SPACE7_DIM1 = 10
+ INTEGER, PARAMETER :: SPACE7_DIM2 = 10
+
+ INTEGER(hid_t) :: base_id ! /* Base dataspace for test */
+ INTEGER(hid_t) :: all_id ! /* Dataspace for "all" selection */
+ INTEGER(hid_t) :: none_id ! /* Dataspace for "none" selection */
+ INTEGER(hid_t) :: space1 ! /* Temporary dataspace #1 */
+ INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: start ! /* Hyperslab start */
+ INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: stride ! /* Hyperslab stride */
+ INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: icount ! /* Hyperslab count */
+ INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: iblock ! /* Hyperslab BLOCK */
+ INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: dims = (/SPACE7_DIM1,SPACE7_DIM2/) !/* Dimensions of dataspace */
+ INTEGER :: sel_type ! /* Selection type */
+ INTEGER(hssize_t) :: nblocks !/* Number of hyperslab blocks */
+ INTEGER(hsize_t), DIMENSION(1:128,1:2,1:SPACE7_RANK) :: blocks ! /* List of blocks */
+ INTEGER :: error, area
+
+ !/* Create dataspace for dataset on disk */
+ CALL h5screate_simple_f(SPACE7_RANK, dims, base_id, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ ! /* Copy base dataspace and set selection to "all" */
+ CALL h5scopy_f(base_id, all_id, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ CALL H5Sselect_all_f(all_id, error)
+ CALL check("H5Sselect_all_f", error, total_error)
+
+ CALL H5Sget_select_type_f(all_id, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error)
+
+ !/* Copy base dataspace and set selection to "none" */
+ CALL h5scopy_f(base_id, none_id, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ CALL H5Sselect_none_f(none_id, error)
+ CALL check("H5Sselect_none_f", error, total_error)
+
+ CALL H5Sget_select_type_f(none_id, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_NONE_F), total_error)
+
+ !/* Copy "all" selection & space */
+ CALL H5Scopy_f(all_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ !/* 'OR' "all" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/)
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_OR_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ !/* Verify that it's still "all" selection */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error)
+
+ !/* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ !/* Copy "all" selection & space */
+ CALL H5Scopy_f(all_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'AND' "all" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/)
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_AND_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ !/* Verify that the new selection is the same at the original block */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+ !/* Verify that there is only one block */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
+
+ !/* Retrieve the block defined */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+
+ !/* Verify that the correct block is defined */
+
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
+
+ !/* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ !/* Copy "all" selection & space */
+ CALL H5Scopy_f(all_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'XOR' "all" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/)
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_XOR_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is an inversion of the original block */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+ ! /* Verify that there are two blocks */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error)
+
+ ! /* Retrieve the block defined */
+
+ blocks = -1 ! /* Reset block list */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+
+ ! /* Verify that the correct block is defined */
+
+ ! No guarantee is implied as the order in which blocks are listed.
+ ! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 5, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 10, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)), 10, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)), 10, total_error)
+
+ ! Otherwise make sure the "area" of the block is correct
+ area = (ABS(INT(blocks(1,1,1)-blocks(3,1,1)))+1)*(ABS(INT(blocks(2,1,1)-blocks(4,1,1)))+1)
+ area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error)
+
+ !/* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "all" selection & space */
+ CALL H5Scopy_f(all_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'NOTB' "all" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTB_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is an inversion of the original block */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+ ! /* Verify that there are two blocks */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error)
+
+ ! /* Retrieve the block defined */
+ blocks = -1 ! /* Reset block list */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+
+ ! /* Verify that the correct block is defined */
+
+ ! No guarantee is implied as the order in which blocks are listed.
+ ! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
+
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 5, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)),10, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(5,1,1)), 6, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(6,1,1)), 1, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(7,1,1)),10, total_error)
+!!$ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(8,1,1)),10, total_error)
+
+ ! Otherwise make sure the "area" of the block is correct
+ area = (ABS(INT(blocks(1,1,1)-blocks(3,1,1)))+1)*(ABS(INT(blocks(2,1,1)-blocks(4,1,1)))+1)
+ area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error)
+
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+ ! /* Copy "all" selection & space */
+ CALL H5Scopy_f(all_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'NOTA' "all" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTA_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ !/* Verify that the new selection is the "none" selection */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "none" selection & space */
+ CALL H5Scopy_f(none_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'OR' "none" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_OR_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is the same as the original hyperslab */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+
+ ! /* Verify that there is only one block */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
+
+ ! /* Retrieve the block defined */
+ blocks = -1 ! /* Reset block list */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+
+ ! /* Verify that the correct block is defined */
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "none" selection & space */
+ CALL H5Scopy_f(none_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'AND' "none" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_AND_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is the "none" selection */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "none" selection & space */
+ CALL H5Scopy_f(none_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'XOR' "none" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_XOR_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is the same as the original hyperslab */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+
+ ! /* Verify that there is only one block */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
+
+ ! /* Retrieve the block defined */
+ blocks = -1 ! /* Reset block list */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+ ! /* Verify that the correct block is defined */
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "none" selection & space */
+ CALL H5Scopy_f(none_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'NOTB' "none" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTB_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is the "none" selection */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Copy "none" selection & space */
+ CALL H5Scopy_f(none_id, space1, error)
+ CALL check("h5scopy_f", error, total_error)
+
+ ! /* 'NOTA' "none" selection with another hyperslab */
+ start(1:2) = 0
+ stride(1:2) = 1
+ icount(1:2) = 1
+ iblock(1:2) = (/5,4/) !5
+ CALL h5sselect_hyperslab_f(space1, H5S_SELECT_NOTA_F, start, &
+ icount, error, stride, iblock)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ ! /* Verify that the new selection is the same as the original hyperslab */
+ CALL H5Sget_select_type_f(space1, sel_type, error)
+ CALL check("H5Sget_select_type_f", error, total_error)
+ CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
+
+ ! /* Verify that there is ONLY one BLOCK */
+ CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
+ CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
+ CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
+
+ ! /* Retrieve the block defined */
+
+ blocks = -1 ! /* Reset block list */
+ CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
+ CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
+
+
+ ! /* Verify that the correct block is defined */
+
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
+ CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
+
+ ! /* Close temporary dataspace */
+ CALL h5sclose_f(space1, error)
+ CALL check("h5sclose_f", error, total_error)
+
+ ! /* Close dataspaces */
+
+ CALL h5sclose_f(base_id, error)
+ CALL check("h5sclose_f", error, total_error)
+ CALL h5sclose_f(all_id, error)
+ CALL check("h5sclose_f", error, total_error)
+ CALL h5sclose_f(none_id, error)
+ CALL check("h5sclose_f", error, total_error)
+
+END SUBROUTINE test_select_combine
+
+!/****************************************************************
+!**
+!** test_select_bounds(): Tests selection bounds on dataspaces,
+!** both with and without offsets.
+!**
+!****************************************************************/
+
+SUBROUTINE test_select_bounds(cleanup, total_error)
+ USE HDF5 ! This module contains all necessary modules
+
+ IMPLICIT NONE
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(OUT) :: total_error
+
+ INTEGER, PARAMETER :: SPACE11_RANK=2
+ INTEGER, PARAMETER :: SPACE11_DIM1=100
+ INTEGER, PARAMETER :: SPACE11_DIM2=50
+ INTEGER, PARAMETER :: SPACE11_NPOINTS=4
+
+ INTEGER(hid_t) :: sid ! /* Dataspace ID */
+ INTEGER(hsize_t), DIMENSION(1:SPACE11_RANK) :: dims = (/SPACE11_DIM1, SPACE11_DIM2/) !Dataspace dimensions
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord !/* Coordinates for point selection
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: start ! /* The start of the hyperslab */
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: stride !/* The stride between block starts for the hyperslab */
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: count !/* The number of blocks for the hyperslab */
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: BLOCK !/* The size of each block for the hyperslab */
+ INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset !/* Offset amount for selection */
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds !/* The low bounds for the selection */
+ INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds !/* The high bounds for the selection */
+
+ INTEGER :: error
+
+ !/* Create dataspace */
+ CALL h5screate_simple_f(SPACE11_RANK, dims, sid, error)
+ CALL check("h5screate_simple_f", error, total_error)
+
+ ! /* Get bounds for 'all' selection */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error)
+
+ !/* Set offset for selection */
+ offset(1:2) = 1
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ !/* Get bounds for 'all' selection with offset (which should be ignored) */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL verify("h5sget_select_bounds_f", INT(low_bounds(1)), 1, total_error)
+ CALL verify("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error)
+ CALL verify("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error)
+ CALL verify("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error)
+
+ !/* Reset offset for selection */
+ offset(1:2) = 0
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ !/* Set 'none' selection */
+ CALL H5Sselect_none_f(sid, error)
+ CALL check("H5Sselect_none_f", error, total_error)
+
+ !/* Get bounds for 'none' selection, should fail */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
+
+ !/* Set point selection */
+
+ coord(1,1)= 3; coord(2,1)= 3;
+ coord(1,2)= 3; coord(2,2)= 46;
+ coord(1,3)= 96; coord(2,3)= 3;
+ coord(1,4)= 96; coord(2,4)= 46;
+
+ CALL h5sselect_elements_f(sid, H5S_SELECT_SET_F, SPACE11_RANK, INT(SPACE11_NPOINTS,size_t), coord, error)
+ CALL check("h5sselect_elements_f", error, total_error)
+
+ !/* Get bounds for point selection */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1-4, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2-4, total_error)
+
+ ! /* Set bad offset for selection */
+
+ offset(1:2) = (/5,-5/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Get bounds for hyperslab selection with negative offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
+
+ ! /* Set valid offset for selection */
+ offset(1:2) = (/2,-2/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Get bounds for point selection with offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 5, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1-2, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2-6, total_error)
+
+ ! /* Reset offset for selection */
+ offset(1:2) = 0
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Set "regular" hyperslab selection */
+ start(1:2) = 2
+ stride(1:2) = 10
+ count(1:2) = 4
+ block(1:2) = 5
+
+ CALL h5sselect_hyperslab_f(sid, H5S_SELECT_SET_F, start, &
+ count, error, stride, block)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ !/* Get bounds for hyperslab selection */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 37, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 37, total_error)
+
+ !/* Set bad offset for selection */
+ offset(1:2) = (/5,-5/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Get bounds for hyperslab selection with negative offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
+
+ ! /* Set valid offset for selection */
+ offset(1:2) = (/5,-2/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ !/* Get bounds for hyperslab selection with offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 8, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 42, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 35, total_error)
+
+ !/* Reset offset for selection */
+ offset(1:2) = 0
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Make "irregular" hyperslab selection */
+ start(1:2) = 20
+ stride(1:2) = 20
+ count(1:2) = 2
+ block(1:2) = 10
+
+ CALL h5sselect_hyperslab_f(sid, H5S_SELECT_OR_F, start, &
+ count, error, stride, block)
+ CALL check("h5sselect_hyperslab_f", error, total_error)
+
+ !/* Get bounds for hyperslab selection */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 3, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 50, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 50, total_error)
+
+ ! /* Set bad offset for selection */
+ offset(1:2) = (/5,-5/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ ! /* Get bounds for hyperslab selection with negative offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
+
+ !/* Set valid offset for selection */
+ offset(1:2) = (/5,-2/)
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ !/* Get bounds for hyperslab selection with offset */
+ CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
+ CALL check("h5sget_select_bounds_f", error, total_error)
+
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(1)), 8, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(low_bounds(2)), 1, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 55, total_error)
+ CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 48, total_error)
+
+ !/* Reset offset for selection */
+ offset(1:2) = 0
+ CALL H5Soffset_simple_f(sid, offset, error)
+ CALL check("H5Soffset_simple_f", error, total_error)
+
+ !/* Close the dataspace */
+ CALL h5sclose_f(sid, error)
+ CALL check("h5sclose_f", error, total_error)
+
+END SUBROUTINE test_select_bounds
diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90
index 0648cac..0c86b6c 100644
--- a/fortran/test/tH5T.f90
+++ b/fortran/test/tH5T.f90
@@ -814,13 +814,16 @@
INTEGER(HID_T) :: file_id
INTEGER(HID_T) :: dset_id
INTEGER(HID_T) :: dspace_id
- INTEGER(HID_T) :: dtype_id
+ INTEGER(HID_T) :: dtype_id, dtype, native_type
INTEGER :: error
INTEGER :: value
INTEGER(HSIZE_T), DIMENSION(1) :: dsize
INTEGER(SIZE_T) :: buf_size
INTEGER, DIMENSION(2) :: data
INTEGER(HSIZE_T), DIMENSION(7) :: dims
+ INTEGER :: order1, order2
+ INTEGER(SIZE_T) :: type_size1, type_size2
+ INTEGER :: class
dims(1) = 2
dsize(1) = 2
@@ -829,55 +832,82 @@
!
! Create a new file using default properties.
!
- CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error)
- if (error .ne. 0) then
- write(*,*) "Cannot modify filename"
- stop
- endif
+ CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error)
+ IF (error .NE. 0) THEN
+ WRITE(*,*) "Cannot modify filename"
+ STOP
+ ENDIF
CALL h5fcreate_f(fix_filename,H5F_ACC_TRUNC_F,file_id,error)
- CALL check("h5fcreate_f", error, total_error)
+ CALL check("h5fcreate_f", error, total_error)
!
! Create enumeration datatype with tow values
!
CALL h5tenum_create_f(H5T_NATIVE_INTEGER,dtype_id,error)
- CALL check("h5tenum_create_f", error, total_error)
- CALL h5tenum_insert_f(dtype_id,true,data(1),error)
- CALL check("h5tenum_insert_f", error, total_error)
- CALL h5tenum_insert_f(dtype_id,false,data(2),error)
- CALL check("h5tenum_insert_f", error, total_error)
+ CALL check("h5tenum_create_f", error, total_error)
+ CALL h5tenum_insert_f(dtype_id,true,DATA(1),error)
+ CALL check("h5tenum_insert_f", error, total_error)
+ CALL h5tenum_insert_f(dtype_id,false,DATA(2),error)
+ CALL check("h5tenum_insert_f", error, total_error)
!
! Create write and close a dataset with enum datatype
!
CALL h5screate_simple_f(1,dsize,dspace_id,error)
- CALL check("h5screate_simple_f", error, total_error)
+ CALL check("h5screate_simple_f", error, total_error)
CALL h5dcreate_f(file_id,dsetname,dtype_id,dspace_id,dset_id,error)
- CALL check("h5dcreate_f", error, total_error)
- CALL h5dwrite_f(dset_id,dtype_id,data,dims,error)
- CALL check("h5dwrite_f", error, total_error)
+ CALL check("h5dcreate_f", error, total_error)
+ CALL h5dwrite_f(dset_id,dtype_id,DATA,dims,error)
+ CALL check("h5dwrite_f", error, total_error)
+
+ CALL H5Dget_type_f(dset_id, dtype, error)
+ CALL check("H5Dget_type_f", error, total_error)
+
+ CALL H5Tget_native_type_f(dtype, H5T_DIR_ASCEND_F, native_type, error)
+ CALL check("H5Tget_native_type_f",error, total_error)
+
+ !/* Verify the datatype retrieved and converted */
+ CALL H5Tget_order_f(native_type, order1, error)
+ CALL check("H5Tget_order_f",error, total_error)
+ CALL H5Tget_order_f(H5T_NATIVE_INTEGER, order2, error)
+ CALL check("H5Tget_order_f",error, total_error)
+ CALL VERIFY("H5Tget_native_type_f",order1, order2, total_error)
+
+ ! this test depends on whether -i8 was specified needs to account for that FIX -scot-
+
+!!$ CALL H5Tget_size_f(native_type, type_size1, error)
+!!$ CALL check("H5Tget_size_f",error, total_error)
+!!$ CALL H5Tget_size_f(H5T_STD_I32BE, type_size2, error)
+!!$ CALL check("H5Tget_size_f",error, total_error)
+!!$ CALL VERIFY("H5Tget_native_type_f", INT(type_size1), INT(type_size2), total_error)
+
+ CALL H5Tget_class_f(native_type, class, error)
+ CALL check("H5Tget_class_f",error, total_error)
+ CALL VERIFY("H5Tget_native_type_f", INT(class), INT(H5T_ENUM_F), total_error)
+
CALL h5dclose_f(dset_id,error)
- CALL check("h5dclose_f", error, total_error)
+ CALL check("h5dclose_f", error, total_error)
CALL h5sclose_f(dspace_id,error)
- CALL check("h5sclose_f", error, total_error)
+ CALL check("h5sclose_f", error, total_error)
!
! Get value of "TRUE"
!
CALL h5tenum_valueof_f(dtype_id, "TRUE", value, error)
- CALL check("h5tenum_valueof_f", error, total_error)
- if (value .ne. 1) then
- write(*,*) " Value of TRUE is not 1, error"
- total_error = total_error + 1
- endif
+ CALL check("h5tenum_valueof_f", error, total_error)
+ IF (value .NE. 1) THEN
+ WRITE(*,*) " Value of TRUE is not 1, error"
+ total_error = total_error + 1
+ ENDIF
!
! Get name of 0
!
value = 0
buf_size = 5
CALL h5tenum_nameof_f(dtype_id, value, buf_size, mem_name, error)
- CALL check("h5tenum_nameof_f", error, total_error)
- if (mem_name .ne. "FALSE") then
- write(*,*) " Wrong name for 0 value"
- total_error = total_error + 1
- endif
+ CALL check("h5tenum_nameof_f", error, total_error)
+ IF (mem_name .NE. "FALSE") THEN
+ WRITE(*,*) " Wrong name for 0 value"
+ total_error = total_error + 1
+ ENDIF
+
CALL h5tclose_f(dtype_id,error)
CALL check("h5tclose_f", error, total_error)
CALL h5fclose_f(file_id,error)
@@ -1085,4 +1115,3 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
CALL check("h5fclose_f", error, total_error)
END SUBROUTINE test_derived_flt
-
diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90
index 1cbac24..d48ede1 100644
--- a/fortran/test/tf.f90
+++ b/fortran/test/tf.f90
@@ -18,11 +18,51 @@
! This file contains subroutines which are used in
! all the hdf5 fortran tests
!
+
+
!This definition is needed for Windows DLLs
!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$attributes dllexport :: check
+!DEC$attributes dllexport :: write_test_status
!DEC$endif
+ SUBROUTINE write_test_status( test_result, test_title, total_error)
+
+! Writes the results of the tests
+
+ IMPLICIT NONE
+
+ INTEGER, INTENT(IN) :: test_result ! negative, --skip --
+ ! 0 , passed
+ ! positive, failed
+
+ CHARACTER(LEN=*), INTENT(IN) :: test_title ! Short description of test
+ INTEGER, INTENT(INOUT) :: total_error ! Accumulated error
+
+! Controls the output style for reporting test results
+
+ CHARACTER(LEN=8) :: error_string
+ CHARACTER(LEN=8), PARAMETER :: success = ' PASSED '
+ CHARACTER(LEN=8), PARAMETER :: failure = '*FAILED*'
+ CHARACTER(LEN=8), PARAMETER :: skip = '--SKIP--'
+
+ error_string = failure
+ IF (test_result == 0) THEN
+ error_string = success
+ ELSE IF (test_result == -1) THEN
+ error_string = skip
+ ENDIF
+
+ WRITE(*, fmt = '(A, T72, A)') test_title, error_string
+
+ IF(test_result.GT.0) total_error = total_error + test_result
+
+ END SUBROUTINE write_test_status
+
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: check
+!DEC$endif
SUBROUTINE check(string,error,total_error)
CHARACTER(LEN=*) :: string
INTEGER :: error, total_error