diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2001-04-27 03:47:27 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2001-04-27 03:47:27 (GMT) |
commit | 6182da802691e5702681faf509ac151fe652dd51 (patch) | |
tree | ec6a41f8882327da936a0a1709458dba606ef35b | |
parent | c048eed3be375907a030a7f27cb958fcbc95a3ef (diff) | |
download | hdf5-6182da802691e5702681faf509ac151fe652dd51.zip hdf5-6182da802691e5702681faf509ac151fe652dd51.tar.gz hdf5-6182da802691e5702681faf509ac151fe652dd51.tar.bz2 |
[svn-r3860]
Purpose:
Windows port
Description:
Multiple changes:
* Windows platforms require special compiler directives
in order to create DLLs.
* In read/write subroutines data arrays were passed by descriptor.
This worked on UNIX but did not work on Windows.
Solution:
* added compiler directives.
* read/write APIs have been changed. There is an additional
parameter (array that contains the sizes of data buffer dimensions)
and regular arrays are used instead of assumed-shaped arrays.
Platforms tested:
* Currently this feature does not work. Common blocks are not exported correctly
from one F90 module to another.
I am checking this in so I can ask DEC for help.
* For static library tests passed on Windows 98 ( except flush2_fortran)
All tests passed on Linux, Solaris 2.7, O2K and T3E
-rw-r--r-- | fortran/src/H5Af.c | 32 | ||||
-rw-r--r-- | fortran/src/H5Aff.f90 | 1155 | ||||
-rw-r--r-- | fortran/src/H5Df.c | 50 | ||||
-rw-r--r-- | fortran/src/H5Dff.f90 | 1243 | ||||
-rw-r--r-- | fortran/src/H5Eff.f90 | 243 | ||||
-rw-r--r-- | fortran/src/H5Fff.f90 | 60 | ||||
-rw-r--r-- | fortran/src/H5Gff.f90 | 66 | ||||
-rw-r--r-- | fortran/src/H5Git.c | 4 | ||||
-rw-r--r-- | fortran/src/H5Iff.f90 | 6 | ||||
-rw-r--r-- | fortran/src/H5Pff.f90 | 335 | ||||
-rw-r--r-- | fortran/src/H5Rff.f90 | 36 | ||||
-rw-r--r-- | fortran/src/H5Sff.f90 | 148 | ||||
-rw-r--r-- | fortran/src/H5Tff.f90 | 312 | ||||
-rw-r--r-- | fortran/src/H5f90global.f90 | 36 | ||||
-rw-r--r-- | fortran/src/H5f90proto.h | 422 | ||||
-rw-r--r-- | fortran/src/H5ff.f90 | 68 |
16 files changed, 3251 insertions, 965 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 4e47709..7752a86 100644 --- a/fortran/src/H5Aff.f90 +++ b/fortran/src/H5Aff.f90 @@ -115,6 +115,10 @@ !---------------------------------------------------------------------- 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 @@ -183,6 +187,10 @@ !---------------------------------------------------------------------- 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 @@ -237,6 +245,10 @@ !---------------------------------------------------------------------- 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 @@ -269,6 +281,8 @@ ! 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 @@ -284,17 +298,25 @@ ! 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 @@ -302,24 +324,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + 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) + 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 @@ -327,25 +356,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:), INTENT(IN)::buf + INTEGER, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -353,25 +390,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:), INTENT(IN)::buf + INTEGER, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -379,25 +424,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:), INTENT(IN)::buf + 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) + 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 @@ -405,25 +458,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -431,25 +492,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -457,25 +526,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -483,24 +560,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -508,24 +592,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + 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) + 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 @@ -533,25 +624,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:), INTENT(IN)::buf + REAL, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -559,26 +658,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, INTENT(IN)::buf - REAL, DIMENSION(:,:), INTENT(IN)::buf + REAL, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -586,25 +692,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:), INTENT(IN)::buf + 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) + 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 @@ -612,26 +726,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, INTENT(IN)::buf - REAL, DIMENSION(:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -639,26 +760,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, INTENT(IN)::buf - REAL, DIMENSION(:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -666,25 +794,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -692,24 +828,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -717,50 +860,64 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:), INTENT(IN)::buf + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -768,25 +925,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:), INTENT(IN)::buf + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5awrite_c END INTERFACE - hdferr = h5awrite_c(attr_id, memtype_id, buf) + 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 @@ -794,25 +959,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(IN)::buf + 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) + 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 @@ -820,25 +993,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -846,25 +1027,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -872,25 +1061,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -898,23 +1095,30 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf + 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) + 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 @@ -922,9 +1126,10 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c + INTEGER, DIMENSION(7) :: dims !DEC$ATTRIBUTES reference :: buf INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id @@ -932,41 +1137,54 @@ END FUNCTION h5awritec_c END INTERFACE - hdferr = h5awritec_c(attr_id, memtype_id, buf) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(*)::buf + CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1))::buf END FUNCTION h5awritec_c END INTERFACE - hdferr = h5awritec_c(attr_id, memtype_id, buf) + 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 @@ -974,147 +1192,189 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c + 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(:,:)::buf + CHARACTER(LEN=*), INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5awritec_c END INTERFACE - hdferr = h5awritec_c(attr_id, memtype_id, buf) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(:,:,:)::buf + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(:,:,:,:)::buf + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(:,:,:,:,:)::buf + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(:,:,:,:,:,:)::buf + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c !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(:,:,:,:,:,:,:)::buf + 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) + hdferr = h5awritec_c(attr_id, memtype_id, buf, dims) END SUBROUTINE h5awrite_char_7 !---------------------------------------------------------------------- @@ -1125,6 +1385,8 @@ ! 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 @@ -1140,16 +1402,24 @@ ! 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 @@ -1157,99 +1427,130 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + 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) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:), INTENT(OUT)::buf + INTEGER, INTENT(OUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:), INTENT(OUT)::buf + INTEGER, INTENT(OUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1257,25 +1558,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1283,25 +1592,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1309,25 +1626,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1335,24 +1660,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1360,24 +1692,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + 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) + 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 @@ -1385,25 +1724,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:), INTENT(OUT)::buf + REAL, INTENT(OUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 @@ -1411,25 +1758,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:), INTENT(OUT)::buf + REAL, INTENT(OUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 @@ -1437,25 +1792,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1463,25 +1826,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1489,25 +1860,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1515,25 +1894,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1541,24 +1928,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1566,24 +1960,31 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + 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) + 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 @@ -1591,25 +1992,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:), INTENT(OUT)::buf + DOUBLE PRECISION, INTENT(OUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 @@ -1617,25 +2026,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:), INTENT(OUT)::buf + DOUBLE PRECISION, INTENT(OUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5aread_c END INTERFACE - hdferr = h5aread_c(attr_id, memtype_id, buf) + 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 @@ -1643,25 +2060,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1669,25 +2094,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1695,25 +2128,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1721,25 +2162,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1747,23 +2196,30 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c + INTEGER, DIMENSION(7) :: dims INTEGER(HID_T), INTENT(IN) :: attr_id INTEGER(HID_T), INTENT(IN) :: memtype_id - DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf + 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) + 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 @@ -1772,26 +2228,33 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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) + 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 @@ -1799,26 +2262,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(*)::buf + CHARACTER(LEN=*), INTENT(OUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5areadc_c END INTERFACE - hdferr = h5areadc_c(attr_id, memtype_id, buf) + 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 @@ -1826,26 +2297,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:)::buf + CHARACTER(LEN=*), INTENT(OUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5areadc_c END INTERFACE - hdferr = h5areadc_c(attr_id, memtype_id, buf) + 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 @@ -1853,26 +2332,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:,:)::buf + 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) + 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 @@ -1880,26 +2367,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:,:,:)::buf + 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) + 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 @@ -1907,26 +2402,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:,:,:,:)::buf + 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) + 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 @@ -1934,26 +2437,34 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:,:,:,:,:)::buf + 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) + 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 @@ -1961,17 +2472,19 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf) + INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c !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(:,:,:,:,:,:,:)::buf + 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) + hdferr = h5areadc_c(attr_id, memtype_id, buf, dims) END SUBROUTINE h5aread_char_7 !---------------------------------------------------------------------- @@ -1999,6 +2512,10 @@ !---------------------------------------------------------------------- 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 @@ -2045,6 +2562,10 @@ !---------------------------------------------------------------------- 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 @@ -2093,6 +2614,10 @@ 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 @@ -2110,7 +2635,7 @@ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_NAME_C'::h5aget_name_c !DEC$ATTRIBUTES reference :: buf INTEGER(HID_T), INTENT(IN) :: attr_id - INTEGER, INTENT(IN) :: size + INTEGER(SIZE_T), INTENT(IN) :: size CHARACTER(LEN=*), INTENT(OUT) :: buf END FUNCTION h5aget_name_c END INTERFACE @@ -2145,6 +2670,10 @@ !---------------------------------------------------------------------- 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 @@ -2193,6 +2722,10 @@ !---------------------------------------------------------------------- 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 @@ -2242,6 +2775,10 @@ !---------------------------------------------------------------------- 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: 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 8f8c424..b256705 100644 --- a/fortran/src/H5Dff.f90 +++ b/fortran/src/H5Dff.f90 @@ -118,6 +118,10 @@ 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 @@ -184,6 +188,10 @@ !---------------------------------------------------------------------- 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 @@ -236,6 +244,10 @@ !---------------------------------------------------------------------- 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 @@ -267,9 +279,8 @@ ! dset_id - dataset identifier ! mem_type_id - memory type identifier ! buf - data buffer to write -! n - size of the data buffer -! NOTE: This parameter is used only for writing -! object and dataset region references. +! 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 @@ -285,6 +296,11 @@ ! 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 @@ -293,14 +309,18 @@ ! types. !---------------------------------------------------------------------- - SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, n, hdferr, & + 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 @@ -321,7 +341,7 @@ 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, n) + file_space_id_default, xfer_prp_default, ref_buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -329,8 +349,8 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf - INTEGER :: n + INTEGER, DIMENSION(*) :: ref_buf + INTEGER, DIMENSION(7) :: dims END FUNCTION h5dwrite_ref_obj_c END INTERFACE @@ -342,31 +362,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 @@ -387,7 +411,7 @@ 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, n) + file_space_id_default, xfer_prp_default, ref_buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -395,8 +419,8 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf - INTEGER :: n + INTEGER, DIMENSION(*) :: ref_buf + INTEGER, DIMENSION(7) :: dims END FUNCTION h5dwrite_ref_reg_c END INTERFACE @@ -409,31 +433,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 @@ -453,7 +482,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -461,6 +490,7 @@ 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 @@ -475,17 +505,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 @@ -505,7 +541,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -513,7 +549,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -527,17 +565,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 @@ -557,7 +601,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -565,7 +609,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -580,17 +626,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 @@ -610,7 +662,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -618,7 +670,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -633,17 +687,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 @@ -663,7 +723,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -671,7 +731,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:,:,:) :: buf + 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 @@ -685,17 +747,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 @@ -715,7 +783,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -723,7 +791,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -739,17 +809,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 @@ -769,7 +845,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -777,7 +853,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -792,17 +870,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 @@ -822,7 +906,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -830,7 +914,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -844,17 +930,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 @@ -875,7 +966,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -884,6 +975,7 @@ 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 @@ -898,18 +990,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 @@ -929,7 +1026,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -938,7 +1035,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(*) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dwritec_c END INTERFACE @@ -952,17 +1051,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 @@ -982,7 +1087,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -991,7 +1096,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dwritec_c END INTERFACE @@ -1005,17 +1112,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 @@ -1035,7 +1148,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -1044,7 +1157,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dwritec_c END INTERFACE @@ -1058,17 +1173,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 @@ -1088,7 +1209,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -1097,7 +1218,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:) :: buf + 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 @@ -1111,17 +1234,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 @@ -1141,7 +1270,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -1150,7 +1279,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -1164,17 +1295,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 @@ -1194,7 +1331,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -1203,7 +1340,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -1217,17 +1356,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 @@ -1247,7 +1392,7 @@ INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c !DEC$ATTRIBUTES reference :: buf @@ -1256,7 +1401,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -1269,16 +1416,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 @@ -1298,7 +1450,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1306,6 +1458,7 @@ 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 @@ -1319,17 +1472,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 @@ -1349,7 +1508,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1357,7 +1516,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1371,17 +1532,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 @@ -1401,7 +1568,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1409,7 +1576,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1423,17 +1592,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 @@ -1452,7 +1627,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1460,7 +1635,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1474,17 +1651,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 @@ -1503,7 +1686,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1511,7 +1694,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:,:,:) :: buf + 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 @@ -1525,17 +1710,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 @@ -1554,7 +1745,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1562,7 +1753,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -1576,17 +1769,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 @@ -1605,7 +1804,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1613,7 +1812,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -1627,17 +1828,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 @@ -1656,7 +1863,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1664,7 +1871,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -1677,17 +1886,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 @@ -1708,7 +1922,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1716,6 +1930,7 @@ 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 @@ -1730,17 +1945,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 @@ -1760,7 +1981,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1768,7 +1989,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(IN), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1782,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_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 @@ -1812,7 +2041,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1820,7 +2049,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1834,17 +2065,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 @@ -1864,7 +2101,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1872,7 +2109,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(IN), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1886,17 +2125,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 @@ -1916,7 +2161,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1924,7 +2169,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - 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)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1938,17 +2185,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 @@ -1968,7 +2221,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -1976,7 +2229,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - 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)) :: buf END FUNCTION h5dwrite_c END INTERFACE @@ -1990,17 +2245,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 @@ -2021,7 +2282,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2029,7 +2290,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - 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 END FUNCTION h5dwrite_c END INTERFACE @@ -2043,17 +2306,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 @@ -2074,7 +2343,7 @@ INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2082,7 +2351,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - 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 END FUNCTION h5dwrite_c END INTERFACE @@ -2095,7 +2366,7 @@ 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 @@ -2109,9 +2380,8 @@ ! Inputs: ! dset_id - dataset identifier ! mem_type_id - memory type identifier -! n - size of the buffer to read data in -! NOTE: This parameter is used only for reading -! object and dataset region references. +! 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 @@ -2129,20 +2399,30 @@ ! 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, n, hdferr, & + 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 @@ -2163,7 +2443,7 @@ 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, n) + file_space_id_default, xfer_prp_default, ref_buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2171,12 +2451,12 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf - INTEGER :: n + 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*n), stat=hdferr) + allocate(ref_buf(REF_OBJ_BUF_LEN*dims(1)), stat=hdferr) if (hdferr .NE. 0) then hdferr = -1 return @@ -2191,8 +2471,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 @@ -2200,14 +2480,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 @@ -2228,7 +2513,7 @@ 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, n) + file_space_id_default, xfer_prp_default, ref_buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_REG_C'::h5dread_ref_reg_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2236,12 +2521,12 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf - INTEGER :: n + 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*n), stat=hdferr) + allocate(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr) if (hdferr .NE. 0) then hdferr = -1 return @@ -2256,9 +2541,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 @@ -2267,12 +2552,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 @@ -2293,7 +2583,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2301,6 +2591,7 @@ 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 @@ -2315,17 +2606,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 @@ -2345,7 +2642,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2353,7 +2650,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(OUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -2367,17 +2666,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 @@ -2397,7 +2702,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2405,7 +2710,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(OUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -2420,17 +2727,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 @@ -2450,7 +2763,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2458,7 +2771,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + INTEGER, INTENT(OUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -2473,17 +2788,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 @@ -2503,7 +2824,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2511,7 +2832,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + 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 @@ -2526,17 +2849,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 @@ -2556,7 +2885,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2564,7 +2893,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -2579,17 +2910,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 @@ -2609,7 +2946,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2617,7 +2954,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -2632,17 +2971,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 @@ -2662,7 +3007,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -2670,7 +3015,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -2684,16 +3031,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 @@ -2714,7 +3066,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2723,6 +3075,7 @@ 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 @@ -2737,17 +3090,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 @@ -2767,7 +3126,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2776,7 +3135,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(*) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(INOUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dreadc_c END INTERFACE @@ -2790,17 +3151,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 @@ -2820,7 +3187,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2829,7 +3196,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dreadc_c END INTERFACE @@ -2843,17 +3212,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 @@ -2873,7 +3248,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2882,7 +3257,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + CHARACTER(LEN=*), INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dreadc_c END INTERFACE @@ -2896,17 +3273,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 @@ -2926,7 +3309,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2935,7 +3318,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:) :: buf + 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 @@ -2949,17 +3334,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 @@ -2979,7 +3370,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -2988,7 +3379,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -3002,17 +3395,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 @@ -3032,7 +3431,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -3041,7 +3440,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -3055,17 +3456,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 @@ -3085,7 +3492,7 @@ INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c !DEC$ATTRIBUTES reference :: buf @@ -3094,7 +3501,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -3107,16 +3516,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 @@ -3136,7 +3550,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3144,6 +3558,7 @@ 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 @@ -3158,17 +3573,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 @@ -3187,7 +3608,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3195,7 +3616,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(INOUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3209,17 +3632,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 @@ -3238,7 +3667,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3246,7 +3675,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3260,17 +3691,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 @@ -3289,7 +3726,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3297,7 +3734,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + REAL, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3311,17 +3750,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 @@ -3340,7 +3785,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3348,7 +3793,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + 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 @@ -3362,17 +3809,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 @@ -3391,7 +3844,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3399,7 +3852,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -3413,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_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 @@ -3442,7 +3903,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3450,7 +3911,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + 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 @@ -3464,17 +3927,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 @@ -3494,7 +3963,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3502,7 +3971,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - REAL, INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + 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 @@ -3515,16 +3986,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 @@ -3545,7 +4021,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3553,6 +4029,7 @@ 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 @@ -3567,17 +4044,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 @@ -3597,7 +4080,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3605,7 +4088,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3619,17 +4104,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 @@ -3649,7 +4140,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3657,7 +4148,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3671,17 +4164,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 @@ -3701,7 +4200,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3709,7 +4208,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:) :: buf + INTEGER, INTENT(IN), DIMENSION(7) :: dims + DOUBLE PRECISION, INTENT(INOUT), & + DIMENSION(dims(1),dims(2),dims(3)) :: buf END FUNCTION h5dread_c END INTERFACE @@ -3723,17 +4224,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 @@ -3754,7 +4261,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3762,7 +4269,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + 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 @@ -3776,17 +4285,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 @@ -3806,7 +4321,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3814,7 +4329,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + 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 @@ -3828,17 +4345,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 @@ -3859,7 +4382,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3867,7 +4390,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), 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 END FUNCTION h5dread_c END INTERFACE @@ -3881,17 +4406,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 @@ -3912,7 +4443,7 @@ INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & mem_space_id_default, & file_space_id_default, & - xfer_prp_default, buf) + xfer_prp_default, buf, dims) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c INTEGER(HID_T), INTENT(IN) :: dset_id @@ -3920,7 +4451,9 @@ INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default INTEGER(HID_T) :: xfer_prp_default - DOUBLE PRECISION, INTENT(OUT), 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 END FUNCTION h5dread_c END INTERFACE @@ -3933,7 +4466,7 @@ 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 @@ -3963,6 +4496,10 @@ ! 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 @@ -4010,6 +4547,10 @@ !---------------------------------------------------------------------- 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 @@ -4057,6 +4598,10 @@ 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 @@ -4108,6 +4653,10 @@ 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 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/H5Fff.f90 b/fortran/src/H5Fff.f90 index afea23f..a8a24fa 100644 --- a/fortran/src/H5Fff.f90 +++ b/fortran/src/H5Fff.f90 @@ -36,6 +36,12 @@ !---------------------------------------------------------------------- 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 @@ -112,6 +118,12 @@ ! 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 @@ -177,6 +189,12 @@ !---------------------------------------------------------------------- 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 @@ -243,6 +261,12 @@ !---------------------------------------------------------------------- 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 @@ -300,6 +324,12 @@ !---------------------------------------------------------------------- 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 @@ -364,6 +394,12 @@ !---------------------------------------------------------------------- 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 @@ -413,6 +449,12 @@ !---------------------------------------------------------------------- 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 @@ -463,6 +505,12 @@ !---------------------------------------------------------------------- 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 @@ -513,6 +561,12 @@ !---------------------------------------------------------------------- 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 @@ -569,6 +623,12 @@ !---------------------------------------------------------------------- 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 diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90 index c4e83c2..1547d25 100644 --- a/fortran/src/H5Gff.f90 +++ b/fortran/src/H5Gff.f90 @@ -34,6 +34,12 @@ ! 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 @@ -100,6 +106,12 @@ ! 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 @@ -153,6 +165,12 @@ ! 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 @@ -204,6 +222,12 @@ !---------------------------------------------------------------------- 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 @@ -271,6 +295,12 @@ !---------------------------------------------------------------------- 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 @@ -335,6 +365,12 @@ 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 @@ -405,6 +441,12 @@ !---------------------------------------------------------------------- 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 @@ -459,6 +501,12 @@ 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 @@ -522,6 +570,12 @@ !---------------------------------------------------------------------- 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 @@ -583,6 +637,12 @@ !---------------------------------------------------------------------- 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 @@ -644,6 +704,12 @@ !---------------------------------------------------------------------- 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 diff --git a/fortran/src/H5Git.c b/fortran/src/H5Git.c index da8bdd7..4ffd8c8 100644 --- a/fortran/src/H5Git.c +++ b/fortran/src/H5Git.c @@ -49,7 +49,7 @@ typedef struct retval { * *------------------------------------------------------------------------- */ -int +int H5Gn_members( hid_t loc_id, char *group_name ) { int res; @@ -100,7 +100,7 @@ H5Gn_members( hid_t loc_id, char *group_name ) * *------------------------------------------------------------------------- */ -herr_t +herr_t H5Gget_obj_info_idx( hid_t loc_id, char *group_name, int idx, char **objname, int *type ) { int res; diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.f90 index 0db7100..cd25f28 100644 --- a/fortran/src/H5Iff.f90 +++ b/fortran/src/H5Iff.f90 @@ -38,6 +38,12 @@ ! 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. diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90 index fa4fd91..98c9195 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 @@ -58,6 +57,12 @@ ! 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 @@ -114,6 +119,12 @@ 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 @@ -162,6 +173,12 @@ !---------------------------------------------------------------------- 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 @@ -217,6 +234,12 @@ !---------------------------------------------------------------------- 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 @@ -273,6 +296,12 @@ 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 @@ -322,6 +351,12 @@ 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 @@ -369,6 +404,12 @@ 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 @@ -422,6 +463,12 @@ 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 @@ -476,6 +523,12 @@ 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 @@ -527,6 +580,12 @@ SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, & +! +!This definition is needed for Windows DLLs +!DEC$if defined(BUILD_HDF5_DLL) +!DEC$attributes dllexport :: h5pset_fill_value_integer +!DEC$endif +! hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier @@ -555,6 +614,12 @@ 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 @@ -582,6 +647,12 @@ 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 @@ -609,6 +680,12 @@ 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 @@ -636,6 +713,12 @@ 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 @@ -663,6 +746,12 @@ 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 @@ -689,6 +778,12 @@ 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 @@ -716,6 +811,12 @@ 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 @@ -772,6 +873,12 @@ 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 @@ -830,6 +937,12 @@ !---------------------------------------------------------------------- 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 @@ -877,9 +990,15 @@ 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 @@ -887,11 +1006,11 @@ ! MS FORTRAN needs explicit interface for C functions called here. ! INTERFACE - INTEGER FUNCTION h5pget_userblock_c(prp_id, size) + INTEGER FUNCTION h5pget_userblock_c(prp_id, block_size) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5PGET_USERBLOCK_C'::h5pget_userblock_c INTEGER(HID_T), INTENT(IN) :: prp_id - INTEGER(HSIZE_T), INTENT(OUT) :: size + INTEGER(HSIZE_T), INTENT(OUT) :: block_size END FUNCTION h5pget_userblock_c END INTERFACE hdferr = h5pget_userblock_c(prp_id, block_size) @@ -925,6 +1044,12 @@ !---------------------------------------------------------------------- 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 @@ -978,11 +1103,17 @@ 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 @@ -1031,6 +1162,12 @@ !---------------------------------------------------------------------- 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 @@ -1083,6 +1220,12 @@ 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 @@ -1132,6 +1275,12 @@ !---------------------------------------------------------------------- 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 @@ -1180,6 +1329,12 @@ 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 @@ -1227,6 +1382,12 @@ !---------------------------------------------------------------------- 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(HID_T), INTENT(OUT) :: driver !low-level file driver identifier @@ -1272,6 +1433,12 @@ !---------------------------------------------------------------------- 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 @@ -1314,6 +1481,12 @@ !---------------------------------------------------------------------- ! 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 @@ -1349,6 +1522,12 @@ !---------------------------------------------------------------------- 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 @@ -1428,6 +1607,12 @@ !---------------------------------------------------------------------- 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 @@ -1478,6 +1663,12 @@ !---------------------------------------------------------------------- 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 @@ -1528,6 +1719,12 @@ !---------------------------------------------------------------------- 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. @@ -1580,6 +1777,12 @@ !---------------------------------------------------------------------- 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. @@ -1632,6 +1835,12 @@ !---------------------------------------------------------------------- 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, @@ -1686,6 +1895,12 @@ 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, @@ -1743,6 +1958,12 @@ !---------------------------------------------------------------------- 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) @@ -1804,6 +2025,12 @@ !---------------------------------------------------------------------- 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) @@ -1823,7 +2050,7 @@ INTEGER FUNCTION h5pget_cache_c(prp_id,mdc_nelmts,rdcc_nelmts,rdcc_nbytes,rdcc_w0) USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5PGET_CACHE_C'::h5pget_cache_c - INTEGER(HID_T), INTENT(OUT) :: prp_id + INTEGER(HID_T), INTENT(IN) :: prp_id INTEGER, INTENT(OUT) :: mdc_nelmts INTEGER, INTENT(OUT) :: rdcc_nelmts INTEGER(SIZE_T), INTENT(OUT) :: rdcc_nbytes @@ -1865,6 +2092,12 @@ !---------------------------------------------------------------------- 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 @@ -1976,6 +2209,12 @@ 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 @@ -2024,6 +2263,12 @@ !---------------------------------------------------------------------- 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 @@ -2076,6 +2321,12 @@ !---------------------------------------------------------------------- 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 @@ -2130,6 +2381,12 @@ !---------------------------------------------------------------------- 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 @@ -2185,6 +2442,12 @@ !---------------------------------------------------------------------- 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. @@ -2240,6 +2503,12 @@ !---------------------------------------------------------------------- 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 @@ -2294,6 +2563,12 @@ !---------------------------------------------------------------------- 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 @@ -2364,6 +2639,12 @@ !---------------------------------------------------------------------- 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 @@ -2423,6 +2704,12 @@ !---------------------------------------------------------------------- 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 @@ -2434,7 +2721,7 @@ INTERFACE INTEGER FUNCTION h5pget_external_count_c(prp_id, count) USE H5GLOBAL - !MS$ATTRIBUTES C,reference,alias:'_H5Pget_external_count_C'::h5pget_external_count_c + !MS$ATTRIBUTES C,reference,alias:'_H5PGET_EXTERNAL_COUNT_C'::h5pget_external_count_c INTEGER(HID_T), INTENT(IN) :: prp_id INTEGER, INTENT(OUT) :: count END FUNCTION h5pget_external_count_c @@ -2477,6 +2764,12 @@ 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. @@ -2538,6 +2831,12 @@ !---------------------------------------------------------------------- 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 ! @@ -2591,6 +2890,12 @@ !---------------------------------------------------------------------- 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 ! @@ -2645,6 +2950,12 @@ !---------------------------------------------------------------------- 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. @@ -2700,6 +3011,12 @@ !---------------------------------------------------------------------- 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. diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90 index 05e4139..5480281 100644 --- a/fortran/src/H5Rff.f90 +++ b/fortran/src/H5Rff.f90 @@ -74,6 +74,12 @@ !---------------------------------------------------------------------- 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 @@ -136,6 +142,12 @@ !---------------------------------------------------------------------- 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 @@ -201,6 +213,12 @@ 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 @@ -259,6 +277,12 @@ 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 @@ -319,6 +343,12 @@ 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 @@ -381,6 +411,12 @@ 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 diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90 index 881f5da..4ff5bb2 100644 --- a/fortran/src/H5Sff.f90 +++ b/fortran/src/H5Sff.f90 @@ -33,6 +33,12 @@ ! 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 @@ -100,6 +106,12 @@ !---------------------------------------------------------------------- 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 @@ -146,6 +158,12 @@ !---------------------------------------------------------------------- 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 @@ -198,6 +216,12 @@ !---------------------------------------------------------------------- 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 @@ -247,6 +271,12 @@ ! 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 @@ -301,6 +331,12 @@ 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 @@ -325,7 +361,7 @@ !MS$ATTRIBUTES C,reference,alias:'_H5SGET_SELECT_HYPER_BLOCKLIST_C'::h5sget_select_hyper_blocklist_c INTEGER(HID_T), INTENT(IN) :: space_id INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: startblock - INTEGER(HSSIZE_T), INTENT(OUT) :: num_blocks + INTEGER(HSSIZE_T), INTENT(IN) :: num_blocks INTEGER(HSIZE_T), DIMENSION(*), INTENT(OUT) :: buf END FUNCTION h5sget_select_hyper_blocklist_c END INTERFACE @@ -364,6 +400,12 @@ !---------------------------------------------------------------------- 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 @@ -418,6 +460,12 @@ ! 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 @@ -472,6 +520,12 @@ 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 @@ -534,6 +588,12 @@ !---------------------------------------------------------------------- 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: @@ -561,7 +621,7 @@ !MS$ATTRIBUTES C,reference,alias:'_H5SSELECT_ELEMENTS_C'::h5sselect_elements_c INTEGER(HID_T), INTENT(IN) :: space_id INTEGER, INTENT(IN) :: operator - INTEGER, INTENT(IN) :: num_elements + INTEGER(SIZE_T), INTENT(IN) :: num_elements INTEGER(HSSIZE_T),DIMENSION(*) :: c_c_coord END FUNCTION h5sselect_elements_c END INTERFACE @@ -606,6 +666,12 @@ !---------------------------------------------------------------------- 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 @@ -651,6 +717,12 @@ !---------------------------------------------------------------------- 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 @@ -697,6 +769,12 @@ ! 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 @@ -750,6 +828,12 @@ !---------------------------------------------------------------------- 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 @@ -799,6 +883,12 @@ !---------------------------------------------------------------------- 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 @@ -848,6 +938,12 @@ !---------------------------------------------------------------------- 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 @@ -898,6 +994,12 @@ !---------------------------------------------------------------------- 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 @@ -956,6 +1058,12 @@ !---------------------------------------------------------------------- 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 @@ -1012,6 +1120,12 @@ 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 @@ -1072,6 +1186,12 @@ !---------------------------------------------------------------------- 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 @@ -1125,6 +1245,12 @@ ! 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 @@ -1177,6 +1303,12 @@ !---------------------------------------------------------------------- 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 @@ -1225,6 +1357,12 @@ ! 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 @@ -1279,6 +1417,12 @@ 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: diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90 index 42a60d2..bdcda24 100644 --- a/fortran/src/H5Tff.f90 +++ b/fortran/src/H5Tff.f90 @@ -34,6 +34,12 @@ !---------------------------------------------------------------------- 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 @@ -90,6 +96,12 @@ !---------------------------------------------------------------------- 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 @@ -144,6 +156,12 @@ 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 @@ -194,6 +212,12 @@ !---------------------------------------------------------------------- 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 @@ -245,6 +269,12 @@ 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 @@ -300,6 +330,12 @@ 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 @@ -358,6 +394,12 @@ 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 @@ -371,7 +413,7 @@ USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5TGET_SIZE_C'::h5tget_size_c INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(OUT) :: size + INTEGER(SIZE_T), INTENT(OUT) :: size END FUNCTION h5tget_size_c END INTERFACE @@ -405,6 +447,12 @@ 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 @@ -418,7 +466,7 @@ USE H5GLOBAL !MS$ATTRIBUTES C,reference,alias:'_H5TSET_SIZE_C'::h5tset_size_c INTEGER(HID_T), INTENT(IN) :: type_id - INTEGER, INTENT(IN) :: size + INTEGER(SIZE_T), INTENT(IN) :: size END FUNCTION h5tset_size_c END INTERFACE @@ -456,6 +504,12 @@ 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 @@ -511,6 +565,12 @@ 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 @@ -562,6 +622,12 @@ 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 @@ -608,6 +674,12 @@ !---------------------------------------------------------------------- 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 @@ -654,6 +726,12 @@ !---------------------------------------------------------------------- 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 @@ -701,6 +779,12 @@ !---------------------------------------------------------------------- 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 @@ -756,6 +840,12 @@ !---------------------------------------------------------------------- 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 @@ -820,6 +910,12 @@ !---------------------------------------------------------------------- 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 @@ -881,6 +977,12 @@ !---------------------------------------------------------------------- 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 @@ -937,6 +1039,12 @@ !---------------------------------------------------------------------- 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 @@ -991,6 +1099,12 @@ !---------------------------------------------------------------------- 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 @@ -1047,6 +1161,12 @@ !---------------------------------------------------------------------- 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 @@ -1099,6 +1219,12 @@ !---------------------------------------------------------------------- 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 @@ -1146,6 +1272,12 @@ 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 @@ -1196,6 +1328,12 @@ !---------------------------------------------------------------------- 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 @@ -1251,6 +1389,12 @@ 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 @@ -1307,6 +1451,12 @@ !---------------------------------------------------------------------- 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 @@ -1363,6 +1513,12 @@ !---------------------------------------------------------------------- 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 @@ -1416,6 +1572,12 @@ !---------------------------------------------------------------------- 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 @@ -1466,6 +1628,12 @@ !---------------------------------------------------------------------- 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 @@ -1519,6 +1687,12 @@ !---------------------------------------------------------------------- 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 @@ -1570,6 +1744,12 @@ !---------------------------------------------------------------------- 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 @@ -1617,6 +1797,12 @@ 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 @@ -1665,6 +1851,12 @@ !---------------------------------------------------------------------- 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 @@ -1718,6 +1910,12 @@ !---------------------------------------------------------------------- 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 @@ -1731,7 +1929,7 @@ INTERFACE INTEGER FUNCTION h5tget_member_offset_c(type_id, member_no, offset ) USE H5GLOBAL - !MS$ATTRIBUTES C,reference,alias:'_H5Tget_member_offset_C'::h5tget_member_offset_c + !MS$ATTRIBUTES C,reference,alias:'_H5TGET_MEMBER_OFFSET_C'::h5tget_member_offset_c INTEGER(HID_T), INTENT(IN) :: type_id INTEGER, INTENT(IN) :: member_no INTEGER(SIZE_T), INTENT(OUT) :: offset @@ -1765,6 +1963,12 @@ !---------------------------------------------------------------------- ! 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 @@ -1808,6 +2012,12 @@ !---------------------------------------------------------------------- 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 @@ -1857,6 +2067,12 @@ !---------------------------------------------------------------------- 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 @@ -1905,6 +2121,12 @@ !---------------------------------------------------------------------- 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 @@ -1956,6 +2178,12 @@ !---------------------------------------------------------------------- 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 @@ -2010,6 +2238,12 @@ 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 can be one of ! H5T_COMPOUND_F @@ -2064,6 +2298,12 @@ !---------------------------------------------------------------------- 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 @@ -2119,6 +2359,12 @@ !---------------------------------------------------------------------- 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 @@ -2161,6 +2407,12 @@ !---------------------------------------------------------------------- ! 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 @@ -2215,6 +2467,12 @@ !---------------------------------------------------------------------- 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 @@ -2268,6 +2526,12 @@ !---------------------------------------------------------------------- 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 @@ -2316,6 +2580,12 @@ !---------------------------------------------------------------------- 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 @@ -2371,6 +2641,12 @@ !---------------------------------------------------------------------- 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. @@ -2384,7 +2660,7 @@ INTERFACE INTEGER FUNCTION h5tenum_nameof_c(type_id, value, name, namelen) USE H5GLOBAL - !MS$ATTRIBUTES C,reference,alias:'_H5Tenum_nameof_C'::h5tenum_nameof_c + !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_NAMEOF_C'::h5tenum_nameof_c !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: type_id CHARACTER(LEN=*), INTENT(OUT) :: name @@ -2424,6 +2700,12 @@ !---------------------------------------------------------------------- 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. @@ -2437,11 +2719,11 @@ INTERFACE INTEGER FUNCTION h5tenum_valueof_c(type_id, name, namelen, value) USE H5GLOBAL - !MS$ATTRIBUTES C,reference,alias:'_H5Tenum_valueof_C'::h5tenum_valueof_c + !MS$ATTRIBUTES C,reference,alias:'_H5TENUM_VALUEOF_C'::h5tenum_valueof_c !DEC$ATTRIBUTES reference :: name INTEGER(HID_T), INTENT(IN) :: type_id CHARACTER(LEN=*), INTENT(IN) :: name - INTEGER(SIZE_T), INTENT(IN) :: namelen + INTEGER, INTENT(IN) :: namelen INTEGER, INTENT(OUT) :: value END FUNCTION h5tenum_valueof_c END INTERFACE @@ -2477,6 +2759,12 @@ !---------------------------------------------------------------------- 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 @@ -2526,6 +2814,12 @@ !---------------------------------------------------------------------- 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 @@ -2578,6 +2872,12 @@ !---------------------------------------------------------------------- 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 diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90 index 94b1e20..a6e321c 100644 --- a/fortran/src/H5f90global.f90 +++ b/fortran/src/H5f90global.f90 @@ -78,12 +78,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 +108,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 +122,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 +147,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 +175,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 +206,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 +266,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 +292,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 +316,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 +332,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 +356,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/H5f90proto.h b/fortran/src/H5f90proto.h index 4ae677d..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); @@ -611,8 +611,8 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id); # define nh5pget_cache_c FNAME(H5PGET_CACHE_C) # define nh5pset_fapl_split_c FNAME(H5PSET_FAPL_SPLIT_C) # define nh5pget_fapl_split_c FNAME(H5PGET_FAPL_SPLIT_C) -# define nh5pset_gc_refernces_c FNAME(H5PSET_GC_REFERENCES_C) -# define nh5pget_gc_refernces_c FNAME(H5PGET_GC_REFERENCES_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) @@ -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 +__DLL__ int_f nh5pget_driver_c (hid_t_f *prp_id, hid_t_f*driver); -extern int_f +__DLL__ int_f nh5pset_fapl_stdio_c (hid_t_f *prp_id); -extern int_f +__DLL__ int_f nh5pget_fapl_stdio_c (hid_t_f *prp_id, int_f* io); -extern int_f +__DLL__ int_f nh5pset_fapl_sec2_c (hid_t_f *prp_id); -extern int_f +__DLL__ int_f nh5pget_fapl_sec2_c (hid_t_f *prp_id, int_f* sec2); -extern int_f +__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 +__DLL__ int_f nh5pget_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); -extern int_f +__DLL__ int_f nh5pset_fapl_core_c (hid_t_f *prp_id, size_t_f* increment, int_f *flag); -extern int_f +__DLL__ int_f nh5pset_fapl_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_family_c (hid_t_f *prp_id, hsize_t_f* memb_size, hid_t_f* memb_plist ); -extern int_f +__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 +__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); -extern int_f +__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); -extern int_f +__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/H5ff.f90 b/fortran/src/H5ff.f90 index 0a17099..f9b6a22 100644 --- a/fortran/src/H5ff.f90 +++ b/fortran/src/H5ff.f90 @@ -36,40 +36,40 @@ ! INTERFACE INTEGER FUNCTION h5open_c() - !MS$ATTRIBUTES C,reference,alias:'_H5OPEN_C'::h5dopen_c + !MS$ATTRIBUTES C,reference,alias:'_H5OPEN_C'::h5open_c END FUNCTION h5open_c END INTERFACE INTERFACE - INTEGER FUNCTION h5init_types_c(predef_types, floating_types, integer_types) + INTEGER FUNCTION h5init_types_c(p_types, f_types, i_types) USE H5GLOBAL - INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types - INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types - INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types + INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: p_types + INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: f_types + INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: i_types !MS$ATTRIBUTES C,reference,alias:'_H5INIT_TYPES_C'::h5init_types_c END FUNCTION h5init_types_c END INTERFACE INTERFACE - INTEGER FUNCTION h5init_flags_c(H5D_flags, & - H5E_flags, & - H5F_flags, & - H5FD_flags, & - H5G_flags, & - H5I_flags, & - H5P_flags, & - H5R_flags, & - H5S_flags, & - H5T_flags ) + INTEGER FUNCTION h5init_flags_c(i_H5D_flags, & + i_H5E_flags, & + i_H5F_flags, & + i_H5FD_flags, & + i_H5G_flags, & + i_H5I_flags, & + i_H5P_flags, & + i_H5R_flags, & + i_H5S_flags, & + i_H5T_flags ) USE H5GLOBAL - INTEGER H5F_flags(H5F_FLAGS_LEN) - INTEGER H5G_flags(H5G_FLAGS_LEN) - INTEGER H5D_flags(H5D_FLAGS_LEN) - INTEGER H5FD_flags(H5FD_FLAGS_LEN) - INTEGER H5E_flags(H5E_FLAGS_LEN) - INTEGER H5I_flags(H5I_FLAGS_LEN) - INTEGER H5P_flags(H5P_FLAGS_LEN) - INTEGER H5R_flags(H5R_FLAGS_LEN) - INTEGER H5S_flags(H5S_FLAGS_LEN) - INTEGER H5T_flags(H5T_FLAGS_LEN) + INTEGER i_H5F_flags(H5F_FLAGS_LEN) + INTEGER i_H5G_flags(H5G_FLAGS_LEN) + INTEGER i_H5D_flags(H5D_FLAGS_LEN) + INTEGER i_H5FD_flags(H5FD_FLAGS_LEN) + INTEGER i_H5E_flags(H5E_FLAGS_LEN) + INTEGER i_H5I_flags(H5I_FLAGS_LEN) + INTEGER i_H5P_flags(H5P_FLAGS_LEN) + INTEGER i_H5R_flags(H5R_FLAGS_LEN) + INTEGER i_H5S_flags(H5S_FLAGS_LEN) + INTEGER i_H5T_flags(H5T_FLAGS_LEN) !MS$ATTRIBUTES C,reference,alias:'_H5INIT_FLAGS_C'::h5init_flags_c END FUNCTION h5init_flags_c @@ -126,16 +126,16 @@ END FUNCTION h5close_c END INTERFACE INTERFACE - INTEGER FUNCTION h5close_types_c(predef_types, PREDEF_TYPES_LEN, & - floating_types, FLOATING_TYPES_LEN, & - integer_types, INTEGER_TYPES_LEN ) + INTEGER FUNCTION h5close_types_c(p_types, P_TYPES_LEN, & + f_types, F_TYPES_LEN, & + i_types, I_TYPES_LEN ) USE H5GLOBAL - INTEGER PREDEF_TYPES_LEN - INTEGER FLOATING_TYPES_LEN - INTEGER INTEGER_TYPES_LEN - INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types - INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types - INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types + INTEGER P_TYPES_LEN + INTEGER F_TYPES_LEN + INTEGER I_TYPES_LEN + INTEGER(HID_T), DIMENSION(P_TYPES_LEN) :: p_types + INTEGER(HID_T), DIMENSION(F_TYPES_LEN) :: f_types + INTEGER(HID_T), DIMENSION(I_TYPES_LEN) :: i_types !MS$ATTRIBUTES C,reference,alias:'_H5CLOSE_TYPES_C'::h5close_types_c END FUNCTION h5close_types_c END INTERFACE |