From a2d934b56a05f9fc8c81c00995c690db6af2f730 Mon Sep 17 00:00:00 2001 From: Elena Pourmal Date: Wed, 28 Feb 2001 15:49:07 -0500 Subject: [svn-r3527] Purpose: Windows port and maintenance Description: Windows Fortran requires interface bocks for each C function called from F90 stub. I also added comment blocks for each F90 API. Solution: Added interface blocks. Platforms tested: Linux (eirene) to test that things are still working on UNIX. --- fortran/src/H5Dff.f90 | 1807 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 1718 insertions(+), 89 deletions(-) diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90 index 4fd234e..8f8c424 100644 --- a/fortran/src/H5Dff.f90 +++ b/fortran/src/H5Dff.f90 @@ -88,6 +88,33 @@ CONTAINS +!---------------------------------------------------------------------- +! Name: h5dcreate_f +! +! Purpose: Creates a dataset at the specified location +! +! Inputs: +! loc_id - file or group identifier +! name - dataset name +! type_id - dataset datatype identifier +! space_id - dataset dataspace identifier +! Outputs: +! dset_id - dataset identifier +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! createion_prp - dataset creation property list identifier +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, & hdferr, creation_prp) @@ -103,7 +130,25 @@ ! list identifier INTEGER :: creation_prp_default INTEGER :: namelen ! Name length - INTEGER, EXTERNAL :: h5dcreate_c + +! INTEGER, EXTERNAL :: h5dcreate_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, & + space_id, creation_prp_default, dset_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DCREATE_C'::h5dcreate_c + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER :: namelen + INTEGER(HID_T), INTENT(IN) :: type_id + INTEGER(HID_T), INTENT(IN) :: space_id + INTEGER :: creation_prp_default + INTEGER(HID_T), INTENT(OUT) :: dset_id + END FUNCTION h5dcreate_c + END INTERFACE creation_prp_default = H5P_DEFAULT_F if (present(creation_prp)) creation_prp_default = creation_prp @@ -112,6 +157,32 @@ creation_prp_default, dset_id) END SUBROUTINE h5dcreate_f +!---------------------------------------------------------------------- +! Name: h5dopen_f +! +! Purpose: Opens an existing dataset. +! +! Inputs: +! loc_id - file or group identifier +! name - dataset name +! Outputs: +! dset_id - dataset identifier +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- + SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier @@ -119,23 +190,109 @@ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier INTEGER, INTENT(OUT) :: hdferr ! Error code INTEGER :: namelen ! Name length - INTEGER, EXTERNAL :: h5dopen_c + +! INTEGER, EXTERNAL :: h5dopen_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dset_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DOPEN_C'::h5dopen_c + !DEC$ATTRIBUTES reference :: name + INTEGER(HID_T), INTENT(IN) :: loc_id + CHARACTER(LEN=*), INTENT(IN) :: name + INTEGER :: namelen + INTEGER(HID_T), INTENT(OUT) :: dset_id + END FUNCTION h5dopen_c + END INTERFACE + namelen = LEN(name) hdferr = h5dopen_c(loc_id, name, namelen, dset_id) END SUBROUTINE h5dopen_f +!---------------------------------------------------------------------- +! Name: h5dclose_f +! +! Purpose: Closes a dataset. +! +! Inputs: +! dset_id - dataset identifier +! Outputs: +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- + SUBROUTINE h5dclose_f(dset_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - INTEGER, EXTERNAL :: h5dclose_c + +! INTEGER, EXTERNAL :: h5dclose_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dclose_c(dset_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DCLOSE_C'::h5dclose_c + INTEGER(HID_T), INTENT(IN) :: dset_id + END FUNCTION h5dclose_c + END INTERFACE hdferr = h5dclose_c(dset_id) END SUBROUTINE h5dclose_f +!---------------------------------------------------------------------- +! Name: h5dwrite_f +! +! Purpose: Reads raw data from the specified dataset into buf, +! converting from file datatype and dataspace to memory +! datatype and dataspace. +! +! Inputs: +! dset_id - dataset identifier +! mem_type_id - memory type identifier +! buf - data buffer to write +! n - size of the data buffer +! NOTE: This parameter is used only for writing +! object and dataset region references. +! Outputs: +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! mem_space_id - memory dataspace identifier +! file_space_id - file dataspace identifier +! xfer_prp - trasfer property list identifier +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: This function is overloaded to write INTEGER, +! REAL, DOUBLE PRECISION and CHARACTER buffers +! up to 7 dimensions, and one dimensional buffers +! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f) +! types. +!---------------------------------------------------------------------- + SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, n, hdferr, & mem_space_id, file_space_id, xfer_prp) @@ -157,7 +314,25 @@ INTEGER(HID_T) :: file_space_id_default INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf INTEGER :: i,j - INTEGER, EXTERNAL :: h5dwrite_ref_obj_c + +! INTEGER, EXTERNAL :: h5dwrite_ref_obj_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_ref_obj_c(dset_id, mem_type_id,& + mem_space_id_default, & + file_space_id_default, xfer_prp_default, ref_buf, n) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: xfer_prp_default + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf + INTEGER :: n + END FUNCTION h5dwrite_ref_obj_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -205,7 +380,26 @@ INTEGER(HID_T) :: file_space_id_default INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf INTEGER :: i,j - INTEGER, EXTERNAL :: h5dwrite_ref_reg_c + +! INTEGER, EXTERNAL :: h5dwrite_ref_reg_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,& + mem_space_id_default, & + file_space_id_default, xfer_prp_default, ref_buf, n) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: xfer_prp_default + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf + INTEGER :: n + END FUNCTION h5dwrite_ref_reg_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -251,7 +445,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -284,7 +497,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -317,7 +549,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -351,7 +602,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -385,7 +655,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -418,7 +707,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -453,7 +761,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -487,7 +814,25 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -522,7 +867,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -556,7 +921,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(*) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -589,7 +974,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -622,7 +1027,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -655,7 +1080,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -688,7 +1133,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -721,7 +1186,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -754,7 +1239,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwritec_c + +! INTEGER, EXTERNAL :: h5dwritec_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwritec_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITEC_C'::h5dwritec_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dwritec_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -783,12 +1287,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -815,12 +1337,31 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -848,12 +1389,31 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -881,12 +1441,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -914,13 +1492,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -948,12 +1543,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -981,12 +1594,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -1014,12 +1645,29 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dwrite_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -1052,7 +1700,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1085,7 +1752,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1118,7 +1804,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1151,7 +1856,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1184,7 +1908,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1217,7 +1960,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1251,7 +2013,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1285,7 +2066,25 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dwrite_c + +! INTEGER, EXTERNAL :: h5dwrite_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dwrite_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DWRITE_C'::h5dwrite_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(IN), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dwrite_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1300,6 +2099,42 @@ END SUBROUTINE h5dwrite_double_7 +!---------------------------------------------------------------------- +! Name: h5dread_f +! +! Purpose: Reads raw data from the specified dataset into buf, +! converting from file datatype and dataspace to memory +! datatype and dataspace. +! +! Inputs: +! dset_id - dataset identifier +! mem_type_id - memory type identifier +! n - size of the buffer to read data in +! NOTE: This parameter is used only for reading +! object and dataset region references. +! Outputs: +! buf - buffer to read data in +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! mem_space_id - memory dataspace identifier +! file_space_id - file dataspace identifier +! xfer_prp - trasfer property list identifier +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! 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, & mem_space_id, file_space_id, xfer_prp) @@ -1319,9 +2154,28 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_ref_obj_c INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf INTEGER :: i,j + +! INTEGER, EXTERNAL :: h5dread_ref_obj_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_ref_obj_c(dset_id, mem_type_id,& + mem_space_id_default, & + file_space_id_default, xfer_prp_default, ref_buf, n) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: xfer_prp_default + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf + INTEGER :: n + END FUNCTION h5dread_ref_obj_c + END INTERFACE + allocate(ref_buf(REF_OBJ_BUF_LEN*n), stat=hdferr) if (hdferr .NE. 0) then hdferr = -1 @@ -1367,7 +2221,26 @@ INTEGER(HID_T) :: file_space_id_default INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf INTEGER :: i,j - INTEGER, EXTERNAL :: h5dread_ref_reg_c + +! INTEGER, EXTERNAL :: h5dread_ref_reg_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,& + mem_space_id_default, & + file_space_id_default, xfer_prp_default, ref_buf, n) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_REF_REG_C'::h5dread_ref_reg_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: xfer_prp_default + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf + INTEGER :: n + END FUNCTION h5dread_ref_reg_c + END INTERFACE + allocate(ref_buf(REF_REG_BUF_LEN*n), stat=hdferr) if (hdferr .NE. 0) then hdferr = -1 @@ -1412,7 +2285,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1445,7 +2337,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1478,7 +2389,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1512,7 +2442,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1546,7 +2495,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1580,7 +2548,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1614,7 +2601,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1648,7 +2654,25 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + INTEGER, INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1682,7 +2706,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1715,7 +2759,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(*) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1748,7 +2812,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1781,7 +2865,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1814,7 +2918,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1847,7 +2971,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1880,7 +3024,27 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1913,7 +3077,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dreadc_c + +! INTEGER, EXTERNAL :: h5dreadc_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dreadc_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREADC_C'::h5dreadc_c + !DEC$ATTRIBUTES reference :: buf + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + CHARACTER(LEN=*), INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dreadc_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -1942,12 +3125,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -1975,12 +3176,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2008,12 +3227,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2041,12 +3278,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2074,12 +3329,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2107,12 +3380,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2140,12 +3431,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c - INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2173,12 +3482,30 @@ ! File dataspace identfier INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier - INTEGER, EXTERNAL :: h5dread_c INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + REAL, INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F file_space_id_default = H5S_ALL_F @@ -2210,7 +3537,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2243,7 +3589,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2276,7 +3641,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2309,7 +3693,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2343,7 +3746,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2376,7 +3798,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2410,7 +3851,26 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE + xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2444,7 +3904,25 @@ INTEGER(HID_T) :: xfer_prp_default INTEGER(HID_T) :: mem_space_id_default INTEGER(HID_T) :: file_space_id_default - INTEGER, EXTERNAL :: h5dread_c + +! INTEGER, EXTERNAL :: h5dread_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dread_c(dset_id, mem_type_id, & + mem_space_id_default, & + file_space_id_default, & + xfer_prp_default, buf) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DREAD_C'::h5dread_c + INTEGER(HID_T), INTENT(IN) :: dset_id + INTEGER(HID_T), INTENT(IN) :: mem_type_id + INTEGER(HID_T) :: mem_space_id_default + INTEGER(HID_T) :: file_space_id_default + INTEGER(HID_T) :: xfer_prp_default + DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:,:,:,:,:,:) :: buf + END FUNCTION h5dread_c + END INTERFACE xfer_prp_default = H5P_DEFAULT_F mem_space_id_default = H5S_ALL_F @@ -2459,25 +3937,125 @@ END SUBROUTINE h5dread_double_7 +!---------------------------------------------------------------------- +! Name: h5dget_space_f +! +! Purpose: Returns an identifier for a copy of the dataspace for a +! dataset. +! +! Inputs: +! dataset_id - dataset identifier +! Outputs: +! dataspace_id - dataspace identifier +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- SUBROUTINE h5dget_space_f(dataset_id, dataspace_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier INTEGER(HID_T), INTENT(OUT) :: dataspace_id ! Dataspace identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - INTEGER, EXTERNAL :: h5dget_space_c + +! INTEGER, EXTERNAL :: h5dget_space_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DGET_SPACE_C'::h5dget_space_c + INTEGER(HID_T), INTENT(IN) :: dataset_id + INTEGER(HID_T), INTENT(OUT) :: dataspace_id + END FUNCTION h5dget_space_c + END INTERFACE + hdferr = h5dget_space_c(dataset_id, dataspace_id) END SUBROUTINE h5dget_space_f +!---------------------------------------------------------------------- +! Name: h5dget_type_f +! +! Purpose: Returns an identifier for a copy of the datatype for a +! dataset. +! +! Inputs: +! dataset_id - dataset identifier +! Outputs: +! datatype_id - dataspace identifier +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- SUBROUTINE h5dget_type_f(dataset_id, datatype_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier INTEGER(HID_T), INTENT(OUT) :: datatype_id ! Datatype identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - INTEGER, EXTERNAL :: h5dget_type_c +! INTEGER, EXTERNAL :: h5dget_type_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DGET_TYPE_C'::h5dget_type_c + INTEGER(HID_T), INTENT(IN) :: dataset_id + INTEGER(HID_T), INTENT(OUT) :: datatype_id + END FUNCTION h5dget_type_c + END INTERFACE + hdferr = h5dget_type_c (dataset_id, datatype_id) END SUBROUTINE h5dget_type_f +!---------------------------------------------------------------------- +! Name: h5dextend_f +! +! Purpose: Extends a dataset with unlimited dimension. +! +! Inputs: +! dataset_id - dataset identifier +! size - array containing the new magnitude of +! each dimension +! Outputs: +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- + + SUBROUTINE h5dextend_f(dataset_id, size, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier @@ -2485,18 +4063,69 @@ ! Array containing ! dimensions' sizes INTEGER, INTENT(OUT) :: hdferr ! Error code - INTEGER, EXTERNAL :: h5dextend_c + +! INTEGER, EXTERNAL :: h5dextend_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dextend_c(dataset_id, size) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DEXTEND_C'::h5dextend_c + INTEGER(HID_T), INTENT(IN) :: dataset_id + INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size + END FUNCTION h5dextend_c + END INTERFACE + hdferr = h5dextend_c(dataset_id, size) END SUBROUTINE h5dextend_f +!---------------------------------------------------------------------- +! Name: h5dget_create_plist_f +! +! Purpose: Returns an identifier for a copy of the dataset creation +! property list for a dataset. +! +! Inputs: +! dataset_id - dataset identifier +! Outputs: +! plist_id - creation property list identifier +! hdferr: - error code +! Success: 0 +! Failure: -1 +! Optional parameters: +! NONE +! +! Programmer: Elena Pourmal +! August 12, 1999 +! +! Modifications: Explicit Fortran interfaces were added for +! called C functions (it is needed for Windows +! port). February 28, 2001 +! +! Comment: +!---------------------------------------------------------------------- + + SUBROUTINE h5dget_create_plist_f(dataset_id, plist_id, hdferr) IMPLICIT NONE INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier INTEGER(HID_T), INTENT(OUT) :: plist_id ! Dataset creation ! property list identifier INTEGER, INTENT(OUT) :: hdferr ! Error code - INTEGER, EXTERNAL :: h5dget_create_plist_c + +! INTEGER, EXTERNAL :: h5dget_create_plist_c +! MS FORTRAN needs explicit interface for C functions called here. +! + INTERFACE + INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id) + USE H5GLOBAL + !MS$ATTRIBUTES C,reference,alias:'_H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c + INTEGER(HID_T), INTENT(IN) :: dataset_id + INTEGER(HID_T), INTENT(OUT) :: plist_id + END FUNCTION h5dget_create_plist_c + END INTERFACE + hdferr = h5dget_create_plist_c(dataset_id, plist_id) END SUBROUTINE h5dget_create_plist_f -- cgit v0.12