summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2001-06-21 14:52:27 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2001-06-21 14:52:27 (GMT)
commitaa08bf12452437589712812d5a8c21fe8a0ed401 (patch)
treeee3c8e85ac8359b5505d18af2aeb3d727e219c35 /fortran/src
parent88fecd169b382a9e381252172041aaa46f05d7ee (diff)
downloadhdf5-aa08bf12452437589712812d5a8c21fe8a0ed401.zip
hdf5-aa08bf12452437589712812d5a8c21fe8a0ed401.tar.gz
hdf5-aa08bf12452437589712812d5a8c21fe8a0ed401.tar.bz2
[svn-r4025]
Purpose: Windows and DEC OSF port Description: Added support for Windows and DEC UNIX (OSF1) Solution: Interface blocks for each C function called from corresponding F90 function were added to port HDF5 F90 Library to Windows platforms. Special DEC compilers directives were added to avoid name conflicts for C functions called from F90 functions on Windows and DEC UNIX. Also changes were done to the h5dwrite/read_f and h5awrite/read_f interfaces ( extra parameter added to make code portable between Windows and UNIX platforms) Platforms tested: Windows 98 (static library only), DEC UNIX
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5Af.c32
-rw-r--r--fortran/src/H5Aff.f902444
-rw-r--r--fortran/src/H5Df.c50
-rw-r--r--fortran/src/H5Dff.f902928
-rw-r--r--fortran/src/H5Eff.f90243
-rw-r--r--fortran/src/H5FDmpioff.f90114
-rw-r--r--fortran/src/H5Fff.f90526
-rw-r--r--fortran/src/H5Gff.f90595
-rw-r--r--fortran/src/H5Git.c1
-rw-r--r--fortran/src/H5Iff.f9068
-rw-r--r--fortran/src/H5Pf.c172
-rw-r--r--fortran/src/H5Pff.f902667
-rw-r--r--fortran/src/H5Rff.f90348
-rw-r--r--fortran/src/H5Sff.f901163
-rw-r--r--fortran/src/H5Tf.c1
-rw-r--r--fortran/src/H5Tff.f902498
-rw-r--r--fortran/src/H5f90global.f9051
-rw-r--r--fortran/src/H5f90i.h33
-rw-r--r--fortran/src/H5f90proto.h484
-rw-r--r--fortran/src/Makefile.in4
20 files changed, 13140 insertions, 1282 deletions
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index daa3932..15a9b65 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -103,20 +103,23 @@ nh5aopen_name_c (hid_t_f *obj_id, _fcd name, int_f *namelen, hid_t_f *attr_id)
* Inputs: attr_id - dataset identifier
* mem_type_id - memory datatype identifier
* buf - character data buffer
+ * dims - array to store dimensions sizes of buf; used only
+ * by Fortran routine.
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Thursday , August 12, 1999
- * Modifications:
+ * Modifications: dims paramete added.
+ * April 4, 2001
*---------------------------------------------------------------------------*/
int_f
-nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf)
+nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, int_f *dims)
{
int ret_value = -1;
/*
* Call h5awrite_c function.
*/
- ret_value = nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf));
+ ret_value = nh5awrite_c(attr_id, mem_type_id, _fcdtocp(buf), dims);
return ret_value;
}
@@ -127,13 +130,16 @@ nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf)
* Inputs: attr_id - attribute identifier
* mem_type_id - memory datatype identifier
* buf - data buffer
+ * dims - array to store dimensions sizes of buf; used only
+ * by Fortran routine.
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
+ * Modifications: dims parameter added
+ * April 4, 2001
*---------------------------------------------------------------------------*/
int_f
-nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -158,21 +164,24 @@ nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
* Purpose: Call h5aread_c to read character attribute
* Inputs: dset_id - dataset identifier
* mem_type_id - memory datatype identifier
+ * dims - array to store dimensions sizes of buf; used only
+ * by Fortran routine.
* Outputs: buf - character data buffer
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
+ * Modifications: dims parameter added.
+ * April 4, 2001
*---------------------------------------------------------------------------*/
int_f
-nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf)
+nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, int_f *dims)
{
int ret_value = -1;
/*
* Call h5aread_c function.
*/
- ret_value = nh5aread_c(attr_id, mem_type_id, (_fcdtocp(buf)));
+ ret_value = nh5aread_c(attr_id, mem_type_id, (_fcdtocp(buf)), dims);
return ret_value;
}
@@ -182,14 +191,17 @@ nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf)
* Purpose: Call H5Araed to read an attribute
* Inputs: dset_id - dataset identifier
* mem_type_id - memory datatype identifier
+ * dims - array to store dimensions sizes of buf; used only
+ * by Fortran routine.
* Outputs: buf - data buffer
* Returns: 0 on success, -1 on failure
* Programmer: Elena Pourmal
* Thursday, August 12, 1999
- * Modifications:
+ * Modifications: dims paramete added.
+ * April 4, 2001
*---------------------------------------------------------------------------*/
int_f
-nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index e10f445..1742018 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -83,8 +83,42 @@
END INTERFACE
CONTAINS
+
+!----------------------------------------------------------------------
+! Name: h5acreate_f
+!
+! Purpose: Creates a dataset as an attribute of a group, dataset,
+! or named datatype
+!
+! Inputs:
+! obj_id - identifier of an object (group, dataset,
+! or named datatype) attribute is attached to
+! name - attribute name
+! type_id - attribute datatype identifier
+! space_id - attribute dataspace identifier
+!
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! creation_prp - creation property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5acreate_f(obj_id, name, type_id, space_id, attr_id, &
hdferr, creation_prp)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5acreate_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
@@ -99,7 +133,27 @@
! list identifier
INTEGER :: creation_prp_default
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5acreate_c
+! INTEGER, EXTERNAL :: h5acreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5acreate_c(obj_id, name, namelen, type_id, &
+ space_id, creation_prp_default, attr_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5ACREATE_C'::h5acreate_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER :: creation_prp_default
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5acreate_c
+ END INTERFACE
+
creation_prp_default = H5P_DEFAULT_F
namelen = LEN(NAME)
if (present(creation_prp)) creation_prp_default = creation_prp
@@ -108,874 +162,2600 @@
END SUBROUTINE h5acreate_f
+!----------------------------------------------------------------------
+! Name: h5aopen_name_f
+!
+! Purpose: Opens an attribute specified by name.
+!
+! Inputs:
+! obj_id - identifier of a group, dataset, or named
+! datatype atttribute to be attached to
+! name - attribute name
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aopen_name_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5aopen_name_c
+
+! INTEGER, EXTERNAL :: h5aopen_name_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aopen_name_c(obj_id, name, namelen, attr_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AOPEN_NAME_C'::h5aopen_name_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5aopen_name_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5aopen_name_c(obj_id, name, namelen, attr_id)
END SUBROUTINE h5aopen_name_f
+!----------------------------------------------------------------------
+! Name: h5aopen_idx_f
+!
+! Purpose: Opens the attribute specified by its index.
+!
+! Inputs:
+! obj_id - identifier of a group, dataset, or named
+! datatype an attribute to be attached to
+! index - index of the attribute to open (zero-based)
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aopen_idx_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER, INTENT(IN) :: index ! Attribute index
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aopen_idx_c
+
+! INTEGER, EXTERNAL :: h5aopen_idx_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aopen_idx_c(obj_id, index, attr_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AOPEN_IDX_C'::h5aopen_idx_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(IN) :: index
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5aopen_idx_c
+ END INTERFACE
+
hdferr = h5aopen_idx_c(obj_id, index, attr_id)
END SUBROUTINE h5aopen_idx_f
+!----------------------------------------------------------------------
+! Name: h5awrite_f
+!
+! Purpose: Writes data to an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! buf - data to write
+! dims - 1D array of size 7, stores sizes of the
+! - buf array dimensions.
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable.
+! April 4, 2001
+!
+! Comment: This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!
+!----------------------------------------------------------------------
- SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, DIMENSION(7) :: dims ! Array to story buf dimension sizes
INTEGER, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_scalar
- SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:), INTENT(IN) :: buf
+ INTEGER, DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_1
- SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:), INTENT(IN) :: buf
+ INTEGER, DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_2
- SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:), INTENT(IN) :: buf
+ INTEGER, DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_3
- SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_4
- SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_5
- SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_6
- SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_integer_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_integer_7
- SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
REAL, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_scalar
- SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_1
- SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_2
- SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_3
- SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_4
- SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_5
- SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_6
- SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_real_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_real_7
- SUBROUTINE h5awrite_double_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
DOUBLE PRECISION, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_scalar
- SUBROUTINE h5awrite_double_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:), INTENT(IN) :: buf
- ! Attribute data
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_1
- SUBROUTINE h5awrite_double_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_2
- SUBROUTINE h5awrite_double_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_3
- SUBROUTINE h5awrite_double_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_4
- SUBROUTINE h5awrite_double_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_5
- SUBROUTINE h5awrite_double_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_6
- SUBROUTINE h5awrite_double_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_double_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_double_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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_c
- hdferr = h5awrite_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ 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_c
+ END INTERFACE
+
+ hdferr = h5awrite_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_double_7
- SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
CHARACTER(LEN=*),INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_scalar
- SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1))::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_1
- SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_2
- SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_3
- SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_4
- SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_5
- SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), 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 :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_6
- SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5awrite_char_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), 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 :: h5awritec_c
- hdferr = h5awritec_c(attr_id, memtype_id, buf)
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
+ hdferr = h5awritec_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5awrite_char_7
+!----------------------------------------------------------------------
+! Name: h5aread_f
+!
+! Purpose: Reads an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! dims - 1D array of size 7, stores sizes of the
+! - buf array dimensions.
+! Outputs:
+! buf - buffer to read attribute data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! Aprile 4, 2001
+!
+! Comment: This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!----------------------------------------------------------------------
- SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
INTEGER, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_scalar
- SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:), INTENT(OUT) :: buf
- ! Attribute data
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_1
- SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:), INTENT(OUT) :: buf
- ! Attribute data
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_2
- SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:), INTENT(OUT) :: buf
- ! Attribute data
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_3
- SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_4
- SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_5
- SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_6
- SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_integer_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_integer_7
- SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
REAL, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_scalar
- SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_1
- SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_2
- SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_3
- SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_4
- SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_5
- SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_6
- SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_real_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_real_7
- SUBROUTINE h5aread_double_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
DOUBLE PRECISION, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_scalar
- SUBROUTINE h5aread_double_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_1
- SUBROUTINE h5aread_double_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_2
- SUBROUTINE h5aread_double_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_3
- SUBROUTINE h5aread_double_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_4
- SUBROUTINE h5aread_double_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_5
- SUBROUTINE h5aread_double_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_6
- SUBROUTINE h5aread_double_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_double_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_double_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ DOUBLE PRECISION, INTENT(OUT), &
+ 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_c
- hdferr = h5aread_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ !DEC$ ENDIF
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
+ hdferr = h5aread_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_double_7
- SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
CHARACTER(LEN=*), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_scalar
- SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_1
- SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_2
- SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_3
- SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_4
- SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_5
- SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_6
- SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, hdferr)
+ SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aread_char_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
! identifier (in memory)
- CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(OUT), &
+ 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 :: h5areadc_c
- hdferr = h5areadc_c(attr_id, memtype_id, buf)
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER, DIMENSION(7) :: dims
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
+ hdferr = h5areadc_c(attr_id, memtype_id, buf, dims)
END SUBROUTINE h5aread_char_7
+!----------------------------------------------------------------------
+! Name: h5aget_space_f
+!
+! Purpose: Gets a copy of the dataspace for an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+! space_id - attribite dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aget_space_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(OUT) :: space_id
! Attribute dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL:: h5aget_space_c
+
+! INTEGER, EXTERNAL:: h5aget_space_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_space_c(attr_id, space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_SPACE_C'::h5aget_space_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5aget_space_c
+ END INTERFACE
+
hdferr = h5aget_space_c(attr_id, space_id)
END SUBROUTINE h5aget_space_f
+!----------------------------------------------------------------------
+! Name: h5aget_type_f
+!
+! Purpose: Gets an attribute datatype.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+! type_id - attribute datatype identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aget_type_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(HID_T), INTENT(OUT) :: type_id
! Attribute datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aget_type_c
+
+! INTEGER, EXTERNAL :: h5aget_type_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_type_c(attr_id, type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_TYPE_C'::h5aget_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5aget_type_c
+ END INTERFACE
+
hdferr = h5aget_type_c(attr_id, type_id)
END SUBROUTINE h5aget_type_f
+!----------------------------------------------------------------------
+! Name: h5aget_name_f
+!
+! Purpose: Gets an attribute name.
+!
+! Inputs:
+! attr_id - attribute identifier
+! size - size of a buffer to read name in
+! Outputs:
+! buf - buffer to read name in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aget_name_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size
@@ -984,40 +2764,182 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! name length is successful,
! -1 if fail
- INTEGER, EXTERNAL :: h5aget_name_c
+! INTEGER, EXTERNAL :: h5aget_name_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_name_c(attr_id, size, buf)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_NAME_C'::h5aget_name_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ END FUNCTION h5aget_name_c
+ END INTERFACE
+
hdferr = h5aget_name_c(attr_id, size, buf)
END SUBROUTINE h5aget_name_f
+!----------------------------------------------------------------------
+! Name: h5aget_num_attrs_f
+!
+! Purpose: Determines the number of attributes attached to an object.
+!
+! Inputs:
+! obj_id - object (group, dataset, or named datatype)
+! identifier
+! Outputs:
+! attr_num - number of attributes attached to the object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aget_num_attrs_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the
! object
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aget_num_attrs_c
+
+! INTEGER, EXTERNAL :: h5aget_num_attrs_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_NUM_ATTRS_C'::h5aget_num_attrs_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: attr_num
+ END FUNCTION h5aget_num_attrs_c
+ END INTERFACE
+
hdferr = h5aget_num_attrs_c(obj_id, attr_num)
END SUBROUTINE h5aget_num_attrs_f
+!----------------------------------------------------------------------
+! Name: h5adelete_f
+!
+! Purpose: Deletes an attribute of an object (group, dataset or
+! named datatype)
+!
+! Inputs:
+! obj_id - object identifier
+! name - attribute name
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5adelete_f(obj_id, name, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5adelete_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5adelete_c
+
+! INTEGER, EXTERNAL :: h5adelete_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5adelete_c(obj_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5ADELETE_C'::h5adelete_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5adelete_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5adelete_c(obj_id, name, namelen)
END SUBROUTINE h5adelete_f
+!----------------------------------------------------------------------
+! Name: h5aclose_f
+!
+! Purpose: Closes the specified attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aclose_f(attr_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5aclose_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code:
- INTEGER, EXTERNAL :: h5aclose_c
+
+! INTEGER, EXTERNAL :: h5aclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aclose_c(attr_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5ACLOSE_C'::h5aclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ END FUNCTION h5aclose_c
+ END INTERFACE
+
hdferr = h5aclose_c(attr_id)
END SUBROUTINE h5aclose_f
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c
index 76646fb..888ede5 100644
--- a/fortran/src/H5Df.c
+++ b/fortran/src/H5Df.c
@@ -112,14 +112,14 @@ nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dset_id)
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf)
+nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, int_f *dims)
{
int ret_value = -1;
/*
* Call h5dwrite_c function.
*/
- ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf));
+ ret_value = nh5dwrite_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims);
return ret_value;
}
@@ -139,7 +139,7 @@ nh5dwritec_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
+nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -187,7 +187,7 @@ nh5dwrite_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n)
+nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -197,7 +197,8 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
hid_t c_file_space_id;
hid_t c_xfer_prp;
hobj_ref_t *buf_c;
- int i;
+ int i, n;
+ n = (int)*dims;
/*
* Define transfer property
@@ -210,9 +211,9 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
/*
* Allocate temporary buffer and copy references from Fortran.
*/
- buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(*n));
+ buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n));
if ( buf_c != NULL ) {
- for (i = 0; i < *n; i++) {
+ for (i = 0; i < n; i++) {
HDmemcpy(buf_c[i].oid, buf, H5R_OBJ_REF_BUF_SIZE);
buf = buf + REF_OBJ_BUF_LEN_F;
}
@@ -249,7 +250,7 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n)
+nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -259,8 +260,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
hid_t c_file_space_id;
hid_t c_xfer_prp;
hdset_reg_ref_t *buf_c;
- int i;
+ int i, n;
+ n = (int)*dims;
/*
* Define transfer property
*/
@@ -272,9 +274,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
/*
* Allocate temporary buffer and copy references from Fortran.
*/
- buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(*n));
+ buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(n));
if ( buf_c != NULL ) {
- for (i = 0; i < *n; i++) {
+ for (i = 0; i < n; i++) {
HDmemcpy(buf_c[i].heapid, buf, H5R_DSET_REG_REF_BUF_SIZE);
buf = buf + REF_REG_BUF_LEN_F;
}
@@ -312,14 +314,14 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf)
+nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, int_f *dims)
{
int ret_value = -1;
/*
* Call h5dread_c function.
*/
- ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf));
+ ret_value = nh5dread_c(dset_id, mem_type_id, mem_space_id, file_space_id, xfer_prp, _fcdtocp(buf), dims);
return ret_value;
}
@@ -339,7 +341,7 @@ nh5dreadc_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
+nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -387,7 +389,7 @@ nh5dread_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *n)
+nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -397,8 +399,8 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
hid_t c_file_space_id;
hid_t c_xfer_prp;
hobj_ref_t *buf_c;
- int i;
-
+ int i, n;
+ n = (int)*dims;
/*
* Define transfer property
*/
@@ -410,7 +412,7 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
/*
* Allocate temporary buffer.
*/
- buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(*n));
+ buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n));
if ( buf_c != NULL ) {
/*
* Call H5Dread function.
@@ -421,7 +423,7 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
c_file_space_id = (hid_t)*file_space_id;
ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
if (ret >=0) {
- for (i = 0; i < *n; i++) {
+ for (i = 0; i < n; i++) {
HDmemcpy(buf, buf_c[i].oid, H5R_OBJ_REF_BUF_SIZE);
buf = buf + REF_OBJ_BUF_LEN_F;
}
@@ -449,7 +451,7 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *n)
+nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f * buf, int_f *dims)
{
int ret_value = -1;
herr_t ret;
@@ -459,8 +461,8 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
hid_t c_file_space_id;
hid_t c_xfer_prp;
hdset_reg_ref_t *buf_c;
- int i;
-
+ int i, n;
+ n = (int)*dims;
/*
* Define transfer property
*/
@@ -472,7 +474,7 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
/*
* Allocate temporary buffer.
*/
- buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(*n));
+ buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(n));
if ( buf_c != NULL ) {
/*
* Call H5Dread function.
@@ -483,7 +485,7 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
c_file_space_id = (hid_t)*file_space_id;
ret = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, buf_c);
if (ret >=0) {
- for (i = 0; i < *n; i++) {
+ for (i = 0; i < n; i++) {
HDmemcpy(buf, buf_c[i].heapid, H5R_DSET_REG_REF_BUF_SIZE);
buf = buf + REF_REG_BUF_LEN_F;
}
diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90
index a733bc8..23df442 100644
--- a/fortran/src/H5Dff.f90
+++ b/fortran/src/H5Dff.f90
@@ -2,8 +2,8 @@
! This file contains Fortran90 interfaces for H5D functions.
!
MODULE H5D
-! USE H5GLOBAL
- USE H5R
+ USE H5GLOBAL
+! USE H5R
INTERFACE h5dwrite_f
@@ -88,9 +88,40 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5dcreate_f
+!
+! Purpose: Creates a dataset at the specified location
+!
+! Inputs:
+! loc_id - file or group identifier
+! name - dataset name
+! type_id - dataset datatype identifier
+! space_id - dataset dataspace identifier
+! Outputs:
+! dset_id - dataset identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! createion_prp - dataset creation property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, &
hdferr, creation_prp)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dcreate_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
@@ -103,7 +134,27 @@
! list identifier
INTEGER :: creation_prp_default
INTEGER :: namelen ! Name length
- INTEGER, EXTERNAL :: h5dcreate_c
+
+! INTEGER, EXTERNAL :: h5dcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, &
+ space_id, creation_prp_default, dset_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DCREATE_C'::h5dcreate_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER :: creation_prp_default
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dcreate_c
+ END INTERFACE
creation_prp_default = H5P_DEFAULT_F
if (present(creation_prp)) creation_prp_default = creation_prp
@@ -112,38 +163,170 @@
creation_prp_default, dset_id)
END SUBROUTINE h5dcreate_f
+!----------------------------------------------------------------------
+! Name: h5dopen_f
+!
+! Purpose: Opens an existing dataset.
+!
+! Inputs:
+! loc_id - file or group identifier
+! name - dataset name
+! Outputs:
+! dset_id - dataset identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dopen_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Name length
- INTEGER, EXTERNAL :: h5dopen_c
+
+! INTEGER, EXTERNAL :: h5dopen_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dset_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DOPEN_C'::h5dopen_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dopen_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5dopen_c(loc_id, name, namelen, dset_id)
END SUBROUTINE h5dopen_f
+!----------------------------------------------------------------------
+! Name: h5dclose_f
+!
+! Purpose: Closes a dataset.
+!
+! Inputs:
+! dset_id - dataset identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5dclose_f(dset_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dclose_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5dclose_c
+
+! INTEGER, EXTERNAL :: h5dclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dclose_c(dset_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DCLOSE_C'::h5dclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ END FUNCTION h5dclose_c
+ END INTERFACE
hdferr = h5dclose_c(dset_id)
END SUBROUTINE h5dclose_f
- SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, n, hdferr, &
+!----------------------------------------------------------------------
+! Name: h5dwrite_f
+!
+! Purpose: Reads raw data from the specified dataset into buf,
+! converting from file datatype and dataspace to memory
+! datatype and dataspace.
+!
+! Inputs:
+! dset_id - dataset identifier
+! mem_type_id - memory type identifier
+! buf - data buffer to write
+! dims - 1-dim array of size 7; dims(k) has the size
+! - of k-th dimension of the buf array
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! mem_space_id - memory dataspace identifier
+! file_space_id - file dataspace identifier
+! xfer_prp - trasfer property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! dims parameter was added to make code portable;
+! n parameter was replaced with dims parameter in
+! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
+! functions. April 2, 2001
+!
+! Comment: This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions, and one dimensional buffers
+! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f)
+! types.
+!----------------------------------------------------------------------
+
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_reference_obj
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN) :: n ! size of the bufffer buf
- TYPE(hobj_ref_t_f), DIMENSION(n), INTENT(IN) :: buf ! Data buffer
+ INTEGER, DIMENSION(7), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -157,7 +340,27 @@
INTEGER(HID_T) :: file_space_id_default
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
INTEGER :: i,j
- INTEGER, EXTERNAL :: h5dwrite_ref_obj_c
+
+! INTEGER, EXTERNAL :: h5dwrite_ref_obj_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_ref_obj_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, DIMENSION(*) :: ref_buf
+ INTEGER, DIMENSION(7) :: dims
+ END FUNCTION h5dwrite_ref_obj_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -167,31 +370,35 @@
if (present(mem_space_id)) mem_space_id_default = mem_space_id
if (present(file_space_id)) file_space_id_default = file_space_id
- allocate(ref_buf(REF_OBJ_BUF_LEN*n), stat=hdferr)
+ allocate(ref_buf(REF_OBJ_BUF_LEN*dims(1)), stat=hdferr)
if (hdferr .NE. 0 ) then
hdferr = -1
return
else
- do j = 1, n
+ do j = 1, dims(1)
do i = 1, REF_OBJ_BUF_LEN
ref_buf(REF_OBJ_BUF_LEN*(j-1) + i ) = buf(j)%ref(i)
enddo
enddo
endif
hdferr = h5dwrite_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, n)
+ file_space_id_default, xfer_prp_default, ref_buf, dims(1))
deallocate(ref_buf)
END SUBROUTINE h5dwrite_reference_obj
- SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, n, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_reference_dsetreg
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- TYPE(hdset_reg_ref_t_f), DIMENSION(:), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(IN) :: n ! size of the bufffer buf
+ INTEGER, DIMENSION(7), INTENT(IN) :: dims ! size of the bufffer buf
+ TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -205,7 +412,28 @@
INTEGER(HID_T) :: file_space_id_default
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
INTEGER :: i,j
- INTEGER, EXTERNAL :: h5dwrite_ref_reg_c
+
+! INTEGER, EXTERNAL :: h5dwrite_ref_reg_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, DIMENSION(*) :: ref_buf
+ INTEGER, DIMENSION(7) :: dims
+ END FUNCTION h5dwrite_ref_reg_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -215,31 +443,36 @@
if (present(mem_space_id)) mem_space_id_default = mem_space_id
if (present(file_space_id)) file_space_id_default = file_space_id
- allocate(ref_buf(REF_REG_BUF_LEN*n), stat=hdferr)
+ allocate(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
if (hdferr .NE. 0 ) then
hdferr = -1
return
else
- do j = 1, n
+ do j = 1, dims(1)
do i = 1, REF_REG_BUF_LEN
ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
enddo
enddo
endif
hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, n)
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
deallocate(ref_buf)
END SUBROUTINE h5dwrite_reference_dsetreg
- SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
INTEGER, INTENT(IN) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -251,7 +484,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -262,17 +517,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_integer_scalar
- SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -284,7 +545,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -295,17 +579,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_integer_1
- SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -317,7 +607,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -329,17 +642,23 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_2
- SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -351,7 +670,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -363,17 +705,23 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_3
- SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -385,7 +733,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -396,17 +767,23 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_4
- SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -418,7 +795,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -431,17 +831,23 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_5
- SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -453,7 +859,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -465,17 +894,23 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_6
- SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_integer_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -487,7 +922,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -499,17 +956,22 @@
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dwrite_integer_7
- SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
CHARACTER(LEN=*), INTENT(IN) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -522,7 +984,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -533,18 +1018,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_scalar
- SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(*) :: buf ! Data buffer
- ! CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -556,7 +1046,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -567,17 +1081,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_1
- SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -589,7 +1109,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -600,17 +1144,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_2
- SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -622,7 +1172,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -633,17 +1207,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_3
- SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -655,7 +1235,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -666,17 +1270,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_4
- SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -688,7 +1298,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -699,17 +1333,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_5
- SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -721,7 +1361,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -732,17 +1396,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_6
- SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_char_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -754,7 +1424,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwritec_c
+
+! INTEGER, EXTERNAL :: h5dwritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwritec_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwritec_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -765,16 +1458,21 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwritec_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_char_7
- SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
REAL, INTENT(IN) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -783,12 +1481,33 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -797,17 +1516,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_scalar
- SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -815,12 +1540,35 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -830,17 +1578,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_1
- SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -848,12 +1602,35 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -863,17 +1640,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_2
- SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -881,12 +1664,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -896,17 +1701,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_3
- SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -914,13 +1725,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -930,17 +1762,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_4
- SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -948,12 +1786,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -963,17 +1823,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_5
- SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -981,12 +1847,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -996,17 +1884,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_6
- SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_real_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1014,12 +1908,33 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dwrite_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -1029,17 +1944,22 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_real_7
- SUBROUTINE h5dwrite_double_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
DOUBLE PRECISION, INTENT(IN) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -1052,7 +1972,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1063,17 +2005,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_scalar
- SUBROUTINE h5dwrite_double_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1085,7 +2033,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1096,17 +2067,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_1
- SUBROUTINE h5dwrite_double_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1118,7 +2095,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1129,17 +2129,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_2
- SUBROUTINE h5dwrite_double_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1151,7 +2157,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1162,17 +2191,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_3
- SUBROUTINE h5dwrite_double_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1184,7 +2219,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1195,17 +2253,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_4
- SUBROUTINE h5dwrite_double_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1217,7 +2281,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1228,17 +2315,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_5
- SUBROUTINE h5dwrite_double_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1251,7 +2344,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1262,17 +2378,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_6
- SUBROUTINE h5dwrite_double_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dwrite_double_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -1285,7 +2407,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dwrite_c
+
+! INTEGER, EXTERNAL :: h5dwrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dwrite_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1296,18 +2440,63 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dwrite_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dwrite_double_7
- SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, n, hdferr, &
+!----------------------------------------------------------------------
+! Name: h5dread_f
+!
+! Purpose: Reads raw data from the specified dataset into buf,
+! converting from file datatype and dataspace to memory
+! datatype and dataspace.
+!
+! Inputs:
+! dset_id - dataset identifier
+! mem_type_id - memory type identifier
+! dims - 1-dim array of size 7; dims(k) has the size
+! - of k-th dimension of the buf array
+! Outputs:
+! buf - buffer to read data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! mem_space_id - memory dataspace identifier
+! file_space_id - file dataspace identifier
+! xfer_prp - trasfer property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! dims parameter was added to make code portable;
+! n parameter was replaced with dims parameter in
+! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
+! functions. April 2, 2001
+!
+! Comment: This function is overloaded to read INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions, and one dimensional buffers
+! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f)
+! types.
+!----------------------------------------------------------------------
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_reference_obj
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN) :: n ! Size of the budffer buf
- TYPE(hobj_ref_t_f), DIMENSION(N), INTENT(INOUT) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ TYPE(hobj_ref_t_f), INTENT(INOUT) , &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1319,10 +2508,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_ref_obj_c
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
INTEGER :: i,j
- allocate(ref_buf(REF_OBJ_BUF_LEN*n), stat=hdferr)
+
+! INTEGER, EXTERNAL :: h5dread_ref_obj_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_ref_obj_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, DIMENSION(*) :: ref_buf
+ END FUNCTION h5dread_ref_obj_c
+ END INTERFACE
+
+ allocate(ref_buf(REF_OBJ_BUF_LEN*dims(1)), stat=hdferr)
if (hdferr .NE. 0) then
hdferr = -1
return
@@ -1337,8 +2547,8 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, n)
- do j = 1, n
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ do j = 1, dims(1)
do i = 1, REF_OBJ_BUF_LEN
buf(j)%ref(i) = ref_buf(REF_OBJ_BUF_LEN*(j-1) + i)
enddo
@@ -1346,14 +2556,19 @@
deallocate(ref_buf)
END SUBROUTINE h5dread_reference_obj
- SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, n, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_reference_dsetreg
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- TYPE(hdset_reg_ref_t_f), DIMENSION(:), INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(IN) :: n ! Size of the buffer buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1367,8 +2582,29 @@
INTEGER(HID_T) :: file_space_id_default
INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
INTEGER :: i,j
- INTEGER, EXTERNAL :: h5dread_ref_reg_c
- allocate(ref_buf(REF_REG_BUF_LEN*n), stat=hdferr)
+
+! INTEGER, EXTERNAL :: h5dread_ref_reg_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,&
+ mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_REG_C'::h5dread_ref_reg_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, DIMENSION(*) :: ref_buf
+ END FUNCTION h5dread_ref_reg_c
+ END INTERFACE
+
+ allocate(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
if (hdferr .NE. 0) then
hdferr = -1
return
@@ -1383,9 +2619,9 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, n)
+ file_space_id_default, xfer_prp_default, ref_buf, dims)
- do j = 1, n
+ do j = 1, dims(1)
do i = 1, REF_REG_BUF_LEN
buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
enddo
@@ -1394,12 +2630,17 @@
END SUBROUTINE h5dread_reference_dsetreg
- SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
INTEGER, INTENT(INOUT) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -1412,7 +2653,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(OUT) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1423,17 +2686,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_integer_scalar
- SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1445,7 +2714,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1456,17 +2748,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_integer_1
- SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -1478,7 +2776,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1490,17 +2811,23 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_2
- SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -1512,7 +2839,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1524,17 +2874,23 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_3
- SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ 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
@@ -1546,7 +2902,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(OUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1558,17 +2937,23 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_4
- SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, 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
@@ -1580,7 +2965,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1592,17 +3000,23 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_5
- SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1614,7 +3028,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1626,17 +3063,23 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_6
- SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_integer_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(INOUT), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1648,7 +3091,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1660,16 +3125,21 @@
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
file_space_id_default, xfer_prp_default, &
- buf)
+ buf, dims)
END SUBROUTINE h5dread_integer_7
- SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -1682,7 +3152,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1693,17 +3186,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_scalar
- SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(*) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1715,7 +3214,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1726,17 +3249,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_1
- SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -1748,7 +3277,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1759,17 +3312,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_2
- SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -1781,7 +3340,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1792,17 +3375,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_3
- SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ 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
@@ -1814,7 +3403,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1825,17 +3438,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_4
- SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), 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
@@ -1847,7 +3466,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1858,17 +3501,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_5
- SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1880,7 +3529,31 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1891,17 +3564,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_6
- SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_char_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- CHARACTER(LEN=*), INTENT(INOUT), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1913,7 +3592,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dreadc_c
+
+! INTEGER, EXTERNAL :: h5dreadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dreadc_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ 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, INTENT(IN), DIMENSION(7) :: dims
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dreadc_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -1924,16 +3626,21 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dreadc_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_char_7
- SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
REAL, INTENT(INOUT) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -1942,12 +3649,33 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(OUT) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -1957,17 +3685,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_scalar
- SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -1975,12 +3709,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -1990,17 +3746,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_1
- SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -2008,12 +3770,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2023,17 +3807,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_2
- SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -2041,12 +3831,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2056,17 +3868,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_3
- SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ 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
@@ -2074,12 +3892,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2089,17 +3929,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_4
- SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, 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
@@ -2107,12 +3953,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2122,17 +3990,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_5
- SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -2140,12 +4014,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
-
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2155,17 +4051,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_6
- SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_real_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- REAL, INTENT(INOUT), DIMENSION(:,:,:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
! Memory dataspace identfier
@@ -2173,12 +4075,34 @@
! File dataspace identfier
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp
! Transfer property list identifier
- INTEGER, EXTERNAL :: h5dread_c
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
file_space_id_default = H5S_ALL_F
@@ -2188,16 +4112,21 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_real_7
- SUBROUTINE h5dread_double_scalar(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_scalar
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER, INTENT(IN), DIMENSION(7) :: dims
DOUBLE PRECISION, INTENT(INOUT) :: buf ! Data buffer
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id
@@ -2210,7 +4139,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(OUT) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2221,17 +4172,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_scalar
- SUBROUTINE h5dread_double_1(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_1
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2243,7 +4200,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2254,17 +4234,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_1
- SUBROUTINE h5dread_double_2(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_2
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2276,7 +4262,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2287,17 +4296,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_2
- SUBROUTINE h5dread_double_3(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_3
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2309,7 +4324,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2320,17 +4358,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_3
- SUBROUTINE h5dread_double_4(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_4
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:,:,:) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2343,7 +4387,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2354,17 +4421,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_4
- SUBROUTINE h5dread_double_5(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_5
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:,:,:,:) :: buf ! Data buffer
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2376,7 +4449,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2387,17 +4483,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_5
- SUBROUTINE h5dread_double_6(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_6
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:,:,:,:,:) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2410,7 +4512,30 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
+
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2421,17 +4546,23 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_6
- SUBROUTINE h5dread_double_7(dset_id, mem_type_id, buf, hdferr, &
+ 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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dread_double_7
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- DOUBLE PRECISION, INTENT(INOUT), DIMENSION(:,:,:,:,:,:,:) :: buf
+ INTEGER, INTENT(IN), DIMENSION(7) :: 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
@@ -2444,7 +4575,29 @@
INTEGER(HID_T) :: xfer_prp_default
INTEGER(HID_T) :: mem_space_id_default
INTEGER(HID_T) :: file_space_id_default
- INTEGER, EXTERNAL :: h5dread_c
+
+! INTEGER, EXTERNAL :: h5dread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dread_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)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_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, INTENT(IN), DIMENSION(7) :: dims
+ DOUBLE PRECISION, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
+ END FUNCTION h5dread_c
+ END INTERFACE
xfer_prp_default = H5P_DEFAULT_F
mem_space_id_default = H5S_ALL_F
@@ -2455,48 +4608,223 @@
if (present(file_space_id)) file_space_id_default = file_space_id
hdferr = h5dread_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf)
+ file_space_id_default, xfer_prp_default, buf, dims)
END SUBROUTINE h5dread_double_7
+!----------------------------------------------------------------------
+! Name: h5dget_space_f
+!
+! Purpose: Returns an identifier for a copy of the dataspace for a
+! dataset.
+!
+! Inputs:
+! dataset_id - dataset identifier
+! Outputs:
+! dataspace_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dget_space_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: dataspace_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5dget_space_c
+
+! INTEGER, EXTERNAL :: h5dget_space_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DGET_SPACE_C'::h5dget_space_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: dataspace_id
+ END FUNCTION h5dget_space_c
+ END INTERFACE
+
hdferr = h5dget_space_c(dataset_id, dataspace_id)
END SUBROUTINE h5dget_space_f
+!----------------------------------------------------------------------
+! Name: h5dget_type_f
+!
+! Purpose: Returns an identifier for a copy of the datatype for a
+! dataset.
+!
+! Inputs:
+! dataset_id - dataset identifier
+! Outputs:
+! datatype_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dget_type_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: datatype_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5dget_type_c
+! INTEGER, EXTERNAL :: h5dget_type_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DGET_TYPE_C'::h5dget_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: datatype_id
+ END FUNCTION h5dget_type_c
+ END INTERFACE
+
hdferr = h5dget_type_c (dataset_id, datatype_id)
END SUBROUTINE h5dget_type_f
+!----------------------------------------------------------------------
+! Name: h5dextend_f
+!
+! Purpose: Extends a dataset with unlimited dimension.
+!
+! Inputs:
+! dataset_id - dataset identifier
+! size - array containing the new magnitude of
+! each dimension
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+
SUBROUTINE h5dextend_f(dataset_id, size, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dextend_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
! Array containing
! dimensions' sizes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5dextend_c
+
+! INTEGER, EXTERNAL :: h5dextend_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dextend_c(dataset_id, size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DEXTEND_C'::h5dextend_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ END FUNCTION h5dextend_c
+ END INTERFACE
+
hdferr = h5dextend_c(dataset_id, size)
END SUBROUTINE h5dextend_f
+!----------------------------------------------------------------------
+! Name: h5dget_create_plist_f
+!
+! Purpose: Returns an identifier for a copy of the dataset creation
+! property list for a dataset.
+!
+! Inputs:
+! dataset_id - dataset identifier
+! Outputs:
+! plist_id - creation property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+
SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr)
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5dget_create_plist_f
+!DEC$endif
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
INTEGER(HID_T), INTENT(OUT) :: plist_id ! Dataset creation
! property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5dget_create_plist_c
+
+! INTEGER, EXTERNAL :: h5dget_create_plist_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ END FUNCTION h5dget_create_plist_c
+ END INTERFACE
+
hdferr = h5dget_create_plist_c(dataset_id, plist_id)
END SUBROUTINE h5dget_create_plist_f
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.f90
index a8393dd..0c7b513 100644
--- a/fortran/src/H5Eff.f90
+++ b/fortran/src/H5Eff.f90
@@ -3,57 +3,278 @@
!
MODULE H5E
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5eclear_f
+!
+! Purpose: Clears the error stack for the current thread.
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+!
+!
+!
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5eclear_f(hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5eclear_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5eclear_c
+! INTEGER, EXTERNAL :: h5eclear_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eclear_c()
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5ECLEAR_C'::h5eclear_c
+ END FUNCTION h5eclear_c
+ END INTERFACE
hdferr = h5eclear_c()
END SUBROUTINE h5eclear_f
+!----------------------------------------------------------------------
+! Name: h5h5eprint_f
+!
+! Purpose: Prints the error stack in a default manner.
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! name - name of the file that
+! contains print output
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5eprint_f(hdferr, name)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5eprint_f
+!DEC$endif
+!
CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5eprint_c1, h5eprint_c2
-
+! INTEGER, EXTERNAL :: h5eprint_c1, h5eprint_c2
INTEGER :: namelen
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eprint_c1(name, namelen)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5EPRINT_C1'::h5eprint_c1
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*),INTENT(IN) :: name
+ END FUNCTION h5eprint_c1
+ END INTERFACE
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eprint_c2()
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5EPRINT_C2'::h5eprint_c2
+ END FUNCTION h5eprint_c2
+ END INTERFACE
namelen = LEN(NAME)
if (present(name)) hdferr = h5eprint_c1(name, namelen)
hdferr = h5eprint_c2()
END SUBROUTINE h5eprint_f
+!----------------------------------------------------------------------
+! Name: h5eget_major_f
+!
+! Purpose: Returns a character string describing an error specified
+! by a major error number.
+!
+! Inputs:
+! error_no - mojor error number
+! Outputs:
+! name - character string describing the error
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5eget_major_f(error_no, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5eget_major_f
+!DEC$endif
+!
INTEGER, INTENT(IN) :: error_no !Major error number
- CHARACTER(LEN=*), INTENT(OUT) :: name ! File name
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
+ ! the error.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5eget_major_c
+
+! INTEGER, EXTERNAL :: h5eget_major_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eget_major_c(error_no, name)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5EGET_MAJOR_C'::h5eget_major_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: error_no
+ CHARACTER(LEN=*) :: name
+ END FUNCTION h5eget_major_c
+ END INTERFACE
hdferr = h5eget_major_c(error_no, name)
END SUBROUTINE h5eget_major_f
+!----------------------------------------------------------------------
+! Name: h5eget_minor_f
+!
+! Purpose: Returns a character string describing an error specified
+! by a minor error number.
+!
+! Inputs:
+! error_no - minor error number
+! Outputs:
+! name - character string describing the error
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+!
+!
+!
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5eget_minor_f(error_no, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5eget_minor_f
+!DEC$endif
+!
INTEGER, INTENT(IN) :: error_no !Major error number
- CHARACTER(LEN=*), INTENT(OUT) :: name ! File name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5eget_minor_c
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
+ ! the error
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+! INTEGER, EXTERNAL :: h5eget_minor_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eget_minor_c(error_no, name)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5EGET_MINOR_C'::h5eget_minor_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: error_no
+ CHARACTER(LEN=*) :: name
+ END FUNCTION h5eget_minor_c
+ END INTERFACE
hdferr = h5eget_minor_c(error_no, name)
END SUBROUTINE h5eget_minor_f
+!----------------------------------------------------------------------
+! Name: h5eset_auto_f
+!
+! Purpose: Turns automatic error printing on or off
+!
+! Inputs:
+! printflag - flag to turn automatic error
+! - Possible values are:
+! - 1 (on), 0 (off)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+!
+!
+!
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). April 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5eset_auto_f(printflag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5eset_auto_f
+!DEC$endif
+!
INTEGER, INTENT(IN) :: printflag !flag to turn automatic error
!printing on or off
!possible values are:
!printon (1)
!printoff(0)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5eset_auto_c
+
+! INTEGER, EXTERNAL :: h5eset_auto_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5eset_auto_c(printflag)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5ESET_AUTO_C'::h5eset_auto_c
+ INTEGER :: printflag
+ END FUNCTION h5eset_auto_c
+ END INTERFACE
hdferr = h5eset_auto_c(printflag)
END SUBROUTINE h5eset_auto_f
diff --git a/fortran/src/H5FDmpioff.f90 b/fortran/src/H5FDmpioff.f90
index 491551e..ef2b7c2 100644
--- a/fortran/src/H5FDmpioff.f90
+++ b/fortran/src/H5FDmpioff.f90
@@ -2,9 +2,33 @@
! This file contains Fortran90 interfaces for H5P functions needed by || MPI programs.
!
MODULE H5FDMPIO
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
CONTAINS
+
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_mpio_f
+!
+! Purpose: Stores MPI IO communicator information to the file
+! access property list.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! November, 2000
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_fapl_mpio_f(prp_id, comm, info, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -18,11 +42,35 @@
hdferr = h5pset_fapl_mpio_c(prp_id, comm, info)
END SUBROUTINE h5pset_fapl_mpio_f
+!----------------------------------------------------------------------
+! Name: h5pget_fapl_mpio_f
+!
+! Purpose: Returns MPI communicator information.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! comm - MPI-2 communicator
+! info - MPI-2 info object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! November, 2000
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_fapl_mpio_f(prp_id, comm, info, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: comm ! buffer to return communicator
- INTEGER, INTENT(IN) :: info ! buffer to return info object
+ INTEGER, INTENT(OUT) :: info ! buffer to return info object
! as defined in MPI_FILE_OPEN of MPI-2
INTEGER, INTENT(OUT) :: hdferr ! Error code
@@ -30,24 +78,76 @@
hdferr = h5pget_fapl_mpio_c(prp_id, comm, info)
END SUBROUTINE h5pget_fapl_mpio_f
+!----------------------------------------------------------------------
+! Name: h5pset_dxpl_mpio_f
+!
+! Purpose: Sets data transfer mode.
+!
+! Inputs:
+! prp_id - data transfer property list identifier
+! data_xfer_mode - transfer mode
+! Possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! November, 2000
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: data_xfer_mode ! Data transfer mode. Possible values are:
- ! H5FD_MPIO_INDEPENDENT_F (0)
- ! H5FD_MPIO_COLLECTIVE_F (1)
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER, EXTERNAL :: h5pset_dxpl_mpio_c
hdferr = h5pset_dxpl_mpio_c(prp_id, data_xfer_mode)
END SUBROUTINE h5pset_dxpl_mpio_f
+!----------------------------------------------------------------------
+! Name: h5pget_dxpl_mpio_f
+!
+! Purpose: Returns the data transfer mode.
+!
+! Inputs:
+! prp_id - data transfer property list identifier
+! Outputs:
+! data_xfer_mode - transfer mode
+! Possible values are:
+! H5FD_MPIO_INDEPENDENT_F
+! H5FD_MPIO_COLLECTIVE_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! November, 2000
+!
+! Modifications:
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_dxpl_mpio_f(prp_id, data_xfer_mode, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: data_xfer_mode ! Data transfer mode. Possible values are:
- ! H5FD_MPIO_INDEPENDENT_F (0)
- ! H5FD_MPIO_COLLECTIVE_F (1)
+ ! H5FD_MPIO_INDEPENDENT_F
+ ! H5FD_MPIO_COLLECTIVE_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER, EXTERNAL :: h5pget_dxpl_mpio_c
diff --git a/fortran/src/H5Fff.f90 b/fortran/src/H5Fff.f90
index 077f4f6..6e0cb3a 100644
--- a/fortran/src/H5Fff.f90
+++ b/fortran/src/H5Fff.f90
@@ -6,8 +6,42 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5fcreate_f
+!
+! Purpose: Creates HDF5 files.
+!
+! Inputs:
+! name - name of the file to create
+! access_flags - File access flags. Allowable values are:
+! H5F_ACC_TRUNC_F
+! H5F_ACC_EXCL_F
+! Outputs:
+! file_id - file identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! creation_prp - file creation property list identifier
+! access_prp - file access property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5fcreate_f(name, access_flags, file_id, hdferr, &
creation_prp, access_prp)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fcreate_f
+!DEC$endif
+!
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
@@ -23,7 +57,26 @@
INTEGER :: creation_prp_default
INTEGER :: access_prp_default
INTEGER :: namelen ! Length of the name character string
- INTEGER, EXTERNAL :: h5fcreate_c
+
+! INTEGER, EXTERNAL :: h5fcreate_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5fcreate_c(name, namelen, access_flags, &
+ creation_prp_default, access_prp_default, file_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FCREATE_C':: h5fcreate_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: access_flags
+ INTEGER(HID_T), INTENT(OUT) :: file_id
+ INTEGER, INTENT(IN) :: creation_prp_default
+ INTEGER, INTENT(IN) :: access_prp_default
+ INTEGER :: namelen
+ END FUNCTION h5fcreate_c
+ END INTERFACE
creation_prp_default = H5P_DEFAULT_F
access_prp_default = H5P_DEFAULT_F
@@ -35,8 +88,44 @@
creation_prp_default, access_prp_default, file_id)
END SUBROUTINE h5fcreate_f
-
+
+!----------------------------------------------------------------------
+! Name: h5fflush_f
+!
+! Purpose: Flushes all buffers associated with a file to disk
+!
+! Inputs:
+! object_id - identifier of object used to identify
+! the file.
+! scope - specifies the scope of the flushing action.
+! Possible values are:
+! H5F_SCOPE_GLOBAL_F
+! H5F_SCOPE_LOCAL_F
+! Outputs:
+! file_id - file identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! creation_prp - file creation property list identifier
+! access_prp - file access property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5fflush_f(object_id, scope, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fflush_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: object_id !identifier for any object
@@ -57,54 +146,198 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5fflush_c
+! INTEGER, EXTERNAL :: h5fflush_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fflush_c(object_id, scope)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FFLUSH_C':: h5fflush_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ INTEGER, INTENT(IN) :: scope
+ END FUNCTION h5fflush_c
+ END INTERFACE
hdferr = h5fflush_c(object_id, scope)
END SUBROUTINE h5fflush_f
+!----------------------------------------------------------------------
+! Name: h5fmount_f
+!
+! Purpose: Mounts a file.
+!
+! Inputs:
+! loc_id - the identifier for of file or group in
+! which name is defined
+! name - the name of the group onto which the file
+! specified by child_id is to be mounted.
+! child_id - the identifier of the file to be mounted.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! access_prp - the identifier of the property list to be used
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5fmount_f(loc_id, dsetname, file_id, hdferr, access_prp)
+ SUBROUTINE h5fmount_f(loc_id, name, child_id, hdferr, access_prp)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fmount_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
! in which dsetname is defined
- CHARACTER(LEN=*), INTENT(IN) :: dsetname ! Name of the dataset
- INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier for the
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the group
+ INTEGER(HID_T), INTENT(IN) :: child_id ! File identifier for the
! file to be mounted
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER(HID_T), OPTIONAL, INTENT(IN) :: access_prp
! File access property list
! identifier
INTEGER :: access_prp_default
- INTEGER :: namelen ! Length of the dsetname character string
- INTEGER, EXTERNAL :: h5fmount_c
+ INTEGER :: namelen ! Length of the name character string
+! INTEGER, EXTERNAL :: h5fmount_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5fmount_c(loc_id, name, namelen, &
+ child_id, access_prp_default)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FMOUNT_C':: h5fmount_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(IN) :: child_id
+ INTEGER(HID_T), INTENT(IN) :: access_prp_default
+ INTEGER :: namelen
+ END FUNCTION h5fmount_c
+ END INTERFACE
+
access_prp_default = H5P_DEFAULT_F
if (present(access_prp)) access_prp_default = access_prp
- namelen = LEN(dsetname)
- hdferr = h5fmount_c(loc_id, dsetname, namelen, file_id, access_prp_default)
+ namelen = LEN(name)
+ hdferr = h5fmount_c(loc_id, name, namelen, child_id, access_prp_default)
END SUBROUTINE h5fmount_f
- SUBROUTINE h5funmount_f(loc_id, dsetname, hdferr)
+!----------------------------------------------------------------------
+! Name: h5funmount_f
+!
+! Purpose: Unmounts a file.
+!
+! Inputs:
+! loc_id - the identifier for of file or group in
+! which name is defined
+! name - the name of the mount point
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5funmount_f(loc_id, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5funmount_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for file or group
- ! in which dsetname is defined
- CHARACTER(LEN=*), INTENT(IN) :: dsetname ! Name of the dataset
+ ! at which the specified file
+ ! is to be unmounted
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the mount point
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: namelen ! Length of the dsetname character string
- INTEGER, EXTERNAL :: h5funmount_c
+ INTEGER :: namelen ! Length of the name character string
- namelen = LEN(dsetname)
- hdferr = h5funmount_c(loc_id, dsetname, namelen)
+! INTEGER, EXTERNAL :: h5fumount_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5funmount_c(loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FUNMOUNT_C':: h5funmount_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5funmount_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5funmount_c(loc_id, name, namelen)
END SUBROUTINE h5funmount_f
+!----------------------------------------------------------------------
+! Name: h5fopen_f
+!
+! Purpose: Opens HDF5 file.
+!
+! Inputs:
+! name - name of the file to acecss
+! access_flags - File access flags. Allowable values are:
+! H5F_ACC_RDWR_F
+! H5F_ACC_RDONLY_F
+! Outputs:
+! file_id - file identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! access_prp - file access property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5fopen_f(name, access_flags, file_id, hdferr, &
access_prp)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fopen_f
+!DEC$endif
+!
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
@@ -116,7 +349,25 @@
! identifier
INTEGER :: access_prp_default
INTEGER :: namelen ! Length of the name character string
- INTEGER, EXTERNAL :: h5fopen_c
+
+! INTEGER, EXTERNAL :: h5fopen_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fopen_c(name, namelen, access_flags, &
+ access_prp_default, file_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FOPEN_C':: h5fopen_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: access_flags
+ INTEGER, INTENT(IN) :: access_prp_default
+ INTEGER(HID_T), INTENT(OUT) :: file_id
+ END FUNCTION h5fopen_c
+ END INTERFACE
access_prp_default = H5P_DEFAULT_F
if (present(access_prp)) access_prp_default = access_prp
@@ -125,47 +376,213 @@
access_prp_default, file_id)
END SUBROUTINE h5fopen_f
+
+!----------------------------------------------------------------------
+! Name: h5freopen_f
+!
+! Purpose: Reopens HDF5 file.
+!
+! Inputs:
+! file_id - identifier of a file for which an
+! additional identifier is required
+! Outputs:
+! ret_file_id - new file identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5freopen_f(file_id, ret_file_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5freopen_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: ret_file_id ! New File identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5freopen_c
-
- hdferr = h5freopen_c(file_id, ret_file_id)
+! INTEGER, EXTERNAL :: h5freopen_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5freopen_c(file_id, ret_file_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FREOPEN_C':: h5freopen_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: ret_file_id
+ END FUNCTION h5freopen_c
+ END INTERFACE
+
+ hdferr = h5freopen_c(file_id, ret_file_id)
+
END SUBROUTINE h5freopen_f
+!----------------------------------------------------------------------
+! Name: h5fget_create_plist_f
+!
+! Purpose: Returns a file creation property list identifier.
+!
+! Inputs:
+! file_id - identifier of a file to get
+! get creation property list of
+! Outputs:
+! prop_id - creation property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5fget_create_plist_f(file_id, prop_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fget_create_plist_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: prop_id ! File creation property
! list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5fget_create_plist_c
+
+! INTEGER, EXTERNAL :: h5fget_create_plist_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fget_create_plist_c(file_id, prop_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+!MS$ATTRIBUTES C,reference,alias:'_H5FGET_CREATE_PLIST_C':: h5fget_create_plist_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: prop_id
+ END FUNCTION h5fget_create_plist_c
+ END INTERFACE
hdferr = h5fget_create_plist_c(file_id, prop_id)
END SUBROUTINE h5fget_create_plist_f
+
+!----------------------------------------------------------------------
+! Name: h5fget_access_plist_f
+!
+! Purpose: Returns a file access property list identifier.
+!
+! Inputs:
+! file_id - identifier of a file to get
+! get creation property list of
+! Outputs:
+! access_id - access property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5fget_access_plist_f(file_id, access_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fget_access_plist_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER(HID_T), INTENT(OUT) :: access_id ! File access property
! list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5fget_access_plist_c
+
+! INTEGER, EXTERNAL :: h5fget_access_plist_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fget_access_plist_c(file_id, access_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+!MS$ATTRIBUTES C,reference,alias:'_H5FGET_CREATE_PLIST_C':: h5fget_access_plist_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ INTEGER(HID_T), INTENT(OUT) :: access_id
+ END FUNCTION h5fget_access_plist_c
+ END INTERFACE
+
hdferr = h5fget_access_plist_c(file_id, access_id)
END SUBROUTINE h5fget_access_plist_f
+
+!----------------------------------------------------------------------
+! Name: h5fis_hdf5_f
+!
+! Purpose: Determines whether a file is in the HDF5 format.
+!
+! Inputs:
+! name - name of the file to check
+! Outputs:
+! status - indicates if file is and HDF5 file
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
-
SUBROUTINE h5fis_hdf5_f(name, status, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fis_hdf5_f
+!DEC$endif
+!
IMPLICIT NONE
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the file
@@ -175,7 +592,22 @@
INTEGER :: namelen ! Length of the name character string
INTEGER :: flag ! "TRUE/FALSE" flag from C routine
! to define status value.
- INTEGER, EXTERNAL :: h5fis_hdf5_c
+
+! INTEGER, EXTERNAL :: h5fis_hdf5_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fis_hdf5_c(name, namelen, flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FIS_HDF5_C':: h5fis_hdf5_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER :: flag
+ END FUNCTION h5fis_hdf5_c
+ END INTERFACE
namelen = LEN(name)
hdferr = h5fis_hdf5_c(name, namelen, flag)
@@ -184,12 +616,54 @@
END SUBROUTINE h5fis_hdf5_f
+!----------------------------------------------------------------------
+! Name: h5fclose_f
+!
+! Purpose: Closes HDF5 file.
+!
+! Inputs:
+! file_id - file identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5fclose_f(file_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5fclose_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: file_id ! File identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5fclose_c
+
+! INTEGER, EXTERNAL :: h5fclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5fclose_c(file_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5FCLOSE_C':: h5fclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: file_id
+ END FUNCTION h5fclose_c
+ END INTERFACE
hdferr = h5fclose_c(file_id)
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90
index de6a8f0..96bc374 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.f90
@@ -2,14 +2,44 @@
! This file contains Fortran90 interfaces for H5F functions.
!
MODULE H5G
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
CONTAINS
- !!!============================================================
-
+!----------------------------------------------------------------------
+! Name: h5gcreate_f
+!
+! Purpose: Creates a new group.
+!
+! Inputs:
+! loc_id - location identifier
+! name - group name at the specified location
+! Outputs:
+! grp_id - group identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! size_hint - a parameter indicating the number of bytes
+! to reserve for the names that will appear
+! in the group
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gcreate_f(loc_id, name, grp_id, hdferr, size_hint)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gcreate_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -24,7 +54,26 @@
! in the group
INTEGER :: namelen ! Length of the name character string
INTEGER(SIZE_T) :: size_hint_default
- INTEGER, EXTERNAL :: h5gcreate_c
+
+! INTEGER, EXTERNAL :: h5gcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gcreate_c(loc_id, name, namelen, &
+ size_hint_default, grp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GCREATE_C'::h5gcreate_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(SIZE_T) :: size_hint_default
+ INTEGER(HID_T), INTENT(OUT) :: grp_id
+ END FUNCTION h5gcreate_c
+ END INTERFACE
+
size_hint_default = OBJECT_NAMELEN_DEFAULT_F
if (present(size_hint)) size_hint_default = size_hint
namelen = LEN(name)
@@ -32,10 +81,39 @@
grp_id)
END SUBROUTINE h5gcreate_f
-
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gopen_f
+!
+! Purpose: Opens an existing group.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the group to open
+! Outputs:
+! grp_id - group identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gopen_f(loc_id, name, grp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gopen_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -44,30 +122,118 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Length of the name character string
- INTEGER, EXTERNAL :: h5gopen_c
+
+! INTEGER, EXTERNAL :: h5gopen_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gopen_c(loc_id, name, namelen, grp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GOPEN_C'::h5gopen_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(OUT) :: grp_id
+ END FUNCTION h5gopen_c
+ END INTERFACE
namelen = LEN(name)
hdferr = h5gopen_c(loc_id, name, namelen, grp_id)
END SUBROUTINE h5gopen_f
-
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gclose_f
+!
+! Purpose: Closes the specified group.
+!
+! Inputs:
+! grp_id - group identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gclose_f(grp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gclose_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: grp_id ! Group identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5gclose_c
+
+! INTEGER, EXTERNAL :: h5gclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gclose_c(grp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GCLOSE_C'::h5gclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: grp_id
+ END FUNCTION h5gclose_c
+ END INTERFACE
hdferr = h5gclose_c(grp_id)
END SUBROUTINE h5gclose_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gget_obj_info_idx_f
+!
+! Purpose: Returns name and type of the group member identified by
+! its index.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the group at the specified location
+! idx - object index (zero-based)
+! Outputs:
+! obj_name - object name
+! obj_type - object type
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gget_obj_info_idx_f(loc_id, name, idx, &
obj_name, obj_type, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gget_obj_info_idx_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -79,7 +245,29 @@
INTEGER :: namelen ! Length of the name character string
INTEGER :: obj_namelen ! Length of the obj_name character string
- INTEGER, EXTERNAL :: h5gget_obj_info_idx_c
+
+! INTEGER, EXTERNAL :: h5gget_obj_info_idx_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gget_obj_info_idx_c(loc_id, name, &
+ namelen, idx, &
+ obj_name, obj_namelen, obj_type)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GGET_OBJ_INFO_IDX_C'::h5gget_obj_info_idx_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: obj_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: idx
+ CHARACTER(LEN=*), INTENT(OUT) :: obj_name
+ INTEGER :: obj_namelen
+ INTEGER, INTENT(OUT) :: obj_type
+ END FUNCTION h5gget_obj_info_idx_c
+ END INTERFACE
namelen = LEN(name)
obj_namelen = LEN(obj_name)
@@ -87,10 +275,40 @@
obj_name, obj_namelen, obj_type)
END SUBROUTINE h5gget_obj_info_idx_f
-
- !!!============================================================
+
+!----------------------------------------------------------------------
+! Name: h5gn_members_f
+!
+! Purpose: Returns the number of group members.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the group at the specified location
+! Outputs:
+! nmembers - number of group members
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gn_members_f(loc_id, name, nmembers, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gn_members_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -100,17 +318,69 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Length of the name character string
- INTEGER, EXTERNAL :: h5gn_members_c
+! INTEGER, EXTERNAL :: h5gn_members_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gn_members_c(loc_id, name, namelen, nmembers)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GN_MEMBERS_C'::h5gn_members_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(OUT) :: nmembers
+ END FUNCTION h5gn_members_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5gn_members_c(loc_id, name, namelen, nmembers)
END SUBROUTINE h5gn_members_f
- !!!============================================================
-
+!----------------------------------------------------------------------
+! Name: h5glink_f
+!
+! Purpose: Creates a link of the specified type from new_name
+! to current_name.
+!
+! Inputs:
+! loc_id - location identifier
+! link_type - link type
+! Possible values are:
+! H5G_LINK_HARD_F (0) or
+! H5G_LINK_SOFT_F (1)
+! current_name - name of the existing object if link is a
+! hard link. Can be anything for the soft link.
+! new_name - new name for the object
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5glink_f(loc_id, link_type, current_name, &
new_name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5glink_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -126,7 +396,28 @@
INTEGER :: current_namelen ! Lenghth of the current_name string
INTEGER :: new_namelen ! Lenghth of the new_name string
- INTEGER, EXTERNAL :: h5glink_c
+
+! INTEGER, EXTERNAL :: h5glink_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5glink_c(loc_id, link_type, current_name, &
+ current_namelen, new_name, new_namelen)
+
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GLINK_C'::h5glink_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: current_name
+ !DEC$ATTRIBUTES reference :: new_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER, INTENT(IN) :: link_type
+ CHARACTER(LEN=*), INTENT(IN) :: current_name
+ INTEGER :: current_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_name
+ INTEGER :: new_namelen
+ END FUNCTION h5glink_c
+ END INTERFACE
current_namelen = LEN(current_name)
new_namelen = LEN(new_name)
@@ -134,9 +425,40 @@
current_namelen, new_name, new_namelen)
END SUBROUTINE h5glink_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gunlink_f
+!
+! Purpose: Removes the specified name from the group graph and
+! decrements the link count for the object to which name
+! points
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the object to unlink
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gunlink_f(loc_id, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gunlink_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -145,15 +467,60 @@
INTEGER :: namelen ! Lenghth of the name character string
- INTEGER, EXTERNAL :: h5gunlink_c
+! INTEGER, EXTERNAL :: h5gunlink_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gunlink_c(loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GUNLINK_C'::h5gunlink_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5gunlink_c
+ END INTERFACE
namelen = LEN(name)
hdferr = h5gunlink_c(loc_id, name, namelen)
END SUBROUTINE h5gunlink_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gmove_f
+!
+! Purpose: Renames an object within an HDF5 file.
+!
+! Inputs:
+! loc_id - location identifier
+! name - object's name at specified location
+! new_name - object's new name
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5gmove_f(loc_id, name, new_name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gmove_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -163,16 +530,68 @@
INTEGER :: namelen ! Lenghth of the current_name string
INTEGER :: new_namelen ! Lenghth of the new_name string
- INTEGER, EXTERNAL :: h5gmove_c
+
+! INTEGER, EXTERNAL :: h5gmove_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GMOVE_C'::h5gmove_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: new_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_name
+ INTEGER :: new_namelen
+ END FUNCTION h5gmove_c
+ END INTERFACE
namelen = LEN(name)
new_namelen = LEN(new_name)
hdferr = h5gmove_c(loc_id, name, namelen, new_name, new_namelen)
END SUBROUTINE h5gmove_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gget_linkval_f
+!
+! Purpose: Returns the name of the object that the symbolic link
+! points to.
+!
+! Inputs:
+! loc_id - location identifier
+! name - symbolic link to the object whose name
+! is to be returned.
+! size - maximum number of characters to be returned
+! Outputs:
+! buffer - a buffer to hold the name of the object
+! being sought
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gget_linkval_f(loc_id, name, size, buffer, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gget_linkval_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -185,15 +604,63 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Lenghth of the current_name string
- INTEGER, EXTERNAL :: h5gget_linkval_c
+
+! INTEGER, EXTERNAL :: h5gget_linkval_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gget_linkval_c(loc_id, name, namelen, size, buffer)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GGET_LINKVAL_C'::h5gget_linkval_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: buffer
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(OUT) :: buffer
+ END FUNCTION h5gget_linkval_c
+ END INTERFACE
namelen = LEN(name)
hdferr = h5gget_linkval_c(loc_id, name, namelen, size, buffer)
END SUBROUTINE h5gget_linkval_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gset_comment_f
+!
+! Purpose: Sets comment for specified object.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the object
+! comment - comment to set for the object
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gset_comment_f(loc_id, name, comment, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gset_comment_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -203,16 +670,66 @@
INTEGER :: namelen ! Lenghth of the current_name string
INTEGER :: commentlen ! Lenghth of the comment string
- INTEGER, EXTERNAL :: h5gset_comment_c
+
+! INTEGER, EXTERNAL :: h5gset_comment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gset_comment_c(loc_id, name, namelen, &
+ comment, commentlen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GSET_COMMENT_C'::h5gset_comment_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: comment
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*), INTENT(IN) :: comment
+ INTEGER :: commentlen
+ END FUNCTION h5gset_comment_c
+ END INTERFACE
namelen = LEN(name)
commentlen = LEN(comment)
hdferr = h5gset_comment_c(loc_id, name, namelen, comment, commentlen)
END SUBROUTINE h5gset_comment_f
- !!!============================================================
+!----------------------------------------------------------------------
+! Name: h5gget_comment_f
+!
+! Purpose: Retrieves comment for specified object.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the object at specified location
+! size - size of the buffer required to hold comment
+! Outputs:
+! buffer - buffer to hold object's comment
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5gget_comment_f(loc_id, name, size, buffer, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5gget_comment_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
@@ -223,12 +740,30 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Lenghth of the current_name string
- INTEGER, EXTERNAL :: h5gget_comment_c
+
+! INTEGER, EXTERNAL :: h5gget_comment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5gget_comment_c(loc_id, name, namelen, &
+ size, buffer)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5GGET_COMMENT_C'::h5gget_comment_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ !DEC$ATTRIBUTES reference :: buffer
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(OUT) :: buffer
+ END FUNCTION h5gget_comment_c
+ END INTERFACE
namelen = LEN(name)
hdferr = h5gget_comment_c(loc_id, name, namelen, size, buffer)
END SUBROUTINE h5gget_comment_f
- !!!============================================================
END MODULE H5G
diff --git a/fortran/src/H5Git.c b/fortran/src/H5Git.c
index c18c3d3..4ffd8c8 100644
--- a/fortran/src/H5Git.c
+++ b/fortran/src/H5Git.c
@@ -7,7 +7,6 @@
#include "hdf5.h"
#include "H5Git.h"
-
#define FALSE 0
herr_t count_elems(hid_t loc_id, const char *name, void *opdata);
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90
index cd50da3..f0ac299 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.f90
@@ -3,25 +3,73 @@
!
MODULE H5I
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5iget_type_f
+!
+! Purpose: Retrieves the type of an object.
+!
+! Inputs: obj_id - object identifier
+! Outputs:
+! type - type of the object, possible values:
+! H5I_FILE_F
+! H5I_GROUP_F
+! H5I_DATATYPE_F
+! H5I_DATASPACE_F
+! H5I_DATASET_F
+! H5I_ATTR_F
+! H5I_BADID_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 5, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5iget_type_f(obj_id, type, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5iget_type_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: obj_id !Object identifier
INTEGER, INTENT(OUT) :: type !type of an object.
!possible values are:
- !H5I_FILE_F(1)
- !H5I_GROUP_F(2)
- !H5I_DATATYPE_F(3)
- !H5I_DATASPACE_F(4)
- !H5I_DATASET_F(5)
- !H5I_ATTR_F(6)
- !H5I_BADID_F(-1)
+ !H5I_FILE_F
+ !H5I_GROUP_F
+ !H5I_DATATYPE_F
+ !H5I_DATASPACE_F
+ !H5I_DATASET_F
+ !H5I_ATTR_F
+ !H5I_BADID_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5iget_type_c
+
+! INTEGER, EXTERNAL :: h5iget_type_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5iget_type_c(obj_id, type)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5IGET_TYPE_C':: h5iget_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: type
+ END FUNCTION h5iget_type_c
+ END INTERFACE
hdferr = h5iget_type_c(obj_id, type)
END SUBROUTINE h5iget_type_f
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index d145427..785157e 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -739,12 +739,12 @@ nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik)
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
+nh5pget_driver_c (hid_t_f *prp_id, hid_t_f* driver)
{
int ret_value = -1;
/*
hid_t c_prp_id;
- H5F_driver_t c_driver;
+ hid_t c_driver;
*/
/*
@@ -753,7 +753,7 @@ nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
/*
c_prp_id = *prp_id;
c_driver = H5Pget_driver(c_prp_id);
- *driver = (int_f) c_driver;
+ *driver = (hid_t_f) c_driver;
if (c_driver < 0) return ret_value;
*/
ret_value = 0;
@@ -761,114 +761,118 @@ nh5pget_driver_c (hid_t_f *prp_id, int_f* driver)
}
/*----------------------------------------------------------------------------
- * Name: h5pset_stdio_c
+ * Name: h5pset_fapl_stdio_c
* Purpose: Call H5Pset_stdio to set the low level file driver to
* use the functions declared in the stdio.h
* Inputs: prp_id - property list identifier
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 7, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_stdio_c (hid_t_f *prp_id)
+nh5pset_fapl_stdio_c (hid_t_f *prp_id)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pset_stdio function.
+ * Call H5Pset_fapl_stdio function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_stdio(c_prp_id); */
+ ret = H5Pset_fapl_stdio(c_prp_id);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
-
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_stdio_c
- * Purpose: Call H5Pget_stdio to determine whther the low level file driver
+ * Name: h5pget_fapl_stdio_c
+ * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the stdio.h
* Inputs: prp_id - property list identifier
* Outputs: io - value indicates whether the file driver uses
* the functions declared in the stdio.h
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_stdio_c (hid_t_f *prp_id, int_f* io)
+nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pget_stdio function.
+ * Call H5Pget_fapl_stdio function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_stdio(c_prp_id); */
+ ret = H5Pget_fapl_stdio(c_prp_id);
if (ret < 0) return ret_value;
*io = (int_f)ret;
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
+
/*----------------------------------------------------------------------------
- * Name: h5pset_sec2_c
- * Purpose: Call H5Pset_sec2 to set the low level file driver to
+ * Name: h5pset_fapl_sec2_c
+ * Purpose: Call H5Pset_fapl_sec2 to set the low level file driver to
* use the functions declared in the unistd.h
* Inputs: prp_id - property list identifier
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_sec2_c (hid_t_f *prp_id)
+nh5pset_fapl_sec2_c (hid_t_f *prp_id)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pset_sec2 function.
+ * Call H5Pset_fapl_sec2 function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_sec2(c_prp_id); */
+ ret = H5Pset_fapl_sec2(c_prp_id);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_sec2_c
- * Purpose: Call H5Pget_stdio to determine whther the low level file driver
+ * Name: h5pget_fapl_sec2_c
+ * Purpose: Call H5Pget_fapl_stdio to determine whther the low level file driver
* uses the functions declared in the unistd.h
* Inputs: prp_id - property list identifier
* Outputs: sec2 - value indicates whether the file driver uses
* the functions declared in the unistd.h
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_sec2_c (hid_t_f *prp_id, int_f* sec2)
+nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
/*
- * Call H5Pget_sec2 function.
+ * Call H5Pget_fapl_sec2 function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_sec2(c_prp_id); */
+ ret = H5Pget_fapl_sec2(c_prp_id);
if (ret < 0) return ret_value;
*sec2 = (int_f)ret;
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
/*----------------------------------------------------------------------------
* Name: h5pset_alignment_c
@@ -889,12 +893,12 @@ nh5pset_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
hid_t c_prp_id;
herr_t ret;
hsize_t c_threshold, c_alignment;
- c_threshold = *threshold;
- c_alignment = * alignment;
+ c_threshold = (hsize_t)*threshold;
+ c_alignment = (hsize_t)* alignment;
/*
* Call H5Pset_alignment function.
*/
- c_prp_id = *prp_id;
+ c_prp_id = (hid_t)*prp_id;
ret = H5Pset_alignment(c_prp_id, c_threshold, c_alignment);
if (ret < 0) return ret_value;
ret_value = 0;
@@ -923,7 +927,7 @@ nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
/*
* Call H5Pget_alignment function.
*/
- c_prp_id = *prp_id;
+ c_prp_id = (hid_t)*prp_id;
ret = H5Pget_alignment(c_prp_id, &c_threshold, &c_alignment);
if (ret < 0) return ret_value;
*threshold = (hsize_t_f)c_threshold;
@@ -934,78 +938,86 @@ nh5pget_alignment_c (hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment
}
/*----------------------------------------------------------------------------
- * Name: h5pset_core_c
- * Purpose: Call H5Pset_core to set the low-level file driver
+ * Name: h5pset_fapl_core_c
+ * Purpose: Call H5Pset_fapl_core to set the low-level file driver
* to use malloc() and free()
* Inputs: prp_id - property list identifier
* increment - File block size in bytes
+ * flag - Boolean flag indicating whether to write the
+ * file contents to disk when the file is closed.
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_core_c (hid_t_f *prp_id, size_t_f* increment)
+nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
size_t c_increment;
+ hbool_t c_backing_store;
c_increment = (size_t)*increment;
+ c_backing_store = (hbool_t)*flag;
+
/*
- * Call H5Pset_core function.
+ * Call H5Pset_fapl_core function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_core(c_prp_id, c_increment); */
+ ret = H5Pset_fapl_core(c_prp_id, c_increment, c_backing_store);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pget_core_c
- * Purpose: Call H5Pget_core to determine whether the file access
+ * Name: h5pget_fapl_core_c
+ * Purpose: Call H5Pget_fapl_core to determine whether the file access
* property list is set to the core drive
* Inputs: prp_id - property list identifier
* Outputs increment - File block size in bytes
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_core_c (hid_t_f *prp_id, size_t_f* increment)
+nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag)
{
int ret_value = -1;
hid_t c_prp_id;
herr_t ret = -1;
size_t c_increment = 0;
+ hbool_t c_backing_store;
+ *flag = 0;
/*
- * Call H5Pset_increment function.
+ * Call H5Pset_fapl_core function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_core(c_prp_id, &c_increment); */
+ ret = H5Pget_fapl_core(c_prp_id, &c_increment, &c_backing_store);
if (ret < 0) return ret_value;
*increment = (size_t_f)c_increment;
+ if(c_backing_store > 0) *flag = 1;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pset_family_c
- * Purpose: Call H5Pset_family to set the file access properties list
+ * Name: h5pset_fapl_family_c
+ * Purpose: Call H5Pset_fapl_family to set the file access properties list
* to the family driver
* Inputs: prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
+nh5pset_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1013,32 +1025,32 @@ nh5pset_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist )
hsize_t c_memb_size;
hid_t c_memb_plist;
c_memb_size =(hsize_t) *memb_size;
- c_memb_plist =(hsize_t) *memb_plist;
+ c_memb_plist =(hid_t) *memb_plist;
/*
- * Call H5Pset_family function.
+ * Call H5Pset_fapl_family function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pset_family(c_prp_id, c_memb_size, c_memb_plist); */
+ ret = H5Pset_fapl_family(c_prp_id, c_memb_size, c_memb_plist);
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
/*----------------------------------------------------------------------------
- * Name: h5pget_family_c
- * Purpose: Call H5Pget_family to determine whether the file access
+ * Name: h5pget_fapl_family_c
+ * Purpose: Call H5Pget_fapl_family to determine whether the file access
* property list is set to the family driver
* Inputs: prp_id - property list identifier
* memb_size - Logical size, in bytes, of each family member.
* memb_plist - Identifier of the file access property list
* for each member of the family
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
+nh5pget_fapl_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1046,13 +1058,13 @@ nh5pget_family_c(hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist)
hsize_t c_memb_size = 0;
hid_t c_memb_plist = -1;
/*
- * Call H5Pget_family function.
+ * Call H5Pget_fapl_family function.
*/
c_prp_id = *prp_id;
- /* ret = H5Pget_family(c_prp_id, &c_memb_size, &c_memb_plist); */
+ ret = H5Pget_fapl_family(c_prp_id, &c_memb_size, &c_memb_plist);
if (ret < 0) return ret_value;
*memb_size = (hsize_t_f)c_memb_size;
- *memb_plist = (hsize_t_f)c_memb_plist;
+ *memb_plist = (hid_t_f)c_memb_plist;
ret_value = 0;
return ret_value;
@@ -1141,8 +1153,8 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f
}
/*----------------------------------------------------------------------------
- * Name: h5pset_split_c
- * Purpose: Call H5Pset_split to set he low-level driver to split meta data
+ * Name: h5pset_fapl_split_c
+ * Purpose: Call H5Pset_fapl_split to set he low-level driver to split meta data
* from raw data
* Inputs: prp_id - property list identifier
* meta_len - Length of meta_ext
@@ -1152,12 +1164,12 @@ nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9, 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist)
+nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1172,21 +1184,22 @@ nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_p
if (c_raw_ext == NULL) return ret_value;
/*
- * Call H5Pset_split function.
+ * Call H5Pset_fapl_split function.
*/
c_prp_id = *prp_id;
c_meta_plist = *meta_plist;
c_raw_plist = *raw_plist;
- /*ret = H5Pset_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );*/
+ ret = H5Pset_fapl_split(c_prp_id, c_meta_ext, c_meta_plist, c_raw_ext, c_raw_plist );
if (ret < 0) return ret_value;
ret_value = 0;
return ret_value;
}
+#ifdef NO_SUCH_F90_FUNCTION
/*----------------------------------------------------------------------------
- * Name: h5pget_split_c
- * Purpose: Call H5Pget_split to determine whether the file access
+ * Name: h5pget_fapl_split_c
+ * Purpose: Call H5Pget_fapl_split to determine whether the file access
* property list is set to the split driver
* Inputs: prp_id - property list identifier
* meta_ext_size - Number of characters of the meta file extension
@@ -1198,12 +1211,12 @@ nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_p
* raw_ext - Name of the extension for the raw file filename.
* raw_plist - Identifier of the raw file access property list
* Returns: 0 on success, -1 on failure
- * Programmer: Xiangyang Su
- * Friday, February 25, 2000
+ * Programmer: Elena Pourmal
+ * March 9 , 2001
* Modifications:
*---------------------------------------------------------------------------*/
int_f
-nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist)
+nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist)
{
int ret_value = -1;
hid_t c_prp_id;
@@ -1222,10 +1235,10 @@ nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_
if(c_meta_ext == NULL || c_raw_ext == NULL) return ret_value;
/*
- * Call H5Pget_split function.
+ * Call H5Pget_fapl_split function.
*/
c_prp_id = *prp_id;
- /*ret = H5Pget_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist ); */
+ ret = H5Pget_fapl_split(c_prp_id, c_meta_ext_size, c_meta_ext,&c_meta_plist, c_raw_ext_size, c_raw_ext, &c_raw_plist );
if (ret < 0) return ret_value;
*meta_plist = c_meta_plist;
@@ -1236,6 +1249,7 @@ nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_
ret_value = 0;
return ret_value;
}
+#endif /*NO_SUCH_F90_FUNCTION*/
/*----------------------------------------------------------------------------
* Name: h5pset_gc_references_c
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index ec3414c..9661990 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -3,8 +3,7 @@
!
MODULE H5P
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
INTERFACE h5pset_fill_value_f
MODULE PROCEDURE h5pset_fill_value_integer
@@ -26,85 +25,403 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5pcreate_f
+!
+! Purpose: Creates a new property as an instance of a property
+! list class.
+!
+! Inputs:
+! classtype - type of the property list to be created.
+! Possible values are:
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! Outputs:
+! prp_id - property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pcreate_f(classtype, prp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pcreate_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5P_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5P_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER(HID_T), INTENT(OUT) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcreate_c
+
+! INTEGER, EXTERNAL :: h5pcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_c(classtype, prp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCREATE_C'::h5pcreate_c
+ !DEC$ ENDIF
+ INTEGER, INTENT(IN) :: classtype
+ INTEGER(HID_T), INTENT(OUT) :: prp_id
+ END FUNCTION h5pcreate_c
+ END INTERFACE
+
hdferr = h5pcreate_c(classtype, prp_id)
END SUBROUTINE h5pcreate_f
+!----------------------------------------------------------------------
+! Name: h5pset_preserve_f
+!
+! Purpose: Sets the dataset transfer property list status to
+! TRUE or FALSE for initializing compound datatype
+! members during write/read operations.
+!
+! Inputs:
+! prp_id - property list identifier
+! flag - status flag
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_preserve_f(prp_id, flag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_preserve_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: flag ! TRUE/FALSE flag to set the dataset
! transfer property for partila writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_preserve_c
+
+! INTEGER, EXTERNAL :: h5pset_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_PRESERVE_C'::h5pset_preserve_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: flag
+ END FUNCTION h5pset_preserve_c
+ END INTERFACE
+
hdferr = h5pset_preserve_c(prp_id, flag)
END SUBROUTINE h5pset_preserve_f
+!----------------------------------------------------------------------
+! Name: h5pget_preserve_f
+!
+! Purpose: Checks status of the dataset transfer property list.
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! flag - status flag
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_preserve_f(prp_id, flag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_preserve_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: flag ! TRUE/FALSE flag. Shows status of the dataset's
! transfer property for partial writing/reading
! compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_preserve_c
+
+! INTEGER, EXTERNAL :: h5pget_preserve_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_preserve_c(prp_id, flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_PRESERVE_C'::h5pget_preserve_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: flag
+ END FUNCTION h5pget_preserve_c
+ END INTERFACE
+
hdferr = h5pget_preserve_c(prp_id, flag)
END SUBROUTINE h5pget_preserve_f
+!----------------------------------------------------------------------
+! Name: h5pget_class_f
+!
+! Purpose: Returns the property list class for a property list.
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! classtype - property list class
+! Possible values are:
+! H5P_NO_CLASS
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5PE_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_MOUNT_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_class_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: classtype ! The type of the property list
! to be created. Possible values
! are:
- ! H5P_NO_CLASS (-1)
- ! H5P_FILE_CREATE_F (0)
- ! H5P_FILE_ACCESS_F (1)
- ! H5PE_DATASET_CREATE_F (2)
- ! H5P_DATASET_XFER_F (3)
- ! H5P_MOUNT_F (4)
+ ! H5P_NO_CLASS
+ ! H5P_FILE_CREATE_F
+ ! H5P_FILE_ACCESS_F
+ ! H5PE_DATASET_CREATE_F
+ ! H5P_DATASET_XFER_F
+ ! H5P_MOUNT_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_class_c
+
+! INTEGER, EXTERNAL :: h5pget_class_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CLASS_C'::h5pget_class_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: classtype
+ END FUNCTION h5pget_class_c
+ END INTERFACE
+
hdferr = h5pget_class_c(prp_id, classtype)
END SUBROUTINE h5pget_class_f
+!----------------------------------------------------------------------
+! Name: h5pcopy_f
+!
+! Purpose: Copies an existing property list to create a new
+! property list
+!
+! Inputs:
+! prp_id - property list identifier
+! Outputs:
+! new_prp_id - new property list identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pcopy_f(prp_id, new_prp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pcopy_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(OUT) :: new_prp_id
! Identifier of property list
! copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pcopy_c
+
+! INTEGER, EXTERNAL :: h5pcopy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pcopy_c(prp_id, new_prp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCOPY_C'::h5pcopy_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: new_prp_id
+ END FUNCTION h5pcopy_c
+ END INTERFACE
+
hdferr = h5pcopy_c(prp_id, new_prp_id)
END SUBROUTINE h5pcopy_f
+!----------------------------------------------------------------------
+! Name: h5pclose_f
+!
+! Purpose: Terminates access to a property list.
+!
+! Inputs:
+! prp_id - identifier of the property list to
+! terminate access to.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pclose_f(prp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pclose_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pclose_c
+
+! INTEGER, EXTERNAL :: h5pclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pclose_c(prp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PCLOSE_C'::h5pclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pclose_c
+ END INTERFACE
+
hdferr = h5pclose_c(prp_id)
END SUBROUTINE h5pclose_f
+!----------------------------------------------------------------------
+! Name: h5pset_chunk_f
+!
+! Purpose: Sets the size of the chunks used to store
+! a chunked layout dataset.
+!
+! Inputs:
+! prp_id - datatset creation property list identifier
+! ndims - number of dimensions for each chunk
+! dims - array with dimension sizes for each chunk
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_chunk_f(prp_id, ndims, dims, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_chunk_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions
@@ -112,12 +429,60 @@
! Array containing sizes of
! chunk dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_chunk_c
+
+! INTEGER, EXTERNAL :: h5pset_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CHUNK_C'::h5pset_chunk_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ndims
+ INTEGER(HSIZE_T), DIMENSION(ndims), INTENT(IN) :: dims
+ END FUNCTION h5pset_chunk_c
+ END INTERFACE
+
hdferr = h5pset_chunk_c(prp_id, ndims, dims)
END SUBROUTINE h5pset_chunk_f
+!----------------------------------------------------------------------
+! Name: h5pget_chunk_f
+!
+! Purpose: Retrieves the size of chunks for the raw data of a
+! chunked layout dataset
+!
+! Inputs:
+! prp_id - property list identifier
+! ndims - size of dims array
+! Outputs:
+! dims - array with dimension sizes for each chunk
+! hdferr: - error code
+! Success: number of chunk dimensions
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_chunk_f(prp_id, ndims, dims, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_chunk_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: ndims ! Number of chunk dimensions to
@@ -128,23 +493,118 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code; number of
! chunk dimensions on success,
! -1 on failure
- INTEGER, EXTERNAL :: h5pget_chunk_c
+
+! INTEGER, EXTERNAL :: h5pget_chunk_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_chunk_c(prp_id, ndims, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CHUNK_C'::h5pget_chunk_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER :: ndims
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
+ END FUNCTION h5pget_chunk_c
+ END INTERFACE
+
hdferr = h5pget_chunk_c(prp_id, ndims, dims)
END SUBROUTINE h5pget_chunk_f
+!----------------------------------------------------------------------
+! Name: h5pset_deflate_f
+!
+! Purpose: Sets compression method and compression level.
+!
+! Inputs:
+! prp_id - property list identifier
+! level - compression level
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_deflate_f(prp_id, level, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_deflate_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: level ! Compression level
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_deflate_c
+
+! INTEGER, EXTERNAL :: h5pset_deflate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_deflate_c(prp_id, level)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_DEFLATE_C'::h5pset_deflate_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: level
+ END FUNCTION h5pset_deflate_c
+ END INTERFACE
hdferr = h5pset_deflate_c(prp_id, level)
+
END SUBROUTINE h5pset_deflate_f
+!----------------------------------------------------------------------
+! Name: h5pset(get)fill_value_f
+!
+! Purpose: Sets(gets) fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! type_id - datatype identifier for fill value
+! fillvalue - fill value
+! Outputs:
+! ( type_id - datatype identifier for fill value )
+! ( fillvalue - fill value )
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment: h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fill_value_integer
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -152,13 +612,34 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_integer
SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fill_value_integer
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -166,13 +647,34 @@
! (in memory)
INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_integer
SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fill_value_real
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -180,13 +682,34 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_real
SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fill_value_real
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -194,13 +717,34 @@
! (in memory)
REAL, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ REAL :: fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_real
SUBROUTINE h5pset_fill_value_double(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fill_value_double
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -208,13 +752,34 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUE_C'::h5pset_fill_value_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_c
+ END INTERFACE
+
hdferr = h5pset_fill_value_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
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fill_value_double
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -222,13 +787,33 @@
! (in memory)
DOUBLE PRECISION, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_value_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUE_C'::h5pget_fill_value_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_c
+ END INTERFACE
+
hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_double
-
SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fill_value_char
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -236,13 +821,34 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pset_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER, INTENT(IN) :: fillvalue
+ END FUNCTION h5pset_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pset_fill_value_char
-
SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fill_value_char
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
@@ -250,12 +856,63 @@
! (in memory)
CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+
+! INTEGER, EXTERNAL :: h5pget_fill_valuec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: fillvalue
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER :: fillvalue
+ END FUNCTION h5pget_fill_valuec_c
+ END INTERFACE
+
hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
END SUBROUTINE h5pget_fill_value_char
+!----------------------------------------------------------------------
+! Name: h5pget_version_f
+!
+! Purpose: Retrieves the version information of various objects
+! for a file creation property list
+!
+! Inputs:
+! prp_id - file createion property list identifier
+! Outputs:
+! boot - super block version number
+! freelist - global freelist version number
+! stab - symbol table version number
+! shhdr - shared object header version number
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_version_f(prp_id, boot, freelist, &
stab, shhdr, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_version_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
@@ -269,32 +926,170 @@
INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr !array to put shared
!object header version number
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_version_c
+
+! INTEGER, EXTERNAL :: h5pget_version_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_VERSION_C'::h5pget_version_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, DIMENSION(:), INTENT(OUT) :: boot
+ INTEGER, DIMENSION(:), INTENT(OUT) :: freelist
+ INTEGER, DIMENSION(:), INTENT(OUT) :: stab
+ INTEGER, DIMENSION(:), INTENT(OUT) :: shhdr
+ END FUNCTION h5pget_version_c
+ END INTERFACE
+
hdferr = h5pget_version_c(prp_id, boot, freelist, stab, shhdr)
END SUBROUTINE h5pget_version_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_userblock_f
+!
+! Purpose: Sets user block size
+!
+! Inputs:
+! prp_id - file creation property list to modify
+! size - size of the user-block in bytes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_userblock_f (prp_id, size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_userblock_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: size !Size of the user-block in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_userblock_c
+
+! INTEGER, EXTERNAL :: h5pset_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_userblock_c(prp_id, size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_USERBLOCK_C'::h5pset_userblock_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: size
+ END FUNCTION h5pset_userblock_c
+ END INTERFACE
+
hdferr = h5pset_userblock_c(prp_id, size)
END SUBROUTINE h5pset_userblock_f
+!----------------------------------------------------------------------
+! Name: h5pget_userblock_f
+!
+! Purpose: Gets user block size.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! block_size - size of the user block in bytes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_userblock_f(prp_id, block_size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_userblock_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HSIZE_T), DIMENSION(:), INTENT(OUT) :: block_size !Size of the
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size !Size of the
!user-block in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_userblock_c
- INTEGER :: len
+
+! INTEGER, EXTERNAL :: h5pget_userblock_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_userblock_c(prp_id, block_size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_USERBLOCK_C'::h5pget_userblock_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: block_size
+ END FUNCTION h5pget_userblock_c
+ END INTERFACE
hdferr = h5pget_userblock_c(prp_id, block_size)
END SUBROUTINE h5pget_userblock_f
+!----------------------------------------------------------------------
+! Name: h5pset_sizes_f
+!
+! Purpose: Sets the byte size of the offsets and lengths used
+! to address objects in an HDF5 file.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sizes_f (prp_id, sizeof_addr, sizeof_size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_sizes_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr !Size of an object
@@ -302,152 +1097,816 @@
INTEGER(SIZE_T), INTENT(IN) :: sizeof_size !Size of an object
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sizes_c
+
+! INTEGER, EXTERNAL :: h5pset_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SIZES_C'::h5pset_sizes_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(IN) :: sizeof_size
+ END FUNCTION h5pset_sizes_c
+ END INTERFACE
+
hdferr = h5pset_sizes_c(prp_id, sizeof_addr, sizeof_size)
END SUBROUTINE h5pset_sizes_f
+!----------------------------------------------------------------------
+! Name: h5pget_sizes_f
+!
+! Purpose: Retrieves the size of the offsets and lengths used
+! in an HDF5 file
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! sizeof_addr - size of an object offset in bytes
+! sizeof_size - size of an object length in bytes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sizes_f(prp_id, sizeof_addr, sizeof_size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_sizes_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), DIMENSION(:), INTENT(OUT) :: sizeof_addr !Size of an object
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr !Size of an object
!offset in bytes
- INTEGER(SIZE_T), DIMENSION(:), INTENT(OUT) :: sizeof_size !Size of an object
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size !Size of an object
!length in bytes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sizes_c
+
+! INTEGER, EXTERNAL :: h5pget_sizes_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SIZES_C'::h5pget_sizes_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_addr
+ INTEGER(SIZE_T), INTENT(OUT) :: sizeof_size
+ END FUNCTION h5pget_sizes_c
+ END INTERFACE
+
hdferr = h5pget_sizes_c(prp_id, sizeof_addr, sizeof_size)
END SUBROUTINE h5pget_sizes_f
+!----------------------------------------------------------------------
+! Name: h5pset_sym_k_f
+!
+! Purpose: Sets the size of parameters used to control the
+! symbol table nodes
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! ik - symbol table tree rank
+! lk - symbol table node size
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_sym_k_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: ik ! Symbol table tree rank
INTEGER, INTENT(IN) :: lk ! Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pset_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_SYM_K_C'::h5pset_sym_k_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ INTEGER, INTENT(IN) :: lk
+ END FUNCTION h5pset_sym_k_c
+ END INTERFACE
+
hdferr = h5pset_sym_k_c(prp_id, ik, lk)
END SUBROUTINE h5pset_sym_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_sym_k_f
+!
+! Purpose: Retrieves the size of the symbol table B-tree 1/2 rank
+! and the symbol table leaf node 1/2 size.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! ik - symbol table tree 1/2 rank
+! lk - symbol table node 1/2 size
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_sym_k_f(prp_id, ik, lk, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_sym_k_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: ik !Symbol table tree rank
INTEGER, INTENT(OUT) :: lk !Symbol table node size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sym_k_c
+
+! INTEGER, EXTERNAL :: h5pget_sym_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_sym_k_c(prp_id, ik, lk)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_SYM_K_C'::h5pget_sym_k_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ INTEGER, INTENT(OUT) :: lk
+ END FUNCTION h5pget_sym_k_c
+ END INTERFACE
+
hdferr = h5pget_sym_k_c(prp_id, ik, lk)
END SUBROUTINE h5pget_sym_k_f
+!----------------------------------------------------------------------
+! Name: h5pset_istore_k_f
+!
+! Purpose: Sets the size of the parameter used to control the
+! B-trees for indexing chunked datasets
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! ik - 1/2 rank of chunked storage B-tree
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_istore_k_f (prp_id, ik, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_istore_k_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: ik ! 1/2 rank of chunked storage B-tree
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pset_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ISTORE_K_C'::h5pset_istore_k_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: ik
+ END FUNCTION h5pset_istore_k_c
+ END INTERFACE
+
hdferr = h5pset_istore_k_c(prp_id, ik)
END SUBROUTINE h5pset_istore_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_istore_k_f
+!
+! Purpose: Queries the 1/2 rank of an indexed storage B-tree.
+!
+! Inputs:
+! prp_id - file creation property list identifier
+! Outputs:
+! ik - 1/2 rank of chunked storage B-tree
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_istore_k_f(prp_id, ik, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_istore_k_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: ik !1/2 rank of chunked storage B-tree
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_istore_k_c
+
+! INTEGER, EXTERNAL :: h5pget_istore_k_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_istore_k_c(prp_id, ik)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ISTORE_K_C'::h5pget_istore_k_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: ik
+ END FUNCTION h5pget_istore_k_c
+ END INTERFACE
+
hdferr = h5pget_istore_k_c(prp_id, ik)
END SUBROUTINE h5pget_istore_k_f
+!----------------------------------------------------------------------
+! Name: h5pget_driver_f
+!
+! Purpose: Returns low-lever driver identifier.
+!
+! Inputs:
+! prp_id - file access or data transfer property
+! list identifier.
+! Outputs:
+! driver - low-level driver identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_driver_f(prp_id, driver, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_driver_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: driver !low-level file driver identifier
+ INTEGER(HID_T), INTENT(OUT) :: driver !low-level file driver identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_driver_c
+
+! INTEGER, EXTERNAL :: h5pget_driver_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_driver_c(prp_id, driver)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_DRIVER_C'::h5pget_driver_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HID_T), INTENT(OUT) :: driver
+ END FUNCTION h5pget_driver_c
+ END INTERFACE
+
hdferr = h5pget_driver_c(prp_id, driver)
END SUBROUTINE h5pget_driver_f
- SUBROUTINE h5pset_stdio_f (prp_id, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_stdio_f
+!
+! Purpose: Sets the standard I/O driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_stdio_f (prp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fapl_stdio_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_stdio_c
- hdferr = h5pset_stdio_c(prp_id)
- END SUBROUTINE h5pset_stdio_f
- SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: io ! value indicates that the file
+! INTEGER, EXTERNAL :: h5pset_fapl_stdio_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_stdio_c(prp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_STDIO_C'::h5pset_fapl_stdio_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ END FUNCTION h5pset_fapl_stdio_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_stdio_c(prp_id)
+ END SUBROUTINE h5pset_fapl_stdio_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_stdio_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_stdio_f (prp_id, io, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_stdio_f
+!DEC$endif
+!
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: io ! value indicates that the file
!access property list is set to
!the stdio driver
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_stdio_c
- hdferr = h5pget_stdio_c(prp_id, io)
- END SUBROUTINE h5pget_stdio_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_stdio_c
+! hdferr = h5pget_stdio_c(prp_id, io)
+! END SUBROUTINE h5pget_stdio_f
- SUBROUTINE h5pset_sec2_f (prp_id, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_sec2_f
+!
+! Purpose: Sets the sec2 driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_sec2_f (prp_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fapl_sec2_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_sec2_c
- hdferr = h5pset_sec2_c(prp_id)
- END SUBROUTINE h5pset_sec2_f
- SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
+! INTEGER, EXTERNAL :: h5pset_fapl_sec2_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_sec2_c(prp_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SEC2_C'::h5pset_fapl_sec2_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ END FUNCTION h5pset_fapl_sec2_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_sec2_c(prp_id)
+ END SUBROUTINE h5pset_fapl_sec2_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_sec2_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_sec2_f (prp_id, sec2, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER, INTENT(OUT) :: sec2 ! value indicates whether the file
!driver uses the functions declared
!in the unistd.h file
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_sec2_c
- hdferr = h5pget_sec2_c(prp_id, sec2)
- END SUBROUTINE h5pget_sec2_f
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, EXTERNAL :: h5pget_sec2_c
+! hdferr = h5pget_sec2_c(prp_id, sec2)
+! END SUBROUTINE h5pget_sec2_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_alignment_f
+!
+! Purpose: Sets alignment properties of a file access property list.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! threshold - threshold value
+! alignment - alignment value
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_alignment_f(prp_id, threshold, alignment, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_alignment_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(IN) :: alignment ! alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_alignment_c
+
+! INTEGER, EXTERNAL :: h5pset_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_ALIGNMENT_C'::h5pset_alignment_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: threshold
+ INTEGER(HSIZE_T), INTENT(IN) :: alignment
+ END FUNCTION h5pset_alignment_c
+ END INTERFACE
+
hdferr = h5pset_alignment_c(prp_id, threshold, alignment)
END SUBROUTINE h5pset_alignment_f
+!----------------------------------------------------------------------
+! Name: h5pget_alignment_f
+!
+! Purpose: Retrieves the current settings for alignment
+! properties from a file access property list.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! threshold - threshold value
+! alignment - alignment value
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_alignment_f(prp_id, threshold, alignment, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_alignment_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: threshold ! Threshold value
INTEGER(HSIZE_T), INTENT(OUT) :: alignment ! alignment value
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_alignment_c
+
+! INTEGER, EXTERNAL :: h5pget_alignment_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_alignment_c(prp_id, threshold, alignment)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_ALIGNMENT_C'::h5pget_alignment_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: threshold
+ INTEGER(HSIZE_T), INTENT(OUT) :: alignment
+ END FUNCTION h5pget_alignment_c
+ END INTERFACE
+
hdferr = h5pget_alignment_c(prp_id, threshold, alignment)
END SUBROUTINE h5pget_alignment_f
- SUBROUTINE h5pset_core_f(prp_id, increment, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_core_f
+!
+! Purpose: Modifies the file access property list to use the
+! H5FD_CORE driver.
+!
+! Inputs: prp_id - file access property list identifier
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_core_f(prp_id, increment, backing_store, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fapl_core_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(SIZE_T), INTENT(IN) :: increment ! File block size in bytes.
+ INTEGER, INTENT(IN) :: backing_store ! flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_core_c
- hdferr = h5pset_core_c(prp_id, increment)
- END SUBROUTINE h5pset_core_f
- SUBROUTINE h5pget_core_f(prp_id, increment, hdferr)
+! INTEGER, EXTERNAL :: h5pset_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_CORE_C'::h5pset_fapl_core_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(IN) :: increment
+ INTEGER, INTENT(IN) :: backing_store
+ END FUNCTION h5pset_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pset_fapl_core_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_fapl_core_f
+!
+! Purpose: Queries core file driver properties.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! increment - size, in bytes, of memory increments
+! backing_store - boolean flag indicating whether to write
+! the file contents to disk when the file is closed.
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pget_fapl_core_f(prp_id, increment, backing_store, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fapl_core_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(SIZE_T), INTENT(OUT) :: increment ! File block size in bytes.
+ INTEGER, INTENT(OUT) :: backing_store ! flag to indicate that
+ ! entire file contents are flushed to a file
+ ! with the same name as this core file.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_core_c
- hdferr = h5pget_core_c(prp_id, increment)
- END SUBROUTINE h5pget_core_f
- SUBROUTINE h5pset_family_f(prp_id, memb_size, memb_plist , hdferr)
+! INTEGER, EXTERNAL :: h5pget_fapl_core_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_CORE_C'::h5pget_fapl_core_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(SIZE_T), INTENT(OUT) :: increment
+ INTEGER, INTENT(OUT) :: backing_store
+ END FUNCTION h5pget_fapl_core_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_core_c(prp_id, increment, backing_store)
+ END SUBROUTINE h5pget_fapl_core_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_family_f
+!
+! Purpose: Sets the file access property list to use the family driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fapl_family_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(IN) :: memb_size ! Logical size, in bytes,
@@ -456,12 +1915,60 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_family_c
- hdferr = h5pset_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pset_family_f
+
+! INTEGER, EXTERNAL :: h5pset_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_FAMILY_C'::h5pset_fapl_family_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(IN) :: memb_size
+ INTEGER(HID_T), INTENT(IN) :: memb_plist
+ END FUNCTION h5pset_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pset_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pset_fapl_family_f
+
+!----------------------------------------------------------------------
+! Name: h5pget_fapl_family_f
+!
+! Purpose: Returns file access property list information.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! memb_size - size in bytes of each file member
+! memb_plist - identifier of the file access property
+! list to be used for each family member
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
- SUBROUTINE h5pget_family_f(prp_id, memb_size, memb_plist , hdferr)
+ SUBROUTINE h5pget_fapl_family_f(prp_id, memb_size, memb_plist , hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_fapl_family_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER(HSIZE_T), INTENT(OUT) :: memb_size ! Logical size, in bytes,
@@ -470,11 +1977,63 @@
!access property list for
!each member of the family
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_family_c
- hdferr = h5pget_family_c(prp_id, memb_size, memb_plist)
- END SUBROUTINE h5pget_family_f
+
+! INTEGER, EXTERNAL :: h5pget_fapl_family_f
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FAPL_FAMILY_C'::h5pget_fapl_family_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: memb_size
+ INTEGER(HID_T), INTENT(OUT) :: memb_plist
+ END FUNCTION h5pget_fapl_family_c
+ END INTERFACE
+
+ hdferr = h5pget_fapl_family_c(prp_id, memb_size, memb_plist)
+ END SUBROUTINE h5pget_fapl_family_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_cache_f
+!
+! Purpose: Sets the meta data cache and raw data chunk
+! cache parameters
+!
+! Inputs:
+! prp_id - file access property list identifier
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_cache_f(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_cache_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: mdc_nelmts !Number of elements (objects)
@@ -486,11 +2045,64 @@
REAL, INTENT(IN) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_cache_c
+! INTEGER, EXTERNAL :: h5pset_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_CACHE_C'::h5pset_cache_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: mdc_nelmts
+ INTEGER, INTENT(IN) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: rdcc_nbytes
+ REAL, INTENT(IN) :: rdcc_w0
+ END FUNCTION h5pset_cache_c
+ END INTERFACE
+
hdferr = h5pset_cache_c(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
END SUBROUTINE h5pset_cache_f
+!----------------------------------------------------------------------
+! Name: h5pget_cache_f
+!
+! Purpose: Queries the meta data cache and raw data chunk cache
+! parameters.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! mdc_nelmts - number of elements (objects) in the meta
+! data cache
+! rdcc_nelmts - number of elements (objects) in the raw
+! data chunk cache
+! rdcc_nbytes - total size of the raw data chunk cache, in bytes
+! rdcc_w0 - preemption policy (0 or 1)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_cache_f(prp_id, mdc_nelmts, rdcc_nelmts, rdcc_nbytes, rdcc_w0, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_cache_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: mdc_nelmts !Number of elements (objects)
@@ -502,11 +2114,64 @@
REAL, INTENT(OUT) :: rdcc_w0 !Preemption policy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CACHE_C'::h5pget_cache_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: mdc_nelmts
+ INTEGER, INTENT(OUT) :: rdcc_nelmts
+ INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes
+ REAL, INTENT(OUT) :: rdcc_w0
+ END FUNCTION h5pget_cache_c
+ END INTERFACE
+
hdferr = h5pget_cache_c(prp_id, mdc_nelmts,rdcc_nelmts, rdcc_nbytes, rdcc_w0 )
END SUBROUTINE h5pget_cache_f
- SUBROUTINE h5pset_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+!----------------------------------------------------------------------
+! Name: h5pset_fapl_split_f
+!
+! Purpose: Emulates the old split file driver.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! meta_ext - name of the extension for the metafile
+! filename
+! meta_plist - identifier of the meta file access property
+! list
+! raw_ext - name extension for the raw file filename
+! raw_plist - identifier of the raw file access property list
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5pset_fapl_split_f(prp_id, meta_ext, meta_plist, raw_ext, raw_plist, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_fapl_split_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
CHARACTER(LEN=*), INTENT(IN) :: meta_ext !Name of the extension for
@@ -517,74 +2182,293 @@
INTEGER(HID_T), INTENT(IN) :: raw_plist !Identifier of the raw file
!access property list
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: meta_len, raw_len;
+ INTEGER :: meta_len, raw_len
+
+! INTEGER, EXTERNAL :: h5pset_fapl_split_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FAPL_SPLIT_C'::h5pset_fapl_split_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: meta_ext
+ !DEC$ATTRIBUTES reference :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: meta_ext
+ INTEGER(HID_T), INTENT(IN) :: meta_plist
+ CHARACTER(LEN=*), INTENT(IN) :: raw_ext
+ INTEGER(HID_T), INTENT(IN) :: raw_plist
+ INTEGER :: meta_len, raw_len
+ END FUNCTION h5pset_fapl_split_c
+ END INTERFACE
- INTEGER, EXTERNAL :: h5pset_split_c
meta_len = LEN(meta_ext)
raw_len = LEN(raw_ext)
- hdferr = h5pset_split_c(prp_id, meta_len, meta_ext, meta_plist, raw_len, raw_ext, raw_plist )
- END SUBROUTINE h5pset_split_f
+ hdferr = h5pset_fapl_split_c(prp_id,meta_len,meta_ext,meta_plist,raw_len,raw_ext,raw_plist)
+ END SUBROUTINE h5pset_fapl_split_f
- SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
- raw_ext, raw_plist, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(SIZE_T), INTENT(IN) :: meta_ext_size ! Number of characters of the meta
+!----------------------------------------------------------------------
+! Name: h5pget_split_f
+!
+! Purpose: NOT AVAILABLE
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+! SUBROUTINE h5pget_split_f(prp_id, meta_ext_size, meta_ext, meta_plist,raw_ext_size,&
+! raw_ext, raw_plist, hdferr)
+! IMPLICIT NONE
+! INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+! INTEGER(SIZE_T), INTENT(IN) :: meta_ext_size ! Number of characters of the meta
! file extension to be copied to the
! meta_ext buffer
- CHARACTER(LEN=*), INTENT(OUT) :: meta_ext !Name of the extension for
+! CHARACTER(LEN=*), INTENT(OUT) :: meta_ext !Name of the extension for
!the metafile filename
- INTEGER(HID_T), INTENT(OUT) :: meta_plist ! Identifier of the meta file
+! INTEGER(HID_T), INTENT(OUT) :: meta_plist ! Identifier of the meta file
! access property list
- INTEGER(SIZE_T), INTENT(IN) :: raw_ext_size ! Number of characters of the raw
+! INTEGER(SIZE_T), INTENT(IN) :: raw_ext_size ! Number of characters of the raw
! file extension to be copied to the
! raw_ext buffer
- CHARACTER(LEN=*), INTENT(OUT) :: raw_ext !Name extension for the raw file filename
- INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
+! CHARACTER(LEN=*), INTENT(OUT) :: raw_ext !Name extension for the raw file filename
+! INTEGER(HID_T), INTENT(OUT) :: raw_plist !Identifier of the raw file
!access property list
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+! INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_split_c
- hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
- raw_ext_size, raw_ext, raw_plist )
- END SUBROUTINE h5pget_split_f
+! INTEGER, EXTERNAL :: h5pget_split_c
+! hdferr = h5pget_split_c(prp_id, meta_ext_size, meta_ext, meta_plist, &
+! raw_ext_size, raw_ext, raw_plist )
+! END SUBROUTINE h5pget_split_f
+
+!----------------------------------------------------------------------
+! Name: h5pset_gc_references_f
+!
+! Purpose: Sets garbage collecting references flag.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5pset_gc_references_f (prp_id, gc_reference, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_gc_references_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: gc_reference !the flag for garbage collecting
! references for the file
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pset_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_GC_REFERENCES_C'::h5pset_gc_references_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: gc_reference
+ END FUNCTION h5pset_gc_references_c
+ END INTERFACE
+
hdferr = h5pset_gc_references_c(prp_id, gc_reference)
END SUBROUTINE h5pset_gc_references_f
+!----------------------------------------------------------------------
+! Name: h5pget_gc_references_f
+!
+! Purpose: Returns garbage collecting references setting.
+!
+! Inputs:
+! prp_id - file access property list identifier
+! Outputs:
+! gc_reference - flag for stting garbage collection on
+! and off (1 or 0)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_gc_references_f (prp_id, gc_reference, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_gc_references_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: gc_reference !the flag for garbage collecting
! references for the file
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_gc_references_c
+
+! INTEGER, EXTERNAL :: h5pget_gc_references_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_gc_references_c(prp_id, gc_reference)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_GC_REFERENCES_C'::h5pget_gc_references_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: gc_reference
+ END FUNCTION h5pget_gc_references_c
+ END INTERFACE
+
hdferr = h5pget_gc_references_c(prp_id, gc_reference)
END SUBROUTINE h5pget_gc_references_f
+!----------------------------------------------------------------------
+! Name: h5pset_layout_f
+!
+! Purpose: Sets the type of storage used store the raw data
+! for a dataset.
+!
+! Inputs:
+! prp_id - data creation property list identifier
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_layout_f (prp_id, layout, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_layout_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: layout !Type of storage layout for raw data
!possible values are:
- !H5D_COMPACT_F(0)
- !H5D_CONTIGUOUS_F(1)
- !H5D_CHUNKED_F(2)
+ !H5D_COMPACT_F
+ !H5D_CONTIGUOUS_F
+ !H5D_CHUNKED_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_layout_c
+
+! INTEGER, EXTERNAL :: h5pset_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_LAYOUT_C'::h5pset_layout_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: layout
+ END FUNCTION h5pset_layout_c
+ END INTERFACE
+
hdferr = h5pset_layout_c(prp_id, layout)
END SUBROUTINE h5pset_layout_f
+!----------------------------------------------------------------------
+! Name: h5pget_layout_f
+!
+! Purpose: Returns the layout of the raw data for a dataset.
+!
+! Inputs:
+! prp_id - data creation property list identifier
+! Outputs:
+! layout - type of storage layout for raw data
+! possible values are:
+! H5D_COMPACT_F
+! H5D_CONTIGUOUS_F
+! H5D_CHUNKED_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_layout_f (prp_id, layout, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_layout_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: layout !Type of storage layout for raw data
@@ -593,11 +2477,61 @@
!H5D_CONTIGUOUS_F(1)
!H5D_CHUNKED_F(2)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_layout_c
+
+! INTEGER, EXTERNAL :: h5pget_layout_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_layout_c(prp_id, layout)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_LAYOUT_C'::h5pget_layout_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: layout
+ END FUNCTION h5pget_layout_c
+ END INTERFACE
+
hdferr = h5pget_layout_c(prp_id, layout)
END SUBROUTINE h5pget_layout_f
+!----------------------------------------------------------------------
+! Name: h5pset_filter_f
+!
+! Purpose: Adds a filter to the filter pipeline.
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_filter_f(prp_id, filter, flags, cd_nelmts, cd_values, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_filter_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: filter !Filter to be added to the pipeline.
@@ -608,20 +2542,121 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_filter_c
+! INTEGER, EXTERNAL :: h5pset_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_FILTER_C'::h5pset_filter_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter
+ INTEGER, INTENT(IN) :: flags
+ INTEGER(SIZE_T), INTENT(IN) :: cd_nelmts
+ INTEGER, DIMENSION(*), INTENT(IN) :: cd_values
+ END FUNCTION h5pset_filter_c
+ END INTERFACE
+
hdferr = h5pset_filter_c(prp_id, filter, flags, cd_nelmts, cd_values )
END SUBROUTINE h5pset_filter_f
+!----------------------------------------------------------------------
+! Name: h5pget_nfilters_f
+!
+! Purpose: Returns the number of filters in the pipeline.
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! nfilters - number of filters in the pipeline
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_nfilters_f (prp_id, nfilters, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_nfilters_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: nfilters !the number of filters in the pipeline
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_nfilters_c
+
+! INTEGER, EXTERNAL :: h5pget_nfilters_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_nfilters_c(prp_id, nfilters)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_NFILTERS_C'::h5pget_nfilters_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: nfilters
+ END FUNCTION h5pget_nfilters_c
+ END INTERFACE
+
hdferr = h5pget_nfilters_c(prp_id, nfilters)
END SUBROUTINE h5pget_nfilters_f
+!----------------------------------------------------------------------
+! Name: h5pget_filter_f
+!
+! Purpose: Returns information about a filter in a pipeline
+!
+! Inputs:
+! prp_id - data creation or transfer property list
+! identifier
+! Outputs:
+! identifier
+! filter - filter to be added to the pipeline
+! flags - bit vector specifying certain general
+! properties of the filter
+! cd_nelmts - number of elements in cd_values
+! cd_values - auxiliary data for the filter
+! namelen - number of characters in the name buffer
+! name - buffer to retrieve filter name
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_filter_f(prp_id, filter_number, flags, cd_nelmts, cd_values, namelen, name, filter_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_filter_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: filter_number !Sequence number within the filter
@@ -637,12 +2672,69 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_filter_c
+
+! INTEGER, EXTERNAL :: h5pget_filter_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
+ cd_values, namelen, name, filter_id )
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_FILTER_C'::h5pget_filter_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: filter_number
+ INTEGER, DIMENSION(*), INTENT(OUT) :: cd_values
+ INTEGER, INTENT(OUT) :: flags
+ INTEGER(SIZE_T), INTENT(INOUT) :: cd_nelmts
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: filter_id
+ END FUNCTION h5pget_filter_c
+ END INTERFACE
+
hdferr = h5pget_filter_c(prp_id, filter_number, flags, cd_nelmts, &
cd_values, namelen, name, filter_id )
END SUBROUTINE h5pget_filter_f
+!----------------------------------------------------------------------
+! Name: h5pset_external_f
+!
+! Purpose: Adds an external file to the list of external files.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_external_f(prp_id, name, offset,bytes, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_external_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of an external file
@@ -653,25 +2745,125 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_external_c
INTEGER :: namelen
- namelen = LEN(name)
- hdferr = h5pset_external_c(prp_id, name,namelen, offset, bytes)
+! INTEGER, EXTERNAL :: h5pset_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_external_c(prp_id, name,namelen, offset, bytes)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_EXTERNAL_C'::h5pset_external_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER, INTENT(IN) :: offset
+ INTEGER(HSIZE_T), INTENT(IN) :: bytes
+ END FUNCTION h5pset_external_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5pset_external_c(prp_id, name, namelen, offset, bytes)
END SUBROUTINE h5pset_external_f
+!----------------------------------------------------------------------
+! Name: h5pget_external_count_f
+!
+! Purpose: Returns the number of external files for a dataset.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! Outputs:
+! count - number of external files for the
+! specified dataset
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_external_count_f (prp_id, count, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_external_count_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: count !number of external files for the
!specified dataset
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_external_count_c
+! INTEGER, EXTERNAL :: h5pget_external_count_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_count_c(prp_id, count)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_EXTERNAL_COUNT_C'::h5pget_external_count_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: count
+ END FUNCTION h5pget_external_count_c
+ END INTERFACE
+
hdferr = h5pget_external_count_c(prp_id, count)
END SUBROUTINE h5pget_external_count_f
+!----------------------------------------------------------------------
+! Name: h5pget_external_f
+!
+! Purpose: Returns information about an external file.
+!
+! Inputs:
+! prp_id - dataset creation property list identifier
+! Outputs:
+! idx - external file index
+! name_size - maximum size of name array
+! name - name of the external file
+! name - name of external file
+! offset - offset in bytes from the beginning of the
+! file to the location in the file
+! where the data starts
+! bytes - size of the external file data
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_external_f(prp_id, idx, name_size, name, offset,bytes, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_external_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: idx !External file index.
@@ -684,12 +2876,63 @@
!file for the data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_external_c
+! INTEGER, EXTERNAL :: h5pget_external_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_EXTERNAL_C'::h5pget_external_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: idx
+ INTEGER(SIZE_T), INTENT(IN) :: name_size
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER, INTENT(OUT) :: offset
+ INTEGER(HSIZE_T), INTENT(OUT) :: bytes
+ END FUNCTION h5pget_external_c
+ END INTERFACE
hdferr = h5pget_external_c(prp_id, idx, name_size, name, offset, bytes)
END SUBROUTINE h5pget_external_f
+!----------------------------------------------------------------------
+! Name: h5pset_hyper_cache_f
+!
+! Purpose: Indicates whether to cache hyperslab blocks during I/O
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! cache - A flag indicating whether caching is to
+! be set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_hyper_cache_f(prp_id, cache, limit, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_hyper_cache_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(IN) :: cache !
@@ -697,11 +2940,60 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! INTEGER, EXTERNAL :: h5pset_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_HYPER_CACHE_C'::h5pset_hyper_cache_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(IN) :: cache
+ INTEGER, INTENT(IN) :: limit
+ END FUNCTION h5pset_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pset_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pset_hyper_cache_f
+!----------------------------------------------------------------------
+! Name: h5pget_hyper_cache_f
+!
+! Purpose: Returns information regarding the caching of hyperslab
+! blocks during I/O.
+!
+! Inputs:
+! prp_id - dataset transfer property list identifier
+! Outputs:
+! cache - a flag indicating whether caching is
+! set to on (1) or off (0).
+! limit - maximum size of the hyperslab block to
+! cache; 0 (zero) indicates no limit
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_hyper_cache_f(prp_id, cache, limit, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_hyper_cache_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
INTEGER, INTENT(OUT) :: cache !
@@ -709,11 +3001,61 @@
!cache. 0 (zero) indicates no limit.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+
+! INTEGER, EXTERNAL :: h5pget_hyper_cache_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_hyper_cache_c(prp_id, cache, limit)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_HYPER_CACHE_C'::h5pget_hyper_cache_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ INTEGER, INTENT(OUT) :: cache
+ INTEGER, INTENT(OUT) :: limit
+ END FUNCTION h5pget_hyper_cache_c
+ END INTERFACE
+
hdferr = h5pget_hyper_cache_c(prp_id, cache, limit)
END SUBROUTINE h5pget_hyper_cache_f
+!----------------------------------------------------------------------
+! Name: h5pset_btree_ratios_f
+!
+! Purpose: Sets B-tree split ratios for a dataset transfer
+! property list.
+!
+! Inputs:
+! prp_id - the dataset transfer property list
+! identifier
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pset_btree_ratios_f(prp_id, left, middle, right, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pset_btree_ratios_f
+!DEC$endif
+!
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.
@@ -723,11 +3065,60 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! INTEGER, EXTERNAL :: h5pset_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pset_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PSET_BTREE_RATIOS_C'::h5pset_btree_ratios_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(IN) :: left
+ REAL, INTENT(IN) :: middle
+ REAL, INTENT(IN) :: right
+ END FUNCTION h5pset_btree_ratios_c
+ END INTERFACE
+
hdferr = h5pset_btree_ratios_c(prp_id, left, middle, right)
END SUBROUTINE h5pset_btree_ratios_f
+!----------------------------------------------------------------------
+! Name: h5pget_btree_ratios_f
+!
+! Purpose: Gets B-tree split ratios for a dataset transfer property list
+!
+! Inputs:
+! prp_id - the dataset transfer property list
+! identifier
+! Outputs:
+! left - the B-tree split ratio for left-most nodes
+! middle - the B-tree split ratio for all other nodes
+! right - the B-tree split ratio for right-most nodes
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5pget_btree_ratios_f(prp_id, left, middle, right, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5pget_btree_ratios_f
+!DEC$endif
+!
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.
@@ -737,7 +3128,23 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+
+! INTEGER, EXTERNAL :: h5pget_btree_ratios_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5pget_btree_ratios_c(prp_id, left, middle, right)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5PGET_BTREE_RATIOS_C'::h5pget_btree_ratios_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: prp_id
+ REAL, INTENT(OUT) :: left
+ REAL, INTENT(OUT) :: middle
+ REAL, INTENT(OUT) :: right
+ END FUNCTION h5pget_btree_ratios_c
+ END INTERFACE
+
hdferr = h5pget_btree_ratios_c(prp_id, left, middle, right)
END SUBROUTINE h5pget_btree_ratios_f
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
index 860fba3..86106ec 100644
--- a/fortran/src/H5Rff.f90
+++ b/fortran/src/H5Rff.f90
@@ -6,17 +6,17 @@
! If you change the value of these parameters, do not forget to change corresponding
! values in the H5f90.h file.
- INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
-
- TYPE hobj_ref_t_f
- INTEGER ref(REF_OBJ_BUF_LEN)
- END TYPE
-
- TYPE hdset_reg_ref_t_f
- INTEGER ref(REF_REG_BUF_LEN)
- END TYPE
-
+! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+!
+! TYPE hobj_ref_t_f
+! INTEGER ref(REF_OBJ_BUF_LEN)
+! END TYPE
+!
+! TYPE hdset_reg_ref_t_f
+! INTEGER ref(REF_REG_BUF_LEN)
+! END TYPE
+!
INTERFACE h5rcreate_f
MODULE PROCEDURE h5rcreate_object_f
@@ -46,8 +46,40 @@
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5rcreate_object_f
+!
+! Purpose: Creates reference to the object
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the object at the specified location
+! Outputs:
+! ref - reference to the specified object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rcreate_f
+! subroutine.
+!----------------------------------------------------------------------
SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rcreate_object_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
@@ -57,16 +89,67 @@
INTEGER :: namelen ! Name length
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rcreate_object_c
+
+! INTEGER, EXTERNAL :: h5fcreate_object_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rcreate_object_c(ref_f, loc_id, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RCREATE_OBJECT_C':: h5rcreate_object_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER :: ref_f(REF_OBJ_BUF_LEN)
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5rcreate_object_c
+ END INTERFACE
+
namelen = LEN(name)
ref_f = 0
hdferr = h5rcreate_object_c(ref_f, loc_id, name, namelen )
ref%ref = ref_f
END SUBROUTINE h5rcreate_object_f
-
+!----------------------------------------------------------------------
+! Name: h5rcreate_region_f
+!
+! Purpose: Creates r eference to the dataset region
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the dataset at the specified location
+! space_id - dataspace identifier that describes selected region
+! Outputs:
+! ref - reference to the dataset region
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rcreate_f
+! subroutine.
+!----------------------------------------------------------------------
+
SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rcreate_region_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
@@ -77,7 +160,26 @@
INTEGER :: namelen ! Name length
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rcreate_region_c
+
+! INTEGER, EXTERNAL :: h5fcreate_region_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RCREATE_REGION_C':: h5rcreate_region_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5rcreate_region_c
+ END INTERFACE
+
namelen = LEN(name)
ref_f = 0
hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
@@ -85,7 +187,42 @@
END SUBROUTINE h5rcreate_region_f
+!----------------------------------------------------------------------
+! Name: h5rdereference_object_f
+!
+! Purpose: Opens the HDF5 object referenced
+!
+! Inputs:
+! dset_id - identifier of the dataset containing
+! reference
+! ref - reference to open
+! Outputs:
+! obj_id - object_identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rdereference_f
+! subroutine.
+!----------------------------------------------------------------------
+
+
SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rdereference_object_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
@@ -94,30 +231,132 @@
INTEGER :: ref_type ! Reference type
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rdereference_object_c
+
+! INTEGER, EXTERNAL :: h5h5rdereference_object_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rdereference_object_c(dset_id, ref_f, obj_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RDEREFERENCE_OBJECT_C':: h5rdereference_object_c
+ !DEC$ ENDIF
+! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER :: ref_f(REF_OBJ_BUF_LEN)
+ INTEGER(HID_T), INTENT(OUT) :: obj_id
+ END FUNCTION h5rdereference_object_c
+ END INTERFACE
+
ref_f = ref%ref
hdferr = h5rdereference_object_c(dset_id, ref_f, obj_id )
END SUBROUTINE h5rdereference_object_f
+!----------------------------------------------------------------------
+! Name: h5rdereference_region_f
+!
+! Purpose: Opens the dataset region
+!
+! Inputs:
+! dset_id - identifier of the dataset containing
+! reference to teh regions
+! ref - reference to open
+! Outputs:
+! obj_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rdereference_f
+! subroutine.
+!----------------------------------------------------------------------
+
+
SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rdereference_region_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object identifier
+ INTEGER(HID_T), INTENT(OUT) :: obj_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: ref_type ! Reference type
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rdereference_region_c
+
+! INTEGER, EXTERNAL :: h5rdereference_region_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rdereference_region_c(dset_id, ref_f, obj_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RDEREFERENCE_REGION_C':: h5rdereference_region_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(OUT) :: obj_id
+ END FUNCTION h5rdereference_region_c
+ END INTERFACE
+
ref_type = H5R_DATASET_REGION_F
ref_f = ref%ref
hdferr = h5rdereference_region_c(dset_id, ref_f, obj_id )
END SUBROUTINE h5rdereference_region_f
+!----------------------------------------------------------------------
+! Name: h5rget_region_region_f
+!
+! Purpose: Retrieves a dataspace with the specified region selected
+!
+! Inputs:
+! dset_id - identifier of the dataset containing
+! reference to the regions
+! ref - reference to open
+! Outputs:
+! space_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rget_region_f
+! subroutine.
+!----------------------------------------------------------------------
+
+
SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rget_region_region_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
@@ -125,13 +364,69 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rget_region_region_c
+! INTEGER, EXTERNAL :: h5rget_region_region_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RGET_REGION_REGION_C':: h5rget_region_region_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ INTEGER :: ref_f(REF_REG_BUF_LEN)
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5rget_region_region_c
+ END INTERFACE
+
ref_f = ref%ref
hdferr = h5rget_region_region_c(dset_id, ref_f, space_id )
END SUBROUTINE h5rget_region_region_f
+
+!----------------------------------------------------------------------
+! Name: h5rget_object_type_obj_f
+!
+! Purpose: Retrieves the type of object that an object reference points to.
+!
+! Inputs:
+! dset_id - identifier of the dataset containing
+! reference to the objects
+! ref - reference to open
+! Outputs:
+! obj_type - object_type, possible values:
+! H5G_UNKNOWN_F (-1)
+! H5G_LINK_F 0
+! H5G_GROUP_F 1
+! H5G_DATASET_F 2
+! H5G_TYPE_F 3
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Comment: This is a module procedure for the h5rget_object_type_f
+! subroutine.
+!----------------------------------------------------------------------
+
SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5rget_object_type_obj_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
@@ -145,7 +440,22 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: ref_f(REF_OBJ_BUF_LEN) ! Local buffer to pass reference
- INTEGER, EXTERNAL :: h5rget_object_type_obj_c
+! INTEGER, EXTERNAL :: h5rget_object_type_obj_c
+! Interface is needed for MS FORTRAN
+!
+ INTERFACE
+ INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5RGET_OBJECT_TYPE_OBJ_C':: h5rget_object_type_obj_c
+ !DEC$ ENDIF
+! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER :: ref_f(REF_OBJ_BUF_LEN)
+ INTEGER, INTENT(OUT) :: obj_type
+ END FUNCTION h5rget_object_type_obj_c
+ END INTERFACE
+
ref_f = ref%ref
hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90
index 1df0569..d5d1c48 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.f90
@@ -6,8 +6,39 @@
CONTAINS
-
+!----------------------------------------------------------------------
+! Name: h5screate_simple_f
+!
+! Purpose: Creates a new simple data space and opens it for access .
+!
+! Inputs:
+! rank - number of dimensions
+! dims - an array of the size of each dimension
+! Outputs:
+! space_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! maxdims - an array of the maximum size of each
+! dimension
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5screate_simple_f(rank, dims, space_id, hdferr, maxdims)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5screate_simple_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER, INTENT(IN) :: rank ! Number of dataspace dimensions
@@ -20,7 +51,22 @@
! Array with the maximum
! dimension sizes
INTEGER(HSIZE_T), ALLOCATABLE, DIMENSION(:) :: f_maxdims
- INTEGER, EXTERNAL :: h5screate_simple_c
+
+! INTEGER, EXTERNAL :: h5screate_simple_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5screate_simple_c(rank, dims, maxdims, space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SCREATE_SIMPLE_C'::h5screate_simple_c
+ !DEC$ ENDIF
+ INTEGER, INTENT(IN) :: rank
+ INTEGER(HSIZE_T), INTENT(IN) :: dims(rank)
+ INTEGER(HSIZE_T), DIMENSION(:),INTENT(IN) :: maxdims(rank)
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5screate_simple_c
+ END INTERFACE
allocate (f_maxdims(rank), stat=hdferr)
if (hdferr .NE. 0) then
@@ -37,18 +83,91 @@
END SUBROUTINE h5screate_simple_f
+!----------------------------------------------------------------------
+! Name: h5sclose_f
+!
+! Purpose: Releases and terminates access to a dataspace.
+!
+! Inputs:
+! space_id - identifier of dataspace to release
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5sclose_f(space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sclose_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sclose_c
+
+! INTEGER, EXTERNAL :: h5sclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sclose_c(space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SCLOSE_C'::h5sclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5sclose_c
+ END INTERFACE
hdferr = h5sclose_c(space_id)
END SUBROUTINE h5sclose_f
+!----------------------------------------------------------------------
+! Name: h5screate_f
+!
+! Purpose: Creates a new dataspace of a specified type.
+!
+! Inputs:
+! classtype - the type of the dataspace to be created
+! Outputs:
+! space_id - dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5screate_f(classtype, space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5screate_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER, INTENT(IN) :: classtype ! The type of the dataspace
@@ -58,25 +177,114 @@
! H5S_SIMPLE_F(1)
INTEGER(HID_T), INTENT(OUT) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5screate_c
+
+! INTEGER, EXTERNAL :: h5screate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5screate_c(classtype, space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SCREATE_C'::h5screate_c
+ !DEC$ ENDIF
+ INTEGER, INTENT(IN) :: classtype
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5screate_c
+ END INTERFACE
+
hdferr = h5screate_c(classtype, space_id)
END SUBROUTINE h5screate_f
+!----------------------------------------------------------------------
+! Name: h5scopy_f
+!
+! Purpose: Creates an exact copy of a dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! new_space_id - identifier of dataspace's copy
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5scopy_f(space_id, new_space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5scopy_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HID_T), INTENT(OUT) :: new_space_id
! Identifier of dataspace's copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5scopy_c
+
+! INTEGER, EXTERNAL :: h5scopy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5scopy_c(space_id, new_space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SCOPY_C'::h5scopy_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T), INTENT(OUT):: new_space_id
+ END FUNCTION h5scopy_c
+ END INTERFACE
+
hdferr = h5scopy_c(space_id, new_space_id)
END SUBROUTINE h5scopy_f
+!----------------------------------------------------------------------
+! Name: h5sget_select_hyper_nblocks_f
+!
+! Purpose: Get number of hyperslab blocks.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! num_blocks - number of hyperslab blocks in the current
+! hyperslab selection
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_select_hyper_nblocks_f(space_id, num_blocks, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_hyper_nblocks_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -85,13 +293,60 @@
!in the current dataspace
!selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_hyper_nblocks_c
+
+! INTEGER, EXTERNAL :: h5sget_select_hyper_nblocks_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_select_hyper_nblocks_c (space_id, num_blocks)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+!MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_HYPER_NBLOCKS_C'::h5sget_select_hyper_nblocks_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks
+ END FUNCTION h5sget_select_hyper_nblocks_c
+ END INTERFACE
+
hdferr = h5sget_select_hyper_nblocks_c (space_id, num_blocks)
END SUBROUTINE h5sget_select_hyper_nblocks_f
+!----------------------------------------------------------------------
+! Name: h5sget_select_hyper_blocklist_f
+!
+! Purpose: Gets the list of hyperslab blocks currently selected.
+!
+! Inputs:
+! space_id - dataspace identifier
+! startblock - hyperslab block to start with
+! num_blocks - number of blocks to get
+! Outputs:
+! buf - buffer to hold block list
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5sget_select_hyper_blocklist_f(space_id, startblock, &
num_blocks, buf, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_hyper_blocklist_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -105,14 +360,64 @@
!List of hyperslab blocks selected
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_hyper_blocklist_c
+
+! INTEGER, EXTERNAL :: h5sget_select_hyper_blocklist_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_select_hyper_blocklist_c(space_id, startblock, &
+ num_blocks, buf )
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_HYPER_BLOCKLIST_C'::h5sget_select_hyper_blocklist_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: startblock
+ INTEGER(HSSIZE_T), INTENT(IN) :: num_blocks
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
+ END FUNCTION h5sget_select_hyper_blocklist_c
+ END INTERFACE
+
hdferr = h5sget_select_hyper_blocklist_c(space_id, startblock, &
num_blocks, buf )
END SUBROUTINE h5sget_select_hyper_blocklist_f
+!----------------------------------------------------------------------
+! Name: h5sget_select_bounds_f
+!
+! Purpose: Gets the bounding box containing the current selection.
+!
+! Inputs:
+! space_id - dataspace identifier
+!
+! Outputs:
+! start - starting coordinates of bounding box
+! end - ending coordinates of bounding box
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5sget_select_bounds_f(space_id, start, end, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_bounds_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -123,12 +428,58 @@
!i.e., the coordinates of the diagonally
!opposite corner
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_bounds_c
+
+! 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)
+!MS$ATTRIBUTES C,reference,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
+!----------------------------------------------------------------------
+! Name: h5sget_select_elem_npoints_f
+!
+! Purpose: Gets the number of element points in the current selection
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! num_points - number of element points in the current
+! dataspace selection
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_select_elem_npoints_f(space_id, num_points, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_elem_npoints_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -137,13 +488,60 @@
!in the current dataspace
!selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_elem_npoints_c
+
+! INTEGER, EXTERNAL :: h5sget_select_elem_npoints_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_select_elem_npoints_c (space_id, num_points)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+!MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_ELEM_NPOINTS_C'::h5sget_select_elem_npoints_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSSIZE_T), INTENT(OUT) :: num_points
+ END FUNCTION h5sget_select_elem_npoints_c
+ END INTERFACE
+
hdferr = h5sget_select_elem_npoints_c (space_id, num_points)
END SUBROUTINE h5sget_select_elem_npoints_f
+!----------------------------------------------------------------------
+! Name: h5sget_select_elem_pointlist_f
+!
+! Purpose: Gets the list of element points currently selected.
+!
+! Inputs:
+! space_id - dataspace identifier
+! startpoint - element point to start with
+! num_points - number of elemnt points to get
+! Outputs:
+! buf - buffer with element points selected
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5sget_select_elem_pointlist_f(space_id, startpoint, &
num_points, buf, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_elem_pointlist_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T),DIMENSION(*), INTENT(IN) :: startpoint
@@ -153,13 +551,67 @@
INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
!List of element points selected
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_elem_pointlist_c
+
+! 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 )
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+!MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_ELEM_POINTLIST_C'::h5sget_select_elem_pointlist_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSIZE_T),DIMENSION(*), INTENT(IN) :: startpoint
+ INTEGER(HSIZE_T), INTENT(IN) :: num_points
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf
+ END FUNCTION h5sget_select_elem_pointlist_c
+ END INTERFACE
+
hdferr = h5sget_select_elem_pointlist_c(space_id, startpoint, &
num_points, buf )
END SUBROUTINE h5sget_select_elem_pointlist_f
+!----------------------------------------------------------------------
+! Name: h5sselect_elements_f
+!
+! Purpose: Selects elements to be included in the selection for
+! a dataspace
+!
+! Inputs:
+! space_id - dataspace identifier
+! operator - flag, valid values are:
+! H5S_SELECT_SET_F (0)
+! H5S_SELECT_OR_F (1)
+! rank - number of dataspace dimensions
+! num_elements - number of elements to be selected
+! coord - 2D (rank x num_elements) array with the
+! elements coordinates
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sselect_elements_f(space_id, operator, rank, &
num_elements, coord, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sselect_elements_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
@@ -174,9 +626,26 @@
! of the selected elements
! coord(rank, num_elements)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sselect_elements_c
INTEGER(HSSIZE_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)
+ !MS$ATTRIBUTES C,reference,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(HSSIZE_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
@@ -191,30 +660,145 @@
END SUBROUTINE h5sselect_elements_f
+!----------------------------------------------------------------------
+! Name: h5sselect_all_f
+!
+! Purpose: Selects the entire dataspace.
+!
+! Inputs:
+! space_id - identifier for the dataspace in which
+! selection being made
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sselect_all_f(space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sselect_all_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sselect_all_c
+
+! INTEGER, EXTERNAL :: h5sselect_all_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sselect_all_c(space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSELECT_ALL_C'::h5sselect_all_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5sselect_all_c
+ END INTERFACE
+
hdferr = h5sselect_all_c(space_id)
END SUBROUTINE h5sselect_all_f
+!----------------------------------------------------------------------
+! Name: h5sselect_none_f
+!
+! Purpose: Resets the selection region to include no elements.
+!
+! Inputs:
+! space_id - the identifier for the dataspace in which
+! the selection is being reset.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sselect_none_f(space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sselect_none_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sselect_none_c
- hdferr = h5sselect_none_c(space_id)
- END SUBROUTINE h5sselect_none_f
+! INTEGER, EXTERNAL :: h5sselect_none_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sselect_none_c(space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSELECT_NONE_C'::h5sselect_none_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5sselect_none_c
+ END INTERFACE
+ hdferr = h5sselect_none_c(space_id)
+ END SUBROUTINE h5sselect_none_f
+!----------------------------------------------------------------------
+! Name: h5sselect_valid_f
+!
+! Purpose: Verifies that the selection is within the extent of
+! the dataspace.
+!
+! Inputs:
+! space_id - identifier for the dataspace for which
+! selection is verified
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sselect_valid_f(space_id, status, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sselect_valid_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -223,53 +807,231 @@
! FALSE otherwise.
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: flag ! "TRUE/FALSE/ERROR" flag from C routine
- INTEGER, EXTERNAL :: h5sselect_valid_c
+
+! INTEGER, EXTERNAL :: h5sselect_valid_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sselect_valid_c(space_id, flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSELECT_VALID_C'::h5sselect_valid_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER :: flag
+ END FUNCTION h5sselect_valid_c
+ END INTERFACE
+
hdferr = h5sselect_valid_c(space_id, flag)
status = .TRUE.
if (flag .EQ. 0) status = .FALSE.
END SUBROUTINE h5sselect_valid_f
+!----------------------------------------------------------------------
+! Name: h5sget_simple_extent_npoints_f
+!
+! Purpose: Determines the number of elements in a dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! npoints - number of elements in the dataspace
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_simple_extent_npoints_f(space_id, npoints, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_simple_extent_npoints_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSIZE_T), INTENT(OUT) :: npoints ! Number of elements in
! dataspace
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_simple_extent_npoints_c
+
+! INTEGER, EXTERNAL :: h5sget_simple_extent_npoints_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_simple_extent_npoints_c( space_id, npoints)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SIMPLE_EXTENT_NPOINTS_C'::h5sget_simple_extent_npoints_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: npoints
+ END FUNCTION h5sget_simple_extent_npoints_c
+ END INTERFACE
+
hdferr = h5sget_simple_extent_npoints_c( space_id, npoints)
END SUBROUTINE h5sget_simple_extent_npoints_f
+!----------------------------------------------------------------------
+! Name: h5sget_select_npoints_f
+!
+! Purpose: Determines the number of elements in a dataspace selection.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! npoints - number of points in the dataspace selection
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_select_npoints_f(space_id, npoints, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_select_npoints_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER(HSSIZE_T), INTENT(OUT) :: npoints ! Number of elements in the
! selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_select_npoints_c
+
+! INTEGER, EXTERNAL :: h5sget_select_npoints_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_select_npoints_c(space_id, npoints)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_NPOINTS_C'::h5sget_select_npoints_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSSIZE_T), INTENT(OUT) :: npoints
+ END FUNCTION h5sget_select_npoints_c
+ END INTERFACE
+
hdferr = h5sget_select_npoints_c(space_id, npoints)
END SUBROUTINE h5sget_select_npoints_f
+!----------------------------------------------------------------------
+! Name: h5sget_simple_extent_ndims_f
+!
+! Purpose: Determines the dimensionality of a dataspace
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! rank - number of dataspace dimensions
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_simple_extent_ndims_f(space_id, rank, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_simple_extent_ndims_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: rank ! Number of dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_simple_extent_ndims_c
+
+! INTEGER, EXTERNAL :: h5sget_simple_extent_ndims_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_simple_extent_ndims_c(space_id, rank)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SIMPLE_EXTENT_NDIMS_C'::h5sget_simple_extent_ndims_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(OUT) :: rank
+ END FUNCTION h5sget_simple_extent_ndims_c
+ END INTERFACE
+
hdferr = h5sget_simple_extent_ndims_c(space_id, rank)
END SUBROUTINE h5sget_simple_extent_ndims_f
+!----------------------------------------------------------------------
+! Name: h5sget_simple_extent_dims_f
+!
+! Purpose: Retrieves dataspace dimension size and maximum size.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! dims - array to store size of each dimension
+! maxdims - array to store maximum size of each
+! dimension
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_simple_extent_dims_f(space_id, dims, maxdims, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_simple_extent_dims_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -281,13 +1043,61 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code: -1 on failure,
! number of dimensions on
! on success
- INTEGER, EXTERNAL :: h5sget_simple_extent_dims_c
+
+! INTEGER, EXTERNAL :: h5sget_simple_extent_dims_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_simple_extent_dims_c(space_id, dims, maxdims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SIMPLE_EXTENT_DIMS_C'::h5sget_simple_extent_dims_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: dims
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: maxdims
+ END FUNCTION h5sget_simple_extent_dims_c
+ END INTERFACE
+
hdferr = h5sget_simple_extent_dims_c(space_id, dims, maxdims)
END SUBROUTINE h5sget_simple_extent_dims_f
+!----------------------------------------------------------------------
+! Name: h5sget_simple_extent_type_f
+!
+! Purpose: Determine the current class of a dataspace
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! classtype - class type, possible values are:
+! H5S_NO_CLASS_F (-1)
+! H5S_SCALAR_F (0)
+! H5S_SIMPLE_F (1)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sget_simple_extent_type_f(space_id, classtype, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sget_simple_extent_type_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -297,14 +1107,61 @@
! H5S_SCALAR_F (0)
! H5S_SIMPLE_F (1)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sget_simple_extent_type_c
+
+! INTEGER, EXTERNAL :: h5sget_simple_extent_type_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sget_simple_extent_type_c(space_id, classtype)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SIMPLE_EXTENT_TYPE_C'::h5sget_simple_extent_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(OUT) :: classtype
+ END FUNCTION h5sget_simple_extent_type_c
+ END INTERFACE
+
hdferr = h5sget_simple_extent_type_c(space_id, classtype)
END SUBROUTINE h5sget_simple_extent_type_f
+!----------------------------------------------------------------------
+! Name: h5sset_extent_simple_f
+!
+! Purpose: Sets or resets the size of an existing dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! rank - dataspace number of dimensions
+! current_size - array with the new sizes of dimensions
+! maximum_size - array with the new maximum sizes of
+! dimensions
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sset_extent_simple_f(space_id, rank, current_size, &
maximum_size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sset_extent_simple_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -317,14 +1174,62 @@
! sizes of dimensions
! sizes
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sset_extent_simple_c
+
+! INTEGER, EXTERNAL :: h5sset_extent_simple_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sset_extent_simple_c(space_id, rank, &
+ current_size, maximum_size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSET_EXTENT_SIMPLE_C'::h5sset_extent_simple_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(IN) :: rank
+ INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: current_size
+ INTEGER(HSIZE_T), DIMENSION(rank), INTENT(IN) :: maximum_size
+ END FUNCTION h5sset_extent_simple_c
+ END INTERFACE
+
hdferr = h5sset_extent_simple_c(space_id, rank, current_size, &
maximum_size)
END SUBROUTINE h5sset_extent_simple_f
+!----------------------------------------------------------------------
+! Name: h5sis_simple_f
+!
+! Purpose: Determines whether a dataspace is a simple dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! status - flag to indicate if dataspace
+! is simple or not
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sis_simple_f(space_id, status, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sis_simple_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -333,14 +1238,59 @@
! FALSE)
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
- INTEGER, EXTERNAL :: h5sis_simple_c
+
+! INTEGER, EXTERNAL :: h5sis_simple_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sis_simple_c(space_id, flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SIS_SIMPLE_C'::h5sis_simple_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER :: flag
+ END FUNCTION h5sis_simple_c
+ END INTERFACE
+
hdferr = h5sis_simple_c(space_id, flag)
status = .TRUE.
if (flag .EQ. 0) status = .FALSE.
END SUBROUTINE h5sis_simple_f
+!----------------------------------------------------------------------
+! Name: h5soffset_simple_f
+!
+! Purpose: Sets the offset of a simple dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! offset - the offset at which to position the
+! selection
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5soffset_simple_f(space_id, offset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5soffset_simple_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
@@ -348,13 +1298,59 @@
! The offset at which to position
! the selection
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5soffset_simple_c
+
+! INTEGER, EXTERNAL :: h5soffset_simple_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5soffset_simple_c(space_id, offset)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SOFFSET_SIMPLE_C'::h5soffset_simple_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: offset
+ END FUNCTION h5soffset_simple_c
+ END INTERFACE
+
hdferr = h5soffset_simple_c(space_id, offset)
END SUBROUTINE h5soffset_simple_f
+!----------------------------------------------------------------------
+! Name: h5sextent_copy_f
+!
+! Purpose: Copies the extent of a dataspace.
+!
+! Inputs:
+! dest_space_id - the identifier for the dataspace to which
+! the extent is copied
+! source_space_id - the identifier for the dataspace from
+! which the extent is copied
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sextent_copy_f(dest_space_id, source_space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sextent_copy_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dest_space_id ! Identifier of destination
@@ -362,25 +1358,117 @@
INTEGER(HID_T), INTENT(IN) :: source_space_id ! Identifier of source
! dataspace
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sextent_copy_c
+
+! INTEGER, EXTERNAL :: h5sextent_copy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sextent_copy_c(dest_space_id, source_space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SEXTENT_COPY_C'::h5sextent_copy_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dest_space_id
+ INTEGER(HID_T), INTENT(IN) :: source_space_id
+ END FUNCTION h5sextent_copy_c
+ END INTERFACE
+
hdferr = h5sextent_copy_c(dest_space_id, source_space_id)
END SUBROUTINE h5sextent_copy_f
-
+!----------------------------------------------------------------------
+! Name: h5sset_extent_none_f
+!
+! Purpose: Removes the extent from a dataspace.
+!
+! Inputs:
+! space_id - dataspace identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sset_extent_none_f(space_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sset_extent_none_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5sset_extent_none_c
+
+! INTEGER, EXTERNAL :: h5sset_extent_none_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sset_extent_none_c(space_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSET_EXTENT_NONE_C'::h5sset_extent_none_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ END FUNCTION h5sset_extent_none_c
+ END INTERFACE
+
hdferr = h5sset_extent_none_c(space_id)
END SUBROUTINE h5sset_extent_none_f
+!----------------------------------------------------------------------
+! Name: h5sselect_hyperslab_f
+!
+! Purpose: Selects a hyperslab region to add to the current selected
+! region
+!
+! Inputs:
+! space_id - dataspace identifier
+! operator - flag, valid values are:
+! H5S_SELECT_SET_F (0)
+! H5S_SELECT_OR_F (1)
+! start - array with hyperslab offsets
+! count - number of blocks included in the
+! hyperslab
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! stride - array with hyperslab strides
+! block - array with hyperslab block sizes
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 6, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5sselect_hyperslab_f(space_id, operator, start, count, &
hdferr, stride, block)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5sselect_hyperslab_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
INTEGER, INTENT(IN) :: operator ! Flag, valid values are:
@@ -400,9 +1488,28 @@
! Sizes of element block
INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_block
INTEGER(HSIZE_T), DIMENSION(:), ALLOCATABLE :: def_stride
- INTEGER, EXTERNAL :: h5sselect_hyperslab_c
INTEGER :: rank
INTEGER :: error1, error2
+
+! INTEGER, EXTERNAL :: h5sselect_hyperslab_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5sselect_hyperslab_c(space_id, operator, &
+ start, count, stride, block)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5SSELECT_HYPERSLAB_C'::h5sselect_hyperslab_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER, INTENT(IN) :: operator
+ INTEGER(HSSIZE_T), DIMENSION(*), INTENT(IN) :: start
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: count
+ INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: stride
+ INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL, INTENT(IN) :: block
+ END FUNCTION h5sselect_hyperslab_c
+ END INTERFACE
+
if (present(stride).and. present(block)) then
hdferr = h5sselect_hyperslab_c(space_id, operator, start, count, &
stride, block)
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index fcb5f41..06ca00b 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -1,5 +1,6 @@
#include "H5f90.h"
+
/*----------------------------------------------------------------------------
* Name: h5topen_c
* Purpose: Call H5Topen to open a datatype
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index 344bfd8..6cfc525 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -3,12 +3,43 @@
!
MODULE H5T
- USE H5FORTRAN_TYPES
- USE H5FORTRAN_FLAGS
+ USE H5GLOBAL
CONTAINS
+!----------------------------------------------------------------------
+! Name: h5topen_f
+!
+! Purpose: Opens named datatype.
+!
+! Inputs:
+! loc_id - location identifier
+! name - a datatype name
+! Outputs:
+! type_id - datatype identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5topen_f(loc_id, name, type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5topen_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name
@@ -16,12 +47,63 @@
INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Name length
- INTEGER, EXTERNAL :: h5topen_c
+
+! INTEGER, EXTERNAL :: h5topen_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5topen_c(loc_id, name, namelen, type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TOPEN_C'::h5topen_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference ::name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5topen_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5topen_c(loc_id, name, namelen, type_id)
END SUBROUTINE h5topen_f
+!----------------------------------------------------------------------
+! Name: h5tcommit_f
+!
+! Purpose: Commits a transient datatype to a file, creating a
+! new named datatype.
+!
+! Inputs:
+! loc_id - location identifier
+! name - name of the datatype to be stored
+! at the specified location
+! type_id - identifier of a datatype to be stored
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tcommit_f(loc_id, name, type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tcommit_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
CHARACTER(LEN=*), INTENT(IN) :: name
@@ -29,23 +111,119 @@
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen ! Name length
- INTEGER, EXTERNAL :: h5tcommit_c
+
+! INTEGER, EXTERNAL :: h5tcommit_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tcommit_c(loc_id, name, namelen, type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TCOMMIT_C'::h5tcommit_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference ::name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ END FUNCTION h5tcommit_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5tcommit_c(loc_id, name, namelen, type_id)
END SUBROUTINE h5tcommit_f
+!----------------------------------------------------------------------
+! Name: h5tcopy_f
+!
+! Purpose: iCreates a copy of exisiting datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! new_type_id - identifier of datatype's copy
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tcopy_f(type_id, new_type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tcopy_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(HID_T), INTENT(OUT) :: new_type_id
! Identifier of datatype's copy
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tcopy_c
+
+! INTEGER, EXTERNAL :: h5tcopy_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tcopy_c(type_id, new_type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TCOPY_C'::h5tcopy_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(OUT) :: new_type_id
+ END FUNCTION h5tcopy_c
+ END INTERFACE
+
hdferr = h5tcopy_c(type_id, new_type_id)
END SUBROUTINE h5tcopy_f
+!----------------------------------------------------------------------
+! Name: h5tequal_f
+!
+! Purpose: Determines whether two datatype identifiers refer
+! to the same datatype.
+!
+! Inputs:
+! type1_id - datatype identifier
+! type2_id - datatype identifier
+! Outputs:
+! flag - TRUE/FALSE flag to indicate
+! if two datatypes are equal
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tequal_f(type1_id, type2_id, flag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tequal_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type1_id ! Datatype identifier
INTEGER(HID_T), INTENT(IN) :: type2_id ! Datatype identifier
@@ -53,23 +231,121 @@
! datatypes are equal
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: c_flag
- INTEGER, EXTERNAL :: h5tequal_c
+
+! INTEGER, EXTERNAL :: h5tequal_c
+! MS FORTRAN needs explicit interface for C functions called here
+ INTERFACE
+ INTEGER FUNCTION h5tequal_c(type1_id, type2_id, c_flag)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TEQUAL_C'::h5tequal_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type1_id
+ INTEGER(HID_T), INTENT(IN) :: type2_id
+ INTEGER :: c_flag
+ END FUNCTION h5tequal_c
+ END INTERFACE
+
flag = .FALSE.
hdferr = h5tequal_c(type1_id, type2_id, c_flag)
if(c_flag .gt. 0) flag = .TRUE.
END SUBROUTINE h5tequal_f
+!----------------------------------------------------------------------
+! Name: h5tclose_f
+!
+! Purpose: Releases a datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tclose_f(type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tclose_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tclose_c
+
+! INTEGER, EXTERNAL :: h5tclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tclose_c(type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TCLOSE_C'::h5tclose_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ END FUNCTION h5tclose_c
+ END INTERFACE
+
hdferr = h5tclose_c(type_id)
END SUBROUTINE h5tclose_f
+!----------------------------------------------------------------------
+! Name: h5tget_class_f
+!
+! Purpose: Returns the datatype class identifier.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! class - class, possible values are:
+! H5T_NO_CLASS_F (-1)
+! H5T_INTEGER_F (0)
+! H5T_FLOAT_F (1)
+! H5T_TIME_F (2)
+! H5T_STRING_F (3)
+! H5T_BITFIELD_F (4)
+! H5T_OPAQUE_F (5)
+! H5T_COMPOUND_F (6)
+! H5T_REFERENCE_F (7)
+! H5T_ENUM_F (8)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_class_f(type_id, class, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_class_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: class
@@ -85,32 +361,171 @@
! H5T_REFERENCE_F (7)
! H5T_ENUM_F (8)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_class_c
+
+! INTEGER, EXTERNAL :: h5tget_class_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_class_c(type_id, class)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_CLASS_C'::h5tget_class_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: class
+ END FUNCTION h5tget_class_c
+ END INTERFACE
+
hdferr = h5tget_class_c(type_id, class)
END SUBROUTINE h5tget_class_f
+!----------------------------------------------------------------------
+! Name: h5tget_size_f
+!
+! Purpose: Returns the size of a datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! size - datatype size
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_size_f(type_id, size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_size_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: size ! Datatype size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_size_c
+
+! INTEGER, EXTERNAL :: h5tget_size_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_size_c(type_id, size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_SIZE_C'::h5tget_size_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5tget_size_c
+ END INTERFACE
+
hdferr = h5tget_size_c(type_id, size)
END SUBROUTINE h5tget_size_f
+!----------------------------------------------------------------------
+! Name: h5tset_size_f
+!
+! Purpose: Sets the total size for an atomic datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! size - size of the datatype
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_size_f(type_id, size, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_size_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: size ! Datatype size
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_size_c
+
+! INTEGER, EXTERNAL :: h5tset_size_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_size_c(type_id, size)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_SIZE_C'::h5tset_size_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ END FUNCTION h5tset_size_c
+ END INTERFACE
+
hdferr = h5tset_size_c(type_id, size)
END SUBROUTINE h5tset_size_f
+!----------------------------------------------------------------------
+! Name: h5tget_order_f
+!
+! Purpose: Returns the byte order of an atomic datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! order - byte order for the datatype, possible
+! values are:
+! H5T_ORDER_LE_F
+! H5T_ORDER_BE_F
+! H5T_ORDER_VAX_F (not implemented yet)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_order_f(type_id, order, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_order_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: order
@@ -119,12 +534,61 @@
! H5T_ORDER_BE_F
! H5T_ORDER_VAX_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_order_c
+
+! INTEGER, EXTERNAL :: h5tget_order_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_order_c(type_id, order)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_ORDER_C'::h5tget_order_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: order
+ END FUNCTION h5tget_order_c
+ END INTERFACE
+
hdferr = h5tget_order_c(type_id, order)
END SUBROUTINE h5tget_order_f
+!----------------------------------------------------------------------
+! Name: h5tset_order_f
+!
+! Purpose: Sets the byte ordering of an atomic datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! order - datatype byte order
+! Possible values are:
+! H5T_ORDER_LE_F
+! H5T_ORDER_BE_F
+! H5T_ORDER_VAX_F (not implemented yet)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_order_f(type_id, order, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_order_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: order ! Datatype byte order, bossible values
@@ -133,50 +597,283 @@
! H5T_ORDER_BE_F
! H5T_ORDER_VAX_F
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_order_c
+
+! INTEGER, EXTERNAL :: h5tset_order_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_order_c(type_id, order)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_ORDER_C'::h5tset_order_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: order
+ END FUNCTION h5tset_order_c
+ END INTERFACE
+
hdferr = h5tset_order_c(type_id, order)
END SUBROUTINE h5tset_order_f
+!----------------------------------------------------------------------
+! Name: h5tget_precision_f
+!
+! Purpose: Returns the precision of an atomic datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! precision - precision of the datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_precision_f(type_id, precision, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_precision_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: precision ! Datatype precision
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_precision_c
+
+! INTEGER, EXTERNAL :: h5tget_precision_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_precision_c (type_id, precision)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_PRECISION_C'::h5tget_precision_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(OUT) :: precision
+ END FUNCTION h5tget_precision_c
+ END INTERFACE
+
hdferr = h5tget_precision_c(type_id, precision)
END SUBROUTINE h5tget_precision_f
+!----------------------------------------------------------------------
+! Name: h5tset_precision_f
+!
+! Purpose: Sets the precision of an atomic datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! precision - datatype precision
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_precision_f(type_id, precision, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_precision_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: precision ! Datatype precision
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_precision_c
+
+! INTEGER, EXTERNAL :: h5tset_precision_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_precision_c (type_id, precision)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_PRECISION_C'::h5tset_precision_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(IN) :: precision
+ END FUNCTION h5tset_precision_c
+ END INTERFACE
+
hdferr = h5tset_precision_c(type_id, precision)
END SUBROUTINE h5tset_precision_f
+!----------------------------------------------------------------------
+! Name: h5tget_offset_f
+!
+! Purpose: Retrieves the bit offset of the first significant bit.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! offset - offset value
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_offset_f(type_id, offset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_offset_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(OUT) :: offset ! Datatype bit offset of the
! first significant bit
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_offset_c
+
+! INTEGER, EXTERNAL :: h5tget_offset_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_offset_c(type_id, offset)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_OFFSET_C'::h5tget_offset_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(OUT) :: offset
+ END FUNCTION h5tget_offset_c
+ END INTERFACE
+
hdferr = h5tget_offset_c(type_id, offset)
END SUBROUTINE h5tget_offset_f
+!----------------------------------------------------------------------
+! Name: h5tset_offset_f
+!
+! Purpose: Sets the bit offset of the first significant bit.
+!
+! Inputs:
+! type_id - datatype identifier
+! offset - offset value
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_offset_f(type_id, offset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_offset_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER(SIZE_T), INTENT(IN) :: offset ! Datatype bit offset of the
! first significant bit
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_offset_c
+
+! INTEGER, EXTERNAL :: h5tset_offset_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_offset_c(type_id, offset)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_OFFSET_C'::h5tset_offset_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(IN) :: offset
+ END FUNCTION h5tset_offset_c
+ END INTERFACE
+
hdferr = h5tset_offset_c(type_id, offset)
END SUBROUTINE h5tset_offset_f
+!----------------------------------------------------------------------
+! Name: h5tget_pad_f
+!
+! Purpose: Retrieves the padding type of the least and
+! most-significant bit padding.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! lsbpad - least-significant bit padding type
+! msbpad - most-significant bit padding type
+! Possible values of padding type are:
+! H5T_PAD_ERROR_F = -1
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! H5T_PAD_NPAD_F = 3
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_pad_f(type_id, lsbpad, msbpad, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_pad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: lsbpad ! padding type of the
@@ -191,11 +888,64 @@
! H5T_PAD_NPAD_F = 3
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_pad_c
+
+! INTEGER, EXTERNAL :: h5tget_pad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_pad_c(type_id, lsbpad, msbpad)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_PAD_C'::h5tget_pad_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: lsbpad
+ INTEGER, INTENT(OUT) :: msbpad
+ END FUNCTION h5tget_pad_c
+ END INTERFACE
+
hdferr = h5tget_pad_c(type_id, lsbpad, msbpad)
END SUBROUTINE h5tget_pad_f
+!----------------------------------------------------------------------
+! Name: h5tset_pad_f
+!
+! Purpose: Sets the least and most-significant bits padding types.
+!
+! Inputs:
+! type_id - datatype identifier
+! lsbpad - least-significant bit padding type
+! msbpad - most-significant bit padding type
+! Possible values of padding type are:
+! H5T_PAD_ERROR_F = -1
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! H5T_PAD_NPAD_F = 3
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_pad_f(type_id, lsbpad, msbpad, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_pad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: lsbpad ! padding type of the
@@ -209,11 +959,62 @@
! H5T_PAD_ERROR_F = -1
! H5T_PAD_NPAD_F = 3
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_pad_c
+
+! INTEGER, EXTERNAL :: h5sget_pad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_pad_c(type_id, lsbpad, msbpad)
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_PAD_C'::h5tset_pad_c
+ !DEC$ ENDIF
+ INTEGER, INTENT(IN) :: lsbpad
+ INTEGER, INTENT(IN) :: msbpad
+ END FUNCTION h5tset_pad_c
+ END INTERFACE
+
hdferr = h5tset_pad_c(type_id, lsbpad, msbpad)
END SUBROUTINE h5tset_pad_f
+!----------------------------------------------------------------------
+! Name: h5tget_sign_f
+!
+! Purpose: Retrieves the sign type for an integer type.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! sign - sign type
+! Possible values are:
+! Unsigned integer type H5T_SGN_NONE_F = 0
+! Two's complement signed integer type
+! H5T_SGN_2_F = 1
+! or error value: H5T_SGN_ERROR_F=-1
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_sign_f(type_id, sign, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_sign_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: sign ! sign type for an integer type
@@ -223,11 +1024,61 @@
!H5T_SGN_2_F = 1
!or error value: H5T_SGN_ERROR_F=-1
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_sign_c
+
+! INTEGER, EXTERNAL :: h5tget_sign_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_sign_c(type_id, sign)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_SIGN_C'::h5tget_sign_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: sign
+ END FUNCTION h5tget_sign_c
+ END INTERFACE
+
hdferr = h5tget_sign_c(type_id, sign)
END SUBROUTINE h5tget_sign_f
+!----------------------------------------------------------------------
+! Name: h5tset_sign_f
+!
+! Purpose: Sets the sign proprety for an integer type.
+!
+! Inputs:
+! type_id - datatype identifier
+! sign - sign type
+! Possible values are:
+! Unsigned integer type H5T_SGN_NONE_F = 0
+! Two's complement signed integer type
+! H5T_SGN_2_F = 1
+! or error value: H5T_SGN_ERROR_F=-1
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_sign_f(type_id, sign, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_sign_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: sign !sign type for an integer type
@@ -237,11 +1088,59 @@
!H5T_SGN_2_F = 1
!or error value: H5T_SGN_ERROR_F=-1
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_sign_c
+
+! INTEGER, EXTERNAL :: h5tset_sign_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_sign_c(type_id, sign)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_SIGN_C'::h5tset_sign_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: sign
+ END FUNCTION h5tset_sign_c
+ END INTERFACE
+
hdferr = h5tset_sign_c(type_id, sign)
END SUBROUTINE h5tset_sign_f
+!----------------------------------------------------------------------
+! Name: h5tget_fields_f
+!
+! Purpose: Retrieves floating point datatype bit field information.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! epos - exponent bit-position
+! esize - size of exponent in bits
+! mpos - mantissa position
+! msize - size of mantissa in bits
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_fields_f(type_id, epos, esize, mpos, msize, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_fields_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: epos ! exponent bit-position
@@ -250,11 +1149,62 @@
INTEGER, INTENT(OUT) :: msize ! size of mantissa in bits
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_fields_c
- hdferr = h5tget_fields_c(type_id, epos, esize, mpos, msize, hdferr)
+! INTEGER, EXTERNAL :: h5tget_fields_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_fields_c(type_id, epos, esize, mpos, msize)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_FIELDS_C'::h5tget_fields_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: epos
+ INTEGER, INTENT(OUT) :: esize
+ INTEGER, INTENT(OUT) :: mpos
+ INTEGER, INTENT(OUT) :: msize
+ END FUNCTION h5tget_fields_c
+ END INTERFACE
+
+ hdferr = h5tget_fields_c(type_id, epos, esize, mpos, msize)
END SUBROUTINE h5tget_fields_f
+!----------------------------------------------------------------------
+! Name: h5tset_fields_f
+!
+! Purpose: Sets locations and sizes of floating point bit fields.
+!
+! Inputs:
+! type_id - datatype identifier
+! epos - exponent bit-position
+! esize - size of exponent in bits
+! mpos - mantissa position
+! msize - size of mantissa in bits
+! hdferr: - error code
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_fields_f(type_id, epos, esize, mpos, msize, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_fields_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: epos ! exponent bit-position
@@ -263,30 +1213,171 @@
INTEGER, INTENT(IN) :: msize ! size of mantissa in bits
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_fields_c
+! INTEGER, EXTERNAL :: h5tset_fields_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_fields_c(type_id, epos, esize, mpos, msize)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_FIELDS_C'::h5tset_fields_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: epos
+ INTEGER, INTENT(IN) :: esize
+ INTEGER, INTENT(IN) :: mpos
+ INTEGER, INTENT(IN) :: msize
+ END FUNCTION h5tset_fields_c
+ END INTERFACE
+
hdferr = h5tset_fields_c(type_id, epos, esize, mpos, msize)
END SUBROUTINE h5tset_fields_f
+!----------------------------------------------------------------------
+! Name: h5tget_ebias_f
+!
+! Purpose: Retrieves the exponent bias of a floating-point type.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! ebias - datatype exponent bias
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_ebias_f(type_id, ebias, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_ebias_f
+!DEC$endif
+!
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
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_ebias_c
+
+! INTEGER, EXTERNAL :: h5tget_ebias_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_ebias_c(type_id, ebias)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_EBIAS_C'::h5tget_ebias_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(OUT) :: ebias
+ END FUNCTION h5tget_ebias_c
+ END INTERFACE
+
hdferr = h5tget_ebias_c(type_id, ebias)
END SUBROUTINE h5tget_ebias_f
+!----------------------------------------------------------------------
+! Name: h5tset_ebias_f
+!
+! Purpose: Sets the exponent bias of a floating-point type.
+!
+! Inputs:
+! type_id - datatype identifier
+! ebias - datatype exponent bias
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_ebias_f(type_id, ebias, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_ebias_f
+!DEC$endif
+!
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
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_ebias_c
+
+! INTEGER, EXTERNAL :: h5tset_ebias_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_ebias_c(type_id, ebias)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_EBIAS_C'::h5tset_ebias_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(SIZE_T), INTENT(IN) :: ebias
+ END FUNCTION h5tset_ebias_c
+ END INTERFACE
+
hdferr = h5tset_ebias_c(type_id, ebias)
END SUBROUTINE h5tset_ebias_f
+!----------------------------------------------------------------------
+! Name: h5tget_norm_f
+!
+! Purpose: Retrieves mantissa normalization of a floating-point
+! datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! norm - normalization types, valid values are:
+! H5T_NORM_IMPLIED_F(0)
+! H5T_NORM_MSBSET_F(1)
+! H5T_NORM_NONE_F(2)
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_norm_f(type_id, norm, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_norm_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: norm !mantissa normalization of a floating-point datatype
@@ -296,12 +1387,60 @@
!mantissa is always 1, H5T_NORM_NONE_F(2)
!Mantissa is not normalize
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_norm_c
+
+! INTEGER, EXTERNAL :: h5tget_norm_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_norm_c(type_id, norm)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_NORM_C'::h5tget_norm_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: norm
+ END FUNCTION h5tget_norm_c
+ END INTERFACE
+
hdferr = h5tget_norm_c(type_id, norm)
END SUBROUTINE h5tget_norm_f
+!----------------------------------------------------------------------
+! Name: h5tset_norm_f
+!
+! Purpose: Sets the mantissa normalization of a floating-point datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! norm - normalization types, valid values are:
+! H5T_NORM_IMPLIED_F(0)
+! H5T_NORM_MSBSET_F(1)
+! H5T_NORM_NONE_F(2)
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_norm_f(type_id, norm, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_norm_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: norm !mantissa normalization of a floating-point datatype
@@ -311,11 +1450,61 @@
!mantissa is always 1, H5T_NORM_NONE_F(2)
!Mantissa is not normalize
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_norm_c
+
+! INTEGER, EXTERNAL :: h5tset_norm_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_norm_c(type_id, norm)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_NORM_C'::h5tset_norm_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: norm
+ END FUNCTION h5tset_norm_c
+ END INTERFACE
+
hdferr = h5tset_norm_c(type_id, norm)
END SUBROUTINE h5tset_norm_f
+!----------------------------------------------------------------------
+! Name: h5tget_inpad_f
+!
+! Purpose: Retrieves the internal padding type for unused bits
+! in floating-point datatypes.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! padtype - padding type for unused bits
+! Possible values of padding type are:
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_inpad_f(type_id, padtype, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_inpad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: padtype ! padding type for unused bits
@@ -326,11 +1515,60 @@
! H5T__PAD_BACKGROUND_F = 2
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_inpad_c
+
+! INTEGER, EXTERNAL :: h5tget_inpad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_inpad_c(type_id, padtype)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_INPAD_C'::h5tget_inpad_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: padtype
+ END FUNCTION h5tget_inpad_c
+ END INTERFACE
+
hdferr = h5tget_inpad_c(type_id, padtype)
END SUBROUTINE h5tget_inpad_f
+!----------------------------------------------------------------------
+! Name: h5tset_inpad_f
+!
+! Purpose: Fills unused internal floating point bits.
+!
+! Inputs:
+! type_id - datatype identifier
+! padtype - padding type for unused bits
+! Possible values of padding type are:
+! H5T_PAD_ZERO_F = 0
+! H5T_PAD_ONE_F = 1
+! H5T_PAD_BACKGROUND_F = 2
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_inpad_f(type_id, padtype, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_inpad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: padtype ! padding type for unused bits
@@ -340,92 +1578,463 @@
! H5T__PAD_ONE_F = 1
! H5T__PAD_BACKGROUND_F = 2
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_inpad_c
+
+! INTEGER, EXTERNAL :: h5tset_inpad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_inpad_c(type_id, padtype)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_INPAD_C'::h5tset_inpad_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: padtype
+ END FUNCTION h5tset_inpad_c
+ END INTERFACE
+
hdferr = h5tset_inpad_c(type_id, padtype)
END SUBROUTINE h5tset_inpad_f
+!----------------------------------------------------------------------
+! Name: h5tget_cset_f
+!
+! Purpose: Retrieves the character set type of a string datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! cset - character set type of a string datatype
+! Possible values of padding type are:
+! H5T_CSET_ASCII_F = 0
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_cset_f(type_id, cset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_cset_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: cset ! character set type of a string datatype
! Possible values of padding type are:
!H5T_CSET_ASCII_F = 0
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_cset_c
+
+! INTEGER, EXTERNAL :: h5tget_cset_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_cset_c(type_id, cset)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_CSET_C'::h5tget_cset_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: cset
+ END FUNCTION h5tget_cset_c
+ END INTERFACE
+
hdferr = h5tget_cset_c(type_id, cset)
END SUBROUTINE h5tget_cset_f
+!----------------------------------------------------------------------
+! Name: h5tset_cset_f
+!
+! Purpose: Sets character set to be used.
+!
+! Inputs:
+! type_id - datatype identifier
+! cset - character set type of a string datatype
+! Possible values of padding type are:
+! H5T_CSET_ASCII_F = 0
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_cset_f(type_id, cset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_cset_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: cset !character set type of a string datatype
!Possible values of padding type are:
!H5T_CSET_ASCII_F = 0
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_cset_c
+
+! INTEGER, EXTERNAL :: h5tset_cset_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_cset_c(type_id, cset)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_CSET_C'::h5tset_cset_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: cset
+ END FUNCTION h5tset_cset_c
+ END INTERFACE
+
hdferr = h5tset_cset_c(type_id, cset)
END SUBROUTINE h5tset_cset_f
+!----------------------------------------------------------------------
+! Name: h5tget_strpad_f
+!
+! Purpose: Retrieves the storage mechanism for a string datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! strpad - storage method for a string datatype
+! Possible values are:
+! H5T_STR_NULLTERM_F,
+! H5T_STR_NULLPAD_F,
+! H5T_STR_SPACEPAD_F
+! H5T_STR_ERROR_F
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_strpad_f(type_id, strpad, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_strpad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER, INTENT(OUT) :: strpad ! string padding method for a string datatype
- ! Possible values of padding type are:
- !Pad with zeros (as C does): H5T_STR_NULL_F(0),
- !Pad with spaces (as FORTRAN does):
- !H5T_STR_SPACE_F(1)
+ INTEGER, INTENT(OUT) :: strpad
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_strpad_c
+
+! INTEGER, EXTERNAL :: h5tget_strpad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_strpad_c(type_id, strpad)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_STRPAD_C'::h5tget_strpad_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: strpad
+ END FUNCTION h5tget_strpad_c
+ END INTERFACE
+
hdferr = h5tget_strpad_c(type_id, strpad)
END SUBROUTINE h5tget_strpad_f
+!----------------------------------------------------------------------
+! Name: h5tset_strpad_f
+!
+! Purpose: Defines the storage mechanism for character strings.
+!
+! Inputs:
+! type_id - datatype identifier
+! strpad - storage method for a string datatype
+! Possible values are:
+! H5T_STR_NULLTERM_F,
+! H5T_STR_NULLPAD_F,
+! H5T_STR_SPACEPAD_F
+! H5T_STR_ERROR_F
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_strpad_f(type_id, strpad, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_strpad_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: strpad ! string padding method for a string datatype
- ! Possible values of padding type are:
- !Pad with zeros (as C does): H5T_STR_NULL_F(0),
- !Pad with spaces (as FORTRAN does):
- !H5T_STR_SPACE_F(1)
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tset_strpad_c
+
+! INTEGER, EXTERNAL :: h5tset_strpad_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_strpad_c(type_id, strpad)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_STRPAD_C'::h5tset_strpad_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: strpad
+ END FUNCTION h5tset_strpad_c
+ END INTERFACE
+
hdferr = h5tset_strpad_c(type_id, strpad)
END SUBROUTINE h5tset_strpad_f
+!----------------------------------------------------------------------
+! Name: h5tget_nmembers_f
+!
+! Purpose: Retrieves the number of fields in a compound datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! num_members - number of members
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_nmembers_f(type_id, num_members, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_nmembers_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: num_members !number of fields in a compound datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_nmembers_c
+
+! INTEGER, EXTERNAL :: h5tget_nmembers_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_nmembers_c(type_id, num_members)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_NMEMBERS_C'::h5tget_nmembers_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: num_members
+ END FUNCTION h5tget_nmembers_c
+ END INTERFACE
+
hdferr = h5tget_nmembers_c(type_id, num_members)
END SUBROUTINE h5tget_nmembers_f
+!----------------------------------------------------------------------
+! Name: h5tget_member_name_f
+!
+! Purpose: Retrieves the name of a field of a compound datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! index - filed index (0-based)
+! Outputs:
+! member_name - buffer to hold member's name
+! namelen - name lenght
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_member_name_f(type_id,index, member_name, namelen, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_member_name_f
+!DEC$endif
+!
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
CHARACTER(LEN=*), INTENT(OUT) :: member_name !name of a field of
!a compound datatype
- INTEGER, INTENT(OUT) :: namelen ! Length the name
+ INTEGER, INTENT(OUT) :: namelen ! Length of the name
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_member_name_c
+
+! INTEGER, EXTERNAL :: h5tget_member_name_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_member_name_c(type_id, index, member_name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_MEMBER_NAME_C'::h5tget_member_name_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: member_name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: index
+ CHARACTER(LEN=*), INTENT(OUT) :: member_name
+ INTEGER, INTENT(OUT) :: namelen
+ END FUNCTION
+ END INTERFACE
+
hdferr = h5tget_member_name_c(type_id, index, member_name, namelen)
END SUBROUTINE h5tget_member_name_f
+!----------------------------------------------------------------------
+! Name: h5tget_member_offset_f
+!
+! Purpose: Retrieves the offset of a field of a compound datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! member_no - number of the field
+! Outputs:
+! offset - byte offset of the requested field
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_member_offset_f(type_id, member_no, offset, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_member_offset_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the field
!whose offset is requested
- INTEGER(SIZE_T), INTENT(OUT) :: offset !byte offset of the the beginning of the field
+ INTEGER(SIZE_T), INTENT(OUT) :: offset !byte offset of the beginning of the field
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_member_offset_c
+
+! INTEGER, EXTERNAL :: h5tget_member_offset_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset )
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_MEMBER_OFFSET_C'::h5tget_member_offset_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: member_no
+ INTEGER(SIZE_T), INTENT(OUT) :: offset
+ END FUNCTION h5tget_member_offset_c
+ END INTERFACE
+
hdferr = h5tget_member_offset_c(type_id, member_no, offset )
END SUBROUTINE h5tget_member_offset_f
+!----------------------------------------------------------------------
+! Name: h5tget_member_dim_f
+!
+! Purpose: This function is not supported in hdf5-1.4.*
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
! SUBROUTINE h5tget_member_dims_f(type_id, field_idx,dims, field_dims, perm, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_member_dims_f
+!DEC$endif
+!
! IMPLICIT NONE
! INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
! INTEGER, INTENT(IN) :: field_idx !Field index (0-based) of
@@ -442,90 +2051,448 @@
!
! END SUBROUTINE h5tget_member_dims_f
+!----------------------------------------------------------------------
+! Name: h5tget_array_dims_f
+!
+! Purpose: Returns sizes of array dimensions.
+!
+! Inputs:
+! type_id - array datatype identifier
+! Outputs:
+! dims - buffer to store array datatype
+! dimensions
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_array_dims_f(type_id, dims, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_array_dims_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims !buffer to store array datatype
! dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_array_dims_c
+
+! INTEGER, EXTERNAL :: h5tget_array_dims_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_array_dims_c(type_id, dims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_ARRAY_DIMS_C'::h5tget_array_dims_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HSIZE_T),DIMENSION(*), INTENT(OUT) :: dims
+ END FUNCTION h5tget_array_dims_c
+ END INTERFACE
+
hdferr = h5tget_array_dims_c(type_id, dims)
END SUBROUTINE h5tget_array_dims_f
+!----------------------------------------------------------------------
+! Name: h5tget_array_ndims_f
+!
+! Purpose: Returns the rank of an array datatype.
+!
+! Inputs:
+! type_id - array datatype identifier
+! Outputs:
+! ndims - number of array dimensions
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_array_ndims_f(type_id, ndims, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_array_ndims_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Array datatype identifier
INTEGER, INTENT(OUT) :: ndims ! number of array dimensions
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_array_ndims_c
+
+! INTEGER, EXTERNAL :: h5tget_array_ndims_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_array_ndims_c(type_id, ndims)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_ARRAY_NDIMS_C'::h5tget_array_ndims_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(OUT) :: ndims
+ END FUNCTION h5tget_array_ndims_c
+ END INTERFACE
+
hdferr = h5tget_array_ndims_c(type_id, ndims)
END SUBROUTINE h5tget_array_ndims_f
+!----------------------------------------------------------------------
+! Name: h5tget_super_f
+!
+! Purpose: Returns the base datatype from which a datatype is derived.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! base_type_id - identifier of the base type
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_super_f(type_id, base_type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_super_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! datatype identifier
INTEGER(HID_T), INTENT(OUT) :: base_type_id ! identifier of the datatype
! from which datatype (type_id) was derived
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_super_c
+
+! INTEGER, EXTERNAL :: h5tget_super_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_super_c(type_id, base_type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_SUPER_C'::h5tget_super_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(OUT) :: base_type_id
+ END FUNCTION h5tget_super_c
+ END INTERFACE
+
hdferr = h5tget_super_c(type_id, base_type_id)
END SUBROUTINE h5tget_super_f
+!----------------------------------------------------------------------
+! Name: h5tget_member_type_f
+!
+! Purpose: Returns the datatype of the specified member.
+!
+! Inputs:
+! type_id - compound datatype identifier
+! field_idx - field index (0-based)
+!
+! Outputs:
+! datatype - idnetifier of the member's datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_member_type_f(type_id, field_idx, datatype, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_member_type_f
+!DEC$endif
+!
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
INTEGER(HID_T), INTENT(OUT) :: datatype !identifier of a copy of
!the datatype of the field
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_member_type_c
+
+! INTEGER, EXTERNAL :: h5tget_member_type_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_member_type_c(type_id, field_idx , datatype)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_MEMBER_TYPE_C'::h5tget_member_type_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: field_idx
+ INTEGER(HID_T), INTENT(OUT) :: datatype
+ END FUNCTION h5tget_member_type_c
+ END INTERFACE
+
hdferr = h5tget_member_type_c(type_id, field_idx , datatype)
END SUBROUTINE h5tget_member_type_f
+!----------------------------------------------------------------------
+! Name: h5tcreate_f
+!
+! Purpose: Creates a new dataype
+!
+! Inputs:
+! class - datatype class, possible values are:
+! H5T_COMPOUND_F
+! H5T_ENUM_F
+! H5T_OPAQUE_F
+! size - datattype size
+! Outputs:
+! type_id - datatype identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tcreate_f(class, size, type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tcreate_f
+!DEC$endif
+!
IMPLICIT NONE
- INTEGER, INTENT(IN) :: class ! Datatype class cna be one of
- ! H5T_COMPOUND_F (6)
- ! H5T_ENUM_F (8)
- ! H5T_OPAQUE_F (9)
+ INTEGER, INTENT(IN) :: class ! Datatype class can be one of
+ ! H5T_COMPOUND_F
+ ! H5T_ENUM_F
+ ! H5T_OPAQUE_F
INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the datatype
INTEGER(HID_T), INTENT(OUT) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tcreate_c
+
+! INTEGER, EXTERNAL :: h5tcreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tcreate_c(class, size, type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TCREATE_C'::h5tcreate_c
+ !DEC$ ENDIF
+ INTEGER, INTENT(IN) :: class
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5tcreate_c
+ END INTERFACE
hdferr = h5tcreate_c(class, size, type_id)
END SUBROUTINE h5tcreate_f
+!----------------------------------------------------------------------
+! Name: h5tinsert_f
+!
+! Purpose: Adds a new member to a compound datatype.
+!
+! Inputs:
+! type_id - compound dattype identifier
+! name - name of the field to insert
+! offset - start of the member in an instance of
+! the compound datatype
+! field_id - datatype identifier of the field to insert
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tinsert_f(type_id, name, offset, field_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tinsert_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the field to insert
- INTEGER(SIZE_T), INTENT(IN) :: offset !Offset in memory structure of the field to insert
+ INTEGER(SIZE_T), INTENT(IN) :: offset !start of the member in an instance of
+ !the compound datatype
INTEGER(HID_T), INTENT(IN) :: field_id !datatype identifier of the new member
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5tinsert_c
+
+! INTEGER, EXTERNAL :: h5tinsert_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tinsert_c(type_id, name, namelen, offset, field_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TINSERT_C'::h5tinsert_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(SIZE_T), INTENT(IN) :: offset
+ INTEGER(HID_T), INTENT(IN) :: field_id
+ INTEGER :: namelen
+ END FUNCTION h5tinsert_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5tinsert_c(type_id, name, namelen, offset, field_id )
END SUBROUTINE h5tinsert_f
+!----------------------------------------------------------------------
+! Name: h5tpack_f
+!
+! Purpose: Recursively removes padding from within a compound datatype.
+!
+! Inputs:
+! type_id - compound datatype identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tpack_f(type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tpack_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tpack_c
+
+! INTEGER, EXTERNAL :: h5tpack_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tpack_c(type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TPACK_C'::h5tpack_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ END FUNCTION h5tpack_c
+ END INTERFACE
+
hdferr = h5tpack_c(type_id)
END SUBROUTINE h5tpack_f
+!----------------------------------------------------------------------
+! Name: h5tinsert_array_f
+!
+! Purpose: This function is not available on hdf5-1.4.*
+!
+! Inputs:
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
! SUBROUTINE h5tinsert_array_f(parent_id,name,offset, ndims, dims, member_id, hdferr, perm)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tinsert_array_f
+!DEC$endif
+!
! 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
@@ -550,8 +2517,42 @@
! end if
!
! END SUBROUTINE h5tinsert_array_f
+
+!----------------------------------------------------------------------
+! Name: h5tarray_create_f
+!
+! Purpose: Creates an array datatype object.
+!
+! Inputs:
+! base_id - datatype identifier for the array
+! base datatype
+! rank - rank of the array
+! dims - array dimension sizes
+! Outputs:
+! type_id - array datatype identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5tarray_create_f(base_id, rank, dims, type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tarray_create_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: base_id ! identifier of array base datatype
INTEGER, INTENT(IN) :: rank ! Rank of the array
@@ -559,12 +2560,60 @@
INTEGER(HID_T), INTENT(OUT) :: type_id ! identifier of the array datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tarray_create_c
- hdferr = h5tarray_create_c(base_id, rank, dims, type_id)
+
+! INTEGER, EXTERNAL :: h5tarray_create_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tarray_create_c(base_id, rank, dims, type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TARRAY_CREATE_C'::h5tarray_create_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: base_id
+ INTEGER, INTENT(IN) :: rank
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5tarray_create_c
+ END INTERFACE
+
+ hdferr = h5tarray_create_c(base_id, rank, dims, type_id)
END SUBROUTINE h5tarray_create_f
+!----------------------------------------------------------------------
+! Name: h5tenum_create_f
+!
+! Purpose: Creates a new enumeration datatype.
+!
+! Inputs:
+! parent_id - datatype identifier for base datatype
+! Outputs:
+! new_type_id - datatype identifier for the enumeration
+! datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tenum_create_f(parent_id, new_type_id, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tenum_create_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: parent_id ! Datatype identifier for
! the base datatype
@@ -572,75 +2621,380 @@
!datatype identifier for the
! new enumeration datatype
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tenum_create_c
+
+! INTEGER, EXTERNAL :: h5tenum_create_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tenum_create_c(parent_id, new_type_id)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_CREATE_C'::h5tenum_create_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: parent_id
+ INTEGER(HID_T), INTENT(OUT) :: new_type_id
+ END FUNCTION h5tenum_create_c
+ END INTERFACE
+
hdferr = h5tenum_create_c(parent_id, new_type_id)
END SUBROUTINE h5tenum_create_f
+
+!----------------------------------------------------------------------
+! Name: h5tenaum_insert_f
+!
+! Purpose: Inserts a new enumeration datatype member.
+!
+! Inputs:
+! type_id - datatype identifier
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tenum_insert_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
INTEGER, INTENT(IN) :: value !value of the new member
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5tenum_insert_c
+
+! INTEGER, EXTERNAL :: h5tenum_insert_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_INSERT_C'::h5tenum_insert_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: value
+ INTEGER :: namelen
+ END FUNCTION h5tenum_insert_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5tenum_insert_c(type_id, name, namelen, value)
END SUBROUTINE h5tenum_insert_f
- SUBROUTINE h5tenum_nameof_f(type_id, name, namelen, value, hdferr)
+!----------------------------------------------------------------------
+! Name: h5tenum_nameof_f
+!
+! Purpose: Returns the symbol name corresponding to a specified
+! member of an enumeration datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! value - value of the enumeration datatype
+! namelen - name buffer size
+! Outputs:
+! name - buffer to hold symbol name
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
+ SUBROUTINE h5tenum_nameof_f(type_id, value, namelen, name, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tenum_nameof_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(OUT) :: name !Name of the enumeration datatype.
INTEGER(SIZE_T), INTENT(IN) :: namelen !length of the name
INTEGER, INTENT(IN) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tenum_nameof_c
+
+! INTEGER, EXTERNAL :: h5tenum_nameof_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_NAMEOF_C'::h5tenum_nameof_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ INTEGER, INTENT(IN) :: value
+ END FUNCTION h5tenum_nameof_c
+ END INTERFACE
+
hdferr = h5tenum_nameof_c(type_id, value, name, namelen)
END SUBROUTINE h5tenum_nameof_f
+
+!----------------------------------------------------------------------
+! Name: h5tenum_valuof_f
+!
+! Purpose: Returns the value corresponding to a specified
+! member of an enumeration datatype.
+!
+! Inputs:
+! type_id - datatype identifier
+! name - symbol name
+! Outputs:
+! value - value of the enumeration datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
SUBROUTINE h5tenum_valueof_f(type_id, name, value, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tenum_valueof_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: name !Name of the enumeration datatype.
INTEGER, INTENT(OUT) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5tenum_valueof_c
+
+! INTEGER, EXTERNAL :: h5tenum_valueof_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_VALUEOF_C'::h5tenum_valueof_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: namelen
+ INTEGER, INTENT(OUT) :: value
+ END FUNCTION h5tenum_valueof_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5tenum_valueof_c(type_id, name, namelen, value)
END SUBROUTINE h5tenum_valueof_f
+!----------------------------------------------------------------------
+! Name: h5tget_member_value_f
+!
+! Purpose: Returns the value of an enumeration datatype member.
+!
+! Inputs:
+! type_id - datatype identifier
+! member_no - number of the enumeration datatype member
+! Outputs:
+! value - value of the enumeration datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_member_value_f(type_id, member_no, value, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_member_value_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
INTEGER, INTENT(IN) :: member_no !Number of the enumeration datatype member
INTEGER, INTENT(OUT) :: value !value of the enumeration datatype.
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_member_value_c
+
+! INTEGER, EXTERNAL :: h5tget_member_value_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_member_value_c(type_id, member_no, value)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_MEMBER_VALUE_C'::h5tget_member_value_c
+ !DEC$ ENDIF
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER, INTENT(IN) :: member_no
+ INTEGER, INTENT(OUT) :: value
+ END FUNCTION
+ END INTERFACE
+
hdferr = h5tget_member_value_c(type_id, member_no, value)
END SUBROUTINE h5tget_member_value_f
+!----------------------------------------------------------------------
+! Name: h5tset_tag_f
+!
+! Purpose: Tags an opaque datatype.
+!
+! Inputs:
+! type_id - identifier for opaque datatype
+! tag - unique ASCII string with which the opaque
+! datatype is to be tagged.
+! Outputs:
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tset_tag_f(type_id, tag, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tset_tag_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(IN) :: tag !Unique ASCII string with which
!the opaque datatype is to be tagged
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: namelen
- INTEGER, EXTERNAL :: h5tset_tag_c
- namelen = LEN(tag)
- hdferr = h5tset_tag_c(type_id, tag, namelen)
+ INTEGER :: taglen
+
+! INTEGER, EXTERNAL :: h5tset_tag_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tset_tag_c(type_id, tag, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TSET_TAG_C'::h5tset_tag_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: tag
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: tag
+ INTEGER :: taglen
+ END FUNCTION h5tset_tag_c
+ END INTERFACE
+
+ taglen = LEN(tag)
+ hdferr = h5tset_tag_c(type_id, tag, taglen)
END SUBROUTINE h5tset_tag_f
+!----------------------------------------------------------------------
+! Name: h5tget_tag_f
+!
+! Purpose: Gets the tag associated with an opaque datatype.
+!
+! Inputs:
+! type_id - identifier for opaque datatype
+! Outputs:
+! tag - unique ASCII string associated with opaque
+! datatype
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+!
+! Comment:
+!----------------------------------------------------------------------
+
SUBROUTINE h5tget_tag_f(type_id, tag,taglen, hdferr)
+!
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5tget_tag_f
+!DEC$endif
+!
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
CHARACTER(LEN=*), INTENT(OUT) :: tag !Unique ASCII string with which
!the opaque datatype is to be tagged
INTEGER, INTENT(OUT) :: taglen !length of tag
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5tget_tag_c
+
+! INTEGER, EXTERNAL :: h5tget_tag_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5tget_tag_c(type_id, tag, taglen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !MS$ATTRIBUTES C,reference,alias:'_H5TGET_TAG_C'::h5tget_tag_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: tag
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(OUT) :: tag
+ INTEGER, INTENT(OUT) :: taglen
+ END FUNCTION h5tget_tag_c
+ END INTERFACE
+
hdferr = h5tget_tag_c(type_id, tag, taglen)
END SUBROUTINE h5tget_tag_f
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index 94b1e20..9a2ce67 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -1,5 +1,20 @@
MODULE H5GLOBAL
USE H5FORTRAN_TYPES
+!
+! Definitions for reference datatypes.
+! If you change the value of these parameters, do not forget to change corresponding
+! values in the H5f90.h file.
+ INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
+ INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+
+ TYPE hobj_ref_t_f
+ INTEGER ref(REF_OBJ_BUF_LEN)
+ END TYPE
+
+ TYPE hdset_reg_ref_t_f
+ INTEGER ref(REF_REG_BUF_LEN)
+ END TYPE
+
INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 6 ! Do not forget to change this
! value when new predefined
! datatypes are added
@@ -78,12 +93,18 @@
! H5T_NATIVE_CHARACTER, &
! H5T_STD_REF_OBJ, &
! H5T_STD_REF_DSETREG
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /PREDEFINED_TYPES/
+!DEC$endif
COMMON /PREDEFINED_TYPES/ predef_types
! COMMON /FLOATING_TYPES/ H5T_IEEE_F32BE, &
! H5T_IEEE_F32LE, &
! H5T_IEEE_F64BE, &
! H5T_IEEE_F64LE
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /FLOATING_TYPES/
+!DEC$endif
COMMON /FLOATING_TYPES/ floating_types
!
! COMMON /INTEGER_TYPES/ H5T_STD_I8BE, &
@@ -102,6 +123,9 @@
! H5T_STD_U32LE, &
! H5T_STD_U64BE, &
! H5T_STD_U64LE
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /INTEGER_TYPES/
+!DEC$endif
COMMON /INTEGER_TYPES/ integer_types
!
! Fortran flags
@@ -113,6 +137,9 @@
!
INTEGER, PARAMETER :: H5F_FLAGS_LEN = 7
INTEGER H5F_flags(H5F_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5F_FLAGS/
+!DEC$endif
COMMON /H5F_FLAGS/ H5F_flags
INTEGER :: H5F_ACC_RDWR_F
@@ -135,6 +162,9 @@
!
INTEGER, PARAMETER :: H5G_FLAGS_LEN = 8
INTEGER H5G_flags(H5G_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5G_FLAGS/
+!DEC$endif
COMMON /H5G_FLAGS/ H5G_flags
INTEGER :: H5G_UNKNOWN_F
@@ -160,6 +190,9 @@
INTEGER, PARAMETER :: H5D_FLAGS_LEN = 3
INTEGER H5D_flags(H5D_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5D_FLAGS/
+!DEC$endif
COMMON /H5D_FLAGS/ H5D_flags
INTEGER :: H5D_COMPACT_F
@@ -188,6 +221,9 @@
!
INTEGER, PARAMETER :: H5E_FLAGS_LEN = 24
INTEGER H5E_flags(H5E_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5E_FLAGS/
+!DEC$endif
COMMON /H5E_FLAGS/ H5E_flags
INTEGER :: H5E_NONE_MAJOR_F
@@ -245,6 +281,9 @@
!
INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7
INTEGER H5I_flags(H5I_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5I_FLAGS/
+!DEC$endif
COMMON /H5I_FLAGS/ H5I_flags
INTEGER :: H5I_FILE_F
@@ -268,6 +307,9 @@
!
INTEGER, PARAMETER :: H5P_FLAGS_LEN = 6
INTEGER H5P_flags(H5P_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5P_FLAGS/
+!DEC$endif
COMMON /H5P_FLAGS/ H5P_flags
INTEGER :: H5P_FILE_CREATE_F
@@ -289,6 +331,9 @@
!
INTEGER, PARAMETER :: H5R_FLAGS_LEN = 2
INTEGER H5R_flags(H5R_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5R_FLAGS/
+!DEC$endif
COMMON /H5R_FLAGS/ H5R_flags
INTEGER :: H5R_OBJECT_F
@@ -302,6 +347,9 @@
!
INTEGER, PARAMETER :: H5S_FLAGS_LEN = 6
INTEGER H5S_flags(H5S_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5S_FLAGS/
+!DEC$endif
COMMON /H5S_FLAGS/ H5S_flags
INTEGER :: H5S_SCALAR_F
@@ -323,6 +371,9 @@
!
INTEGER, PARAMETER :: H5T_FLAGS_LEN = 28
INTEGER H5T_flags(H5T_FLAGS_LEN)
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$ ATTRIBUTES DLLEXPORT :: /H5T_FLAGS/
+!DEC$endif
COMMON /H5T_FLAGS/ H5T_flags
INTEGER :: H5T_NO_CLASS_F
diff --git a/fortran/src/H5f90i.h b/fortran/src/H5f90i.h
index c46cf39..b19a3c5 100644
--- a/fortran/src/H5f90i.h
+++ b/fortran/src/H5f90i.h
@@ -147,7 +147,8 @@ typedef float real_f;
#endif /*SUN*/
-#if defined DEC_ALPHA || (defined __alpha && defined __unix__ && !defined __linux__)
+
+#if defined DEC_ALPHA || (defined __alpha && defined __unix__)
#ifndef DEC_ALPHA
#define DEC_ALPHA
@@ -158,6 +159,7 @@ If you get an error on this line more than one machine type has been defined.
Please check your Makefile.
#endif
#define GOT_MACHINE
+
#include <sys/file.h> /* for unbuffered i/o stuff */
#include <sys/stat.h>
#define DF_MT DFMT_ALPHA
@@ -173,32 +175,6 @@ typedef float real_f;
#endif /* DEC_ALPHA */
-#if defined __alpha__ && defined __linux__
-
-#ifndef DEC_ALPHA_LINUX
-#define DEC_ALPHA_LINUX
-#endif
-
-#ifdef GOT_MACHINE
-If you get an error on this line more than one machine type has been defined.
-Please check your Makefile.
-#endif
-#define GOT_MACHINE
-
-#include <sys/file.h> /* for unbuffered i/o stuff */
-#include <sys/stat.h>
-#define DF_MT DFMT_ALPHA
-typedef char *_fcd;
-typedef long long hsize_t_f;
-typedef long long hssize_t_f;
-typedef long long size_t_f;
-typedef int int_f;
-typedef int hid_t_f;
-typedef float real_f;
-#define FNAME_POST2_UNDERSCORE
-#define _fcdtocp(desc) (desc)
-
-#endif /* DEC_ALPHA_LINUX */
#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux)))
@@ -300,9 +276,6 @@ typedef float real_f;
#if !defined(FNAME_PRE_UNDERSCORE) && !defined(FNAME_POST_UNDERSCORE)
# define FNAME(x) x
#endif
-#if !defined(FNAME_PRE_UNDERSCORE) && defined(FNAME_POST2_UNDERSCORE)
-# define FNAME(x) x##__
-#endif
# define HDfree(p) (free((void*)p))
# define HDmalloc(s) (malloc((size_t)s))
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 40dbfe7..0265af9 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -2,9 +2,9 @@
#define _H5f90proto_H
#include "H5Git.h"
-extern int HD5c2fstr(char *str, int len);
-extern char * HD5fcstring (_fcd fdesc, int len);
-extern int HDpackFstring(char *src, char *dest, int len);
+__DLL__ int HD5c2fstr(char *str, int len);
+__DLL__ char * HD5fcstring (_fcd fdesc, int len);
+__DLL__ int HDpackFstring(char *src, char *dest, int len);
/*
* Functions from H5Ff.c
@@ -36,23 +36,23 @@ extern int HDpackFstring(char *src, char *dest, int len);
#endif /* DF_CAPFNAMES */
#endif /* H5Ff90_FNAMES */
-extern int_f nh5fcreate_c
+__DLL__ int_f nh5fcreate_c
(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *crt_prp, hid_t_f *acc_prp, hid_t_f *file_id);
-extern int_f nh5fopen_c
+__DLL__ int_f nh5fopen_c
(_fcd name, int_f *namelen, int_f *access_flags, hid_t_f *acc_prp, hid_t_f *file_id);
-extern int_f nh5fis_hdf5_c
+__DLL__ int_f nh5fis_hdf5_c
(_fcd name, int_f *namelen, int_f *flag);
-extern int_f nh5fclose_c (hid_t_f *file_id);
-extern int_f nh5fmount_c
+__DLL__ int_f nh5fclose_c (hid_t_f *file_id);
+__DLL__ int_f nh5fmount_c
(hid_t_f *loc_id, _fcd dsetname, int_f *namelen, hid_t_f *file_id, hid_t_f *acc_prp);
-extern int_f nh5funmount_c
+__DLL__ int_f nh5funmount_c
(hid_t_f *loc_id, _fcd dsetname, int_f *namelen);
-extern int_f nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2);
-extern int_f nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id);
-extern int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id);
+__DLL__ int_f nh5freopen_c (hid_t_f *file_id1, hid_t_f *file_id2);
+__DLL__ int_f nh5fget_create_plist_c (hid_t_f *file_id, hid_t_f *prop_id);
+__DLL__ int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id);
/*
* Functions from H5Sf.c
*/
@@ -113,53 +113,53 @@ extern int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id);
#endif /* DF_CAPFNAMES */
#endif
-extern int_f nh5screate_simple_c
+__DLL__ int_f nh5screate_simple_c
( int_f *rank, hsize_t_f *dims, hsize_t_f *maxdims, hid_t_f *space_id );
-extern int_f nh5sclose_c ( hid_t_f *space_id );
+__DLL__ int_f nh5sclose_c ( hid_t_f *space_id );
-extern int_f nh5screate_c ( int_f *classtype, hid_t_f *space_id );
+__DLL__ int_f nh5screate_c ( int_f *classtype, hid_t_f *space_id );
-extern int_f nh5scopy_c ( hid_t_f *space_id , hid_t_f *new_space_id);
-extern int_f nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks);
-extern int_f nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock, hsize_t_f * num_blocks, hsize_t_f * buf);
+__DLL__ int_f nh5scopy_c ( hid_t_f *space_id , hid_t_f *new_space_id);
+__DLL__ int_f nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks);
+__DLL__ int_f nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock, hsize_t_f * num_blocks, hsize_t_f * buf);
-extern int_f nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end);
+__DLL__ int_f nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end);
-extern int_f nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points);
+__DLL__ int_f nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points);
-extern int_f nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf);
-extern int_f nh5sselect_all_c ( hid_t_f *space_id );
+__DLL__ int_f nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint, hsize_t_f * numpoints, hsize_t_f * buf);
+__DLL__ int_f nh5sselect_all_c ( hid_t_f *space_id );
-extern int_f nh5sselect_none_c ( hid_t_f *space_id );
+__DLL__ int_f nh5sselect_none_c ( hid_t_f *space_id );
-extern int_f nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag );
+__DLL__ int_f nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag );
-extern int_f nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints );
+__DLL__ int_f nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints );
-extern int_f nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints );
+__DLL__ int_f nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints );
-extern int_f nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims );
+__DLL__ int_f nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims );
-extern int_f nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype);
+__DLL__ int_f nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype);
-extern int_f nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset);
+__DLL__ int_f nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset);
-extern int_f nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size);
+__DLL__ int_f nh5sset_extent_simple_c ( hid_t_f *space_id , int_f *rank, hsize_t_f * current_size, hsize_t_f *maximum_size);
-extern int_f nh5sis_simple_c ( hid_t_f *space_id , int_f *flag );
+__DLL__ int_f nh5sis_simple_c ( hid_t_f *space_id , int_f *flag );
-extern int_f nh5sextent_class_c ( hid_t_f *space_id , int_f *classtype);
+__DLL__ int_f nh5sextent_class_c ( hid_t_f *space_id , int_f *classtype);
-extern int_f nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims);
+__DLL__ int_f nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *maxdims);
-extern int_f nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id);
+__DLL__ int_f nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id);
-extern int_f nh5sset_extent_none_c ( hid_t_f *space_id );
+__DLL__ int_f nh5sset_extent_none_c ( hid_t_f *space_id );
-extern int_f nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hssize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block);
+__DLL__ int_f nh5sselect_hyperslab_c ( hid_t_f *space_id , int_f *op, hssize_t_f *start, hsize_t_f *count, hsize_t_f *stride, hsize_t_f *block);
-extern int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hssize_t_f *coord);
+__DLL__ int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hssize_t_f *coord);
/*
@@ -203,45 +203,45 @@ extern int_f nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *ne
#endif /* DF_CAPFNAMES */
#endif
-extern int_f nh5dcreate_c
+__DLL__ int_f nh5dcreate_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *dset_id);
-extern int_f nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dset_id);
+__DLL__ int_f nh5dopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *dset_id);
-extern int_f nh5dclose_c ( hid_t_f *dset_id );
+__DLL__ int_f nh5dclose_c ( hid_t_f *dset_id );
-extern int_f nh5dwrite_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
+__DLL__ int_f nh5dwrite_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, int_f *dims);
-extern int_f nh5dwrite_ref_obj_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
+__DLL__ int_f nh5dwrite_ref_obj_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims);
-extern int_f nh5dwrite_ref_reg_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
+__DLL__ int_f nh5dwrite_ref_reg_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims);
-extern int_f nh5dwritec_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf);
+__DLL__ int_f nh5dwritec_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, int_f *dims);
-extern int_f nh5dread_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
+__DLL__ int_f nh5dread_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf, int_f *dims);
-extern int_f nh5dread_ref_obj_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
+__DLL__ int_f nh5dread_ref_obj_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims);
-extern int_f nh5dread_ref_reg_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *n);
+__DLL__ int_f nh5dread_ref_reg_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, int_f *buf, int_f *dims);
-extern int_f nh5dreadc_c
-(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf);
+__DLL__ int_f nh5dreadc_c
+(hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hid_t_f *file_space_id, hid_t_f *xfer_prp, _fcd buf, int_f *dims);
-extern int_f nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id);
+__DLL__ int_f nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id);
-extern int_f nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id);
+__DLL__ int_f nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id);
-extern int_f nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id);
+__DLL__ int_f nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id);
-extern int_f nh5dextend_c ( hid_t_f *dset_id , hsize_t_f *dims);
+__DLL__ int_f nh5dextend_c ( hid_t_f *dset_id , hsize_t_f *dims);
/*
* Functions from H5Gf.c
*/
@@ -275,35 +275,35 @@ extern int_f nh5dextend_c ( hid_t_f *dset_id , hsize_t_f *dims);
#endif /* DF_CAPFNAMES */
#endif
-extern int_f nh5gcreate_c
+__DLL__ int_f nh5gcreate_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint, hid_t_f *grp_id);
-extern int_f nh5gopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *grp_id);
+__DLL__ int_f nh5gopen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *grp_id);
-extern int_f nh5gclose_c ( hid_t_f *grp_id );
+__DLL__ int_f nh5gclose_c ( hid_t_f *grp_id );
-extern int_f nh5gget_obj_info_idx_c
+__DLL__ int_f nh5gget_obj_info_idx_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx, _fcd obj_name, int_f *obj_namelen, int_f *obj_type);
-extern int_f nh5gn_members_c
+__DLL__ int_f nh5gn_members_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *nmembers);
-extern int_f nh5glink_c
+__DLL__ int_f nh5glink_c
(hid_t_f *loc_id, int_f *link_type, _fcd current_name, int_f *current_namelen, _fcd new_name, int_f *new_namelen);
-extern int_f nh5gunlink_c
+__DLL__ int_f nh5gunlink_c
(hid_t_f *loc_id, _fcd name, int_f *namelen);
-extern int_f nh5gmove_c
+__DLL__ int_f nh5gmove_c
(hid_t_f *loc_id, _fcd src_name, int_f *src_namelen, _fcd dst_name, int_f *dst_namelen);
-extern int_f nh5gget_linkval_c
+__DLL__ int_f nh5gget_linkval_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size, _fcd value );
-extern int_f nh5gset_comment_c
+__DLL__ int_f nh5gset_comment_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, _fcd comment, int_f *commentlen);
-extern int_f nh5gget_comment_c
+__DLL__ int_f nh5gget_comment_c
(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *bufsize, _fcd comment);
@@ -345,32 +345,32 @@ extern int_f nh5gget_comment_c
#endif
-extern int_f nh5acreate_c (hid_t_f *obj_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *attr_id);
+__DLL__ int_f nh5acreate_c (hid_t_f *obj_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id, hid_t_f *crt_prp, hid_t_f *attr_id);
-extern int_f
+__DLL__ int_f
nh5aopen_name_c (hid_t_f *obj_id, _fcd name, int_f *namelen, hid_t_f *attr_id);
-extern int_f nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf);
+__DLL__ int_f nh5awritec_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, int_f *dims);
-extern int_f nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
+__DLL__ int_f nh5awrite_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, int_f *dims);
-extern int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf);
+__DLL__ int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, int_f *dims);
-extern int_f nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
+__DLL__ int_f nh5aread_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, int_f *dims);
-extern int_f nh5aclose_c ( hid_t_f *attr_id );
+__DLL__ int_f nh5aclose_c ( hid_t_f *attr_id );
-extern int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, int_f *namelen);
+__DLL__ int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, int_f *namelen);
-extern int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id);
+__DLL__ int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id);
-extern int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id);
+__DLL__ int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id);
-extern int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id);
+__DLL__ int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id);
-extern int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num);
+__DLL__ int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num);
-extern int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf);
+__DLL__ int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf);
/*
* Functions form H5Tf.c file
@@ -487,83 +487,83 @@ extern int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf);
#endif
#endif
-extern int_f nh5tcreate_c(int_f *class, size_t_f *size, hid_t_f *type_id);
+__DLL__ int_f nh5tcreate_c(int_f *class, size_t_f *size, hid_t_f *type_id);
-extern int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id);
+__DLL__ int_f nh5topen_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id);
-extern int_f
+__DLL__ int_f
nh5tcommit_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id);
-extern int_f nh5tclose_c ( hid_t_f *type_id );
+__DLL__ int_f nh5tclose_c ( hid_t_f *type_id );
-extern int_f nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag);
+__DLL__ int_f nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag);
-extern int_f nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id);
+__DLL__ int_f nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id);
-extern int_f nh5tget_class_c ( hid_t_f *type_id , int_f *classtype);
+__DLL__ int_f nh5tget_class_c ( hid_t_f *type_id , int_f *classtype);
-extern int_f nh5tget_order_c ( hid_t_f *type_id , int_f *order);
+__DLL__ int_f nh5tget_order_c ( hid_t_f *type_id , int_f *order);
-extern int_f nh5tset_order_c ( hid_t_f *type_id , int_f *order);
+__DLL__ int_f nh5tset_order_c ( hid_t_f *type_id , int_f *order);
-extern int_f nh5tget_size_c ( hid_t_f *type_id , size_t_f *size);
+__DLL__ int_f nh5tget_size_c ( hid_t_f *type_id , size_t_f *size);
-extern int_f nh5tset_size_c ( hid_t_f *type_id , size_t_f *size);
-extern int_f nh5tcommitted_c (hid_t_f *type_id);
-extern int_f nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision);
-extern int_f nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision);
-extern int_f nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset);
-extern int_f nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset);
-extern int_f nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad);
-extern int_f nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad );
-extern int_f nh5tget_sign_c ( hid_t_f *type_id , int_f* sign);
-extern int_f nh5tset_sign_c ( hid_t_f *type_id , int_f *sign);
-extern int_f nh5tget_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize);
-extern int_f nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize);
-extern int_f nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias);
+__DLL__ int_f nh5tset_size_c ( hid_t_f *type_id , size_t_f *size);
+__DLL__ int_f nh5tcommitted_c (hid_t_f *type_id);
+__DLL__ int_f nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision);
+__DLL__ int_f nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision);
+__DLL__ int_f nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset);
+__DLL__ int_f nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset);
+__DLL__ int_f nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad);
+__DLL__ int_f nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f * msbpad );
+__DLL__ int_f nh5tget_sign_c ( hid_t_f *type_id , int_f* sign);
+__DLL__ int_f nh5tset_sign_c ( hid_t_f *type_id , int_f *sign);
+__DLL__ int_f nh5tget_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize);
+__DLL__ int_f nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* esize, size_t_f* mpos, size_t_f* msize);
+__DLL__ int_f nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias);
-extern int_f nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias);
-extern int_f nh5tget_norm_c ( hid_t_f *type_id , int_f *norm);
+__DLL__ int_f nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias);
+__DLL__ int_f nh5tget_norm_c ( hid_t_f *type_id , int_f *norm);
-extern int_f nh5tset_norm_c ( hid_t_f *type_id , int_f *norm);
-extern int_f nh5tget_inpad_c ( hid_t_f *type_id, int_f * padtype);
-extern int_f nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype);
-extern int_f nh5tget_cset_c ( hid_t_f *type_id, int_f * cset);
-extern int_f nh5tset_cset_c ( hid_t_f *type_id, int_f * cset);
-extern int_f nh5tget_strpad_c ( hid_t_f *type_id, int_f * strpad);
-extern int_f nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad);
-extern int_f nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members);
-extern int_f nh5tget_member_name_c ( hid_t_f *type_id ,int_f* index, _fcd member_name, int_f *namelen);
-extern int_f nh5tget_member_dims_c ( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm );
-extern int_f nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f* offset);
-extern int_f nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype);
-extern int_f nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id);
-extern int_f nh5tpack_c(hid_t_f * type_id);
+__DLL__ int_f nh5tset_norm_c ( hid_t_f *type_id , int_f *norm);
+__DLL__ int_f nh5tget_inpad_c ( hid_t_f *type_id, int_f * padtype);
+__DLL__ int_f nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype);
+__DLL__ int_f nh5tget_cset_c ( hid_t_f *type_id, int_f * cset);
+__DLL__ int_f nh5tset_cset_c ( hid_t_f *type_id, int_f * cset);
+__DLL__ int_f nh5tget_strpad_c ( hid_t_f *type_id, int_f * strpad);
+__DLL__ int_f nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad);
+__DLL__ int_f nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members);
+__DLL__ int_f nh5tget_member_name_c ( hid_t_f *type_id ,int_f* index, _fcd member_name, int_f *namelen);
+__DLL__ int_f nh5tget_member_dims_c ( hid_t_f *type_id ,int_f* field_idx, int_f * dims, size_t_f * field_dims, int_f * perm );
+__DLL__ int_f nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f* offset);
+__DLL__ int_f nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype);
+__DLL__ int_f nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_t_f * field_id);
+__DLL__ int_f nh5tpack_c(hid_t_f * type_id);
-extern int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm );
+__DLL__ int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id, int_f* perm );
-extern int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id);
+__DLL__ int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id);
-extern int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id);
+__DLL__ int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id);
-extern int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
-extern int_f
+__DLL__ int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
+__DLL__ int_f
nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen);
-extern int_f
+__DLL__ int_f
nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
-extern int_f
+__DLL__ int_f
nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value);
-extern int_f
+__DLL__ int_f
nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen);
-extern int_f
+__DLL__ int_f
nh5tget_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen);
-extern int_f
+__DLL__ int_f
nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* type_id);
-extern int_f
+__DLL__ int_f
nh5tget_array_dims_c ( hid_t_f *type_id , hsize_t_f * dims);
-extern int_f
+__DLL__ int_f
nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims);
-extern int_f
+__DLL__ int_f
nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
@@ -597,22 +597,22 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
# define nh5pget_istore_k_c FNAME(H5PGET_ISTORE_K_C)
# define nh5pset_istore_k_c FNAME(H5PSET_ISTORE_K_C)
# define nh5pget_driver_c FNAME(H5PGET_DRIVER_C)
-# define nh5pset_stdio_c FNAME(H5PSET_STDIO_C)
-# define nh5pget_stdio_c FNAME(H5PGET_STDIO_C)
-# define nh5pset_sec2_c FNAME(H5PSET_SEC2_C)
-# define nh5pget_sec2_c FNAME(H5PGET_SEC2_C)
+# define nh5pset_fapl_stdio_c FNAME(H5PSET_FAPL_STDIO_C)
+# define nh5pget_fapl_stdio_c FNAME(H5PGET_FAPL_STDIO_C)
+# define nh5pset_fapl_sec2_c FNAME(H5PSET_FAPL_SEC2_C)
+# define nh5pget_fapl_sec2_c FNAME(H5PGET_FAPL_SEC2_C)
# define nh5pset_alignment_c FNAME(H5PSET_ALIGNMENT_C)
# define nh5pget_alignment_c FNAME(H5PGET_ALIGNMENT_C)
-# define nh5pset_core_c FNAME(H5PSET_CORE_C)
-# define nh5pget_core_c FNAME(H5PGET_CORE_C)
-# define nh5pset_family_c FNAME(H5PSET_FAMILY_C)
-# define nh5pget_family_c FNAME(H5PGET_FAMILY_C)
+# define nh5pset_fapl_core_c FNAME(H5PSET_FAPL_CORE_C)
+# define nh5pget_fapl_core_c FNAME(H5PGET_FAPL_CORE_C)
+# define nh5pset_fapl_family_c FNAME(H5PSET_FAPL_FAMILY_C)
+# define nh5pget_fapl_family_c FNAME(H5PGET_FAPL_FAMILY_C)
# define nh5pset_cache_c FNAME(H5PSET_CACHE_C)
# define nh5pget_cache_c FNAME(H5PGET_CACHE_C)
-# define nh5pset_split_c FNAME(H5PSET_SPLIT_C)
-# define nh5pget_split_c FNAME(H5PGET_SPLIT_C)
-# define nh5pset_gc_refernces_c FNAME(H5PSET_GC_REFERENCES_C)
-# define nh5pget_gc_refernces_c FNAME(H5PGET_GC_REFERENCES_C)
+# define nh5pset_fapl_split_c FNAME(H5PSET_FAPL_SPLIT_C)
+# define nh5pget_fapl_split_c FNAME(H5PGET_FAPL_SPLIT_C)
+# define nh5pset_gc_references_c FNAME(H5PSET_GC_REFERENCES_C)
+# define nh5pget_gc_references_c FNAME(H5PGET_GC_REFERENCES_C)
# define nh5pset_layout_c FNAME(H5PSET_LAYOUT_C)
# define nh5pget_layout_c FNAME(H5PGET_LAYOUT_C)
# define nh5pset_filter_c FNAME(H5PSET_FILTER_C)
@@ -654,20 +654,20 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
# define nh5pget_istore_k_c FNAME(h5pget_istore_k_c)
# define nh5pset_istore_k_c FNAME(h5pset_istore_k_c)
# define nh5pget_driver_c FNAME(h5pget_driver_c)
-# define nh5pset_stdio_c FNAME(h5pset_stdio_c)
-# define nh5pget_stdio_c FNAME(h5pget_stdio_c)
-# define nh5pset_sec2_c FNAME(h5pset_sec2_c)
-# define nh5pget_sec2_c FNAME(h5pget_sec2_c)
+# define nh5pset_fapl_stdio_c FNAME(h5pset_fapl_stdio_c)
+# define nh5pget_fapl_stdio_c FNAME(h5pget_fapl_stdio_c)
+# define nh5pset_fapl_sec2_c FNAME(h5pset_fapl_sec2_c)
+# define nh5pget_fapl_sec2_c FNAME(h5pget_fapl_sec2_c)
# define nh5pset_alignment_c FNAME(h5pset_alignment_c)
# define nh5pget_alignment_c FNAME(h5pget_alignment_c)
-# define nh5pset_core_c FNAME(h5pset_core_c)
-# define nh5pget_core_c FNAME(h5pget_core_c)
-# define nh5pset_family_c FNAME(h5pset_family_c)
-# define nh5pget_family_c FNAME(h5pget_family_c)
+# define nh5pset_fapl_core_c FNAME(h5pset_fapl_core_c)
+# define nh5pget_fapl_core_c FNAME(h5pget_fapl_core_c)
+# define nh5pset_fapl_family_c FNAME(h5pset_fapl_family_c)
+# define nh5pget_fapl_family_c FNAME(h5pget_fapl_family_c)
# define nh5pset_cache_c FNAME(h5pset_cache_c)
# define nh5pget_cache_c FNAME(h5pget_cache_c)
-# define nh5pset_split_c FNAME(h5pset_split_c)
-# define nh5pget_split_c FNAME(h5pget_split_c)
+# define nh5pset_fapl_split_c FNAME(h5pset_fapl_split_c)
+# define nh5pget_fapl_split_c FNAME(h5pget_fapl_split_c)
# define nh5pset_gc_references_c FNAME(h5pset_gc_references_c)
# define nh5pget_gc_references_c FNAME(h5pget_gc_references_c)
# define nh5pset_layout_c FNAME(h5pset_layout_c)
@@ -690,120 +690,120 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id);
#endif
#endif
-extern int_f nh5pcreate_c ( int_f *classtype, hid_t_f *prp_id );
+__DLL__ int_f nh5pcreate_c ( int_f *classtype, hid_t_f *prp_id );
-extern int_f nh5pclose_c ( hid_t_f *prp_id );
+__DLL__ int_f nh5pclose_c ( hid_t_f *prp_id );
-extern int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id);
+__DLL__ int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id);
-extern int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype);
+__DLL__ int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype);
-extern int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level);
+__DLL__ int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level);
-extern int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims );
+__DLL__ int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims );
-extern int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims );
+__DLL__ int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims );
-extern int_f
+__DLL__ int_f
nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue);
-extern int_f
+__DLL__ int_f
nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
-extern int_f
+__DLL__ int_f
nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue);
-extern int_f
+__DLL__ int_f
nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
-extern int_f
+__DLL__ int_f
nh5pset_preserve_c ( hid_t_f *prp_id , int_f *flag);
-extern int_f
+__DLL__ int_f
nh5pget_preserve_c ( hid_t_f *prp_id , int_f *flag);
-extern int_f
+__DLL__ int_f
nh5pget_version_c (hid_t_f *prp_id, int_f * boot,int_f * freelist, int_f * stab, int_f *shhdr);
-extern int_f
+__DLL__ int_f
nh5pset_userblock_c (hid_t_f *prp_id, hsize_t_f * size);
-extern int_f
+__DLL__ int_f
nh5pget_userblock_c (hid_t_f *prp_id, hsize_t_f * size);
-extern int_f
+__DLL__ int_f
nh5pget_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size);
-extern int_f
+__DLL__ int_f
nh5pset_sizes_c (hid_t_f *prp_id, size_t_f * sizeof_addr, size_t_f * sizeof_size);
-extern int_f
+__DLL__ int_f
nh5pset_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk);
-extern int_f
+__DLL__ int_f
nh5pget_sym_k_c (hid_t_f *prp_id, int_f* ik, int_f* lk);
-extern int_f
+__DLL__ int_f
nh5pset_istore_k_c (hid_t_f *prp_id, int_f* ik);
-extern int_f
+__DLL__ int_f
nh5pget_istore_k_c (hid_t_f *prp_id, int_f* ik);
-extern int_f
-nh5pget_driver_c (hid_t_f *prp_id, int_f*driver);
-extern int_f
-nh5pset_stdio_c (hid_t_f *prp_id);
-extern int_f
-nh5pget_stdio_c (hid_t_f *prp_id, int_f* io);
-extern int_f
-nh5pset_sec2_c (hid_t_f *prp_id);
-extern int_f
-nh5pget_sec2_c (hid_t_f *prp_id, int_f* sec2);
-extern int_f
+__DLL__ int_f
+nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver);
+__DLL__ int_f
+nh5pset_fapl_stdio_c (hid_t_f *prp_id);
+__DLL__ int_f
+nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io);
+__DLL__ int_f
+nh5pset_fapl_sec2_c (hid_t_f *prp_id);
+__DLL__ int_f
+nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2);
+__DLL__ int_f
nh5pset_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment);
-extern int_f
+__DLL__ int_f
nh5pget_alignment_c(hid_t_f *prp_id, hsize_t_f* threshold, hsize_t_f* alignment);
-extern int_f
-nh5pget_core_c (hid_t_f *prp_id, size_t_f* increment);
-extern int_f
-nh5pset_core_c (hid_t_f *prp_id, size_t_f* increment);
-extern int_f
-nh5pset_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
-extern int_f
-nh5pget_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
-extern int_f
+__DLL__ int_f
+nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag);
+__DLL__ int_f
+nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag);
+__DLL__ int_f
+nh5pset_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
+__DLL__ int_f
+nh5pget_fapl_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist );
+__DLL__ int_f
nh5pset_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0);
-extern int_f
+__DLL__ int_f
nh5pget_cache_c(hid_t_f *prp_id, int_f* mdc_nelmts, int_f* rdcc_nelmts, size_t_f* rdcc_nbytes, real_f* rdcc_w0);
-extern int_f
-nh5pget_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist);
-extern int_f
-nh5pset_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist);
-extern int_f
+__DLL__ int_f
+nh5pget_fapl_split_c(hid_t_f *prp_id, size_t_f* meta_ext_size , _fcd meta_ext, hid_t_f* meta_plist, size_t_f* raw_ext_size, _fcd raw_ext, hid_t_f * raw_plist);
+__DLL__ int_f
+nh5pset_fapl_split_c(hid_t_f *prp_id, int_f* meta_len, _fcd meta_ext, hid_t_f* meta_plist, int_f* raw_len, _fcd raw_ext, hid_t_f * raw_plist);
+__DLL__ int_f
nh5pset_gc_references_c(hid_t_f *prp_id, int_f* gc_references);
-extern int_f
+__DLL__ int_f
nh5pget_gc_references_c(hid_t_f *prp_id, int_f* gc_references);
-extern int_f
+__DLL__ int_f
nh5pset_layout_c (hid_t_f *prp_id, int_f* layout);
-extern int_f
+__DLL__ int_f
nh5pget_layout_c (hid_t_f *prp_id, int_f* layout);
-extern int_f
+__DLL__ int_f
nh5pset_filter_c (hid_t_f *prp_id, int_f* filter, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values );
-extern int_f
+__DLL__ int_f
nh5pget_nfilters_c (hid_t_f *prp_id, int_f* nfilters);
-extern int_f
+__DLL__ int_f
nh5pget_filter_c(hid_t_f *prp_id, int_f* filter_number, int_f* flags, size_t_f* cd_nelmts, int_f* cd_values, size_t_f *namelen, _fcd name, int_f* filter_id);
-extern int_f
+__DLL__ int_f
nh5pset_external_c (hid_t_f *prp_id, _fcd name, int_f* namelen, int_f* offset, hsize_t_f*bytes);
-extern int_f
+__DLL__ int_f
nh5pget_external_count_c (hid_t_f *prp_id, int_f* count);
-extern int_f
+__DLL__ int_f
nh5pget_external_c(hid_t_f *prp_id,int*idx, size_t_f* name_size, _fcd name, int_f* offset, hsize_t_f*bytes);
-extern int_f
+__DLL__ int_f
nh5pset_hyper_cache_c(hid_t_f *prp_id, int_f* cache, int_f* limit);
-extern int_f
+__DLL__ int_f
nh5pget_hyper_cache_c(hid_t_f *prp_id, int_f* cache, int_f* limit);
-extern int_f
+__DLL__ int_f
nh5pget_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right);
-extern int_f
+__DLL__ int_f
nh5pset_btree_ratios_c(hid_t_f *prp_id, real_f* left, real_f* middle, real_f* right);
-extern int_f
+__DLL__ int_f
nh5pget_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info);
-extern int_f
+__DLL__ int_f
nh5pset_fapl_mpio_c(hid_t_f *prp_id, int_f* comm, int_f* info);
-extern int_f
+__DLL__ int_f
nh5pget_dxpl_mpio_rc(hid_t_f *prp_id, int_f* data_xfer_mode);
-extern int_f
+__DLL__ int_f
nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode);
/*
@@ -828,23 +828,23 @@ nh5pset_dxpl_mpio_c(hid_t_f *prp_id, int_f* data_xfer_mode);
#endif /* DF_CAPFNAMES */
#endif /* H5Rf90_FNAMES */
-extern int_f
+__DLL__ int_f
nh5rcreate_object_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
-extern int_f
+__DLL__ int_f
nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
-extern int_f
+__DLL__ int_f
nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
-extern int_f
+__DLL__ int_f
nh5rdereference_object_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
-extern int_f
+__DLL__ int_f
nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
-extern int_f
+__DLL__ int_f
nh5rget_object_type_obj_c (hid_t_f *dset_id, int_f *ref, int_f *obj_type);
/*
@@ -859,7 +859,7 @@ nh5rget_object_type_obj_c (hid_t_f *dset_id, int_f *ref, int_f *obj_type);
#endif
#endif
-extern int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type);
+__DLL__ int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type);
#ifndef H5Ef90_FNAMES
@@ -881,12 +881,12 @@ extern int_f nh5iget_type_c(hid_t_f *obj_id, int_f *type);
#endif
#endif
-extern int_f nh5eclear_c();
-extern int_f nh5eprint_c1(_fcd name, int_f* namelen);
-extern int_f nh5eprint_c2();
-extern int_f nh5eget_major_c(int_f* error_no, _fcd name);
-extern int_f nh5eget_minor_c(int_f* error_no, _fcd name);
-extern int_f nh5eset_auto_c(int_f* printflag);
+__DLL__ int_f nh5eclear_c();
+__DLL__ int_f nh5eprint_c1(_fcd name, int_f* namelen);
+__DLL__ int_f nh5eprint_c2();
+__DLL__ int_f nh5eget_major_c(int_f* error_no, _fcd name);
+__DLL__ int_f nh5eget_minor_c(int_f* error_no, _fcd name);
+__DLL__ int_f nh5eset_auto_c(int_f* printflag);
/*
* Functions from H5f.c
@@ -907,12 +907,12 @@ extern int_f nh5eset_auto_c(int_f* printflag);
# define nh5init_flags_c FNAME(h5init_flags_c)
#endif
#endif
-extern int_f nh5open_c(void);
-extern int_f nh5close_c(void);
-extern int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes);
-extern int_f nh5close_types_c(hid_t_f *types, int_f *lentypes, hid_t_f * floatingtypes, int_f * floatinglen, hid_t_f * integertypes, int_f * integerlen);
+__DLL__ int_f nh5open_c(void);
+__DLL__ int_f nh5close_c(void);
+__DLL__ int_f nh5init_types_c(hid_t_f *types, hid_t_f * floatingtypes, hid_t_f * integertypes);
+__DLL__ int_f nh5close_types_c(hid_t_f *types, int_f *lentypes, hid_t_f * floatingtypes, int_f * floatinglen, hid_t_f * integertypes, int_f * integerlen);
-extern int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
+__DLL__ int_f nh5init_flags_c( int_f *h5d_flags, int_f *h5e_flags, int_f *h5f_flags,
int_f *h5fd_flags, int_f *h5g_flags, int_f *h5i_flags,
int_f *h5p_flags, int_f *h5r_flags, int_f *h5s_flags,
int_f *h5t_flags);
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index e37cd08..810c00f 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -27,11 +27,11 @@ ADD_PARALLEL_FILES=@ADD_PARALLEL_FILES@
FPAR_MOD=${ADD_PARALLEL_FILES:yes=HDF5mpio.f90}
CPARALLEL=${ADD_PARALLEL_FILES:yes=H5FDmpiof.c}
-CLIB_SRC=H5f90kit.c H5f.c H5Git.c H5Rf.c H5Ff.c H5Sf.c H5Df.c H5Gf.c \
+CLIB_SRC=H5f90kit.c H5_f.c H5Git.c H5Rf.c H5Ff.c H5Sf.c H5Df.c H5Gf.c \
H5Af.c H5Tf.c H5Pf.c H5If.c H5Ef.c ${CPARALLEL:no=}
FPARALLEL=${ADD_PARALLEL_FILES:yes=H5FDmpioff.f90}
-FLIB_SRC=H5fortran_types.f90 H5fortran_flags.f90 H5f90global.f90 H5ff.f90 \
+FLIB_SRC=H5fortran_types.f90 H5fortran_flags.f90 H5f90global.f90 H5_ff.f90 \
H5Rff.f90 H5Fff.f90 H5Sff.f90 H5Dff.f90 H5Gff.f90 H5Aff.f90 H5Tff.f90 \
H5Pff.f90 H5Iff.f90 H5Eff.f90 ${FPARALLEL:no=} ${FPAR_MOD:no=HDF5.f90}