summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2001-02-27 22:33:25 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2001-02-27 22:33:25 (GMT)
commitc45a1d919ab708eac67f93e0a976b39214e30fdf (patch)
tree2e9b2644745f40fe9f1ec1b923bff7526d44a3fe /fortran/src
parent50caed33bd5c848c2635572e2af1ee86ad122f40 (diff)
downloadhdf5-c45a1d919ab708eac67f93e0a976b39214e30fdf.zip
hdf5-c45a1d919ab708eac67f93e0a976b39214e30fdf.tar.gz
hdf5-c45a1d919ab708eac67f93e0a976b39214e30fdf.tar.bz2
[svn-r3522]
Purpose: Windows port and maintenance. Description: Windows Fortran requires explicit interface block for each C function called from F90 stub. I also added comment block for each F90 function. Solution: Added inteface block for each function. Platforms tested: Linux (eiriene): checked that code is still compiles and runs correctly on UNIX.
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5Aff.f901397
1 files changed, 1318 insertions, 79 deletions
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index e10f445..4e47709 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -83,6 +83,36 @@
END INTERFACE
CONTAINS
+
+!----------------------------------------------------------------------
+! Name: h5acreate_f
+!
+! Purpose: Creates a dataset as an attribute of a group, dataset,
+! or named datatype
+!
+! Inputs:
+! obj_id - identifier of an object (group, dataset,
+! or named datatype) attribute is attached to
+! name - attribute name
+! type_id - attribute datatype identifier
+! space_id - attribute dataspace identifier
+!
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! creation_prp - creation property list identifier
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5acreate_f(obj_id, name, type_id, space_id, attr_id, &
hdferr, creation_prp)
IMPLICIT NONE
@@ -99,7 +129,25 @@
! list identifier
INTEGER :: creation_prp_default
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5acreate_c
+! INTEGER, EXTERNAL :: h5acreate_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5acreate_c(obj_id, name, namelen, type_id, &
+ space_id, creation_prp_default, attr_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5ACREATE_C'::h5acreate_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER :: creation_prp_default
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5acreate_c
+ END INTERFACE
+
creation_prp_default = H5P_DEFAULT_F
namelen = LEN(NAME)
if (present(creation_prp)) creation_prp_default = creation_prp
@@ -108,6 +156,31 @@
END SUBROUTINE h5acreate_f
+!----------------------------------------------------------------------
+! Name: h5aopen_name_f
+!
+! Purpose: Opens an attribute specified by name.
+!
+! Inputs:
+! obj_id - identifier of a group, dataset, or named
+! datatype atttribute to be attached to
+! name - attribute name
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
IMPLICIT NONE
@@ -116,12 +189,52 @@
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5aopen_name_c
+
+! INTEGER, EXTERNAL :: h5aopen_name_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aopen_name_c(obj_id, name, namelen, attr_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AOPEN_NAME_C'::h5aopen_name_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5aopen_name_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5aopen_name_c(obj_id, name, namelen, attr_id)
END SUBROUTINE h5aopen_name_f
+!----------------------------------------------------------------------
+! Name: h5aopen_idx_f
+!
+! Purpose: Opens the attribute specified by its index.
+!
+! Inputs:
+! obj_id - identifier of a group, dataset, or named
+! datatype an attribute to be attached to
+! index - index of the attribute to open (zero-based)
+! Outputs:
+! attr_id - attribute identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
IMPLICIT NONE
@@ -129,11 +242,53 @@
INTEGER, INTENT(IN) :: index ! Attribute index
INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aopen_idx_c
+
+! INTEGER, EXTERNAL :: h5aopen_idx_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aopen_idx_c(obj_id, index, attr_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AOPEN_IDX_C'::h5aopen_idx_c
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(IN) :: index
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION h5aopen_idx_c
+ END INTERFACE
+
hdferr = h5aopen_idx_c(obj_id, index, attr_id)
END SUBROUTINE h5aopen_idx_f
+!----------------------------------------------------------------------
+! Name: h5awrite_f
+!
+! Purpose: Writes data to an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! buf - data to write
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! 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)
IMPLICIT NONE
@@ -142,7 +297,20 @@
! identifier (in memory)
INTEGER, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ 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)
END SUBROUTINE h5awrite_integer_scalar
@@ -154,7 +322,20 @@
INTEGER, DIMENSION(:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_1
@@ -167,7 +348,20 @@
INTEGER, DIMENSION(:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_2
@@ -180,7 +374,20 @@
INTEGER, DIMENSION(:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_3
@@ -193,7 +400,20 @@
INTEGER, DIMENSION(:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_4
@@ -206,7 +426,20 @@
INTEGER, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_5
@@ -219,7 +452,20 @@
INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_6
@@ -232,7 +478,20 @@
INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_integer_7
@@ -244,7 +503,20 @@
! identifier (in memory)
REAL, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ 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)
END SUBROUTINE h5awrite_real_scalar
@@ -256,7 +528,20 @@
REAL, DIMENSION(:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_1
@@ -269,7 +554,21 @@
REAL, DIMENSION(:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN)::buf
+ REAL, DIMENSION(:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_2
@@ -282,7 +581,20 @@
REAL, DIMENSION(:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_3
@@ -295,7 +607,21 @@
REAL, DIMENSION(:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN)::buf
+ REAL, DIMENSION(:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_4
@@ -308,7 +634,21 @@
REAL, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, INTENT(IN)::buf
+ REAL, DIMENSION(:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_5
@@ -321,7 +661,20 @@
REAL, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_6
@@ -334,7 +687,20 @@
REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_real_7
@@ -346,7 +712,20 @@
! identifier (in memory)
DOUBLE PRECISION, INTENT(IN) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ 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)
END SUBROUTINE h5awrite_double_scalar
@@ -358,7 +737,20 @@
DOUBLE PRECISION, DIMENSION(:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_1
@@ -371,7 +763,20 @@
DOUBLE PRECISION, DIMENSION(:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_2
@@ -384,7 +789,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_3
@@ -397,7 +815,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_4
@@ -410,7 +841,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_5
@@ -423,7 +867,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_6
@@ -436,7 +893,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awrite_c
+
+! INTEGER, EXTERNAL :: h5awrite_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awrite_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITE_C'::h5awrite_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(IN)::buf
+ END FUNCTION h5awrite_c
+ END INTERFACE
+
hdferr = h5awrite_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_double_7
@@ -448,7 +918,20 @@
CHARACTER(LEN=*),INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_scalar
@@ -460,7 +943,20 @@
CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(*)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_1
@@ -473,7 +969,21 @@
CHARACTER(LEN=*), DIMENSION(:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_2
@@ -486,7 +996,20 @@
CHARACTER(LEN=*), DIMENSION(:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_3
@@ -499,7 +1022,20 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_4
@@ -512,7 +1048,20 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_5
@@ -525,7 +1074,20 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_6
@@ -538,10 +1100,50 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:,:), INTENT(IN) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5awritec_c
+! INTEGER, EXTERNAL :: h5awritec_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5awritec_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AWRITEC_C'::h5awritec_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:,:)::buf
+ END FUNCTION h5awritec_c
+ END INTERFACE
+
hdferr = h5awritec_c(attr_id, memtype_id, buf)
END SUBROUTINE h5awrite_char_7
+!----------------------------------------------------------------------
+! Name: h5aread_f
+!
+! Purpose: Reads an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! memtype_id - attribute memory type identifier
+! Outputs:
+! buf - buffer to read attribute data in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! 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)
IMPLICIT NONE
@@ -550,7 +1152,20 @@
! identifier (in memory)
INTEGER, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ 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)
END SUBROUTINE h5aread_integer_scalar
@@ -559,10 +1174,22 @@
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, DIMENSION(:), INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_1
@@ -572,10 +1199,22 @@
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, DIMENSION(:,:), INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_2
@@ -585,10 +1224,22 @@
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, DIMENSION(:,:,:), INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_3
@@ -601,7 +1252,20 @@
INTEGER, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_4
@@ -614,7 +1278,20 @@
INTEGER, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_5
@@ -627,7 +1304,20 @@
INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_6
@@ -640,7 +1330,20 @@
INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ INTEGER, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_integer_7
@@ -652,7 +1355,20 @@
! identifier (in memory)
REAL, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ 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)
END SUBROUTINE h5aread_real_scalar
@@ -664,7 +1380,20 @@
REAL, DIMENSION(:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_1
@@ -677,7 +1406,20 @@
REAL, DIMENSION(:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_2
@@ -690,7 +1432,20 @@
REAL, DIMENSION(:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_3
@@ -703,7 +1458,20 @@
REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_4
@@ -716,7 +1484,20 @@
REAL, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_5
@@ -729,7 +1510,20 @@
REAL, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_6
@@ -742,7 +1536,20 @@
REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ REAL, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_real_7
@@ -754,7 +1561,20 @@
! identifier (in memory)
DOUBLE PRECISION, INTENT(OUT) :: buf ! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ 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)
END SUBROUTINE h5aread_double_scalar
@@ -766,7 +1586,20 @@
DOUBLE PRECISION, DIMENSION(:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_1
@@ -779,7 +1612,20 @@
DOUBLE PRECISION, DIMENSION(:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_2
@@ -792,7 +1638,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_3
@@ -805,7 +1664,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_4
@@ -818,7 +1690,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_5
@@ -831,7 +1716,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_6
@@ -844,7 +1742,20 @@
DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aread_c
+
+! INTEGER, EXTERNAL :: h5aread_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aread_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREAD_C'::h5aread_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ DOUBLE PRECISION, DIMENSION(:,:,:,:,:,:,:), INTENT(OUT)::buf
+ END FUNCTION h5aread_c
+ END INTERFACE
+
hdferr = h5aread_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_double_7
@@ -856,7 +1767,21 @@
CHARACTER(LEN=*), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ 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)
END SUBROUTINE h5aread_char_scalar
@@ -869,7 +1794,21 @@
CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(*)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_1
@@ -882,7 +1821,21 @@
CHARACTER(LEN=*), DIMENSION(:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_2
@@ -895,7 +1848,21 @@
CHARACTER(LEN=*), DIMENSION(:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_3
@@ -908,7 +1875,21 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_4
@@ -921,7 +1902,21 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_5
@@ -934,7 +1929,21 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_6
@@ -947,10 +1956,47 @@
CHARACTER(LEN=*), DIMENSION(:,:,:,:,:,:,:), INTENT(OUT) :: buf
! Attribute data
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5areadc_c
+
+! INTEGER, EXTERNAL :: h5areadc_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5areadc_c(attr_id, memtype_id, buf)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AREADC_C'::h5areadc_c
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: memtype_id
+ CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:,:)::buf
+ END FUNCTION h5areadc_c
+ END INTERFACE
+
hdferr = h5areadc_c(attr_id, memtype_id, buf)
END SUBROUTINE h5aread_char_7
+!----------------------------------------------------------------------
+! Name: h5aget_space_f
+!
+! Purpose: Gets a copy of the dataspace for an attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+! space_id - attribite dataspace identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
IMPLICIT NONE
@@ -958,10 +2004,45 @@
INTEGER(HID_T), INTENT(OUT) :: space_id
! Attribute dataspace identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL:: h5aget_space_c
+
+! INTEGER, EXTERNAL:: h5aget_space_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_space_c(attr_id, space_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_SPACE_C'::h5aget_space_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(OUT) :: space_id
+ END FUNCTION h5aget_space_c
+ END INTERFACE
+
hdferr = h5aget_space_c(attr_id, space_id)
END SUBROUTINE h5aget_space_f
+!----------------------------------------------------------------------
+! Name: h5aget_type_f
+!
+! Purpose: Gets an attribute datatype.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+! type_id - attribute datatype identifier
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
IMPLICIT NONE
@@ -969,10 +2050,46 @@
INTEGER(HID_T), INTENT(OUT) :: type_id
! Attribute datatype identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aget_type_c
+
+! INTEGER, EXTERNAL :: h5aget_type_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_type_c(attr_id, type_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_TYPE_C'::h5aget_type_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(OUT) :: type_id
+ END FUNCTION h5aget_type_c
+ END INTERFACE
+
hdferr = h5aget_type_c(attr_id, type_id)
END SUBROUTINE h5aget_type_f
+!----------------------------------------------------------------------
+! Name: h5aget_name_f
+!
+! Purpose: Gets an attribute name.
+!
+! Inputs:
+! attr_id - attribute identifier
+! size - size of a buffer to read name in
+! Outputs:
+! buf - buffer to read name in
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
@@ -984,11 +2101,48 @@
INTEGER, INTENT(OUT) :: hdferr ! Error code:
! name length is successful,
! -1 if fail
- INTEGER, EXTERNAL :: h5aget_name_c
+! INTEGER, EXTERNAL :: h5aget_name_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_name_c(attr_id, size, buf)
+ USE H5GLOBAL
+ !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
+ CHARACTER(LEN=*), INTENT(OUT) :: buf
+ END FUNCTION h5aget_name_c
+ END INTERFACE
+
hdferr = h5aget_name_c(attr_id, size, buf)
END SUBROUTINE h5aget_name_f
+!----------------------------------------------------------------------
+! Name: h5aget_num_attrs_f
+!
+! Purpose: Determines the number of attributes attached to an object.
+!
+! Inputs:
+! obj_id - object (group, dataset, or named datatype)
+! identifier
+! Outputs:
+! attr_num - number of attributes attached to the object
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
IMPLICIT NONE
@@ -996,10 +2150,47 @@
INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the
! object
INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER, EXTERNAL :: h5aget_num_attrs_c
+
+! INTEGER, EXTERNAL :: h5aget_num_attrs_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5AGET_NUM_ATTRS_C'::h5aget_num_attrs_c
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER, INTENT(OUT) :: attr_num
+ END FUNCTION h5aget_num_attrs_c
+ END INTERFACE
+
hdferr = h5aget_num_attrs_c(obj_id, attr_num)
END SUBROUTINE h5aget_num_attrs_f
+!----------------------------------------------------------------------
+! Name: h5adelete_f
+!
+! Purpose: Deletes an attribute of an object (group, dataset or
+! named datatype)
+!
+! Inputs:
+! obj_id - object identifier
+! name - attribute name
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5adelete_f(obj_id, name, hdferr)
IMPLICIT NONE
@@ -1007,17 +2198,65 @@
CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
INTEGER, INTENT(OUT) :: hdferr ! Error code
INTEGER :: namelen
- INTEGER, EXTERNAL :: h5adelete_c
+
+! INTEGER, EXTERNAL :: h5adelete_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5adelete_c(obj_id, name, namelen)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5ADELETE_C'::h5adelete_c
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ END FUNCTION h5adelete_c
+ END INTERFACE
+
namelen = LEN(name)
hdferr = h5adelete_c(obj_id, name, namelen)
END SUBROUTINE h5adelete_f
+!----------------------------------------------------------------------
+! Name: h5aclose_f
+!
+! Purpose: Closes the specified attribute.
+!
+! Inputs:
+! attr_id - attribute identifier
+! Outputs:
+!
+! hdferr: - error code
+! Success: 0
+! Failure: -1
+! Optional parameters:
+! NONE
+!
+! Programmer: Elena Pourmal
+! August 12, 1999
+!
+! Modifications: Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!----------------------------------------------------------------------
SUBROUTINE h5aclose_f(attr_id, hdferr)
IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
INTEGER, INTENT(OUT) :: hdferr ! Error code:
- INTEGER, EXTERNAL :: h5aclose_c
+
+! INTEGER, EXTERNAL :: h5aclose_c
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5aclose_c(attr_id)
+ USE H5GLOBAL
+ !MS$ATTRIBUTES C,reference,alias:'_H5ACLOSE_C'::h5aclose_c
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ END FUNCTION h5aclose_c
+ END INTERFACE
+
hdferr = h5aclose_c(attr_id)
END SUBROUTINE h5aclose_f