summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/CMakeLists.txt83
-rw-r--r--fortran/src/H5Af.c4
-rw-r--r--fortran/src/H5Aff.F902961
-rw-r--r--fortran/src/H5Aff.f901673
-rw-r--r--fortran/src/H5Aff_F03.f901267
-rw-r--r--fortran/src/H5Aff_F90.f901618
-rw-r--r--fortran/src/H5Dff.F90 (renamed from fortran/src/H5Dff_F03.f90)1040
-rw-r--r--fortran/src/H5Dff.f901035
-rw-r--r--fortran/src/H5Dff_F90.f903004
-rw-r--r--fortran/src/H5Eff.F90 (renamed from fortran/src/H5Eff.f90)61
-rw-r--r--fortran/src/H5Eff_F03.f90108
-rw-r--r--fortran/src/H5Eff_F90.f9089
-rw-r--r--fortran/src/H5FDmpioff.F90 (renamed from fortran/src/H5FDmpioff.f90)0
-rw-r--r--fortran/src/H5Fff.F90 (renamed from fortran/src/H5Fff.f90)60
-rw-r--r--fortran/src/H5Fff_F03.f9099
-rw-r--r--fortran/src/H5Fff_F90.f9043
-rw-r--r--fortran/src/H5Gff.F90 (renamed from fortran/src/H5Gff.f90)0
-rw-r--r--fortran/src/H5Iff.F90 (renamed from fortran/src/H5Iff.f90)0
-rw-r--r--fortran/src/H5Lf.c30
-rw-r--r--fortran/src/H5Lff.F90 (renamed from fortran/src/H5Lff.f90)341
-rw-r--r--fortran/src/H5Lff_F03.f90242
-rw-r--r--fortran/src/H5Lff_F90.f9039
-rw-r--r--fortran/src/H5Off.F90 (renamed from fortran/src/H5Off.f90)392
-rw-r--r--fortran/src/H5Off_F03.f90435
-rw-r--r--fortran/src/H5Off_F90.f9039
-rw-r--r--fortran/src/H5Pff.F90 (renamed from fortran/src/H5Pff.f90)1224
-rw-r--r--fortran/src/H5Pff_F03.f901267
-rw-r--r--fortran/src/H5Pff_F90.f90949
-rw-r--r--fortran/src/H5Rf.c32
-rw-r--r--fortran/src/H5Rff.F90 (renamed from fortran/src/H5Rff_F03.f90)130
-rw-r--r--fortran/src/H5Rff.f90128
-rw-r--r--fortran/src/H5Rff_F90.f90514
-rw-r--r--fortran/src/H5Sff.F90 (renamed from fortran/src/H5Sff.f90)0
-rw-r--r--fortran/src/H5Tff.F90 (renamed from fortran/src/H5Tff.f90)180
-rw-r--r--fortran/src/H5Tff_F03.f90223
-rw-r--r--fortran/src/H5Tff_F90.f9095
-rw-r--r--fortran/src/H5Zf.c6
-rw-r--r--fortran/src/H5Zff.F90 (renamed from fortran/src/H5Zff.f90)49
-rw-r--r--fortran/src/H5_DBLE_InterfaceExclude.F90 (renamed from fortran/src/H5_DBLE_InterfaceExclude.f90)0
-rw-r--r--fortran/src/H5_DBLE_InterfaceInclude.F90 (renamed from fortran/src/H5_DBLE_InterfaceInclude.f90)0
-rw-r--r--fortran/src/H5_f.c18
-rw-r--r--fortran/src/H5_ff.F90 (renamed from fortran/src/H5_ff.f90)46
-rw-r--r--fortran/src/H5_ff_F03.f9075
-rw-r--r--fortran/src/H5_ff_F90.f9034
-rw-r--r--fortran/src/H5f90global.F90 (renamed from fortran/src/H5f90global.f90)28
-rw-r--r--fortran/src/H5f90proto.h83
-rw-r--r--fortran/src/H5match_types.c4
-rw-r--r--fortran/src/H5test_kind.F90 (renamed from fortran/src/H5test_kind.f90)0
-rw-r--r--fortran/src/H5test_kind_SIZEOF.F90 (renamed from fortran/src/H5test_kind_SIZEOF.f90)0
-rw-r--r--fortran/src/H5test_kind_STORAGE_SIZE.F90 (renamed from fortran/src/H5test_kind_STORAGE_SIZE.f90)0
-rw-r--r--fortran/src/HDF5.F90 (renamed from fortran/src/HDF5.f90)9
-rw-r--r--fortran/src/HDF5mpio.F90 (renamed from fortran/src/HDF5mpio.f90)0
-rw-r--r--fortran/src/Makefile.am128
-rw-r--r--fortran/src/Makefile.in211
54 files changed, 6584 insertions, 13512 deletions
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index c015072..3ee04d8 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -21,24 +21,24 @@ endif (WIN32)
#-----------------------------------------------------------------------------
# Setup the Fortran auto-detection utilities
-# H5test_kind(_SIZEOF,_STORAGE_SIZE).f90 used to generate H5fortran_detect.f90
-# H5fortran_detect.f90 used to generate H5fort_type_defines.h
-# H5fort_type_defines.h used to generate H5f90i_gen.h + H5fortran_types.f90
+# H5test_kind(_SIZEOF,_STORAGE_SIZE).F90 used to generate H5fortran_detect.F90
+# H5fortran_detect.F90 used to generate H5fort_type_defines.h
+# H5fort_type_defines.h used to generate H5f90i_gen.h + H5fortran_types.F90
#-----------------------------------------------------------------------------
if (FORTRAN_HAVE_STORAGE_SIZE)
add_executable (H5test_FortranHavekind
- ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.F90
)
set (H5_TEST_KIND_NAME "h5test_kind_storage_size_mod")
else (FORTRAN_HAVE_STORAGE_SIZE)
if (FORTRAN_HAVE_SIZEOF)
add_executable (H5test_FortranHavekind
- ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.F90
)
set (H5_TEST_KIND_NAME "h5test_kind_sizeof_mod")
else (FORTRAN_HAVE_SIZEOF)
add_executable (H5test_FortranHavekind
- ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.F90
)
endif (FORTRAN_HAVE_SIZEOF)
endif (FORTRAN_HAVE_STORAGE_SIZE)
@@ -61,15 +61,15 @@ set_target_properties (H5test_FortranHavekind PROPERTIES
set (CMD $<TARGET_FILE:H5test_FortranHavekind>)
add_custom_command (
- OUTPUT ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90
+ OUTPUT ${HDF5_F90_BINARY_DIR}/H5fortran_detect.F90
COMMAND ${CMD}
- ARGS > ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90
+ ARGS > ${HDF5_F90_BINARY_DIR}/H5fortran_detect.F90
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
DEPENDS H5test_FortranHavekind
)
#-----------------------------------------------------------------------------
add_executable (H5fortran_detect
- ${HDF5_F90_BINARY_DIR}/H5fortran_detect.f90
+ ${HDF5_F90_BINARY_DIR}/H5fortran_detect.F90
)
if (WIN32 AND MSVC)
if (BUILD_SHARED_LIBS)
@@ -103,7 +103,7 @@ add_executable (H5match_types
set (CMD $<TARGET_FILE:H5match_types>)
add_custom_command (
OUTPUT ${HDF5_F90_BINARY_DIR}/H5f90i_gen.h
- ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90
+ ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
COMMAND ${CMD}
WORKING_DIRECTORY ${HDF5_F90_BINARY_DIR}
DEPENDS H5match_types
@@ -156,17 +156,6 @@ set_target_properties (${HDF5_F90_C_LIB_TARGET} PROPERTIES
)
#-----------------------------------------------------------------------------
-# Fortran 2003 standard
-#-----------------------------------------------------------------------------
-if (HDF5_ENABLE_F2003)
- # F2003 features are enabled
- set (F_STATUS "_F03")
-else (HDF5_ENABLE_F2003)
- # F2003 features are not enabled
- set (F_STATUS "_F90")
-endif (HDF5_ENABLE_F2003)
-
-#-----------------------------------------------------------------------------
# Fortran Real Size
#-----------------------------------------------------------------------------
if (FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
@@ -182,35 +171,25 @@ endif (FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
#-----------------------------------------------------------------------------
set (f90_F_SRCS
# generated files
- ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90
+ ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
# normal distribution
- ${HDF5_F90_SRC_SOURCE_DIR}/H5f90global.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Gff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Iff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Off.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Off${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff${F_STATUS}.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5_DBLE_Interface${F_DBLE}.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5f90global.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5_ff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Aff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Dff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Eff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Fff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Gff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Iff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Lff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Off.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Pff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Rff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Sff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Tff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5Zff.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5_DBLE_Interface${F_DBLE}.F90
)
#-----------------------------------------------------------------------------
@@ -219,13 +198,13 @@ set (f90_F_SRCS
if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
set (f90_F_SRCS
${f90_F_SRCS}
- ${HDF5_F90_SRC_SOURCE_DIR}/HDF5mpio.f90
- ${HDF5_F90_SRC_SOURCE_DIR}/H5FDmpioff.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/HDF5mpio.F90
+ ${HDF5_F90_SRC_SOURCE_DIR}/H5FDmpioff.F90
)
else (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
set (f90_F_SRCS
${f90_F_SRCS}
- ${HDF5_F90_SRC_SOURCE_DIR}/HDF5.f90
+ ${HDF5_F90_SRC_SOURCE_DIR}/HDF5.F90
)
endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
set_source_files_properties (${f90_F_SRCS} PROPERTIES LANGUAGE Fortran)
@@ -273,7 +252,7 @@ install (
${HDF5_F90_SRC_SOURCE_DIR}/H5f90i.h
${HDF5_F90_SRC_SOURCE_DIR}/H5f90proto.h
${HDF5_F90_BINARY_DIR}/H5f90i_gen.h
- ${HDF5_F90_BINARY_DIR}/H5fortran_types.f90
+ ${HDF5_F90_BINARY_DIR}/H5fortran_types.F90
DESTINATION
${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 240fbc3..b9ca82a 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -960,7 +960,7 @@ done:
* SOURCE
*/
int_f
-nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen)
+h5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen)
/******/
{
char *c_name = NULL; /* Buffer to hold C string */
@@ -1109,7 +1109,7 @@ done:
* SOURCE
*/
int_f
-nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num)
+h5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num)
/******/
{
H5O_info_t oinfo; /* Object info */
diff --git a/fortran/src/H5Aff.F90 b/fortran/src/H5Aff.F90
new file mode 100644
index 0000000..f8f361f
--- /dev/null
+++ b/fortran/src/H5Aff.F90
@@ -0,0 +1,2961 @@
+!****h* ROBODoc/H5A
+!
+! NAME
+! MODULE H5A
+!
+! PURPOSE
+! This file contains Fortran interfaces for H5A functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
+!
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! NOTES
+!
+! (A) C_LOC and character strings according to the Fortran 2003 standard:
+!
+! 15.1.2.5 C_LOC(X)
+!
+! Argument. X shall either
+!
+! (1) have interoperable type and type parameters and be
+! (a) a variable that has the TARGET attribute and is interoperable,
+! (b) an allocated allocatable variable that has the TARGET attribute
+! and is not an array of zero size, or
+! (c) an associated scalar pointer, or
+! (2) be a nonpolymorphic scalar, have no length type parameters, and be
+! (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
+! (b) an allocated allocatable variable that has the TARGET attribute, or
+! (c) an associated pointer.
+!
+! - When X is a character, for interoperability the standard is:
+!
+! 15.2.1 Interoperability of intrinsic types
+!
+! ...if the type is character, interoperability also requires that the length type parameter
+! be omitted or be specified by an initialization expression whose value is one.
+!
+! THEREFORE compilers that have not extended the standard require
+!
+! CHARACTER(LEN=1), TARGET :: chr
+! or
+! CHARACTER, TARGET :: chr
+!
+! (B)
+! *** IMPORTANT ***
+! If you add a new H5A function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
+! This is needed for Windows based operating systems.
+!
+!*****
+
+MODULE H5A
+
+ USE H5GLOBAL
+!
+! On Windows there are no big (integer*8) integers, so overloading
+! for bug #670 does not work. I have to use DEC compilation directives to make
+! Windows DEC Visual Fortran and OSF compilers happy and do right things.
+! 05/01/02 EP
+!
+ INTERFACE h5awrite_f
+ MODULE PROCEDURE h5awrite_integer_scalar
+ MODULE PROCEDURE h5awrite_integer_1
+ MODULE PROCEDURE h5awrite_integer_2
+ MODULE PROCEDURE h5awrite_integer_3
+ MODULE PROCEDURE h5awrite_integer_4
+ MODULE PROCEDURE h5awrite_integer_5
+ MODULE PROCEDURE h5awrite_integer_6
+ MODULE PROCEDURE h5awrite_integer_7
+ MODULE PROCEDURE h5awrite_char_scalar
+ MODULE PROCEDURE h5awrite_char_1
+ MODULE PROCEDURE h5awrite_char_2
+ MODULE PROCEDURE h5awrite_char_3
+ MODULE PROCEDURE h5awrite_char_4
+ MODULE PROCEDURE h5awrite_char_5
+ MODULE PROCEDURE h5awrite_char_6
+ MODULE PROCEDURE h5awrite_char_7
+ MODULE PROCEDURE h5awrite_real_scalar
+ MODULE PROCEDURE h5awrite_real_1
+ MODULE PROCEDURE h5awrite_real_2
+ MODULE PROCEDURE h5awrite_real_3
+ MODULE PROCEDURE h5awrite_real_4
+ MODULE PROCEDURE h5awrite_real_5
+ MODULE PROCEDURE h5awrite_real_6
+ MODULE PROCEDURE h5awrite_real_7
+ ! This is the preferred way to call h5awrite
+ ! by passing an address
+ MODULE PROCEDURE h5awrite_ptr
+
+ END INTERFACE
+
+ INTERFACE h5aread_f
+
+ MODULE PROCEDURE h5aread_integer_scalar
+ MODULE PROCEDURE h5aread_integer_1
+ MODULE PROCEDURE h5aread_integer_2
+ MODULE PROCEDURE h5aread_integer_3
+ MODULE PROCEDURE h5aread_integer_4
+ MODULE PROCEDURE h5aread_integer_5
+ MODULE PROCEDURE h5aread_integer_6
+ MODULE PROCEDURE h5aread_integer_7
+ MODULE PROCEDURE h5aread_char_scalar
+ MODULE PROCEDURE h5aread_char_1
+ MODULE PROCEDURE h5aread_char_2
+ MODULE PROCEDURE h5aread_char_3
+ MODULE PROCEDURE h5aread_char_4
+ MODULE PROCEDURE h5aread_char_5
+ MODULE PROCEDURE h5aread_char_6
+ MODULE PROCEDURE h5aread_char_7
+ MODULE PROCEDURE h5aread_real_scalar
+ MODULE PROCEDURE h5aread_real_1
+ MODULE PROCEDURE h5aread_real_2
+ MODULE PROCEDURE h5aread_real_3
+ MODULE PROCEDURE h5aread_real_4
+ MODULE PROCEDURE h5aread_real_5
+ MODULE PROCEDURE h5aread_real_6
+ MODULE PROCEDURE h5aread_real_7
+
+ ! This is the preferred way to call h5aread
+ ! by passing an address
+ MODULE PROCEDURE h5aread_ptr
+
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Awrite routine
+
+ INTERFACE
+ INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5awrite_f_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5awrite_f_c
+ END INTERFACE
+
+! Interface for the function used to pass the C pointer of the buffer
+! to the C H5Aread routine
+
+ INTERFACE
+ INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5aread_f_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ TYPE(C_PTR), VALUE :: buf
+ END FUNCTION h5aread_f_c
+ END INTERFACE
+
+CONTAINS
+
+!
+!****s* H5A/h5acreate_f
+!
+! NAME
+! h5acreate_f
+!
+! PURPOSE
+! Creates a dataset as an attribute of a group, dataset, or named datatype
+!
+! INPUTS
+! loc_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 - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! acpl_id - Attribute creation property list identifier
+! appl_id - Attribute access property list identifier
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!
+! SOURCE
+ SUBROUTINE h5acreate_f(loc_id, name, type_id, space_id, attr_id, &
+ hdferr, acpl_id, aapl_id )
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Attribute datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Attribute dataspace identifier
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: acpl_id ! Attribute creation property list identifier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list identifier
+
+ INTEGER(HID_T) :: acpl_id_default
+ INTEGER(HID_T) :: aapl_id_default
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Acreate2(loc_id, name, type_id, &
+ space_id, acpl_id_default, aapl_id_default) BIND(C,NAME='H5Acreate2')
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: loc_id
+ CHARACTER(LEN=1), DIMENSION(*), INTENT(IN) :: name
+ INTEGER(HID_T), INTENT(IN), VALUE :: type_id
+ INTEGER(HID_T), INTENT(IN), VALUE :: space_id
+ INTEGER(HID_T), INTENT(IN), VALUE :: acpl_id_default
+ INTEGER(HID_T), INTENT(IN), VALUE :: aapl_id_default
+ END FUNCTION H5Acreate2
+ END INTERFACE
+
+ acpl_id_default = H5P_DEFAULT_F
+ aapl_id_default = H5P_DEFAULT_F
+ IF (PRESENT(acpl_id)) acpl_id_default = acpl_id
+ IF (PRESENT(aapl_id)) aapl_id_default = aapl_id
+
+ c_name = TRIM(name)//C_NULL_CHAR
+ attr_id = h5acreate2(loc_id, c_name, type_id, space_id, &
+ acpl_id_default, aapl_id_default)
+
+ hdferr = 0
+ IF(attr_id.LT.0) hdferr = -1
+
+ END SUBROUTINE h5acreate_f
+
+!
+!****s* H5A/h5aopen_name_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE H5Aopen_name_f(obj_id, name, attr_id, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ CHARACTER(LEN=LEN_TRIM(name)+1,KIND=C_CHAR) :: c_name
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Aopen_name(obj_id, name) BIND(C,NAME='H5Aopen_name')
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: obj_id
+ CHARACTER(LEN=1), DIMENSION(*), INTENT(IN) :: name
+ END FUNCTION H5Aopen_name
+ END INTERFACE
+
+ c_name = TRIM(name)//C_NULL_CHAR
+ attr_id = H5Aopen_name(obj_id, c_name)
+
+ hdferr = 0
+ IF(attr_id.LT.0) hdferr = -1
+
+ END SUBROUTINE H5Aopen_name_f
+!
+!****s* H5A/H5Aopen_idx_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE H5Aopen_idx_f(obj_id, index, attr_id, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(IN) :: index ! Attribute index
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Aopen_idx(obj_id, index) BIND(C,NAME='H5Aopen_idx')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ INTEGER(C_INT), INTENT(IN) :: index
+ END FUNCTION H5Aopen_idx
+ END INTERFACE
+
+ attr_id = H5Aopen_idx(obj_id, INT(index, C_INT))
+
+ hdferr = 0
+ IF(attr_id.LT.0) hdferr = -1
+
+ END SUBROUTINE H5Aopen_idx_f
+!
+!****s* H5A/H5Aget_space_f
+!
+! 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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!
+! SOURCE
+ SUBROUTINE H5Aget_space_f(attr_id, space_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(OUT) :: space_id ! Attribute dataspace identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Aget_space(attr_id) BIND(C,NAME='H5Aget_space')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ END FUNCTION H5Aget_space
+ END INTERFACE
+
+ space_id = H5Aget_space(attr_id)
+
+ hdferr = 0
+ IF(space_id.LT.0) hdferr = -1
+
+ END SUBROUTINE H5Aget_space_f
+!
+!****s* H5A/H5Aget_type_f
+!
+! NAME
+! H5Aget_type_f
+!
+! PURPOSE
+! Gets an attribute datatype.
+!
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
+! type_id - attribute datatype identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE H5Aget_type_f(attr_id, type_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(OUT) :: type_id ! Attribute datatype identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Aget_type(attr_id) BIND(C,NAME='H5Aget_type')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ END FUNCTION H5Aget_type
+ END INTERFACE
+
+ type_id = H5Aget_type(attr_id)
+
+ hdferr = 0
+ IF(type_id.LT.0) hdferr = -1
+
+ END SUBROUTINE H5Aget_type_f
+!
+!****s* H5A/H5Aget_name_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+!
+! SOURCE
+ SUBROUTINE H5Aget_name_f(attr_id, size, buf, hdferr)
+ USE ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf
+ INTEGER, INTENT(OUT) :: hdferr
+
+ CHARACTER(KIND=C_CHAR, LEN=LEN(buf)+1) :: c_buf
+
+!*****
+ INTERFACE
+ INTEGER FUNCTION H5Aget_name(attr_id, size, buf) BIND(C, NAME='H5Aget_name')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ INTEGER(SIZE_T), INTENT(IN), VALUE :: size
+ CHARACTER(KIND=C_CHAR, LEN=1), DIMENSION(*), INTENT(OUT) :: buf
+ END FUNCTION H5Aget_name
+ END INTERFACE
+
+ ! add 1 for the null char
+ hdferr = H5Aget_name(attr_id, size+1, c_buf)
+
+ CALL C2F_string(c_buf, buf)
+
+ END SUBROUTINE H5Aget_name_f
+
+!
+!****s* H5A/H5Aget_name_by_idx_f
+!
+! NAME
+! H5Aget_name_by_idx_f
+!
+! PURPOSE
+! Gets an attribute name, by attribute index position.
+!
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index; Possible values are:
+! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+! H5_INDEX_NAME_F - Index on names
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! H5_INDEX_N_F - Number of indices defined
+!
+! order - Order in which to iterate over index; Possible values are:
+! H5_ITER_UNKNOWN_F - Unknown order
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+! H5_ITER_N_F - Number of iteration orders
+! order - Index traversal order
+! n - Attribute’s position in index
+!
+! OUTPUTS
+! name - Attribute name
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+! size - Size, in bytes, of attribute name
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE h5aget_name_by_idx_f(loc_id, obj_name, idx_type, order, &
+ n, name, hdferr, size, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
+ ! from which attribute is to be removed *TEST* check NULL
+ INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
+ ! H5_INDEX_UNKNOWN_F - Unknown index type
+ ! H5_INDEX_NAME_F - Index on names
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ ! H5_INDEX_N_F - Number of indices defined
+
+ INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
+ ! H5_ITER_UNKNOWN_F - Unknown order
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+ ! H5_ITER_N_F - Number of iteration orders
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Attribute name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! Returns attribute name size,
+ ! -1 if fail
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters,
+ ! of the attribute
+!*****
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: size_default
+
+ INTERFACE
+ INTEGER FUNCTION h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, &
+ n, name, size_default, lapl_id_default)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NAME_BY_IDX_C'::h5aget_name_by_idx_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER, INTENT(IN) :: idx_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+
+ CHARACTER(LEN=*), INTENT(OUT) :: name
+ INTEGER(SIZE_T) :: size_default
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: obj_namelen
+ END FUNCTION h5aget_name_by_idx_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ size_default = LEN(name)
+
+ hdferr = h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, &
+ n, name, size_default, lapl_id_default)
+
+ IF(PRESENT(size)) size = size_default
+
+
+ END SUBROUTINE h5aget_name_by_idx_f
+!!$ SUBROUTINE H5Aget_name_by_idx_f(loc_id, obj_name, idx_type, order, &
+!!$ n, name, hdferr, size, lapl_id)
+!!$ USE ISO_C_BINDING
+!!$ IMPLICIT NONE
+!!$ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
+!!$ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
+!!$ ! from which attribute is to be removed *TEST* check NULL
+!!$ INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
+!!$ ! H5_INDEX_UNKNOWN_F - Unknown index type
+!!$ ! H5_INDEX_NAME_F - Index on names
+!!$ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+!!$ ! H5_INDEX_N_F - Number of indices defined
+!!$
+!!$ INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
+!!$ ! H5_ITER_UNKNOWN_F - Unknown order
+!!$ ! H5_ITER_INC_F - Increasing order
+!!$ ! H5_ITER_DEC_F - Decreasing order
+!!$ ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+!!$ ! H5_ITER_N_F - Number of iteration orders
+!!$ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+!!$ CHARACTER(LEN=*), INTENT(OUT) :: name ! Attribute name
+!!$ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+!!$ ! Returns attribute name size,
+!!$ ! -1 if fail
+!!$ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!!$ INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters,
+!!$ ! of the attribute
+!!$!*****
+!!$ INTEGER(HID_T) :: lapl_id_default
+!!$ INTEGER(SIZE_T) :: obj_namelen
+!!$ INTEGER(SIZE_T) :: size_default, c_size
+!!$ CHARACTER(KIND=C_CHAR, LEN=LEN(name)+1) :: c_name
+!!$
+!!$ INTERFACE
+!!$ INTEGER FUNCTION H5Aget_name_by_idx(loc_id, obj_name, idx_type, order, &
+!!$ n, name, size_default, lapl_id_default) BIND(C, NAME='H5Aget_name_by_idx')
+!!$ USE ISO_C_BINDING
+!!$ USE H5GLOBAL
+!!$ INTEGER(HID_T), INTENT(IN) :: loc_id
+!!$ CHARACTER(KIND=C_CHAR, LEN=1), DIMENSION(*), INTENT(IN) :: obj_name
+!!$ INTEGER(C_INT), INTENT(IN) :: idx_type
+!!$ INTEGER(C_INT), INTENT(IN) :: order
+!!$ INTEGER(HSIZE_T), INTENT(IN) :: n
+!!$ CHARACTER(KIND=C_CHAR,LEN=1), DIMENSION(*), INTENT(OUT) :: name
+!!$ INTEGER(SIZE_T) :: size_default
+!!$ INTEGER(HID_T) :: lapl_id_default
+!!$ END FUNCTION H5Aget_name_by_idx
+!!$ END INTERFACE
+!!$
+!!$ obj_namelen = LEN(obj_name)
+!!$ lapl_id_default = H5P_DEFAULT_F
+!!$ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+!!$
+!!$ size_default = LEN(name)
+!!$
+!!$ c_size = H5Aget_name_by_idx(loc_id, TRIM(obj_name)//C_NULL_CHAR, INT(idx_type,C_INT), INT(order,C_INT), &
+!!$ n, c_name, size_default, lapl_id_default)
+!!$
+!!$ IF(c_size.LT.0) THEN
+!!$ hdferr = -1
+!!$ ELSE
+!!$ CALL C2F_string(c_name, name)
+!!$ IF(PRESENT(size)) size = c_size
+!!$ ENDIF
+!!$
+!!$ END SUBROUTINE H5Aget_name_by_idx_f
+!
+!****s* H5A/H5Aget_num_attrs_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the object
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num) BIND(C,name='h5aget_num_attrs_c')
+ USE H5GLOBAL
+ 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
+
+!
+!****s* H5A/H5Adelete_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 - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! SOURCE
+ SUBROUTINE H5Adelete_f(obj_id, name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(SIZE_T) :: namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Adelete_c(obj_id, name, namelen) BIND(C,NAME='h5adelete_c')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER(SIZE_T) :: namelen
+ END FUNCTION H5Adelete_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = H5Adelete_c(obj_id, name, namelen)
+ END SUBROUTINE H5Adelete_f
+
+!
+!****s* H5A/H5Aclose_f
+!
+! NAME
+! H5Aclose_f
+!
+! PURPOSE
+! Closes the specified attribute.
+!
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
+!
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+! SOURCE
+
+ SUBROUTINE H5Aclose_f(attr_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION H5Aclose(attr_id) BIND(C, NAME='H5Aclose')
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ END FUNCTION H5Aclose
+ END INTERFACE
+
+ hdferr = INT(H5Aclose(attr_id))
+ END SUBROUTINE H5Aclose_f
+
+!
+!****s* H5A/H5Aget_storage_size_f
+!
+! NAME
+! H5Aget_storage_size_f
+!
+! PURPOSE
+! Returns the amount of storage required for an attribute.
+!
+! INPUTS
+! attr_id - attribute identifier
+! OUTPUTS
+! size - attribute storage size
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aget_storage_size_f(attr_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Attribute storage requirement
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+
+ INTERFACE
+ INTEGER(HSIZE_T) FUNCTION H5Aget_storage_size(attr_id) BIND(C,NAME='H5Aget_storage_size')
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ END FUNCTION H5Aget_storage_size
+ END INTERFACE
+
+ size = H5Aget_storage_size(attr_id)
+
+ hdferr = 0
+ IF(size.LT.0) hdferr = -1
+
+ END SUBROUTINE H5Aget_storage_size_f
+
+!
+!****s* H5A/H5Aget_create_plist_f
+!
+! NAME
+! H5Aget_create_plist_f
+!
+! PURPOSE
+! Gets an attribute creation property list identifier
+!
+! INPUTS
+! attr_id - Identifier of the attribute
+! OUTPUTS
+! creation_prop_id - Identifier for the attribute’s creation property
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aget_create_plist_f(attr_id, creation_prop_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Identifier of the attribute
+ INTEGER(HID_T), INTENT(OUT) :: creation_prop_id ! Identifier for the attribute’s creation property
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! 0 on success and -1 on failure
+!*****
+ INTERFACE
+ INTEGER(HID_T) FUNCTION H5Aget_create_plist(attr_id) BIND(C,NAME='H5Aget_create_plist')
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN), VALUE :: attr_id
+ END FUNCTION H5Aget_create_plist
+ END INTERFACE
+
+ creation_prop_id = H5Aget_create_plist(attr_id)
+
+ END SUBROUTINE H5Aget_create_plist_f
+
+!
+!****s* H5A/H5Arename_by_name_f
+!
+! NAME
+! H5Arename_by_name_f
+!
+! PURPOSE
+! Renames an attribute
+!
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name of object, relative to location,
+! whose attribute is to be renamed
+! old_attr_name - Prior attribute name
+! new_attr_name - New attribute name
+! lapl_id - Link access property list identifier
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, &
+ hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
+ ! whose attribute is to be renamed
+ CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name
+ CHARACTER(LEN=*), INTENT(IN) :: new_attr_name ! New attribute name
+
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
+!*****
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: old_attr_namelen
+ INTEGER(SIZE_T) :: new_attr_namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Arename_by_name_c(loc_id, obj_name, obj_namelen, &
+ old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, &
+ lapl_id_default)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_BY_NAME_C'::H5Arename_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, old_attr_name, new_attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER(SIZE_T) :: obj_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: old_attr_name
+ INTEGER(SIZE_T) :: old_attr_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_attr_name
+ INTEGER(SIZE_T) :: new_attr_namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ END FUNCTION H5Arename_by_name_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+ old_attr_namelen = LEN(old_attr_name)
+ new_attr_namelen = LEN(new_attr_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default=lapl_id
+
+ hdferr = H5Arename_by_name_c(loc_id, obj_name, obj_namelen, &
+ old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, &
+ lapl_id_default)
+
+ END SUBROUTINE H5Arename_by_name_f
+
+!
+!****s* H5A/H5Aopen_f
+!
+! NAME
+! H5Aopen_f
+!
+! PURPOSE
+! Opens an attribute for an object specified by object
+! identifier and attribute name
+!
+! INPUTS
+! obj_id - Identifer for object to which attribute is attached
+! attr_name - Name of attribute to open
+! OUTPUTS
+! attr_id - attribute identifier
+
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! Success: 0
+ ! Failure: -1
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
+!*****
+ INTEGER(HID_T) :: aapl_id_default
+
+ INTEGER(SIZE_T) :: attr_namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_C'::H5Aopen_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(SIZE_T) :: attr_namelen
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION H5Aopen_c
+ END INTERFACE
+
+ attr_namelen = LEN(attr_name)
+
+ aapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
+
+ hdferr = H5Aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id)
+
+ END SUBROUTINE H5Aopen_f
+
+!
+!****s* H5A/H5Adelete_by_idx_f
+!
+! NAME
+! H5Adelete_by_idx_f
+!
+! PURPOSE
+! Deletes an attribute from an object according to index order
+!
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name of object, relative to location, from which attribute is to be removed
+! idx_type - Type of index; Possible values are:
+! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
+! H5_INDEX_NAME_F - Index on names
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! H5_INDEX_N_F - Number of indices defined
+!
+! order - Order in which to iterate over index; Possible values are:
+! H5_ITER_UNKNOWN_F - Unknown order
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+! H5_ITER_N_F - Number of iteration orders
+!
+! n - Offset within index
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
+ ! from which attribute is to be removed
+ INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
+ ! H5_INDEX_UNKNOWN_F - Unknown index type
+ ! H5_INDEX_NAME_F - Index on names
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ ! H5_INDEX_N_F - Number of indices defined
+
+ INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
+ ! H5_ITER_UNKNOWN_F - Unknown order
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+ ! H5_ITER_N_F - Number of iteration orders
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Offset within index
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_IDX_C'::H5Adelete_by_idx_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER, INTENT(IN) :: idx_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: obj_namelen
+ END FUNCTION H5Adelete_by_idx_c
+ END INTERFACE
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ obj_namelen = LEN(obj_name)
+ hdferr = H5Adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default)
+
+ END SUBROUTINE H5Adelete_by_idx_f
+
+!
+!****s* H5A/H5Adelete_by_name_f
+!
+! NAME
+! H5Adelete_by_name_f
+!
+! PURPOSE
+! Removes an attribute from a specified location
+!
+! INPUTS
+! loc_id - Identifer for object to which attribute is attached
+! obj_name - Name of attribute to open
+! attr_name - Attribute access property list
+! lapl_id - Link access property list
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
+ ! from which attribute is to be removed
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Name of attribute to delete
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER(SIZE_T) :: attr_namelen
+ INTEGER(SIZE_T) :: obj_namelen
+
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_NAME_C'::H5Adelete_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: attr_namelen
+ INTEGER(SIZE_T) :: obj_namelen
+ END FUNCTION H5Adelete_by_name_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+ attr_namelen = LEN(attr_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default)
+
+ END SUBROUTINE H5Adelete_by_name_f
+
+!
+!****s* H5A/H5Aopen_by_idx_f
+!
+! NAME
+! H5Aopen_by_idx_f
+!
+! PURPOSE
+! Opens an existing attribute that is attached to an object specified by location and name
+!
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index
+! order - Index traversal order
+! n - Attribute’s position in index
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
+ INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
+ ! H5_INDEX_UNKNOWN_F - Unknown index type
+ ! H5_INDEX_NAME_F - Index on names
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ ! H5_INDEX_N_F - Number of indices defined
+ INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
+ ! H5_ITER_UNKNOWN_F - Unknown order
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, &
+ aapl_id_default, lapl_id_default, attr_id)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_IDX_C'::H5Aopen_by_idx_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER, INTENT(IN) :: idx_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ END FUNCTION H5Aopen_by_idx_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+
+ aapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, &
+ aapl_id_default, lapl_id_default, attr_id)
+
+ END SUBROUTINE H5Aopen_by_idx_f
+
+!
+!****s* H5A/H5Aget_info_f
+!
+! NAME
+! H5Aget_info_f
+!
+! PURPOSE
+! Retrieves attribute information, by attribute identifier
+!
+! INPUTS
+! attr_id - attribute identifier
+!
+! OUTPUTS
+! NOTE: In C it is defined as a structure: H5A_info_t
+!
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+! SOURCE
+ SUBROUTINE H5Aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+
+ LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
+ INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER :: corder_valid
+
+ INTERFACE
+ INTEGER FUNCTION H5Aget_info_c(attr_id, corder_valid, corder, cset, data_size)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_C'::H5Aget_info_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: attr_id
+
+ INTEGER, INTENT(OUT) :: corder_valid
+ INTEGER, INTENT(OUT) :: corder
+ INTEGER, INTENT(OUT) :: cset
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size
+ END FUNCTION H5Aget_info_c
+ END INTERFACE
+
+ hdferr = H5Aget_info_c(attr_id, corder_valid, corder, cset, data_size)
+
+ f_corder_valid =.FALSE.
+ IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
+
+
+ END SUBROUTINE H5Aget_info_f
+
+!
+!****s* H5A/H5Aget_info_by_idx_f
+!
+! NAME
+! H5Aget_info_by_idx_f
+!
+! PURPOSE
+! Retrieves attribute information, by attribute index position
+!
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! idx_type - Type of index
+! order - Index traversal order
+! n - Attribute’s position in index
+!
+! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aget_info_by_idx_f(loc_id, obj_name, idx_type, order, n, &
+ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
+ INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
+ ! H5_INDEX_UNKNOWN_F - Unknown index type
+ ! H5_INDEX_NAME_F - Index on names
+ ! H5_INDEX_CRT_ORDER_F - Index on creation order
+ ! H5_INDEX_N_F - Number of indices defined
+ INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
+ ! H5_ITER_UNKNOWN_F - Unknown order
+ ! H5_ITER_INC_F - Increasing order
+ ! H5_ITER_DEC_F - Decreasing order
+ ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
+
+ INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
+
+
+ LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
+ INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER :: corder_valid
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, &
+ corder_valid, corder, cset, data_size)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_IDX_C'::H5Aget_info_by_idx_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER, INTENT(IN) :: idx_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER, INTENT(OUT) :: corder_valid
+ INTEGER, INTENT(OUT) :: corder
+ INTEGER, INTENT(OUT) :: cset
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size
+
+ INTEGER(SIZE_T) :: obj_namelen
+ END FUNCTION H5Aget_info_by_idx_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(present(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, &
+ corder_valid, corder, cset, data_size)
+
+ f_corder_valid =.FALSE.
+ IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
+
+ END SUBROUTINE H5Aget_info_by_idx_f
+
+!
+!****s* H5A/H5Aget_info_by_name_f
+!
+! NAME
+! H5Aget_info_by_name_f
+!
+! PURPOSE
+! Retrieves attribute information, by attribute name
+!
+! INPUTS
+! loc_id - Location of object to which attribute is attached
+! obj_name - Name of object to which attribute is attached, relative to location
+! attr_name - Attribute name
+!
+! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
+! corder_valid - indicates whether the creation order data is valid for this attribute
+! corder - is a positive integer containing the creation order of the attribute
+! cset - indicates the character set used for the attribute’s name
+! data_size - indicates the size, in the number of characters, of the attribute
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aget_info_by_name_f(loc_id, obj_name, attr_name, &
+ f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
+
+
+ LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
+ INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
+ INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
+!*****
+ INTEGER :: corder_valid
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: attr_namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, &
+ corder_valid, corder, cset, data_size)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_NAME_C'::H5Aget_info_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER, INTENT(OUT) :: corder_valid
+ INTEGER, INTENT(OUT) :: corder
+ INTEGER, INTENT(OUT) :: cset
+ INTEGER(HSIZE_T), INTENT(OUT) :: data_size
+
+ END FUNCTION H5Aget_info_by_name_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+ attr_namelen = LEN(attr_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, &
+ corder_valid, corder, cset, data_size)
+
+ f_corder_valid =.FALSE.
+ IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
+
+ END SUBROUTINE H5Aget_info_by_name_f
+
+!
+!****s* H5A/H5Acreate_by_name_f
+!
+! NAME
+! H5Acreate_by_name_f
+!
+! PURPOSE
+! Creates an attribute attached to a specified object
+!
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! obj_name - Name, relative to loc_id, of object that attribute is to be attached to
+! attr_name - Attribute name
+! type_id - Attribute datatype identifier
+! space_id - Attribute dataspace identifier
+!
+! OUTPUTS
+! attr - an attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! acpl_id - Attribute creation property list identifier (Currently not used.)
+! aapl_id - Attribute access property list identifier (Currently not used.)
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+! SOURCE
+ SUBROUTINE H5Acreate_by_name_f(loc_id, obj_name, attr_name, type_id, space_id, attr, hdferr, &
+ acpl_id, aapl_id, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T), INTENT(OUT) :: attr
+ INTEGER, INTENT(OUT) :: hdferr
+
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: acpl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: aapl_id
+ INTEGER(HID_T), INTENT(IN), OPTIONAL :: lapl_id
+!*****
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: attr_namelen
+
+ INTEGER(HID_T) :: acpl_id_default
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
+ type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACREATE_BY_NAME_C'::H5Acreate_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T) :: acpl_id_default
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: attr
+
+ END FUNCTION H5Acreate_by_name_c
+ END INTERFACE
+
+ obj_namelen = LEN(obj_name)
+ attr_namelen = LEN(attr_name)
+
+ acpl_id_default = H5P_DEFAULT_F
+ aapl_id_default = H5P_DEFAULT_F
+ lapl_id_default = H5P_DEFAULT_F
+
+ IF(PRESENT(acpl_id)) acpl_id_default = acpl_id
+ IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
+ type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
+ END SUBROUTINE H5Acreate_by_name_f
+
+!
+!****s* H5A/H5Aexists_f
+!
+! NAME
+! H5Aexists_f
+!
+! PURPOSE
+! Determines whether an attribute with a given name exists on an object
+!
+! INPUTS
+! obj_id - Object identifier
+! attr_name - Attribute name
+!
+! OUTPUTS
+! attr_exists - attribute exists status
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aexists_f(obj_id, attr_name, attr_exists, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
+ LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER(HID_T) :: attr_exists_c
+ INTEGER(SIZE_T) :: attr_namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_C'::H5Aexists_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: attr_name
+ INTEGER(HID_T), INTENT(IN) :: obj_id
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(SIZE_T) :: attr_namelen
+ INTEGER(HID_T) :: attr_exists_c
+ END FUNCTION H5Aexists_c
+ END INTERFACE
+
+ attr_namelen = LEN(attr_name)
+
+ hdferr = H5Aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c)
+
+ attr_exists = .FALSE.
+ IF(attr_exists_c.GT.0) attr_exists = .TRUE.
+
+ END SUBROUTINE H5Aexists_f
+
+!
+!****s* H5A/H5Aexists_by_name_f
+!
+! NAME
+! H5Aexists_by_name_f
+!
+! PURPOSE
+! Determines whether an attribute with a given name exists on an object
+!
+! INPUTS
+! loc_id - Location identifier
+! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+! attr_name - Attribute name
+!
+! OUTPUTS
+! attr_exists - attribute exists status
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! lapl_id - Link access property list identifier
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+!
+! SOURCE
+ SUBROUTINE H5Aexists_by_name_f(loc_id, obj_name, attr_name, attr_exists, hdferr, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
+ ! absolute from the file’s root group, or '.'
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
+ LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
+!*****
+ INTEGER :: attr_exists_c
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: attr_namelen
+
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION H5Aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_BY_NAME_C'::H5Aexists_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
+ INTEGER(HID_T), INTENT(IN) :: lapl_id_default
+ INTEGER, INTENT(OUT) :: attr_exists_c
+ END FUNCTION H5Aexists_by_name_c
+ END INTERFACE
+
+ attr_namelen = LEN(attr_name)
+ obj_namelen = LEN(obj_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c)
+
+ attr_exists = .FALSE.
+ IF(attr_exists_c.GT.0) attr_exists = .TRUE.
+
+ END SUBROUTINE H5Aexists_by_name_f
+!
+!****s* H5A/H5Aopen_by_name_f
+!
+! NAME
+! H5Aopen_by_name_f
+!
+! PURPOSE
+! Opens an attribute for an object by object name and attribute name.
+!
+! INPUTS
+! loc_id - Location from which to find object to which attribute is attached
+! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
+! attr_name - Attribute name
+!
+! OUTPUTS
+! attr_id - attribute identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
+! lapl_id - Link access property list identifier
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February, 2008
+! SOURCE
+ SUBROUTINE H5Aopen_by_name_f(loc_id, obj_name, attr_name, attr_id, hdferr, aapl_id, lapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
+ ! absolute from the file’s root group, or '.'
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
+ INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
+ ! (Currently unused; should be passed in as H5P_DEFAULT_F)
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
+!*****
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTEGER(SIZE_T) :: obj_namelen
+ INTEGER(SIZE_T) :: attr_namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
+ aapl_id_default, lapl_id_default, attr_id)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_NAME_C'::H5Aopen_by_name_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: obj_name, attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: attr_name
+ INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
+ INTEGER(HID_T) :: aapl_id_default
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: attr_id
+ END FUNCTION H5Aopen_by_name_c
+ END INTERFACE
+
+ attr_namelen = LEN(attr_name)
+ obj_namelen = LEN(obj_name)
+
+ aapl_id_default = H5P_DEFAULT_F
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ hdferr = H5Aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
+ aapl_id_default, lapl_id_default, attr_id)
+
+ END SUBROUTINE H5Aopen_by_name_f
+
+!
+!****s* H5A/H5Arename_f
+!
+! NAME
+! H5Arename_f
+!
+! PURPOSE
+! Renames an attribute
+!
+! INPUTS
+! loc_id - Location or object identifier; may be dataset or group
+! old_attr_name - Prior attribute name
+! new_attr_name - New attribute name
+!
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! January, 2008
+!
+! HISTORY
+! N/A
+!
+!
+
+! SOURCE
+ SUBROUTINE H5Arename_f(loc_id, old_attr_name, new_attr_name, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
+ CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name
+ CHARACTER(LEN=*), INTENT(IN) :: new_attr_name ! New attribute name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code:
+ ! 0 on success and -1 on failure
+!*****
+ INTEGER(SIZE_T) :: old_attr_namelen
+ INTEGER(SIZE_T) :: new_attr_namelen
+
+ INTERFACE
+ INTEGER FUNCTION H5Arename_c(loc_id, &
+ old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen)
+ USE ISO_C_BINDING
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_C'::H5Arename_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: old_attr_name, new_attr_name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: old_attr_name
+ INTEGER(SIZE_T) :: old_attr_namelen
+ CHARACTER(LEN=*), INTENT(IN) :: new_attr_name
+ INTEGER(SIZE_T) :: new_attr_namelen
+
+ END FUNCTION H5Arename_c
+ END INTERFACE
+
+ old_attr_namelen = LEN(old_attr_name)
+ new_attr_namelen = LEN(new_attr_name)
+
+ hdferr = H5Arename_c(loc_id, &
+ old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen)
+
+ END SUBROUTINE H5Arename_f
+
+
+!****s* H5A (F03)/H5Awrite_f_F90
+!
+! NAME
+! H5Awrite_f_F90
+!
+! PURPOSE
+! Writes an attribute.
+!
+! Inputs:
+! attr_id - Attribute identifier
+! memtype_id - Attribute datatype identifier (in memory)
+! dims - Array to hold corresponding dimension sizes of data buffer buf;
+! dim(k) has value of the k-th dimension of buffer buf;
+! values are ignored if buf is a scalar
+! buf - Data buffer; may be a scalar or an array
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! Aprile 4, 2001
+!
+! Changed buf intent to INOUT to be consistant
+! with how the C functions handles it. The pg
+! compiler will return 0 if a buf value is not set.
+! February, 2008
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!
+! Fortran90 Interface:
+!! SUBROUTINE H5Awrite_f(attr_id, memtype_id, buf, dims, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: attr_id
+!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
+!! TYPE , INTENT(IN) :: buf
+!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+
+ SUBROUTINE H5Awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_scalar
+
+ SUBROUTINE H5Awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_integer_1
+
+
+ SUBROUTINE H5Awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) , &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_2
+
+ SUBROUTINE H5Awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_3
+
+
+ SUBROUTINE H5Awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_4
+
+
+ SUBROUTINE H5Awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_5
+
+
+ SUBROUTINE H5Awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_integer_6
+
+
+ SUBROUTINE H5Awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), &
+ TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_integer_7
+
+
+ SUBROUTINE H5Awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_scalar
+
+ SUBROUTINE H5Awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_real_1
+
+
+ SUBROUTINE H5Awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_real_2
+
+
+ SUBROUTINE H5Awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_3
+
+
+ SUBROUTINE H5Awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_4
+
+
+ SUBROUTINE H5Awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_5
+
+
+ SUBROUTINE H5Awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_6
+
+
+ SUBROUTINE H5Awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Awrite_real_7
+
+ SUBROUTINE H5Awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ CALL H5Awrite_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), dims, hdferr)
+
+ END SUBROUTINE H5Awrite_char_scalar
+
+ SUBROUTINE H5Awrite_char_scalar_fix(attr_id, memtype_id, buf, buf_len, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(IN), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_scalar_fix
+
+ SUBROUTINE H5Awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1)(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_1
+
+ SUBROUTINE H5Awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_2
+
+ SUBROUTINE H5Awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_3
+
+ SUBROUTINE H5Awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_4
+
+ SUBROUTINE H5Awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_5
+
+
+ SUBROUTINE H5Awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_6
+
+ SUBROUTINE H5Awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+ hdferr = H5Awrite_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Awrite_char_7
+
+!****s* H5A (F03)/H5Awrite_f_F03
+!
+! NAME
+! H5Awrite_f_F03
+!
+! PURPOSE
+! Writes an attribute.
+!
+! Inputs:
+! attr_id - Attribute identifier
+! memtype_id - Attribute datatype identifier (in memory)
+! buf - Data buffer; may be a scalar or an array
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+!
+! Fortran2003 Interface:
+!! SUBROUTINE H5Awrite_f(attr_id, memtype_id, buf, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: attr_id
+!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
+!! TYPE(C_PTR) , INTENT(IN) :: buf
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE H5Awrite_ptr(attr_id, mem_type_id, buf, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(IN), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = H5Awrite_f_c(attr_id, mem_type_id, buf)
+
+ END SUBROUTINE H5Awrite_ptr
+
+!****s* H5A (F03)/H5Aread_f_F90
+!
+! NAME
+! H5Aread_f_F90
+!
+! PURPOSE
+! Reads an attribute.
+!
+! Inputs:
+! attr_id - Attribute identifier
+! memtype_id - Attribute datatype identifier (in memory)
+! dims - Array to hold corresponding dimension sizes of data buffer buf;
+! dim(k) has value of the k-th dimension of buffer buf;
+! values are ignored if buf is a scalar
+!
+! Outputs:
+! buf - Data buffer; may be a scalar or an array
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! Aprile 4, 2001
+!
+! Changed buf intent to INOUT to be consistant
+! with how the C functions handles it. The pg
+! compiler will return 0 if a buf value is not set.
+! February, 2008
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+! Fortran90 Interface:
+!! SUBROUTINE H5Aread_f(attr_id, memtype_id, buf, dims, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: attr_id
+!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
+!! TYPE , INTENT(INOUT) :: buf
+!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE H5Aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_scalar
+
+ SUBROUTINE H5Aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_1
+
+
+ SUBROUTINE H5Aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_2
+
+
+ SUBROUTINE H5Aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_3
+
+
+ SUBROUTINE H5Aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_4
+
+
+ SUBROUTINE H5Aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_5
+
+
+ SUBROUTINE H5Aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_6
+
+
+ SUBROUTINE H5Aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_integer_7
+
+
+ SUBROUTINE H5Aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf)
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_scalar
+
+ SUBROUTINE H5Aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_1
+
+
+ SUBROUTINE H5Aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_2
+
+
+ SUBROUTINE H5Aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
+ ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_3
+
+
+ SUBROUTINE H5Aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_4
+
+
+ SUBROUTINE H5Aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_5
+
+
+ SUBROUTINE H5Aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_6
+
+
+ SUBROUTINE H5Aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+ END SUBROUTINE H5Aread_real_7
+
+ SUBROUTINE H5Aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ CALL H5Aread_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), hdferr)
+
+ END SUBROUTINE H5Aread_char_scalar
+
+ SUBROUTINE H5Aread_char_scalar_fix(attr_id, memtype_id, buf, buf_len, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER, INTENT(IN) :: buf_len
+ CHARACTER(LEN=buf_len), INTENT(INOUT), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1:1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_scalar_fix
+
+ SUBROUTINE H5Aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_1
+
+
+ SUBROUTINE H5Aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_2
+
+
+ SUBROUTINE H5Aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_3
+
+ SUBROUTINE H5Aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1)(1:1))
+
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_4
+
+ SUBROUTINE H5Aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_5
+
+
+ SUBROUTINE H5Aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_6
+
+
+ SUBROUTINE H5Aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
+ ! identifier (in memory)
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
+ CHARACTER(LEN=*), INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
+ hdferr = H5Aread_f_c(attr_id, memtype_id, f_ptr)
+
+ END SUBROUTINE H5Aread_char_7
+
+
+!****s* H5A (F03)/H5Aread_f_F03
+!
+! NAME
+! H5Aread_f_F03
+!
+! PURPOSE
+! Reads an attribute.
+!
+! Inputs:
+! attr_id - Attribute identifier
+! memtype_id - Attribute datatype identifier (in memory)
+!
+! Outputs:
+! buf - Data buffer; may be a scalar or an array
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces are added for
+! called C functions (it is needed for Windows
+! port). February 27, 2001
+!
+! dims parameter was added to make code portable;
+! Aprile 4, 2001
+!
+! Changed buf intent to INOUT to be consistant
+! with how the C functions handles it. The pg
+! compiler will return 0 if a buf value is not set.
+! February, 2008
+!
+! NOTES
+! This function is overloaded to write INTEGER,
+! REAL, DOUBLE PRECISION and CHARACTER buffers
+! up to 7 dimensions.
+! Fortran2003 Interface:
+!! SUBROUTINE H5Aread_f(attr_id, memtype_id, buf, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: attr_id
+!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
+!! TYPE(C_PTR) , INTENT(INOUT) :: buf
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE H5Aread_ptr(attr_id, mem_type_id, buf, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ TYPE(C_PTR), INTENT(INOUT), TARGET :: buf
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = H5Aread_f_c(attr_id, mem_type_id, buf)
+
+ END SUBROUTINE H5Aread_ptr
+
+END MODULE H5A
+
+
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
deleted file mode 100644
index 25f7fa7..0000000
--- a/fortran/src/H5Aff.f90
+++ /dev/null
@@ -1,1673 +0,0 @@
-!****h* ROBODoc/H5A
-!
-! NAME
-! MODULE H5A
-!
-! PURPOSE
-! This file contains Fortran interfaces for H5A functions. It includes
-! all the functions that are independent on whether the Fortran 2003 functions
-! are enabled or disabled.
-!
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5A function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5A
-
- USE H5GLOBAL
-!
-! On Windows there are no big (integer*8) integers, so overloading
-! for bug #670 does not work. I have to use DEC compilation directives to make
-! Windows DEC Visual Fortran and OSF compilers happy and do right things.
-! 05/01/02 EP
-!
-
-CONTAINS
-
-!
-!****s* H5A/h5acreate_f
-!
-! NAME
-! h5acreate_f
-!
-! PURPOSE
-! Creates a dataset as an attribute of a group, dataset, or named datatype
-!
-! INPUTS
-! loc_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 - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! acpl_id - Attribute creation property list identifier
-! appl_id - Attribute access property list identifier
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!
-! SOURCE
- SUBROUTINE h5acreate_f(loc_id, name, type_id, space_id, attr_id, &
- hdferr, acpl_id, aapl_id )
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
- INTEGER(HID_T), INTENT(IN) :: type_id ! Attribute datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Attribute dataspace identifier
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
-!*****
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: acpl_id ! Attribute creation property list identifier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list identifier
-
- INTEGER(HID_T) :: acpl_id_default
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(SIZE_T) :: namelen
- INTERFACE
- INTEGER FUNCTION h5acreate_c(loc_id, name, namelen, type_id, &
- space_id, acpl_id_default, aapl_id_default, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACREATE_C'::h5acreate_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER(SIZE_T) :: namelen
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HID_T) :: acpl_id_default
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: attr_id
- END FUNCTION h5acreate_c
- END INTERFACE
-
- acpl_id_default = H5P_DEFAULT_F
- aapl_id_default = H5P_DEFAULT_F
- namelen = LEN(name)
- IF (PRESENT(acpl_id)) acpl_id_default = acpl_id
- IF (PRESENT(aapl_id)) aapl_id_default = aapl_id
-
- hdferr = h5acreate_c(loc_id, name, namelen, type_id, space_id, &
- acpl_id_default, aapl_id_default, attr_id)
-
- END SUBROUTINE h5acreate_f
-
-
-!
-!****s* H5A/h5aopen_name_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! SOURCE
- SUBROUTINE h5aopen_name_f(obj_id, name, attr_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(SIZE_T) :: namelen
-
- INTERFACE
- INTEGER FUNCTION h5aopen_name_c(obj_id, name, namelen, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_NAME_C'::h5aopen_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: obj_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER(SIZE_T) :: 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
-!
-!****s* H5A/h5aopen_idx_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! SOURCE
- SUBROUTINE h5aopen_idx_f(obj_id, index, attr_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- INTEGER, INTENT(IN) :: index ! Attribute index
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5aopen_idx_c(obj_id, index, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_IDX_C'::h5aopen_idx_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(IN) :: index
- INTEGER(HID_T), INTENT(OUT) :: attr_id
- END FUNCTION h5aopen_idx_c
- END INTERFACE
-
- hdferr = h5aopen_idx_c(obj_id, index, attr_id)
- END SUBROUTINE h5aopen_idx_f
-!
-!****s* H5A/h5aget_space_f
-!
-! 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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!
-! SOURCE
- SUBROUTINE h5aget_space_f(attr_id, space_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(OUT) :: space_id ! Attribute dataspace identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5aget_space_c(attr_id, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_SPACE_C'::h5aget_space_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(OUT) :: space_id
- END FUNCTION h5aget_space_c
- END INTERFACE
-
- hdferr = h5aget_space_c(attr_id, space_id)
- END SUBROUTINE h5aget_space_f
-!
-!****s* H5A/h5aget_type_f
-!
-! NAME
-! h5aget_type_f
-!
-! PURPOSE
-! Gets an attribute datatype.
-!
-! INPUTS
-! attr_id - attribute identifier
-! OUTPUTS
-! type_id - attribute datatype identifier
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! SOURCE
- SUBROUTINE h5aget_type_f(attr_id, type_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(OUT) :: type_id ! Attribute datatype identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5aget_type_c(attr_id, type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_TYPE_C'::h5aget_type_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(OUT) :: type_id
- END FUNCTION h5aget_type_c
- END INTERFACE
-
- hdferr = h5aget_type_c(attr_id, type_id)
- END SUBROUTINE h5aget_type_f
-!
-!****s* H5A/h5aget_name_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-!
-! SOURCE
- SUBROUTINE h5aget_name_f(attr_id, size, buf, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(SIZE_T), INTENT(IN) :: size ! Buffer size
- CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Buffer to hold attribute name
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! name length is successful, -1 if fail
-!*****
- INTERFACE
- INTEGER FUNCTION h5aget_name_c(attr_id, size, buf)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NAME_C'::h5aget_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(OUT) :: buf
- END FUNCTION h5aget_name_c
- END INTERFACE
-
- hdferr = h5aget_name_c(attr_id, size, buf)
- END SUBROUTINE h5aget_name_f
-
-!
-!****s* H5A/h5aget_name_by_idx_f
-!
-! NAME
-! h5aget_name_by_idx_f
-!
-! PURPOSE
-! Gets an attribute name, by attribute index position.
-!
-! INPUTS
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index; Possible values are:
-! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
-! H5_INDEX_NAME_F - Index on names
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! H5_INDEX_N_F - Number of indices defined
-!
-! order - Order in which to iterate over index; Possible values are:
-! H5_ITER_UNKNOWN_F - Unknown order
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-! H5_ITER_N_F - Number of iteration orders
-! order - Index traversal order
-! n - Attribute’s position in index
-!
-! OUTPUTS
-! name - Attribute name
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! OPTIONAL PARAMETERS
-! lapl_id - Link access property list
-! size - Size, in bytes, of attribute name
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aget_name_by_idx_f(loc_id, obj_name, idx_type, order, &
- n, name, hdferr, size, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
- ! from which attribute is to be removed *TEST* check NULL
- INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
- ! H5_INDEX_UNKNOWN_F - Unknown index type
- ! H5_INDEX_NAME_F - Index on names
- ! H5_INDEX_CRT_ORDER_F - Index on creation order
- ! H5_INDEX_N_F - Number of indices defined
-
- INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
- ! H5_ITER_UNKNOWN_F - Unknown order
- ! H5_ITER_INC_F - Increasing order
- ! H5_ITER_DEC_F - Decreasing order
- ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
- ! H5_ITER_N_F - Number of iteration orders
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
- CHARACTER(LEN=*), INTENT(OUT) :: name ! Attribute name
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! Returns attribute name size,
- ! -1 if fail
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! Indicates the size, in the number of characters,
- ! of the attribute
-!*****
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: size_default
-
- INTERFACE
- INTEGER FUNCTION h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, &
- n, name, size_default, lapl_id_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NAME_BY_IDX_C'::h5aget_name_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER, INTENT(IN) :: idx_type
- INTEGER, INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
-
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER(SIZE_T) :: size_default
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: obj_namelen
- END FUNCTION h5aget_name_by_idx_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- size_default = LEN(name)
-
- hdferr = h5aget_name_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, &
- n, name, size_default, lapl_id_default)
-
- IF(PRESENT(size)) size = size_default
-
-
- END SUBROUTINE h5aget_name_by_idx_f
-!
-!****s* H5A/h5aget_num_attrs_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! SOURCE
- SUBROUTINE h5aget_num_attrs_f(obj_id, attr_num, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- INTEGER, INTENT(OUT) :: attr_num ! Number of attributes of the object
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5aget_num_attrs_c(obj_id, attr_num)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_NUM_ATTRS_C'::h5aget_num_attrs_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: obj_id
- INTEGER, INTENT(OUT) :: attr_num
- END FUNCTION h5aget_num_attrs_c
- END INTERFACE
-
- hdferr = h5aget_num_attrs_c(obj_id, attr_num)
- END SUBROUTINE h5aget_num_attrs_f
-
-!
-!****s* H5A/h5adelete_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 - Returns 0 if successful and -1 if fails
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! SOURCE
- SUBROUTINE h5adelete_f(obj_id, name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Attribute name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(SIZE_T) :: namelen
-
- INTERFACE
- INTEGER FUNCTION h5adelete_c(obj_id, name, namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_C'::h5adelete_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: obj_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER(SIZE_T) :: namelen
- END FUNCTION h5adelete_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5adelete_c(obj_id, name, namelen)
- END SUBROUTINE h5adelete_f
-
-!
-!****s* H5A/h5aclose_f
-!
-! NAME
-! h5aclose_f
-!
-! PURPOSE
-! Closes the specified attribute.
-!
-! INPUTS
-! attr_id - attribute identifier
-! OUTPUTS
-!
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-! SOURCE
- SUBROUTINE h5aclose_f(attr_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5aclose_c(attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACLOSE_C'::h5aclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- END FUNCTION h5aclose_c
- END INTERFACE
-
- hdferr = h5aclose_c(attr_id)
- END SUBROUTINE h5aclose_f
-
-!
-!****s* H5A/h5aget_storage_size_f
-!
-! NAME
-! h5aget_storage_size_f
-!
-! PURPOSE
-! Returns the amount of storage required for an attribute.
-!
-! INPUTS
-! attr_id - attribute identifier
-! OUTPUTS
-! size - attribute storage size
-! hdferr - Returns 0 if successful and -1 if fails
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aget_storage_size_f(attr_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Attribute storage requirement
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5aget_storage_size_c(attr_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_STORAGE_SIZE_C'::h5aget_storage_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5aget_storage_size_c
- END INTERFACE
-
- hdferr = h5aget_storage_size_c(attr_id, size)
- END SUBROUTINE h5aget_storage_size_f
-
-!
-!****s* H5A/h5aget_create_plist_f
-!
-! NAME
-! h5aget_create_plist_f
-!
-! PURPOSE
-! Gets an attribute creation property list identifier
-!
-! INPUTS
-! attr_id - Identifier of the attribute
-! OUTPUTS
-! creation_prop_id - Identifier for the attribute’s creation property
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aget_create_plist_f(attr_id, creation_prop_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Identifier of the attribute
- INTEGER(HID_T), INTENT(OUT) :: creation_prop_id ! Identifier for the attribute’s creation property
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! 0 on success and -1 on failure
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5aget_create_plist_c(attr_id, creation_prop_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_CREATE_PLIST_C'::h5aget_create_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(OUT) :: creation_prop_id
- END FUNCTION h5aget_create_plist_c
- END INTERFACE
-
- hdferr = h5aget_create_plist_c(attr_id, creation_prop_id)
- END SUBROUTINE h5aget_create_plist_f
-
-!
-!****s* H5A/h5arename_by_name_f
-!
-! NAME
-! h5arename_by_name_f
-!
-! PURPOSE
-! Renames an attribute
-!
-! INPUTS
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name of object, relative to location,
-! whose attribute is to be renamed
-! old_attr_name - Prior attribute name
-! new_attr_name - New attribute name
-! lapl_id - Link access property list identifier
-!
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5arename_by_name_f(loc_id, obj_name, old_attr_name, new_attr_name, &
- hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
- ! whose attribute is to be renamed
- CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name
- CHARACTER(LEN=*), INTENT(IN) :: new_attr_name ! New attribute name
-
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-!*****
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: old_attr_namelen
- INTEGER(SIZE_T) :: new_attr_namelen
-
- INTERFACE
- INTEGER FUNCTION h5arename_by_name_c(loc_id, obj_name, obj_namelen, &
- old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, &
- lapl_id_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_BY_NAME_C'::h5arename_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, old_attr_name, new_attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER(SIZE_T) :: obj_namelen
- CHARACTER(LEN=*), INTENT(IN) :: old_attr_name
- INTEGER(SIZE_T) :: old_attr_namelen
- CHARACTER(LEN=*), INTENT(IN) :: new_attr_name
- INTEGER(SIZE_T) :: new_attr_namelen
- INTEGER(HID_T) :: lapl_id_default
-
- END FUNCTION h5arename_by_name_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
- old_attr_namelen = LEN(old_attr_name)
- new_attr_namelen = LEN(new_attr_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default=lapl_id
-
- hdferr = h5arename_by_name_c(loc_id, obj_name, obj_namelen, &
- old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen, &
- lapl_id_default)
-
- END SUBROUTINE h5arename_by_name_f
-
-!
-!****s* H5A/h5aopen_f
-!
-! NAME
-! h5aopen_f
-!
-! PURPOSE
-! Opens an attribute for an object specified by object
-! identifier and attribute name
-!
-! INPUTS
-! obj_id - Identifer for object to which attribute is attached
-! attr_name - Name of attribute to open
-! OUTPUTS
-! attr_id - attribute identifier
-
-! OPTIONAL PARAMETERS
-! aapl_id - Attribute access property list
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aopen_f(obj_id, attr_name, attr_id, hdferr, aapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! Success: 0
- ! Failure: -1
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
-!*****
- INTEGER(HID_T) :: aapl_id_default
-
- INTEGER(SIZE_T) :: attr_namelen
-
- INTERFACE
- INTEGER FUNCTION h5aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_C'::h5aopen_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: attr_name
- INTEGER(HID_T), INTENT(IN) :: obj_id
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(SIZE_T) :: attr_namelen
- INTEGER(HID_T), INTENT(OUT) :: attr_id
- END FUNCTION h5aopen_c
- END INTERFACE
-
- attr_namelen = LEN(attr_name)
-
- aapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
-
- hdferr = h5aopen_c(obj_id, attr_name, attr_namelen, aapl_id_default, attr_id)
-
- END SUBROUTINE h5aopen_f
-
-!
-!****s* H5A/h5adelete_by_idx_f
-!
-! NAME
-! h5adelete_by_idx_f
-!
-! PURPOSE
-! Deletes an attribute from an object according to index order
-!
-! INPUTS
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name of object, relative to location, from which attribute is to be removed
-! idx_type - Type of index; Possible values are:
-! H5_INDEX_UNKNOWN_F = -1 - Unknown index type
-! H5_INDEX_NAME_F - Index on names
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! H5_INDEX_N_F - Number of indices defined
-!
-! order - Order in which to iterate over index; Possible values are:
-! H5_ITER_UNKNOWN_F - Unknown order
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-! H5_ITER_N_F - Number of iteration orders
-!
-! n - Offset within index
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5adelete_by_idx_f(loc_id, obj_name, idx_type, order, n, hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
- ! from which attribute is to be removed
- INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
- ! H5_INDEX_UNKNOWN_F - Unknown index type
- ! H5_INDEX_NAME_F - Index on names
- ! H5_INDEX_CRT_ORDER_F - Index on creation order
- ! H5_INDEX_N_F - Number of indices defined
-
- INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
- ! H5_ITER_UNKNOWN_F - Unknown order
- ! H5_ITER_INC_F - Increasing order
- ! H5_ITER_DEC_F - Decreasing order
- ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
- ! H5_ITER_N_F - Number of iteration orders
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Offset within index
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-!*****
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_IDX_C'::h5adelete_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER, INTENT(IN) :: idx_type
- INTEGER, INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: obj_namelen
- END FUNCTION h5adelete_by_idx_c
- END INTERFACE
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- obj_namelen = LEN(obj_name)
- hdferr = h5adelete_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default)
-
- END SUBROUTINE h5adelete_by_idx_f
-
-!
-!****s* H5A/h5adelete_by_name_f
-!
-! NAME
-! h5adelete_by_name_f
-!
-! PURPOSE
-! Removes an attribute from a specified location
-!
-! INPUTS
-! loc_id - Identifer for object to which attribute is attached
-! obj_name - Name of attribute to open
-! attr_name - Attribute access property list
-! lapl_id - Link access property list
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5adelete_by_name_f(loc_id, obj_name, attr_name, hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifer for object to which attribute is attached
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object, relative to location,
- ! from which attribute is to be removed
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Name of attribute to delete
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-!*****
- INTEGER(SIZE_T) :: attr_namelen
- INTEGER(SIZE_T) :: obj_namelen
-
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ADELETE_BY_NAME_C'::h5adelete_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: attr_namelen
- INTEGER(SIZE_T) :: obj_namelen
- END FUNCTION h5adelete_by_name_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
- attr_namelen = LEN(attr_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5adelete_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default)
-
- END SUBROUTINE h5adelete_by_name_f
-
-!
-!****s* H5A/h5aopen_by_idx_f
-!
-! NAME
-! h5aopen_by_idx_f
-!
-! PURPOSE
-! Opens an existing attribute that is attached to an object specified by location and name
-!
-! INPUTS
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index
-! order - Index traversal order
-! n - Attribute’s position in index
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! aapl_id - Attribute access property list
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, hdferr, aapl_id, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
- INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
- ! H5_INDEX_UNKNOWN_F - Unknown index type
- ! H5_INDEX_NAME_F - Index on names
- ! H5_INDEX_CRT_ORDER_F - Index on creation order
- ! H5_INDEX_N_F - Number of indices defined
- INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
- ! H5_ITER_UNKNOWN_F - Unknown order
- ! H5_ITER_INC_F - Increasing order
- ! H5_ITER_DEC_F - Decreasing order
- ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
-
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-!*****
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, &
- aapl_id_default, lapl_id_default, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_IDX_C'::h5aopen_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER, INTENT(IN) :: idx_type
- INTEGER, INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- END FUNCTION h5aopen_by_idx_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
-
- aapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5aopen_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, &
- aapl_id_default, lapl_id_default, attr_id)
-
- END SUBROUTINE h5aopen_by_idx_f
-
-!
-!****s* H5A/h5aget_info_f
-!
-! NAME
-! h5aget_info_f
-!
-! PURPOSE
-! Retrieves attribute information, by attribute identifier
-!
-! INPUTS
-! attr_id - attribute identifier
-!
-! OUTPUTS
-! NOTE: In C it is defined as a structure: H5A_info_t
-!
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
-! hdferr - Returns 0 if successful and -1 if fails
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-! SOURCE
- SUBROUTINE h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
-
- LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
- INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
-!*****
- INTEGER :: corder_valid
-
- INTERFACE
- INTEGER FUNCTION h5aget_info_c(attr_id, corder_valid, corder, cset, data_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_C'::h5aget_info_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: attr_id
-
- INTEGER, INTENT(OUT) :: corder_valid
- INTEGER, INTENT(OUT) :: corder
- INTEGER, INTENT(OUT) :: cset
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size
- END FUNCTION h5aget_info_c
- END INTERFACE
-
- hdferr = h5aget_info_c(attr_id, corder_valid, corder, cset, data_size)
-
- f_corder_valid =.FALSE.
- IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
-
-
- END SUBROUTINE h5aget_info_f
-
-!
-!****s* H5A/h5aget_info_by_idx_f
-!
-! NAME
-! h5aget_info_by_idx_f
-!
-! PURPOSE
-! Retrieves attribute information, by attribute index position
-!
-! INPUTS
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! idx_type - Type of index
-! order - Index traversal order
-! n - Attribute’s position in index
-!
-! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aget_info_by_idx_f(loc_id, obj_name, idx_type, order, n, &
- f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
- INTEGER, INTENT(IN) :: idx_type ! Type of index; Possible values are:
- ! H5_INDEX_UNKNOWN_F - Unknown index type
- ! H5_INDEX_NAME_F - Index on names
- ! H5_INDEX_CRT_ORDER_F - Index on creation order
- ! H5_INDEX_N_F - Number of indices defined
- INTEGER, INTENT(IN) :: order ! Order in which to iterate over index; Possible values are:
- ! H5_ITER_UNKNOWN_F - Unknown order
- ! H5_ITER_INC_F - Increasing order
- ! H5_ITER_DEC_F - Decreasing order
- ! H5_ITER_NATIVE_F - No particular order, whatever is fastest
-
- INTEGER(HSIZE_T), INTENT(IN) :: n ! Attribute’s position in index
-
-
- LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
- INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-!*****
- INTEGER :: corder_valid
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, &
- corder_valid, corder, cset, data_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_IDX_C'::h5aget_info_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER, INTENT(IN) :: idx_type
- INTEGER, INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
- INTEGER(HID_T) :: lapl_id_default
- INTEGER, INTENT(OUT) :: corder_valid
- INTEGER, INTENT(OUT) :: corder
- INTEGER, INTENT(OUT) :: cset
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size
-
- INTEGER(SIZE_T) :: obj_namelen
- END FUNCTION h5aget_info_by_idx_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(present(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5aget_info_by_idx_c(loc_id, obj_name, obj_namelen, idx_type, order, n, lapl_id_default, &
- corder_valid, corder, cset, data_size)
-
- f_corder_valid =.FALSE.
- IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
-
- END SUBROUTINE h5aget_info_by_idx_f
-
-!
-!****s* H5A/h5aget_info_by_name_f
-!
-! NAME
-! h5aget_info_by_name_f
-!
-! PURPOSE
-! Retrieves attribute information, by attribute name
-!
-! INPUTS
-! loc_id - Location of object to which attribute is attached
-! obj_name - Name of object to which attribute is attached, relative to location
-! attr_name - Attribute name
-!
-! OUTPUTS NOTE: In C it is defined as a structure: H5A_info_t
-! corder_valid - indicates whether the creation order data is valid for this attribute
-! corder - is a positive integer containing the creation order of the attribute
-! cset - indicates the character set used for the attribute’s name
-! data_size - indicates the size, in the number of characters, of the attribute
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! SOURCE
- SUBROUTINE h5aget_info_by_name_f(loc_id, obj_name, attr_name, &
- f_corder_valid, corder, cset, data_size, hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Name of object to which attribute is attached
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
-
-
- LOGICAL, INTENT(OUT) :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
- INTEGER, INTENT(OUT) :: corder ! Is a positive integer containing the creation order of the attribute
- INTEGER, INTENT(OUT) :: cset ! Indicates the character set used for the attribute’s name
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size ! Indicates the size, in the number of characters, of the attribute
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list
-!*****
- INTEGER :: corder_valid
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: attr_namelen
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, &
- corder_valid, corder, cset, data_size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AGET_INFO_BY_NAME_C'::h5aget_info_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
- INTEGER(HID_T) :: lapl_id_default
- INTEGER, INTENT(OUT) :: corder_valid
- INTEGER, INTENT(OUT) :: corder
- INTEGER, INTENT(OUT) :: cset
- INTEGER(HSIZE_T), INTENT(OUT) :: data_size
-
- END FUNCTION h5aget_info_by_name_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
- attr_namelen = LEN(attr_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5aget_info_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, &
- corder_valid, corder, cset, data_size)
-
- f_corder_valid =.FALSE.
- IF (corder_valid .EQ. 1) f_corder_valid =.TRUE.
-
- END SUBROUTINE h5aget_info_by_name_f
-
-!
-!****s* H5A/h5acreate_by_name_f
-!
-! NAME
-! h5acreate_by_name_f
-!
-! PURPOSE
-! Creates an attribute attached to a specified object
-!
-! INPUTS
-! loc_id - Location or object identifier; may be dataset or group
-! obj_name - Name, relative to loc_id, of object that attribute is to be attached to
-! attr_name - Attribute name
-! type_id - Attribute datatype identifier
-! space_id - Attribute dataspace identifier
-!
-! OUTPUTS
-! attr - an attribute identifier
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! acpl_id - Attribute creation property list identifier (Currently not used.)
-! aapl_id - Attribute access property list identifier (Currently not used.)
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February, 2008
-! SOURCE
- SUBROUTINE h5acreate_by_name_f(loc_id, obj_name, attr_name, type_id, space_id, attr, hdferr, &
- acpl_id, aapl_id, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HID_T), INTENT(OUT) :: attr
- INTEGER, INTENT(OUT) :: hdferr
-
- INTEGER(HID_T), INTENT(IN), OPTIONAL :: acpl_id
- INTEGER(HID_T), INTENT(IN), OPTIONAL :: aapl_id
- INTEGER(HID_T), INTENT(IN), OPTIONAL :: lapl_id
-!*****
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: attr_namelen
-
- INTEGER(HID_T) :: acpl_id_default
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
- type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ACREATE_BY_NAME_C'::h5acreate_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HID_T) :: acpl_id_default
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: attr
-
- END FUNCTION h5acreate_by_name_c
- END INTERFACE
-
- obj_namelen = LEN(obj_name)
- attr_namelen = LEN(attr_name)
-
- acpl_id_default = H5P_DEFAULT_F
- aapl_id_default = H5P_DEFAULT_F
- lapl_id_default = H5P_DEFAULT_F
-
- IF(PRESENT(acpl_id)) acpl_id_default = acpl_id
- IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5acreate_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
- type_id, space_id, acpl_id_default, aapl_id_default, lapl_id_default, attr)
- END SUBROUTINE h5acreate_by_name_f
-
-!
-!****s* H5A/H5Aexists_f
-!
-! NAME
-! H5Aexists_f
-!
-! PURPOSE
-! Determines whether an attribute with a given name exists on an object
-!
-! INPUTS
-! obj_id - Object identifier
-! attr_name - Attribute name
-!
-! OUTPUTS
-! attr_exists - attribute exists status
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February, 2008
-!
-! SOURCE
- SUBROUTINE h5aexists_f(obj_id, attr_name, attr_exists, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: obj_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
- LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
-!*****
- INTEGER(HID_T) :: attr_exists_c
- INTEGER(SIZE_T) :: attr_namelen
-
- INTERFACE
- INTEGER FUNCTION h5aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_C'::h5aexists_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: attr_name
- INTEGER(HID_T), INTENT(IN) :: obj_id
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(SIZE_T) :: attr_namelen
- INTEGER(HID_T) :: attr_exists_c
- END FUNCTION h5aexists_c
- END INTERFACE
-
- attr_namelen = LEN(attr_name)
-
- hdferr = h5aexists_c(obj_id, attr_name, attr_namelen, attr_exists_c)
-
- attr_exists = .FALSE.
- IF(attr_exists_c.GT.0) attr_exists = .TRUE.
-
- END SUBROUTINE h5aexists_f
-
-!
-!****s* H5A/H5Aexists_by_name_f
-!
-! NAME
-! H5Aexists_by_name_f
-!
-! PURPOSE
-! Determines whether an attribute with a given name exists on an object
-!
-! INPUTS
-! loc_id - Location identifier
-! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
-! attr_name - Attribute name
-!
-! OUTPUTS
-! attr_exists - attribute exists status
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! lapl_id - Link access property list identifier
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February, 2008
-!
-! SOURCE
- SUBROUTINE h5aexists_by_name_f(loc_id, obj_name, attr_name, attr_exists, hdferr, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
- ! absolute from the file’s root group, or '.'
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
- LOGICAL, INTENT(OUT) :: attr_exists ! .TRUE. if exists, .FALSE. otherwise
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-!*****
- INTEGER :: attr_exists_c
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: attr_namelen
-
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AEXISTS_BY_NAME_C'::h5aexists_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
- INTEGER(HID_T), INTENT(IN) :: lapl_id_default
- INTEGER, INTENT(OUT) :: attr_exists_c
- END FUNCTION h5aexists_by_name_c
- END INTERFACE
-
- attr_namelen = LEN(attr_name)
- obj_namelen = LEN(obj_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5aexists_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, lapl_id_default, attr_exists_c)
-
- attr_exists = .FALSE.
- IF(attr_exists_c.GT.0) attr_exists = .TRUE.
-
- END SUBROUTINE h5aexists_by_name_f
-!
-!****s* H5A/H5Aopen_by_name_f
-!
-! NAME
-! H5Aopen_by_name_f
-!
-! PURPOSE
-! Opens an attribute for an object by object name and attribute name.
-!
-! INPUTS
-! loc_id - Location from which to find object to which attribute is attached
-! obj_name - Object name either relative to loc_id, absolute from the file’s root group, or '.' (a dot)
-! attr_name - Attribute name
-!
-! OUTPUTS
-! attr_id - attribute identifier
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! aapl_id - Attribute access property list (Currently unused; should be passed in as H5P_DEFAULT.)
-! lapl_id - Link access property list identifier
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February, 2008
-! SOURCE
- SUBROUTINE h5aopen_by_name_f(loc_id, obj_name, attr_name, attr_id, hdferr, aapl_id, lapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: obj_name ! Object name either relative to loc_id,
- ! absolute from the file’s root group, or '.'
- CHARACTER(LEN=*), INTENT(IN) :: attr_name ! Attribute name
- INTEGER(HID_T), INTENT(OUT) :: attr_id ! Attribute identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id ! Attribute access property list
- ! (Currently unused; should be passed in as H5P_DEFAULT_F)
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id ! Link access property list identifier
-!*****
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
-
- INTEGER(SIZE_T) :: obj_namelen
- INTEGER(SIZE_T) :: attr_namelen
-
- INTERFACE
- INTEGER FUNCTION h5aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
- aapl_id_default, lapl_id_default, attr_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AOPEN_BY_NAME_C'::h5aopen_by_name_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
- INTEGER(SIZE_T), INTENT(IN) :: obj_namelen
- CHARACTER(LEN=*), INTENT(IN) :: attr_name
- INTEGER(SIZE_T), INTENT(IN) :: attr_namelen
- INTEGER(HID_T) :: aapl_id_default
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: attr_id
- END FUNCTION h5aopen_by_name_c
- END INTERFACE
-
- attr_namelen = LEN(attr_name)
- obj_namelen = LEN(obj_name)
-
- aapl_id_default = H5P_DEFAULT_F
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(aapl_id)) aapl_id_default = aapl_id
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- hdferr = h5aopen_by_name_c(loc_id, obj_name, obj_namelen, attr_name, attr_namelen, &
- aapl_id_default, lapl_id_default, attr_id)
-
- END SUBROUTINE h5aopen_by_name_f
-
-!
-!****s* H5A/h5arename_f
-!
-! NAME
-! h5arename_f
-!
-! PURPOSE
-! Renames an attribute
-!
-! INPUTS
-! loc_id - Location or object identifier; may be dataset or group
-! old_attr_name - Prior attribute name
-! new_attr_name - New attribute name
-!
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! January, 2008
-!
-! HISTORY
-! N/A
-!
-!
-
-! SOURCE
- SUBROUTINE h5arename_f(loc_id, old_attr_name, new_attr_name, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Object identifier
- CHARACTER(LEN=*), INTENT(IN) :: old_attr_name ! Prior attribute name
- CHARACTER(LEN=*), INTENT(IN) :: new_attr_name ! New attribute name
- INTEGER, INTENT(OUT) :: hdferr ! Error code:
- ! 0 on success and -1 on failure
-!*****
- INTEGER(SIZE_T) :: old_attr_namelen
- INTEGER(SIZE_T) :: new_attr_namelen
-
- INTERFACE
- INTEGER FUNCTION h5arename_c(loc_id, &
- old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ARENAME_C'::h5arename_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: old_attr_name, new_attr_name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: old_attr_name
- INTEGER(SIZE_T) :: old_attr_namelen
- CHARACTER(LEN=*), INTENT(IN) :: new_attr_name
- INTEGER(SIZE_T) :: new_attr_namelen
-
- END FUNCTION h5arename_c
- END INTERFACE
-
- old_attr_namelen = LEN(old_attr_name)
- new_attr_namelen = LEN(new_attr_name)
-
- hdferr = h5arename_c(loc_id, &
- old_attr_name, old_attr_namelen, new_attr_name, new_attr_namelen)
-
- END SUBROUTINE h5arename_f
-
-END MODULE H5A
-
-
diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90
deleted file mode 100644
index 5278280..0000000
--- a/fortran/src/H5Aff_F03.f90
+++ /dev/null
@@ -1,1267 +0,0 @@
-!****h* ROBODoc/H5A (F03)
-! NAME
-! H5A_PROVISIONAL
-!
-! FILE
-! src/fortran/src/H5Aff_F03.f90
-!
-! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5A functions.
-! It contains the same functions as H5Aff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Aff_F90.f90 if Fortran 2003 functions are enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-!
-! (A) C_LOC and character strings according to the Fortran 2003 standard:
-!
-! 15.1.2.5 C_LOC(X)
-!
-! Argument. X shall either
-!
-! (1) have interoperable type and type parameters and be
-! (a) a variable that has the TARGET attribute and is interoperable,
-! (b) an allocated allocatable variable that has the TARGET attribute
-! and is not an array of zero size, or
-! (c) an associated scalar pointer, or
-! (2) be a nonpolymorphic scalar, have no length type parameters, and be
-! (a) a nonallocatable, nonpointer variable that has the TARGET attribute,
-! (b) an allocated allocatable variable that has the TARGET attribute, or
-! (c) an associated pointer.
-!
-! - When X is a character, for interoperability the standard is:
-!
-! 15.2.1 Interoperability of intrinsic types
-!
-! ...if the type is character, interoperability also requires that the length type parameter
-! be omitted or be specified by an initialization expression whose value is one.
-!
-! THEREFORE compilers that have not extended the standard require
-!
-! CHARACTER(LEN=1), TARGET :: chr
-! or
-! CHARACTER, TARGET :: chr
-!
-! (B)
-! *** IMPORTANT ***
-! If you add a new H5A function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5A_PROVISIONAL
-
- USE H5GLOBAL
-!
-! On Windows there are no big (integer*8) integers, so overloading
-! for bug #670 does not work. I have to use DEC compilation directives to make
-! Windows DEC Visual Fortran and OSF compilers happy and do right things.
-! 05/01/02 EP
-!
- INTERFACE h5awrite_f
- MODULE PROCEDURE h5awrite_integer_scalar
- MODULE PROCEDURE h5awrite_integer_1
- MODULE PROCEDURE h5awrite_integer_2
- MODULE PROCEDURE h5awrite_integer_3
- MODULE PROCEDURE h5awrite_integer_4
- MODULE PROCEDURE h5awrite_integer_5
- MODULE PROCEDURE h5awrite_integer_6
- MODULE PROCEDURE h5awrite_integer_7
- MODULE PROCEDURE h5awrite_char_scalar
- MODULE PROCEDURE h5awrite_char_1
- MODULE PROCEDURE h5awrite_char_2
- MODULE PROCEDURE h5awrite_char_3
- MODULE PROCEDURE h5awrite_char_4
- MODULE PROCEDURE h5awrite_char_5
- MODULE PROCEDURE h5awrite_char_6
- MODULE PROCEDURE h5awrite_char_7
- MODULE PROCEDURE h5awrite_real_scalar
- MODULE PROCEDURE h5awrite_real_1
- MODULE PROCEDURE h5awrite_real_2
- MODULE PROCEDURE h5awrite_real_3
- MODULE PROCEDURE h5awrite_real_4
- MODULE PROCEDURE h5awrite_real_5
- MODULE PROCEDURE h5awrite_real_6
- MODULE PROCEDURE h5awrite_real_7
- ! This is the preferred way to call h5awrite
- ! by passing an address
- MODULE PROCEDURE h5awrite_ptr
-
- END INTERFACE
-
- INTERFACE h5aread_f
-
- MODULE PROCEDURE h5aread_integer_scalar
- MODULE PROCEDURE h5aread_integer_1
- MODULE PROCEDURE h5aread_integer_2
- MODULE PROCEDURE h5aread_integer_3
- MODULE PROCEDURE h5aread_integer_4
- MODULE PROCEDURE h5aread_integer_5
- MODULE PROCEDURE h5aread_integer_6
- MODULE PROCEDURE h5aread_integer_7
- MODULE PROCEDURE h5aread_char_scalar
- MODULE PROCEDURE h5aread_char_1
- MODULE PROCEDURE h5aread_char_2
- MODULE PROCEDURE h5aread_char_3
- MODULE PROCEDURE h5aread_char_4
- MODULE PROCEDURE h5aread_char_5
- MODULE PROCEDURE h5aread_char_6
- MODULE PROCEDURE h5aread_char_7
- MODULE PROCEDURE h5aread_real_scalar
- MODULE PROCEDURE h5aread_real_1
- MODULE PROCEDURE h5aread_real_2
- MODULE PROCEDURE h5aread_real_3
- MODULE PROCEDURE h5aread_real_4
- MODULE PROCEDURE h5aread_real_5
- MODULE PROCEDURE h5aread_real_6
- MODULE PROCEDURE h5aread_real_7
-
- ! This is the preferred way to call h5aread
- ! by passing an address
- MODULE PROCEDURE h5aread_ptr
-
- END INTERFACE
-
-! Interface for the function used to pass the C pointer of the buffer
-! to the C H5Awrite routine
-
- INTERFACE
- INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5awrite_f_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- TYPE(C_PTR), VALUE :: buf
- END FUNCTION h5awrite_f_c
- END INTERFACE
-
-! Interface for the function used to pass the C pointer of the buffer
-! to the C H5Aread routine
-
- INTERFACE
- INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5aread_f_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- TYPE(C_PTR), VALUE :: buf
- END FUNCTION h5aread_f_c
- END INTERFACE
-
-CONTAINS
-
-!****s* H5A (F03)/h5awrite_f_F90
-!
-! NAME
-! h5awrite_f_F90
-!
-! PURPOSE
-! Writes an attribute.
-!
-! Inputs:
-! attr_id - Attribute identifier
-! memtype_id - Attribute datatype identifier (in memory)
-! dims - Array to hold corresponding dimension sizes of data buffer buf;
-! dim(k) has value of the k-th dimension of buffer buf;
-! values are ignored if buf is a scalar
-! buf - Data buffer; may be a scalar or an array
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! dims parameter was added to make code portable;
-! Aprile 4, 2001
-!
-! Changed buf intent to INOUT to be consistant
-! with how the C functions handles it. The pg
-! compiler will return 0 if a buf value is not set.
-! February, 2008
-!
-! NOTES
-! This function is overloaded to write INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions.
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, dims, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: attr_id
-!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
-!! TYPE , INTENT(IN) :: buf
-!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
-
- SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf)
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_scalar
-
- SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_integer_1
-
-
- SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1),dims(2)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_2
-
- SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_3
-
-
- SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_4
-
-
- SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_5
-
-
- SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_integer_6
-
-
- SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), &
- TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_integer_7
-
-
- SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf)
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_scalar
-
- SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_real_1
-
-
- SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_real_2
-
-
- SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_3
-
-
- SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_4
-
-
- SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf)
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_5
-
-
- SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_6
-
-
- SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5awrite_real_7
-
- SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- CALL h5awrite_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), dims, hdferr)
-
- END SUBROUTINE h5awrite_char_scalar
-
- SUBROUTINE h5awrite_char_scalar_fix(attr_id, memtype_id, buf, buf_len, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) :: buf_len
- CHARACTER(LEN=buf_len), INTENT(IN), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_scalar_fix
-
- SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1)(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_1
-
- SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1)(1:1))
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_2
-
- SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1)(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_3
-
- SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1)(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_4
-
- SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_5
-
-
- SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
-
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_6
-
- SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
- hdferr = h5awrite_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5awrite_char_7
-
-!****s* H5A (F03)/h5awrite_f_F03
-!
-! NAME
-! h5awrite_f_F03
-!
-! PURPOSE
-! Writes an attribute.
-!
-! Inputs:
-! attr_id - Attribute identifier
-! memtype_id - Attribute datatype identifier (in memory)
-! buf - Data buffer; may be a scalar or an array
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! NOTES
-! This function is overloaded to write INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions.
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5awrite_f(attr_id, memtype_id, buf, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: attr_id
-!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
-!! TYPE(C_PTR) , INTENT(IN) :: buf
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5awrite_ptr(attr_id, mem_type_id, buf, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- TYPE(C_PTR), INTENT(IN), TARGET :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- hdferr = h5awrite_f_c(attr_id, mem_type_id, buf)
-
- END SUBROUTINE h5awrite_ptr
-
-!****s* H5A (F03)/h5aread_f_F90
-!
-! NAME
-! h5aread_f_F90
-!
-! PURPOSE
-! Reads an attribute.
-!
-! Inputs:
-! attr_id - Attribute identifier
-! memtype_id - Attribute datatype identifier (in memory)
-! dims - Array to hold corresponding dimension sizes of data buffer buf;
-! dim(k) has value of the k-th dimension of buffer buf;
-! values are ignored if buf is a scalar
-!
-! Outputs:
-! buf - Data buffer; may be a scalar or an array
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! dims parameter was added to make code portable;
-! Aprile 4, 2001
-!
-! Changed buf intent to INOUT to be consistant
-! with how the C functions handles it. The pg
-! compiler will return 0 if a buf value is not set.
-! February, 2008
-!
-! NOTES
-! This function is overloaded to write INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions.
-! Fortran90 Interface:
-!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, dims, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: attr_id
-!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
-!! TYPE , INTENT(INOUT) :: buf
-!! INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5aread_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf)
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_scalar
-
- SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_1
-
-
- SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_2
-
-
- SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_3
-
-
- SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_4
-
-
- SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_5
-
-
- SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_6
-
-
- SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_integer_7
-
-
- SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf)
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_scalar
-
- SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_1
-
-
- SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_2
-
-
- SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_3
-
-
- SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_4
-
-
- SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_5
-
-
- SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_6
-
-
- SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
- END SUBROUTINE h5aread_real_7
-
- SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- CALL h5aread_char_scalar_fix(attr_id, memtype_id, buf, LEN(buf), hdferr)
-
- END SUBROUTINE h5aread_char_scalar
-
- SUBROUTINE h5aread_char_scalar_fix(attr_id, memtype_id, buf, buf_len, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER, INTENT(IN) :: buf_len
- CHARACTER(LEN=buf_len), INTENT(INOUT), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1:1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_scalar_fix
-
- SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_1
-
-
- SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_2
-
-
- SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_3
-
- SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1)(1:1))
-
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_4
-
- SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_5
-
-
- SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_6
-
-
- SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)), TARGET :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(buf(1,1,1,1,1,1,1)(1:1))
- hdferr = h5aread_f_c(attr_id, memtype_id, f_ptr)
-
- END SUBROUTINE h5aread_char_7
-
-
-!****s* H5A (F03)/h5aread_f_F03
-!
-! NAME
-! h5aread_f_F03
-!
-! PURPOSE
-! Reads an attribute.
-!
-! Inputs:
-! attr_id - Attribute identifier
-! memtype_id - Attribute datatype identifier (in memory)
-!
-! Outputs:
-! buf - Data buffer; may be a scalar or an array
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! dims parameter was added to make code portable;
-! Aprile 4, 2001
-!
-! Changed buf intent to INOUT to be consistant
-! with how the C functions handles it. The pg
-! compiler will return 0 if a buf value is not set.
-! February, 2008
-!
-! NOTES
-! This function is overloaded to write INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions.
-! Fortran2003 Interface:
-!! SUBROUTINE h5aread_f(attr_id, memtype_id, buf, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: attr_id
-!! INTEGER(HID_T) , INTENT(IN) :: memtype_id
-!! TYPE(C_PTR) , INTENT(INOUT) :: buf
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5aread_ptr(attr_id, mem_type_id, buf, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- TYPE(C_PTR), INTENT(INOUT), TARGET :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- hdferr = h5aread_f_c(attr_id, mem_type_id, buf)
-
- END SUBROUTINE h5aread_ptr
-
-END MODULE H5A_PROVISIONAL
-
-
diff --git a/fortran/src/H5Aff_F90.f90 b/fortran/src/H5Aff_F90.f90
deleted file mode 100644
index 974b023..0000000
--- a/fortran/src/H5Aff_F90.f90
+++ /dev/null
@@ -1,1618 +0,0 @@
-!****h* ROBODoc/H5A (F90)
-!
-! NAME
-! H5A_PROVISIONAL
-!
-! FILE
-! fortran/src/H5Aff_F90.f90
-!
-! PURPOSE
-!
-! This file contains Fortran 90 interfaces for H5A functions. It contains
-! the same functions as H5Aff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Aff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5A function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5A_PROVISIONAL
-
- USE H5GLOBAL
- !
- !On Windows there are no big (integer*8) integers, so overloading
- !for bug #670 does not work. I have to use DEC compilation directives to make
- !Windows DEC Visual Fortran and OSF compilers happy and do right things.
- ! 05/01/02 EP
- !
- INTERFACE h5awrite_f
-
- MODULE PROCEDURE h5awrite_integer_scalar
- MODULE PROCEDURE h5awrite_integer_1
- MODULE PROCEDURE h5awrite_integer_2
- MODULE PROCEDURE h5awrite_integer_3
- MODULE PROCEDURE h5awrite_integer_4
- MODULE PROCEDURE h5awrite_integer_5
- MODULE PROCEDURE h5awrite_integer_6
- MODULE PROCEDURE h5awrite_integer_7
- MODULE PROCEDURE h5awrite_char_scalar
- MODULE PROCEDURE h5awrite_char_1
- MODULE PROCEDURE h5awrite_char_2
- MODULE PROCEDURE h5awrite_char_3
- MODULE PROCEDURE h5awrite_char_4
- MODULE PROCEDURE h5awrite_char_5
- MODULE PROCEDURE h5awrite_char_6
- MODULE PROCEDURE h5awrite_char_7
- MODULE PROCEDURE h5awrite_real_scalar
- MODULE PROCEDURE h5awrite_real_1
- MODULE PROCEDURE h5awrite_real_2
- MODULE PROCEDURE h5awrite_real_3
- MODULE PROCEDURE h5awrite_real_4
- MODULE PROCEDURE h5awrite_real_5
- MODULE PROCEDURE h5awrite_real_6
- MODULE PROCEDURE h5awrite_real_7
-
- END INTERFACE
-
- INTERFACE h5aread_f
-
- MODULE PROCEDURE h5aread_integer_scalar
- MODULE PROCEDURE h5aread_integer_1
- MODULE PROCEDURE h5aread_integer_2
- MODULE PROCEDURE h5aread_integer_3
- MODULE PROCEDURE h5aread_integer_4
- MODULE PROCEDURE h5aread_integer_5
- MODULE PROCEDURE h5aread_integer_6
- MODULE PROCEDURE h5aread_integer_7
- MODULE PROCEDURE h5aread_char_scalar
- MODULE PROCEDURE h5aread_char_1
- MODULE PROCEDURE h5aread_char_2
- MODULE PROCEDURE h5aread_char_3
- MODULE PROCEDURE h5aread_char_4
- MODULE PROCEDURE h5aread_char_5
- MODULE PROCEDURE h5aread_char_6
- MODULE PROCEDURE h5aread_char_7
- MODULE PROCEDURE h5aread_real_scalar
- MODULE PROCEDURE h5aread_real_1
- MODULE PROCEDURE h5aread_real_2
- MODULE PROCEDURE h5aread_real_3
- MODULE PROCEDURE h5aread_real_4
- MODULE PROCEDURE h5aread_real_5
- MODULE PROCEDURE h5aread_real_6
- MODULE PROCEDURE h5aread_real_7
- END INTERFACE
-
-CONTAINS
-
- SUBROUTINE h5awrite_integer_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_S_C'::h5awrite_integer_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN)::buf
- END FUNCTION h5awrite_integer_s_c
- END INTERFACE
-
- hdferr = h5awrite_integer_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_scalar
-
- SUBROUTINE h5awrite_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awrite_integer_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_1_C'::h5awrite_integer_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1)) :: buf
- END FUNCTION h5awrite_integer_1_c
- END INTERFACE
-
- hdferr = h5awrite_integer_1_c(attr_id, memtype_id, buf, dims)
-
- END SUBROUTINE h5awrite_integer_1
-
-
- SUBROUTINE h5awrite_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN) , &
- DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_2_C'::h5awrite_integer_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awrite_integer_2_c
- END INTERFACE
-
- hdferr = h5awrite_integer_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_2
-
-
- SUBROUTINE h5awrite_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_3_C'::h5awrite_integer_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awrite_integer_3_c
- END INTERFACE
-
- hdferr = h5awrite_integer_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_3
-
-
- SUBROUTINE h5awrite_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_4_C'::h5awrite_integer_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awrite_integer_4_c
- END INTERFACE
-
- hdferr = h5awrite_integer_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_4
-
-
- SUBROUTINE h5awrite_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_5_C'::h5awrite_integer_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awrite_integer_5_c
- END INTERFACE
-
- hdferr = h5awrite_integer_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_5
-
-
- SUBROUTINE h5awrite_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_6_C'::h5awrite_integer_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awrite_integer_6_c
- END INTERFACE
-
- hdferr = h5awrite_integer_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_6
-
-
- SUBROUTINE h5awrite_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_integer_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_INTEGER_7_C'::h5awrite_integer_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awrite_integer_7_c
- END INTERFACE
-
- hdferr = h5awrite_integer_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_integer_7
-
-
- SUBROUTINE h5awrite_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_s_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_S_C'::h5awrite_real_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN)::buf
- END FUNCTION h5awrite_real_s_c
- END INTERFACE
-
- hdferr = h5awrite_real_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_scalar
-
- SUBROUTINE h5awrite_real_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_1_C'::h5awrite_real_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5awrite_real_1_c
- END INTERFACE
-
- hdferr = h5awrite_real_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_1
-
-
- SUBROUTINE h5awrite_real_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_2_C'::h5awrite_real_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awrite_real_2_c
- END INTERFACE
-
- hdferr = h5awrite_real_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_2
-
-
- SUBROUTINE h5awrite_real_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_3_C'::h5awrite_real_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awrite_real_3_c
- END INTERFACE
-
- hdferr = h5awrite_real_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_3
-
-
- SUBROUTINE h5awrite_real_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_4_C'::h5awrite_real_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awrite_real_4_c
- END INTERFACE
-
- hdferr = h5awrite_real_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_4
-
-
- SUBROUTINE h5awrite_real_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_5_C'::h5awrite_real_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awrite_real_5_c
- END INTERFACE
-
- hdferr = h5awrite_real_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_5
-
-
- SUBROUTINE h5awrite_real_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_6_C'::h5awrite_real_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awrite_real_6_c
- END INTERFACE
-
- hdferr = h5awrite_real_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_6
-
-
- SUBROUTINE h5awrite_real_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awrite_real_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_REAL_7_C'::h5awrite_real_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awrite_real_7_c
- END INTERFACE
-
- hdferr = h5awrite_real_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_real_7
-
- SUBROUTINE h5awrite_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*),INTENT(IN) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_s_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_S_C'::h5awritec_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- !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_s_c
- END INTERFACE
-
- hdferr = h5awritec_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_scalar
-
- SUBROUTINE h5awrite_char_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_1_C'::h5awritec_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), DIMENSION(dims(1))::buf
- END FUNCTION h5awritec_1_c
- END INTERFACE
-
- hdferr = h5awritec_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_1
-
-
- SUBROUTINE h5awrite_char_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5awritec_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_2_C'::h5awritec_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5awritec_2_c
- END INTERFACE
-
- hdferr = h5awritec_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_2
-
-
- SUBROUTINE h5awrite_char_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_3_C'::h5awritec_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5awritec_3_c
- END INTERFACE
-
- hdferr = h5awritec_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_3
-
-
- SUBROUTINE h5awrite_char_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_4_C'::h5awritec_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5awritec_4_c
- END INTERFACE
-
- hdferr = h5awritec_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_4
-
-
- SUBROUTINE h5awrite_char_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_5_C'::h5awritec_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5awritec_5_c
- END INTERFACE
-
- hdferr = h5awritec_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_5
-
-
- SUBROUTINE h5awrite_char_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_6_C'::h5awritec_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5awritec_6_c
- END INTERFACE
-
- hdferr = h5awritec_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_6
-
-
- SUBROUTINE h5awrite_char_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! INTEGER, EXTERNAL :: h5awritec_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5awritec_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITEC_7_C'::h5awritec_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5awritec_7_c
- END INTERFACE
-
- hdferr = h5awritec_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5awrite_char_7
-
-!
-! NAME
-! h5aread_f
-!
-! PURPOSE
-! Reads an attribute.
-!
-! INPUTS
-! attr_id - attribute identifier
-! memtype_id - attribute memory type identifier
-! dims - 1D array of size 7, stores sizes of the
-! - buf array dimensions.
-! OUTPUTS
-! buf - buffer to read attribute data in
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! OPTIONAL PARAMETERS
-! NONE
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! Explicit Fortran interfaces are added for
-! called C functions (it is needed for Windows
-! port). February 27, 2001
-!
-! dims parameter was added to make code portable;
-! April 4, 2001
-!
-! Changed buf intent to INOUT to be consistant
-! with how the C functions handles it. The pg
-! compiler will return 0 if a buf value is not set.
-! February, 2008
-!
-! NOTES
-! 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, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_s_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_S_C'::h5aread_integer_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT)::buf
- END FUNCTION h5aread_integer_s_c
- END INTERFACE
- hdferr = h5aread_integer_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_scalar
-
- SUBROUTINE h5aread_integer_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_1_C'::h5aread_integer_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
- END FUNCTION h5aread_integer_1_c
- END INTERFACE
-
- hdferr = h5aread_integer_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_1
-
-
- SUBROUTINE h5aread_integer_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT),DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_2_C'::h5aread_integer_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5aread_integer_2_c
- END INTERFACE
-
- hdferr = h5aread_integer_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_2
-
-
- SUBROUTINE h5aread_integer_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_3_C'::h5aread_integer_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5aread_integer_3_c
- END INTERFACE
-
- hdferr = h5aread_integer_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_3
-
-
- SUBROUTINE h5aread_integer_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_4_C'::h5aread_integer_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5aread_integer_4_c
- END INTERFACE
-
- hdferr = h5aread_integer_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_4
-
-
- SUBROUTINE h5aread_integer_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_5_C'::h5aread_integer_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5aread_integer_5_c
- END INTERFACE
-
- hdferr = h5aread_integer_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_5
-
-
- SUBROUTINE h5aread_integer_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_6_C'::h5aread_integer_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5aread_integer_6_c
- END INTERFACE
-
- hdferr = h5aread_integer_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_6
-
-
- SUBROUTINE h5aread_integer_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_integer_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_INTEGER_7_C'::h5aread_integer_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5aread_integer_7_c
- END INTERFACE
-
- hdferr = h5aread_integer_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_integer_7
-
-
- SUBROUTINE h5aread_real_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_s_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_S_C'::h5aread_real_s_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT)::buf
- END FUNCTION h5aread_real_s_c
- END INTERFACE
-
- hdferr = h5aread_real_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_scalar
-
- SUBROUTINE h5aread_real_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_1_C'::h5aread_real_1_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5aread_real_1_c
- END INTERFACE
-
- hdferr = h5aread_real_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_1
-
-
- SUBROUTINE h5aread_real_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_2_C'::h5aread_real_2_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5aread_real_2_c
- END INTERFACE
-
- hdferr = h5aread_real_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_2
-
-
- SUBROUTINE h5aread_real_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_3_C'::h5aread_real_3_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5aread_real_3_c
- END INTERFACE
-
- hdferr = h5aread_real_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_3
-
-
- SUBROUTINE h5aread_real_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_4_C'::h5aread_real_4_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5aread_real_4_c
- END INTERFACE
-
- hdferr = h5aread_real_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_4
-
-
- SUBROUTINE h5aread_real_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_5_C'::h5aread_real_5_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5aread_real_5_c
- END INTERFACE
-
- hdferr = h5aread_real_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_5
-
-
- SUBROUTINE h5aread_real_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_6_C'::h5aread_real_6_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5aread_real_6_c
- END INTERFACE
-
- hdferr = h5aread_real_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_6
-
-
- SUBROUTINE h5aread_real_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5aread_real_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5aread_real_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_REAL_7_C'::h5aread_real_7_c
- !DEC$ENDIF
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5aread_real_7_c
- END INTERFACE
-
- hdferr = h5aread_real_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_real_7
-
- SUBROUTINE h5aread_char_scalar(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_s_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_s_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_S_C'::h5areadc_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT) :: buf
- END FUNCTION h5areadc_s_c
- END INTERFACE
-
- hdferr = h5areadc_s_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_scalar
-
- SUBROUTINE h5aread_char_1(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_1_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_1_C'::h5areadc_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5areadc_1_c
- END INTERFACE
-
- hdferr = h5areadc_1_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_1
-
-
- SUBROUTINE h5aread_char_2(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_2_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_2_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_2_C'::h5areadc_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5areadc_2_c
- END INTERFACE
-
- hdferr = h5areadc_2_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_2
-
-
- SUBROUTINE h5aread_char_3(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_3_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_3_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_3_C'::h5areadc_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5areadc_3_c
- END INTERFACE
-
- hdferr = h5areadc_3_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_3
-
-
- SUBROUTINE h5aread_char_4(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_4_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_4_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_4_C'::h5areadc_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5areadc_4_c
- END INTERFACE
-
- hdferr = h5areadc_4_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_4
-
-
- SUBROUTINE h5aread_char_5(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_5_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_5_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_5_C'::h5areadc_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5areadc_5_c
- END INTERFACE
-
- hdferr = h5areadc_5_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_5
-
-
- SUBROUTINE h5aread_char_6(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_6_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_6_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_6_C'::h5areadc_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5areadc_6_c
- END INTERFACE
-
- hdferr = h5areadc_6_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_6
-
-
- SUBROUTINE h5aread_char_7(attr_id, memtype_id, buf, dims, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: attr_id ! Attribute identifier
- INTEGER(HID_T), INTENT(IN) :: memtype_id ! Attribute datatype
- ! identifier (in memory)
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! Attribute data
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- ! INTEGER, EXTERNAL :: h5areadc_7_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5areadc_7_c(attr_id, memtype_id, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREADC_7_C'::h5areadc_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims ! Array to story buf dimension sizes
- INTEGER(HID_T), INTENT(IN) :: attr_id
- INTEGER(HID_T), INTENT(IN) :: memtype_id
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5areadc_7_c
- END INTERFACE
-
- hdferr = h5areadc_7_c(attr_id, memtype_id, buf, dims)
- END SUBROUTINE h5aread_char_7
-
-END MODULE H5A_PROVISIONAL
-
-
diff --git a/fortran/src/H5Dff_F03.f90 b/fortran/src/H5Dff.F90
index 7026ae3..8457bfd 100644
--- a/fortran/src/H5Dff_F03.f90
+++ b/fortran/src/H5Dff.F90
@@ -1,29 +1,31 @@
-!****h* ROBODoc/H5D (F03)
+!****h* ROBODoc/H5D
!
! NAME
-! H5D_PROVISIONAL
+! MODULE H5D
+!
+! FILE
+! fortran/src/H5Dff.f90
!
! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5D functions.
-! It contains the same functions as H5Dff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Dff_F90.f90 if Fortran 2003 functions are enabled.
+! This file contains Fortran interfaces for H5D functions. It includes
+! all the functions that are independent on whether the Fortran 2003 functions
+! are enabled or disabled.
!
! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! NOTES
! (1) The maximum rank of an array allowed in Fortran is 7, therefore
@@ -71,7 +73,7 @@
! CHARACTER(LEN=1), TARGET :: chr
! or
! CHARACTER, TARGET :: chr
-!
+!
! *** IMPORTANT ***
! If you add a new H5D function you must add the function name to the
! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
@@ -79,9 +81,25 @@
!
!*****
-MODULE H5D_PROVISIONAL
+MODULE H5D
USE H5GLOBAL
+ INTERFACE h5dextend_f
+ MODULE PROCEDURE h5dset_extent_f
+ END INTERFACE
+
+ INTERFACE h5dread_vl_f
+ MODULE PROCEDURE h5dread_vl_integer
+ MODULE PROCEDURE h5dread_vl_real
+ MODULE PROCEDURE h5dread_vl_string
+ END INTERFACE
+
+ INTERFACE h5dwrite_vl_f
+ MODULE PROCEDURE h5dwrite_vl_integer
+ MODULE PROCEDURE h5dwrite_vl_real
+ MODULE PROCEDURE h5dwrite_vl_string
+ END INTERFACE
+
INTERFACE h5dwrite_f
MODULE PROCEDURE h5dwrite_reference_obj
@@ -214,6 +232,981 @@ MODULE H5D_PROVISIONAL
CONTAINS
+!
+!****s* H5D/h5dcreate_f
+!
+! 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 - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! creation_prp - Dataset creation property list
+! lcpl_id - Link creation property list
+! dapl_id - Dataset access property list
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! - Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! - Added version's 1.8 new optional parameters
+! February, 2008
+!
+! SOURCE
+ SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, &
+ hdferr, dcpl_id, lcpl_id, dapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
+
+ INTEGER(HID_T) :: lcpl_id_default
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+
+ INTEGER :: namelen ! Name length
+
+! MS FORTRAN needs explicit interface for C functions called here.
+!
+ INTERFACE
+ INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, &
+ space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_C'::h5dcreate_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+
+ INTEGER(HID_T) :: lcpl_id_default
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dcreate_c
+ END INTERFACE
+
+ lcpl_id_default = H5P_DEFAULT_F
+ dcpl_id_default = H5P_DEFAULT_F
+ dapl_id_default = H5P_DEFAULT_F
+
+ IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id
+ IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+
+ namelen = LEN(name)
+ hdferr = h5dcreate_c(loc_id, name, namelen, type_id, space_id, &
+ lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id)
+
+ END SUBROUTINE h5dcreate_f
+
+!
+!****s* H5D/h5dopen_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 - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! dapl_id - Dataset access property list
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! -Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! -Added 1.8 (optional) parameter dapl_id
+! February, 2008, M. Scot Breitenfeld
+!
+! SOURCE
+ SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr, dapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
+ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
+!*****
+ INTEGER :: namelen ! Name length
+
+ INTEGER(HID_T) :: dapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DOPEN_C'::h5dopen_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER :: namelen
+ INTEGER(HID_T), INTENT(IN) :: dapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dopen_c
+ END INTERFACE
+
+ dapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+
+ namelen = LEN(name)
+ hdferr = h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
+
+ END SUBROUTINE h5dopen_f
+
+!
+!****s* H5D/h5dclose_f
+!
+! NAME
+! h5dclose_f
+!
+! PURPOSE
+! Closes a dataset.
+!
+! INPUTS
+! dset_id - dataset identifier
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ SUBROUTINE h5dclose_f(dset_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dclose_c(dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCLOSE_C'::h5dclose_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ END FUNCTION h5dclose_c
+ END INTERFACE
+
+ hdferr = h5dclose_c(dset_id)
+
+ END SUBROUTINE h5dclose_f
+
+!
+!****s* H5D/h5dget_type_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+!
+! SOURCE
+ 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
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_TYPE_C'::h5dget_type_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: datatype_id
+ END FUNCTION h5dget_type_c
+ END INTERFACE
+
+ hdferr = h5dget_type_c (dataset_id, datatype_id)
+ END SUBROUTINE h5dget_type_f
+
+!
+!****s* H5D/h5dset_extent
+!
+! NAME
+! h5dset_extent (instead of obsolete 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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! Changed name from the now obsolete h5dextend_f
+! to h5dset_extent_f. Provided interface to old name
+! for backward compatability. -MSB- March 14, 2008
+!
+! SOURCE
+ SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ ! Array containing
+ ! dimensions' sizes
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dset_extent_c(dataset_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSET_EXTENT_C'::h5dset_extent_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
+ END FUNCTION h5dset_extent_c
+ END INTERFACE
+
+ hdferr = H5Dset_extent_c(dataset_id, size)
+ END SUBROUTINE h5dset_extent_f
+
+!****s* H5D/h5dget_create_plist_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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+! SOURCE
+ 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
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ END FUNCTION h5dget_create_plist_c
+ END INTERFACE
+
+ hdferr = h5dget_create_plist_c(dataset_id, plist_id)
+ END SUBROUTINE h5dget_create_plist_f
+
+!
+!****s* H5D/h5dget_storage_size_f
+!
+! NAME
+! h5dget_storage_size_f
+!
+! PURPOSE
+! Returns the amount of storage requires by a dataset
+!
+! INPUTS
+! dataset_id - dataset identifier
+! OUTPUTS
+! size - datastorage size
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 15, 2002
+! SOURCE
+ SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HSIZE_T), INTENT(OUT) :: size ! Amount of storage
+ ! allocated for dataset
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_storage_size_c(dataset_id, size)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_STORAGE_SIZE_C'::h5dget_storage_size_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HSIZE_T), INTENT(OUT) :: size
+ END FUNCTION h5dget_storage_size_c
+ END INTERFACE
+
+ hdferr = h5dget_storage_size_c(dataset_id, size)
+ END SUBROUTINE h5dget_storage_size_f
+
+!
+!****s* H5D/h5dvlen_get_max_len_f
+!
+! NAME
+! h5dvlen_get_max_len_f
+!
+! PURPOSE
+! Returns maximum length of the VL array elements
+!
+! INPUTS
+! dataset_id - dataset identifier
+! type_id - datatype identifier
+! space_id - dataspace identifier
+! OUTPUTS
+! size - buffer size
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! NONE
+!
+! AUTHOR
+! Elena Pourmal
+! October 15, 2002
+!
+! SOURCE
+ SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
+ INTEGER(SIZE_T), INTENT(OUT) :: len ! Maximum length of the element
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_GET_MAX_LEN_C'::h5dvlen_get_max_len_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(SIZE_T), INTENT(OUT) :: len
+ END FUNCTION h5dvlen_get_max_len_c
+ END INTERFACE
+
+ hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
+ END SUBROUTINE h5dvlen_get_max_len_f
+
+!
+!****s* H5D/h5dget_space_status_f
+!
+! NAME
+! h5dget_space_status_f
+!
+! PURPOSE
+! Returns the status of data space allocation.
+!
+! INPUTS
+! dset_id - dataset identifier
+! OUTPUTS
+! flag - status; may have one of the following values:
+! H5D_SPACE_STS_ERROR_F
+! H5D_SPACE_STS_NOT_ALLOCATED_F
+! H5D_SPACE_STS_PART_ALLOCATED_F
+! H5D_SPACE_STS_ALLOCATED_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! March 12, 2003
+!
+! SOURCE
+ SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier
+ INTEGER, INTENT(OUT) :: flag ! Memory buffer to fill in
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ !*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_space_status_c(dset_id, flag)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_STATUS_C'::h5dget_space_status_c
+ !DEC$ENDIF
+ INTEGER(HID_T) :: dset_id
+ INTEGER :: flag
+ END FUNCTION h5dget_space_status_c
+ END INTERFACE
+
+ hdferr = h5dget_space_status_c(dset_id, flag)
+ END SUBROUTINE h5dget_space_status_f
+
+!
+!****s* H5D/h5dcreate_anon_f
+!
+! NAME
+! h5dcreate_anon_f
+!
+! PURPOSE
+! Creates a dataset in a file without linking it into the file structure
+!
+! INPUTS
+! loc_id - Identifier of the file or group within which to create the dataset.
+! type_id - Identifier of the datatype to use when creating the dataset.
+! space_id - Identifier of the dataspace to use when creating the dataset.
+! OUTPUTS
+! dset_id - dataset identifier
+! hdferr - Returns 0 if successful and -1 if fails
+! OPTIONAL PARAMETERS
+! dcpl_id - Dataset creation property list identifier.
+! dapl_id - Dataset access property list identifier.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 11, 2008
+!
+! SOURCE
+ SUBROUTINE h5dcreate_anon_f(loc_id, type_id, space_id, dset_id, hdferr, dcpl_id, dapl_id)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier.
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier.
+ INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier.
+ INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code.
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list identifier.
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list identifier.
+!*****
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+
+ !
+ ! MS FORTRAN needs explicit interface for C functions called here.
+ !
+ INTERFACE
+ INTEGER FUNCTION h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_ANON_C'::h5dcreate_anon_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: loc_id
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ INTEGER(HID_T), INTENT(IN) :: space_id
+ INTEGER(HID_T) :: dcpl_id_default
+ INTEGER(HID_T) :: dapl_id_default
+ INTEGER(HID_T), INTENT(OUT) :: dset_id
+ END FUNCTION h5dcreate_anon_c
+ END INTERFACE
+
+ dcpl_id_default = H5P_DEFAULT_F
+ dapl_id_default = H5P_DEFAULT_F
+
+ IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
+ IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
+
+ hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
+
+ END SUBROUTINE h5dcreate_anon_f
+
+ SUBROUTINE h5dwrite_vl_integer(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_integer_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_INTEGER_C'::h5dwrite_vl_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
+ INTEGER, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_vl_integer_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
+
+ END SUBROUTINE h5dwrite_vl_integer
+
+ SUBROUTINE h5dread_vl_integer(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! -1 if failed, 0 otherwise
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: tmp
+ INTEGER :: error
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_vl_integer_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_INTEGER_C'::h5dread_vl_integer_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
+ INTEGER, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_vl_integer_c
+ END INTERFACE
+
+ CALL h5dget_space_f(dset_id, tmp, error)
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = tmp
+ file_space_id_default = tmp
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
+
+ END SUBROUTINE h5dread_vl_integer
+
+ SUBROUTINE h5dwrite_vl_real(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
+ ! the length of each
+ ! element
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_real_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_REAL_C'::h5dwrite_vl_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
+ REAL, INTENT(IN), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dwrite_vl_real_c
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
+
+ END SUBROUTINE h5dwrite_vl_real
+
+ SUBROUTINE h5dread_vl_real(dset_id, mem_type_id, buf, dims, len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store the length of each element
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ ! -1 if failed, 0 otherwise
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: tmp
+ INTEGER :: error
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_vl_real_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_REAL_C'::h5dread_vl_real_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
+ INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
+ REAL, INTENT(INOUT), &
+ DIMENSION(dims(1),dims(2)) :: buf
+ END FUNCTION h5dread_vl_real_c
+ END INTERFACE
+
+ CALL h5dget_space_f(dset_id, tmp, error)
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = tmp
+ file_space_id_default = tmp
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, len)
+
+ END SUBROUTINE h5dread_vl_real
+
+ SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! Number of strings
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len ! Array to store the length of each element
+ CHARACTER(LEN=*), INTENT(IN), &
+ DIMENSION(dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dwrite_vl_string_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ ! xfer_prp_default, tmp_buf, dims, str_len)
+ xfer_prp_default, buf, dims, str_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_STRING_C'::h5dwrite_vl_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
+ INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len
+ CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
+ END FUNCTION
+ END INTERFACE
+
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dwrite_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, str_len)
+
+ END SUBROUTINE h5dwrite_vl_string
+
+ SUBROUTINE h5dread_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
+ hdferr, &
+ mem_space_id, file_space_id, xfer_prp)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! number of strings
+ INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len ! Array to store
+ ! the length of each
+ ! element
+ CHARACTER(LEN=*), INTENT(OUT), &
+ DIMENSION(dims(2)) :: buf ! Data buffer
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
+ INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
+
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5dread_vl_string_c(dset_id, mem_type_id, &
+ mem_space_id_default, &
+ file_space_id_default, &
+ xfer_prp_default, buf, dims, str_len)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_STRING_C'::h5dread_vl_string_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: buf
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(IN) :: mem_type_id
+ INTEGER(HID_T) :: mem_space_id_default
+ INTEGER(HID_T) :: file_space_id_default
+ INTEGER(HID_T) :: xfer_prp_default
+ INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
+ INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len
+ CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
+ END FUNCTION h5dread_vl_string_c
+ END INTERFACE
+
+ xfer_prp_default = H5P_DEFAULT_F
+ mem_space_id_default = H5S_ALL_F
+ file_space_id_default = H5S_ALL_F
+
+ IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
+ IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
+ IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
+
+ hdferr = h5dread_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
+ file_space_id_default, xfer_prp_default, &
+ buf, dims, str_len)
+ RETURN
+ END SUBROUTINE h5dread_vl_string
+
+!
+!****s* H5D/h5dget_space_f
+!
+! 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 - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! SOURCE
+ 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
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_C'::h5dget_space_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dataset_id
+ INTEGER(HID_T), INTENT(OUT) :: dataspace_id
+ END FUNCTION h5dget_space_c
+ END INTERFACE
+
+ hdferr = h5dget_space_c(dataset_id, dataspace_id)
+END SUBROUTINE h5dget_space_f
+
+!****s* H5D/h5dget_access_plist_f
+!
+! NAME
+! h5dget_access_plist_f
+!
+! PURPOSE
+! Returns a copy of the dataset creation property list.
+!
+! INPUTS
+! dset_id - Dataset identifier
+!
+! OUTPUTS
+! plist_id - Dataset access property list identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! April 13, 2009
+!
+! SOURCE
+SUBROUTINE h5dget_access_plist_f(dset_id, plist_id, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5dget_access_plist_c(dset_id, plist_id)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_ACCESS_PLIST_C'::h5dget_access_plist_c
+ !DEC$ENDIF
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HID_T), INTENT(OUT) :: plist_id
+ END FUNCTION h5dget_access_plist_c
+ END INTERFACE
+
+ hdferr = h5dget_access_plist_c(dset_id, plist_id)
+
+END SUBROUTINE h5dget_access_plist_f
+
+
SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
mem_space_id, file_space_id, xfer_prp)
USE, INTRINSIC :: ISO_C_BINDING
@@ -2384,6 +3377,7 @@ CONTAINS
END SUBROUTINE H5Dvlen_reclaim_f
-END MODULE H5D_PROVISIONAL
+
+END MODULE H5D
diff --git a/fortran/src/H5Dff.f90 b/fortran/src/H5Dff.f90
deleted file mode 100644
index 3ad868c..0000000
--- a/fortran/src/H5Dff.f90
+++ /dev/null
@@ -1,1035 +0,0 @@
-!****h* ROBODoc/H5D
-!
-! NAME
-! MODULE H5D
-!
-! FILE
-! fortran/src/H5Dff.f90
-!
-! PURPOSE
-! This file contains Fortran interfaces for H5D functions. It includes
-! all the functions that are independent on whether the Fortran 2003 functions
-! are enabled or disabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5D
- USE H5GLOBAL
-
- INTERFACE h5dextend_f
- MODULE PROCEDURE h5dset_extent_f
- END INTERFACE
-
- INTERFACE h5dread_vl_f
- MODULE PROCEDURE h5dread_vl_integer
- MODULE PROCEDURE h5dread_vl_real
- MODULE PROCEDURE h5dread_vl_string
- END INTERFACE
-
- INTERFACE h5dwrite_vl_f
- MODULE PROCEDURE h5dwrite_vl_integer
- MODULE PROCEDURE h5dwrite_vl_real
- MODULE PROCEDURE h5dwrite_vl_string
- END INTERFACE
-
-CONTAINS
-
-!
-!****s* H5D/h5dcreate_f
-!
-! 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 - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! creation_prp - Dataset creation property list
-! lcpl_id - Link creation property list
-! dapl_id - Dataset access property list
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! - Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! - Added version's 1.8 new optional parameters
-! February, 2008
-!
-! SOURCE
- SUBROUTINE h5dcreate_f(loc_id, name, type_id, space_id, dset_id, &
- hdferr, dcpl_id, lcpl_id, dapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lcpl_id ! Link creation property list
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
-
- INTEGER(HID_T) :: lcpl_id_default
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
-
- INTEGER :: namelen ! Name length
-
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5dcreate_c(loc_id, name, namelen, type_id, &
- space_id, lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_C'::h5dcreate_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
-
- INTEGER(HID_T) :: lcpl_id_default
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
-
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dcreate_c
- END INTERFACE
-
- lcpl_id_default = H5P_DEFAULT_F
- dcpl_id_default = H5P_DEFAULT_F
- dapl_id_default = H5P_DEFAULT_F
-
- IF(PRESENT(lcpl_id)) lcpl_id_default = lcpl_id
- IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
- IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
-
- namelen = LEN(name)
- hdferr = h5dcreate_c(loc_id, name, namelen, type_id, space_id, &
- lcpl_id_default, dcpl_id_default, dapl_id_default, dset_id)
-
- END SUBROUTINE h5dcreate_f
-
-!
-!****s* H5D/h5dopen_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 - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! dapl_id - Dataset access property list
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! -Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! -Added 1.8 (optional) parameter dapl_id
-! February, 2008, M. Scot Breitenfeld
-!
-! SOURCE
- SUBROUTINE h5dopen_f(loc_id, name, dset_id, hdferr, dapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset
- INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list
-!*****
- INTEGER :: namelen ! Name length
-
- INTEGER(HID_T) :: dapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DOPEN_C'::h5dopen_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: dapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dopen_c
- END INTERFACE
-
- dapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
-
- namelen = LEN(name)
- hdferr = h5dopen_c(loc_id, name, namelen, dapl_id_default, dset_id)
-
- END SUBROUTINE h5dopen_f
-
-!
-!****s* H5D/h5dclose_f
-!
-! NAME
-! h5dclose_f
-!
-! PURPOSE
-! Closes a dataset.
-!
-! INPUTS
-! dset_id - dataset identifier
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! SOURCE
- SUBROUTINE h5dclose_f(dset_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5dclose_c(dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCLOSE_C'::h5dclose_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- END FUNCTION h5dclose_c
- END INTERFACE
-
- hdferr = h5dclose_c(dset_id)
-
- END SUBROUTINE h5dclose_f
-
-!
-!****s* H5D/h5dget_type_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-!
-! SOURCE
- 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
-!*****
- INTERFACE
- INTEGER FUNCTION h5dget_type_c (dataset_id, datatype_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_TYPE_C'::h5dget_type_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: datatype_id
- END FUNCTION h5dget_type_c
- END INTERFACE
-
- hdferr = h5dget_type_c (dataset_id, datatype_id)
- END SUBROUTINE h5dget_type_f
-
-!
-!****s* H5D/h5dset_extent
-!
-! NAME
-! h5dset_extent (instead of obsolete 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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! Changed name from the now obsolete h5dextend_f
-! to h5dset_extent_f. Provided interface to old name
-! for backward compatability. -MSB- March 14, 2008
-!
-! SOURCE
- SUBROUTINE h5dset_extent_f(dataset_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
- ! Array containing
- ! dimensions' sizes
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5dset_extent_c(dataset_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSET_EXTENT_C'::h5dset_extent_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: size
- END FUNCTION h5dset_extent_c
- END INTERFACE
-
- hdferr = H5Dset_extent_c(dataset_id, size)
- END SUBROUTINE h5dset_extent_f
-
-!****s* H5D/h5dget_create_plist_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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-! SOURCE
- 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
-!*****
- INTERFACE
- INTEGER FUNCTION h5dget_create_plist_c(dataset_id, plist_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_CREATE_PLIST_C'::h5dget_create_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- END FUNCTION h5dget_create_plist_c
- END INTERFACE
-
- hdferr = h5dget_create_plist_c(dataset_id, plist_id)
- END SUBROUTINE h5dget_create_plist_f
-
-!
-!****s* H5D/h5dget_storage_size_f
-!
-! NAME
-! h5dget_storage_size_f
-!
-! PURPOSE
-! Returns the amount of storage requires by a dataset
-!
-! INPUTS
-! dataset_id - dataset identifier
-! OUTPUTS
-! size - datastorage size
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 15, 2002
-! SOURCE
- SUBROUTINE h5dget_storage_size_f(dataset_id, size, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HSIZE_T), INTENT(OUT) :: size ! Amount of storage
- ! allocated for dataset
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5dget_storage_size_c(dataset_id, size)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_STORAGE_SIZE_C'::h5dget_storage_size_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HSIZE_T), INTENT(OUT) :: size
- END FUNCTION h5dget_storage_size_c
- END INTERFACE
-
- hdferr = h5dget_storage_size_c(dataset_id, size)
- END SUBROUTINE h5dget_storage_size_f
-
-!
-!****s* H5D/h5dvlen_get_max_len_f
-!
-! NAME
-! h5dvlen_get_max_len_f
-!
-! PURPOSE
-! Returns maximum length of the VL array elements
-!
-! INPUTS
-! dataset_id - dataset identifier
-! type_id - datatype identifier
-! space_id - dataspace identifier
-! OUTPUTS
-! size - buffer size
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! NONE
-!
-! AUTHOR
-! Elena Pourmal
-! October 15, 2002
-!
-! SOURCE
- SUBROUTINE h5dvlen_get_max_len_f(dataset_id, type_id, space_id, len, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dataset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier
- INTEGER(SIZE_T), INTENT(OUT) :: len ! Maximum length of the element
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_GET_MAX_LEN_C'::h5dvlen_get_max_len_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(SIZE_T), INTENT(OUT) :: len
- END FUNCTION h5dvlen_get_max_len_c
- END INTERFACE
-
- hdferr = h5dvlen_get_max_len_c(dataset_id, type_id, space_id, len)
- END SUBROUTINE h5dvlen_get_max_len_f
-
-!
-!****s* H5D/h5dget_space_status_f
-!
-! NAME
-! h5dget_space_status_f
-!
-! PURPOSE
-! Returns the status of data space allocation.
-!
-! INPUTS
-! dset_id - dataset identifier
-! OUTPUTS
-! flag - status; may have one of the following values:
-! H5D_SPACE_STS_ERROR_F
-! H5D_SPACE_STS_NOT_ALLOCATED_F
-! H5D_SPACE_STS_PART_ALLOCATED_F
-! H5D_SPACE_STS_ALLOCATED_F
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! March 12, 2003
-!
-! SOURCE
- SUBROUTINE h5dget_space_status_f(dset_id, flag, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataspace identifier
- INTEGER, INTENT(OUT) :: flag ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- !*****
- INTERFACE
- INTEGER FUNCTION h5dget_space_status_c(dset_id, flag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_STATUS_C'::h5dget_space_status_c
- !DEC$ENDIF
- INTEGER(HID_T) :: dset_id
- INTEGER :: flag
- END FUNCTION h5dget_space_status_c
- END INTERFACE
-
- hdferr = h5dget_space_status_c(dset_id, flag)
- END SUBROUTINE h5dget_space_status_f
-
-!
-!****s* H5D/h5dcreate_anon_f
-!
-! NAME
-! h5dcreate_anon_f
-!
-! PURPOSE
-! Creates a dataset in a file without linking it into the file structure
-!
-! INPUTS
-! loc_id - Identifier of the file or group within which to create the dataset.
-! type_id - Identifier of the datatype to use when creating the dataset.
-! space_id - Identifier of the dataspace to use when creating the dataset.
-! OUTPUTS
-! dset_id - dataset identifier
-! hdferr - Returns 0 if successful and -1 if fails
-! OPTIONAL PARAMETERS
-! dcpl_id - Dataset creation property list identifier.
-! dapl_id - Dataset access property list identifier.
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February 11, 2008
-!
-! SOURCE
- SUBROUTINE h5dcreate_anon_f(loc_id, type_id, space_id, dset_id, hdferr, dcpl_id, dapl_id)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! File or group identifier.
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier.
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataspace identifier.
- INTEGER(HID_T), INTENT(OUT) :: dset_id ! Dataset identifier.
- INTEGER, INTENT(OUT) :: hdferr ! Error code.
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dcpl_id ! Dataset creation property list identifier.
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: dapl_id ! Dataset access property list identifier.
-!*****
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
-
- !
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DCREATE_ANON_C'::h5dcreate_anon_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER(HID_T), INTENT(IN) :: space_id
- INTEGER(HID_T) :: dcpl_id_default
- INTEGER(HID_T) :: dapl_id_default
- INTEGER(HID_T), INTENT(OUT) :: dset_id
- END FUNCTION h5dcreate_anon_c
- END INTERFACE
-
- dcpl_id_default = H5P_DEFAULT_F
- dapl_id_default = H5P_DEFAULT_F
-
- IF(PRESENT(dcpl_id)) dcpl_id_default = dcpl_id
- IF(PRESENT(dapl_id)) dapl_id_default = dapl_id
-
- hdferr = h5dcreate_anon_c(loc_id, type_id, space_id, dcpl_id_default, dapl_id_default, dset_id)
-
- END SUBROUTINE h5dcreate_anon_f
-
- SUBROUTINE h5dwrite_vl_integer(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
- ! the length of each
- ! element
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_integer_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_INTEGER_C'::h5dwrite_vl_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_vl_integer_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
-
- END SUBROUTINE h5dwrite_vl_integer
-
- SUBROUTINE h5dread_vl_integer(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store
- ! the length of each
- ! element
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)), TARGET :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! -1 if failed, 0 otherwise
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: tmp
- INTEGER :: error
-
- INTERFACE
- INTEGER FUNCTION h5dread_vl_integer_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_INTEGER_C'::h5dread_vl_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_vl_integer_c
- END INTERFACE
-
- CALL h5dget_space_f(dset_id, tmp, error)
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = tmp
- file_space_id_default = tmp
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_vl_integer_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
-
- END SUBROUTINE h5dread_vl_integer
-
- SUBROUTINE h5dwrite_vl_real(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len ! Array to store
- ! the length of each
- ! element
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_real_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_REAL_C'::h5dwrite_vl_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: len
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_vl_real_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
-
- END SUBROUTINE h5dwrite_vl_real
-
- SUBROUTINE h5dread_vl_real(dset_id, mem_type_id, buf, dims, len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! MAX len x num_elem
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len ! Array to store the length of each element
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- ! -1 if failed, 0 otherwise
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: tmp
- INTEGER :: error
-
- INTERFACE
- INTEGER FUNCTION h5dread_vl_real_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_REAL_C'::h5dread_vl_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(SIZE_T), INTENT(INOUT), DIMENSION(*) :: len
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_vl_real_c
- END INTERFACE
-
- CALL h5dget_space_f(dset_id, tmp, error)
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = tmp
- file_space_id_default = tmp
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_vl_real_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, len)
-
- END SUBROUTINE h5dread_vl_real
-
- SUBROUTINE h5dwrite_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! Number of strings
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len ! Array to store the length of each element
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_vl_string_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- ! xfer_prp_default, tmp_buf, dims, str_len)
- xfer_prp_default, buf, dims, str_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_VL_STRING_C'::h5dwrite_vl_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
- INTEGER(SIZE_T), INTENT(IN), DIMENSION(*) :: str_len
- CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
- END FUNCTION
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, str_len)
-
- END SUBROUTINE h5dwrite_vl_string
-
- SUBROUTINE h5dread_vl_string(dset_id, mem_type_id, buf, dims, str_len, &
- hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims ! number of strings
- INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len ! Array to store
- ! the length of each
- ! element
- CHARACTER(LEN=*), INTENT(OUT), &
- DIMENSION(dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_vl_string_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims, str_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_VL_STRING_C'::h5dread_vl_string_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(2) :: dims
- INTEGER(SIZE_T), INTENT(OUT), DIMENSION(*) :: str_len
- CHARACTER(LEN=*), DIMENSION(dims(2)) :: buf
- END FUNCTION h5dread_vl_string_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_vl_string_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims, str_len)
- RETURN
- END SUBROUTINE h5dread_vl_string
-
-!
-!****s* H5D/h5dget_space_f
-!
-! 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 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! SOURCE
- 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
-!*****
- INTERFACE
- INTEGER FUNCTION h5dget_space_c(dataset_id, dataspace_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_SPACE_C'::h5dget_space_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dataset_id
- INTEGER(HID_T), INTENT(OUT) :: dataspace_id
- END FUNCTION h5dget_space_c
- END INTERFACE
-
- hdferr = h5dget_space_c(dataset_id, dataspace_id)
-END SUBROUTINE h5dget_space_f
-
-!****s* H5D/h5dget_access_plist_f
-!
-! NAME
-! h5dget_access_plist_f
-!
-! PURPOSE
-! Returns a copy of the dataset creation property list.
-!
-! INPUTS
-! dset_id - Dataset identifier
-!
-! OUTPUTS
-! plist_id - Dataset access property list identifier
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! April 13, 2009
-!
-! SOURCE
-SUBROUTINE h5dget_access_plist_f(dset_id, plist_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- INTEGER , INTENT(OUT) :: hdferr
-!*****
- INTERFACE
- INTEGER FUNCTION h5dget_access_plist_c(dset_id, plist_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DGET_ACCESS_PLIST_C'::h5dget_access_plist_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(OUT) :: plist_id
- END FUNCTION h5dget_access_plist_c
- END INTERFACE
-
- hdferr = h5dget_access_plist_c(dset_id, plist_id)
-
-END SUBROUTINE h5dget_access_plist_f
-
-END MODULE H5D
-
-
diff --git a/fortran/src/H5Dff_F90.f90 b/fortran/src/H5Dff_F90.f90
deleted file mode 100644
index 66cfe62..0000000
--- a/fortran/src/H5Dff_F90.f90
+++ /dev/null
@@ -1,3004 +0,0 @@
-!****h* ROBODoc/H5D (F90)
-!
-! NAME
-!
-! H5D_PROVISIONAL
-!
-! PURPOSE
-!
-! This file contains Fortran 90 interfaces for H5D functions. It contains
-! the same functions as H5Dff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Dff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! (1) The maximum rank of an array allowed in Fortran is 7, therefore
-! we only provide an interface for arrays up to and including rank 7.
-!
-! (2) Unfortunately we are using a generic interface and one of the factors
-! used in determining the proper routine to select is that of the array
-! rank being passed, therefore we can not create just one subroutine for
-! each array type (integer, real, etc...) of various ranks and then use a
-! rank 1 array of assumed size in the just one subroutine,
-! (i.e. integer, dimension(*) :: ... )
-! (i.e. real , dimension(*) :: ... ) etc...
-!
-! (3)
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5D_PROVISIONAL
- USE H5GLOBAL
-
- INTERFACE h5dwrite_f
-
- MODULE PROCEDURE h5dwrite_reference_obj
- MODULE PROCEDURE h5dwrite_reference_dsetreg
- MODULE PROCEDURE h5dwrite_integer_scalar
- MODULE PROCEDURE h5dwrite_integer_1
- MODULE PROCEDURE h5dwrite_integer_2
- MODULE PROCEDURE h5dwrite_integer_3
- MODULE PROCEDURE h5dwrite_integer_4
- MODULE PROCEDURE h5dwrite_integer_5
- MODULE PROCEDURE h5dwrite_integer_6
- MODULE PROCEDURE h5dwrite_integer_7
- MODULE PROCEDURE h5dwrite_char_scalar
- MODULE PROCEDURE h5dwrite_char_1
- MODULE PROCEDURE h5dwrite_char_2
- MODULE PROCEDURE h5dwrite_char_3
- MODULE PROCEDURE h5dwrite_char_4
- MODULE PROCEDURE h5dwrite_char_5
- MODULE PROCEDURE h5dwrite_char_6
- MODULE PROCEDURE h5dwrite_char_7
- MODULE PROCEDURE h5dwrite_real_scalar
- MODULE PROCEDURE h5dwrite_real_1
- MODULE PROCEDURE h5dwrite_real_2
- MODULE PROCEDURE h5dwrite_real_3
- MODULE PROCEDURE h5dwrite_real_4
- MODULE PROCEDURE h5dwrite_real_5
- MODULE PROCEDURE h5dwrite_real_6
- MODULE PROCEDURE h5dwrite_real_7
-
- END INTERFACE
-
- INTERFACE h5dread_f
-
- MODULE PROCEDURE h5dread_reference_obj
- MODULE PROCEDURE h5dread_reference_dsetreg
- MODULE PROCEDURE h5dread_integer_scalar
- MODULE PROCEDURE h5dread_integer_1
- MODULE PROCEDURE h5dread_integer_2
- MODULE PROCEDURE h5dread_integer_3
- MODULE PROCEDURE h5dread_integer_4
- MODULE PROCEDURE h5dread_integer_5
- MODULE PROCEDURE h5dread_integer_6
- MODULE PROCEDURE h5dread_integer_7
- MODULE PROCEDURE h5dread_char_scalar
- MODULE PROCEDURE h5dread_char_1
- MODULE PROCEDURE h5dread_char_2
- MODULE PROCEDURE h5dread_char_3
- MODULE PROCEDURE h5dread_char_4
- MODULE PROCEDURE h5dread_char_5
- MODULE PROCEDURE h5dread_char_6
- MODULE PROCEDURE h5dread_char_7
- MODULE PROCEDURE h5dread_real_scalar
- MODULE PROCEDURE h5dread_real_1
- MODULE PROCEDURE h5dread_real_2
- MODULE PROCEDURE h5dread_real_3
- MODULE PROCEDURE h5dread_real_4
- MODULE PROCEDURE h5dread_real_5
- MODULE PROCEDURE h5dread_real_6
- MODULE PROCEDURE h5dread_real_7
- END INTERFACE
-
- INTERFACE h5dfill_f
- MODULE PROCEDURE h5dfill_integer
- MODULE PROCEDURE h5dfill_real
- MODULE PROCEDURE h5dfill_char
- END INTERFACE
-
-CONTAINS
-
-!****s* H5D/h5dread_f
-!
-! NAME
-! h5dread_f
-!
-! PURPOSE
-! Reads raw data from the specified dataset into buf,
-! converting from file datatype and dataspace to memory
-! datatype and dataspace.
-!
-! INPUTS
-! dset_id - dataset identifier
-! mem_type_id - memory type identifier
-! dims - 1-dim array of size 7; dims(k) has the size
-! of k-th dimension of the buf array
-! OUTPUTS
-! buf - buffer to read data in
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! OPTIONAL PARAMETERS
-! mem_space_id - memory dataspace identifier
-! file_space_id - file dataspace identifier
-! xfer_prp - trasfer property list identifier
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! dims parameter was added to make code portable;
-! n parameter was replaced with dims parameter in
-! the h5dwrite_reference_obj and h5dwrite_reference_dsetreg
-! functions. April 2, 2001
-!
-! NOTES
-! This function is overloaded to read INTEGER,
-! REAL, DOUBLE PRECISION and CHARACTER buffers
-! up to 7 dimensions, and one dimensional buffers
-! of the TYPE(hobj_ref_t_f) and TYPE(hdset_reg_ref_t_f) types.
-!*****
- SUBROUTINE h5dread_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- TYPE(hobj_ref_t_f), INTENT(INOUT) , &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER(HSIZE_T) :: j
-
- INTERFACE
- INTEGER FUNCTION h5dread_ref_obj_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_OBJ_C'::h5dread_ref_obj_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
- END FUNCTION h5dread_ref_obj_c
- END INTERFACE
-
- ALLOCATE(ref_buf(dims(1)), stat=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- DO j = 1, dims(1)
- buf(j)%ref = ref_buf(j)
- ENDDO
- DEALLOCATE(ref_buf)
- END SUBROUTINE h5dread_reference_obj
-
- SUBROUTINE h5dread_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- TYPE(hdset_reg_ref_t_f), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: i
- INTEGER(HSIZE_T) :: j
-
- INTERFACE
- INTEGER FUNCTION h5dread_ref_reg_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REF_REG_C'::h5dread_ref_reg_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, DIMENSION(*) :: ref_buf
- END FUNCTION h5dread_ref_reg_c
- END INTERFACE
-
- ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
-
- DO j = 1, dims(1)
- DO i = 1, REF_REG_BUF_LEN
- buf(j)%ref(i) = ref_buf(REF_REG_BUF_LEN*(j-1) + i)
- ENDDO
- ENDDO
- DEALLOCATE(ref_buf)
- END SUBROUTINE h5dread_reference_dsetreg
-
- SUBROUTINE h5dread_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_integer_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_S_C'::h5dread_integer_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT) :: buf
- END FUNCTION h5dread_integer_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_integer_scalar
-
- SUBROUTINE h5dread_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_integer_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_1_C'::h5dread_integer_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), DIMENSION(dims(1)) :: buf
- END FUNCTION h5dread_integer_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_integer_1
-
- SUBROUTINE h5dread_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_integer_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_2_C'::h5dread_integer_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_integer_2_c
- END INTERFACE
-
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_2
-
- SUBROUTINE h5dread_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- !
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dread_integer_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_3_C'::h5dread_integer_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dread_integer_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_3
-
- SUBROUTINE h5dread_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- !
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dread_integer_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_4_C'::h5dread_integer_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT), DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dread_integer_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_4
-
- SUBROUTINE h5dread_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- !
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dread_integer_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_5_C'::h5dread_integer_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dread_integer_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_5
-
- SUBROUTINE h5dread_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-
- INTERFACE
- INTEGER FUNCTION h5dread_integer_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_6_C'::h5dread_integer_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dread_integer_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_6
-
- SUBROUTINE h5dread_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_integer_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_INTEGER_7_C'::h5dread_integer_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dread_integer_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dread_integer_7
-
- SUBROUTINE h5dread_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_S_C'::h5dreadc_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(OUT) :: buf
- END FUNCTION h5dreadc_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_scalar
-
- SUBROUTINE h5dread_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_1_C'::h5dreadc_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dreadc_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_1
-
- SUBROUTINE h5dread_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_2_C'::h5dreadc_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dreadc_2_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_2
-
- SUBROUTINE h5dread_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_3_C'::h5dreadc_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dreadc_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_3
-
- SUBROUTINE h5dread_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_4_C'::h5dreadc_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dreadc_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_4
-
- SUBROUTINE h5dread_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_5_C'::h5dreadc_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dreadc_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_5
-
- SUBROUTINE h5dread_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_6_C'::h5dreadc_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dreadc_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_6
-
- SUBROUTINE h5dread_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dreadc_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREADC_7_C'::h5dreadc_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dreadc_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dreadc_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_char_7
-
- SUBROUTINE h5dread_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_S_C'::h5dread_real_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(OUT) :: buf
- END FUNCTION h5dread_real_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_scalar
-
- SUBROUTINE h5dread_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- ! INTEGER, EXTERNAL :: h5dread_real_1_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dread_real_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_1_C'::h5dread_real_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dread_real_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_1
-
- SUBROUTINE h5dread_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_2_C'::h5dread_real_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dread_real_2_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_2
-
- SUBROUTINE h5dread_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_3_C'::h5dread_real_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dread_real_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_3
-
- SUBROUTINE h5dread_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_4_C'::h5dread_real_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf
- END FUNCTION h5dread_real_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_4
-
- SUBROUTINE h5dread_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_5_C'::h5dread_real_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dread_real_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_5
-
- SUBROUTINE h5dread_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_6_C'::h5dread_real_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dread_real_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_6
-
- SUBROUTINE h5dread_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dread_real_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_REAL_7_C'::h5dread_real_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(INOUT), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dread_real_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dread_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dread_real_7
-
- SUBROUTINE h5dwrite_reference_obj(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
- TYPE(hobj_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER(HSIZE_T) :: j
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_ref_obj_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_OBJ_C'::h5dwrite_ref_obj_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HADDR_T), DIMENSION(*) :: ref_buf
- INTEGER(HSIZE_T), DIMENSION(*) :: dims
- END FUNCTION h5dwrite_ref_obj_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- ALLOCATE(ref_buf(dims(1)), stat=hdferr)
- IF (hdferr .NE. 0 ) THEN
- hdferr = -1
- RETURN
- ELSE
- DO j = 1, dims(1)
- ref_buf(j) = buf(j)%ref
- ENDDO
- ENDIF
- hdferr = h5dwrite_ref_obj_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims(1))
- DEALLOCATE(ref_buf)
-
- END SUBROUTINE h5dwrite_reference_obj
-
- SUBROUTINE h5dwrite_reference_dsetreg(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims ! size of the bufffer buf
- TYPE(hdset_reg_ref_t_f), DIMENSION(dims(1)), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, ALLOCATABLE, DIMENSION(:) :: ref_buf
- INTEGER :: i
- INTEGER(HSIZE_T) :: j
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_ref_reg_c(dset_id, mem_type_id,&
- mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REF_REG_C'::h5dwrite_ref_reg_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER, DIMENSION(*) :: ref_buf
- INTEGER(HSIZE_T), DIMENSION(*) :: dims
- END FUNCTION h5dwrite_ref_reg_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- ALLOCATE(ref_buf(REF_REG_BUF_LEN*dims(1)), stat=hdferr)
- IF (hdferr .NE. 0 ) THEN
- hdferr = -1
- RETURN
- ELSE
- DO j = 1, dims(1)
- DO i = 1, REF_REG_BUF_LEN
- ref_buf(REF_REG_BUF_LEN*(j-1) + i) = buf(j)%ref(i)
- ENDDO
- ENDDO
- ENDIF
- hdferr = h5dwrite_ref_reg_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, ref_buf, dims)
- DEALLOCATE(ref_buf)
-
- END SUBROUTINE h5dwrite_reference_dsetreg
-
- SUBROUTINE h5dwrite_integer_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER, INTENT(IN) :: buf ! Data buffer
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_S_C'::h5dwrite_integer_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN) :: buf
- END FUNCTION h5dwrite_integer_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_integer_scalar
-
- SUBROUTINE h5dwrite_integer_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_1_C'::h5dwrite_integer_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwrite_integer_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_integer_1
-
- SUBROUTINE h5dwrite_integer_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_2_C'::h5dwrite_integer_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_integer_2_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
- hdferr = h5dwrite_integer_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_2
-
- SUBROUTINE h5dwrite_integer_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_3_C'::h5dwrite_integer_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwrite_integer_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_3
-
- SUBROUTINE h5dwrite_integer_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_4_C'::h5dwrite_integer_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwrite_integer_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_4
-
- SUBROUTINE h5dwrite_integer_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_5_C'::h5dwrite_integer_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwrite_integer_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_5
-
- SUBROUTINE h5dwrite_integer_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_6_C'::h5dwrite_integer_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwrite_integer_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_6
-
- SUBROUTINE h5dwrite_integer_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_integer_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_INTEGER_7_C'::h5dwrite_integer_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- INTEGER, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwrite_integer_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_integer_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, &
- buf, dims)
-
- END SUBROUTINE h5dwrite_integer_7
-
-
- SUBROUTINE h5dwrite_char_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_S_C'::h5dwritec_s_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN) :: buf
- END FUNCTION h5dwritec_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_scalar
-
- SUBROUTINE h5dwrite_char_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_1_C'::h5dwritec_1_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwritec_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_1
-
- SUBROUTINE h5dwrite_char_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_2_C'::h5dwritec_2_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwritec_2_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_2
-
- SUBROUTINE h5dwrite_char_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_3_C'::h5dwritec_3_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwritec_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_3
-
- SUBROUTINE h5dwrite_char_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_4_C'::h5dwritec_4_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwritec_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_4
-
- SUBROUTINE h5dwrite_char_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_5_C'::h5dwritec_5_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwritec_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_5
-
- SUBROUTINE h5dwrite_char_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_6_C'::h5dwritec_6_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwritec_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_6
-
- SUBROUTINE h5dwrite_char_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwritec_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITEC_7_C'::h5dwritec_7_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: buf
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- CHARACTER(LEN=*), INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwritec_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwritec_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_char_7
-
- SUBROUTINE h5dwrite_real_scalar(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN) :: buf ! Data buffer
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_s_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_S_C'::h5dwrite_real_s_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN) :: buf
- END FUNCTION h5dwrite_real_s_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_s_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_scalar
-
- SUBROUTINE h5dwrite_real_1(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_1_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_1_C'::h5dwrite_real_1_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1)) :: buf
- END FUNCTION h5dwrite_real_1_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_1_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_1
-
- SUBROUTINE h5dwrite_real_2(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
-
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_2_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_2_C'::h5dwrite_real_2_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2)) :: buf
- END FUNCTION h5dwrite_real_2_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_2_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_2
-
- SUBROUTINE h5dwrite_real_3(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_3_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_3_C'::h5dwrite_real_3_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3)) :: buf
- END FUNCTION h5dwrite_real_3_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_3_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_3
-
- SUBROUTINE h5dwrite_real_4(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_4_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_4_C'::h5dwrite_real_4_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf
- END FUNCTION h5dwrite_real_4_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_4_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_4
-
- SUBROUTINE h5dwrite_real_5(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_5_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_5_C'::h5dwrite_real_5_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf
- END FUNCTION h5dwrite_real_5_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_5_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_5
-
- SUBROUTINE h5dwrite_real_6(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_6_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_6_C'::h5dwrite_real_6_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf
- END FUNCTION h5dwrite_real_6_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_6_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_6
-
- SUBROUTINE h5dwrite_real_7(dset_id, mem_type_id, buf, dims, hdferr, &
- mem_space_id, file_space_id, xfer_prp)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- INTEGER(HID_T), INTENT(IN) :: mem_type_id ! Memory datatype identifier
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: mem_space_id ! Memory dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: file_space_id ! File dataspace identfier
- INTEGER(HID_T), OPTIONAL, INTENT(IN) :: xfer_prp ! Transfer property list identifier
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
-
- INTERFACE
- INTEGER FUNCTION h5dwrite_real_7_c(dset_id, mem_type_id, &
- mem_space_id_default, &
- file_space_id_default, &
- xfer_prp_default, buf, dims)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_REAL_7_C'::h5dwrite_real_7_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HID_T), INTENT(IN) :: mem_type_id
- INTEGER(HID_T) :: mem_space_id_default
- INTEGER(HID_T) :: file_space_id_default
- INTEGER(HID_T) :: xfer_prp_default
- INTEGER(HSIZE_T), INTENT(IN), DIMENSION(*) :: dims
- REAL, INTENT(IN), &
- DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf
- END FUNCTION h5dwrite_real_7_c
- END INTERFACE
-
- xfer_prp_default = H5P_DEFAULT_F
- mem_space_id_default = H5S_ALL_F
- file_space_id_default = H5S_ALL_F
-
- IF (PRESENT(xfer_prp)) xfer_prp_default = xfer_prp
- IF (PRESENT(mem_space_id)) mem_space_id_default = mem_space_id
- IF (PRESENT(file_space_id)) file_space_id_default = file_space_id
-
- hdferr = h5dwrite_real_7_c(dset_id, mem_type_id, mem_space_id_default, &
- file_space_id_default, xfer_prp_default, buf, dims)
-
- END SUBROUTINE h5dwrite_real_7
-
-!
-! NAME
-! h5dfill_integer
-!
-! PURPOSE
-! Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! INPUTS
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! OUTPUTS
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! March 12, 2003
-!
-!
-
- SUBROUTINE h5dfill_integer(fill_value, space_id, buf, hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
- ! INTEGER, EXTERNAL :: h5dfill_integer_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dfill_integer_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_INTEGER_C'::h5dfill_integer_c
- !DEC$ENDIF
- INTEGER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- INTEGER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfill_integer_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_INTEGER
- mem_type_id = H5T_NATIVE_INTEGER
-
- hdferr = h5dfill_integer_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
-
- END SUBROUTINE h5dfill_integer
-
-!
-! NAME
-! h5dfill_real
-!
-! PURPOSE
-! Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! INPUTS
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! OUTPUTS
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! March 12, 2003
-!
-!
-
- SUBROUTINE h5dfill_real(fill_valuer, space_id, buf, hdferr)
- IMPLICIT NONE
- REAL, INTENT(IN) :: fill_valuer ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
- ! INTEGER, EXTERNAL :: h5dfill_real_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_REAL_C'::h5dfill_real_c
- !DEC$ENDIF
- REAL, INTENT(IN) :: fill_valuer ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- REAL, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfill_real_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_REAL
- mem_type_id = H5T_NATIVE_REAL
-
- hdferr = h5dfill_real_c(fill_valuer, fill_type_id, space_id, &
- buf, mem_type_id)
- END SUBROUTINE h5dfill_real
-
-!
-! NAME
-! h5dfill_char
-!
-! PURPOSE
-! Fills dataspace elements with a fill value in a memory buffer.
-! Only INTEGER, CHARACTER, REAL and DOUBLE PRECISION datatypes
-! of the fillvalues and buffers are supported. Buffer and fillvalue
-! are assumed to have the same datatype.
-! Only one-dimesional buffers are supported.
-!
-! INPUTS
-! fill_value - fill value
-! space_id - memory space selection identifier
-! buf - data buffer iin memory ro apply selection to
-! - of k-th dimension of the buf array
-! OUTPUTS
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! March 12, 2003
-!
-!
-
- SUBROUTINE h5dfill_char(fill_value, space_id, buf, hdferr)
- IMPLICIT NONE
- CHARACTER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
-
- ! INTEGER, EXTERNAL :: h5dfillc_c
- ! MS FORTRAN needs explicit interface for C functions called here.
- !
- INTERFACE
- INTEGER FUNCTION h5dfillc_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILLC_C'::h5dfillc_c
- !DEC$ENDIF
- CHARACTER, INTENT(IN) :: fill_value ! Fill value
- INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
- CHARACTER, INTENT(IN), DIMENSION(*) :: buf ! Memory buffer to fill in
- INTEGER(HID_T) :: mem_type_id ! Buffer dadtype identifier
- END FUNCTION h5dfillc_c
- END INTERFACE
- fill_type_id = H5T_NATIVE_CHARACTER
- mem_type_id = H5T_NATIVE_CHARACTER
-
- hdferr = h5dfillc_c(fill_value, fill_type_id, space_id, &
- buf, mem_type_id)
-
- END SUBROUTINE h5dfill_char
-
-
-END MODULE H5D_PROVISIONAL
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.F90
index 7b56376..ca32b22 100644
--- a/fortran/src/H5Eff.f90
+++ b/fortran/src/H5Eff.F90
@@ -247,5 +247,66 @@ CONTAINS
hdferr = h5eget_minor_c(error_no, name)
END SUBROUTINE h5eget_minor_f
+!****s* H5E/h5eset_auto_f
+!
+! NAME
+! h5eset_auto_f
+!
+! PURPOSE
+! Returns settings for automatic error stack traversal function and its data.
+!
+! Inputs:
+! printflag - Flag to turn automatic error printing on or off;
+! possible values are:
+! printon (1)
+! printoff(0)
+! estack_id - Error stack identifier.
+! func - Function to be called upon an error condition.
+! client_data - Data passed to the error function
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 10, 2009
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data)
+ USE, INTRINSIC :: ISO_C_BINDING
+ INTEGER , INTENT(IN) :: printflag
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T), INTENT(IN) , OPTIONAL :: estack_id
+ TYPE(C_FUNPTR), INTENT(IN) , OPTIONAL :: func
+ TYPE(C_PTR) , INTENT(IN) , OPTIONAL :: client_data
+!*****
+ INTEGER(HID_T) :: estack_id_default
+ TYPE(C_FUNPTR) :: func_default
+ TYPE(C_PTR) :: client_data_default
+ INTERFACE
+ INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) &
+ BIND(C, NAME='h5eset_auto2_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
+ USE H5GLOBAL
+ INTEGER :: printflag
+ INTEGER(HID_T) :: estack_id
+!!$ TYPE(C_FUNPTR) :: func
+!!$ TYPE(C_PTR), VALUE :: client_data
+ TYPE(C_FUNPTR), VALUE :: func
+ TYPE(C_PTR), VALUE :: client_data
+ END FUNCTION h5eset_auto2_c
+ END INTERFACE
+
+ estack_id_default = -1
+ func_default = C_NULL_FUNPTR
+ client_data_default = C_NULL_PTR
+
+ IF(PRESENT(estack_id)) estack_id_default = estack_id
+ IF(PRESENT(func)) func_default = func
+ IF(PRESENT(client_data)) client_data_default = client_data
+
+ hdferr = h5eset_auto2_c(printflag, estack_id_default, func_default, client_data_default)
+ END SUBROUTINE h5eset_auto_f
+
END MODULE H5E
diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90
deleted file mode 100644
index ff8d11c..0000000
--- a/fortran/src/H5Eff_F03.f90
+++ /dev/null
@@ -1,108 +0,0 @@
-!****h* ROBODoc/H5E (F03)
-!
-! NAME
-! H5E_PROVISIONAL
-!
-! FILE
-! src/fortran/src/H5Eff_F03.f90
-!
-! PURPOSE
-!
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5E functions.
-! It contains the same functions as H5Eff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Eff_F90.f90 if Fortran 2003 functions are enabled.
-!
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5E function to the module you must add the function name
-! to the Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5E_PROVISIONAL
-
- USE H5GLOBAL
-
-CONTAINS
-
-!****s* H5E/h5eset_auto_f
-!
-! NAME
-! h5eset_auto_f
-!
-! PURPOSE
-! Returns settings for automatic error stack traversal function and its data.
-!
-! Inputs:
-! printflag - Flag to turn automatic error printing on or off;
-! possible values are:
-! printon (1)
-! printoff(0)
-! estack_id - Error stack identifier.
-! func - Function to be called upon an error condition.
-! client_data - Data passed to the error function
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! July 10, 2009
-!
-! Fortran2003 Interface:
- SUBROUTINE h5eset_auto_f(printflag, hdferr, estack_id, func, client_data)
- USE, INTRINSIC :: ISO_C_BINDING
- INTEGER , INTENT(IN) :: printflag
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(HID_T), INTENT(IN) , OPTIONAL :: estack_id
- TYPE(C_FUNPTR), INTENT(IN) , OPTIONAL :: func
- TYPE(C_PTR) , INTENT(IN) , OPTIONAL :: client_data
-!*****
- INTEGER(HID_T) :: estack_id_default
- TYPE(C_FUNPTR) :: func_default
- TYPE(C_PTR) :: client_data_default
- INTERFACE
- INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) &
- BIND(C, NAME='h5eset_auto2_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
- USE H5GLOBAL
- INTEGER :: printflag
- INTEGER(HID_T) :: estack_id
-!!$ TYPE(C_FUNPTR) :: func
-!!$ TYPE(C_PTR), VALUE :: client_data
- TYPE(C_FUNPTR), VALUE :: func
- TYPE(C_PTR), VALUE :: client_data
- END FUNCTION h5eset_auto2_c
- END INTERFACE
-
- estack_id_default = -1
- func_default = C_NULL_FUNPTR
- client_data_default = C_NULL_PTR
-
- IF(PRESENT(estack_id)) estack_id_default = estack_id
- IF(PRESENT(func)) func_default = func
- IF(PRESENT(client_data)) client_data_default = client_data
-
- hdferr = h5eset_auto2_c(printflag, estack_id_default, func_default, client_data_default)
- END SUBROUTINE h5eset_auto_f
-
-END MODULE H5E_PROVISIONAL
diff --git a/fortran/src/H5Eff_F90.f90 b/fortran/src/H5Eff_F90.f90
deleted file mode 100644
index 158ec12..0000000
--- a/fortran/src/H5Eff_F90.f90
+++ /dev/null
@@ -1,89 +0,0 @@
-!****h* ROBODoc/H5E (F90)
-!
-! NAME
-! MODULE H5E_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5E functions. It contains
-! the same functions as H5Eff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Eff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5E_PROVISIONAL
-
- USE H5GLOBAL
-
-CONTAINS
-
-!****s* H5E/h5eset_auto_f
-!
-! NAME
-! h5eset_auto_f
-!
-! PURPOSE
-! Turns automatic error printing on or off.
-!
-! INPUTS
-! printflag - Flag to turn automatic error printing on or off;
-! possible values are:
-! printon (1)
-! printoff(0)
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). April 6, 2001
-!
-! SOURCE
- SUBROUTINE h5eset_auto_f(printflag, hdferr)
- INTEGER, INTENT(IN) :: printflag ! flag to turn automatic error
- ! printing on or off
- ! possible values are:
- ! printon (1)
- ! printoff(0)
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5eset_auto_c(printflag)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO_C'::h5eset_auto_c
- !DEC$ENDIF
- INTEGER :: printflag
- END FUNCTION h5eset_auto_c
- END INTERFACE
-
- hdferr = h5eset_auto_c(printflag)
- END SUBROUTINE h5eset_auto_f
-
-
-END MODULE H5E_PROVISIONAL
diff --git a/fortran/src/H5FDmpioff.f90 b/fortran/src/H5FDmpioff.F90
index 50a77d9..50a77d9 100644
--- a/fortran/src/H5FDmpioff.f90
+++ b/fortran/src/H5FDmpioff.F90
diff --git a/fortran/src/H5Fff.f90 b/fortran/src/H5Fff.F90
index faa1967..53df8c5 100644
--- a/fortran/src/H5Fff.f90
+++ b/fortran/src/H5Fff.F90
@@ -35,6 +35,7 @@
MODULE H5F
USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
CONTAINS
!****s* H5F/h5fcreate_f
@@ -830,5 +831,64 @@ CONTAINS
hdferr = h5fget_filesize_c(file_id, size)
END SUBROUTINE h5fget_filesize_f
+!****s* H5F (F03)/h5fget_file_image_f_F03
+!
+! NAME
+! h5fget_file_image_f
+!
+! PURPOSE
+! Retrieves a copy of the image of an existing, open file.
+!
+! INPUTS
+! file_id - Target file identifier.
+! buf_ptr - Pointer to the buffer into which the image of the HDF5 file is to be copied.
+! buf_len - Size of the supplied buffer.
+!
+! OUTPUTS
+! hdferr - error code:
+! 0 on success and -1 on failure
+! OPTIONAL PARAMETERS
+! buf_size - Returns the size in bytes of the buffer required to store the file image,
+! no data will be copied.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! November 26, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5fget_file_image_f(file_id, buf_ptr, buf_len, hdferr, buf_size)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: file_id
+ TYPE(C_PTR) , INTENT(INOUT) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(SIZE_T), INTENT(OUT) , OPTIONAL :: buf_size
+!*****
+
+ INTEGER(SIZE_T) :: buf_size_default
+
+ INTERFACE
+ INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
+ USE H5GLOBAL
+ INTEGER(HID_T) , INTENT(IN) :: file_id
+ TYPE(C_PTR) , VALUE :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ INTEGER(SIZE_T), INTENT(IN) :: buf_size
+ END FUNCTION h5fget_file_image_c
+ END INTERFACE
+
+ IF(PRESENT(buf_size))THEN
+ buf_ptr = C_NULL_PTR
+ ENDIF
+
+ hdferr = h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size_default)
+
+ IF(PRESENT(buf_size))THEN
+ buf_size = buf_size_default
+ ENDIF
+
+ END SUBROUTINE h5fget_file_image_f
END MODULE H5F
diff --git a/fortran/src/H5Fff_F03.f90 b/fortran/src/H5Fff_F03.f90
deleted file mode 100644
index 8544870..0000000
--- a/fortran/src/H5Fff_F03.f90
+++ /dev/null
@@ -1,99 +0,0 @@
-!****h* ROBODoc/H5F (F03)
-!
-! NAME
-! H5F_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 2003 interfaces for H5F functions.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5T function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5F_PROVISIONAL
-
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING
-
-CONTAINS
-!****s* H5F (F03)/h5fget_file_image_f_F03
-!
-! NAME
-! h5fget_file_image_f
-!
-! PURPOSE
-! Retrieves a copy of the image of an existing, open file.
-!
-! INPUTS
-! file_id - Target file identifier.
-! buf_ptr - Pointer to the buffer into which the image of the HDF5 file is to be copied.
-! buf_len - Size of the supplied buffer.
-!
-! OUTPUTS
-! hdferr - error code:
-! 0 on success and -1 on failure
-! OPTIONAL PARAMETERS
-! buf_size - Returns the size in bytes of the buffer required to store the file image,
-! no data will be copied.
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! November 26, 2012
-!
-! Fortran2003 Interface:
- SUBROUTINE h5fget_file_image_f(file_id, buf_ptr, buf_len, hdferr, buf_size)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: file_id
- TYPE(C_PTR) , INTENT(INOUT) :: buf_ptr
- INTEGER(SIZE_T), INTENT(IN) :: buf_len
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(SIZE_T), INTENT(OUT) , OPTIONAL :: buf_size
-!*****
-
- INTEGER(SIZE_T) :: buf_size_default
-
- INTERFACE
- INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
- USE H5GLOBAL
- INTEGER(HID_T) , INTENT(IN) :: file_id
- TYPE(C_PTR) , VALUE :: buf_ptr
- INTEGER(SIZE_T), INTENT(IN) :: buf_len
- INTEGER(SIZE_T), INTENT(IN) :: buf_size
- END FUNCTION h5fget_file_image_c
- END INTERFACE
-
- IF(PRESENT(buf_size))THEN
- buf_ptr = C_NULL_PTR
- ENDIF
-
- hdferr = h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size_default)
-
- IF(PRESENT(buf_size))THEN
- buf_size = buf_size_default
- ENDIF
-
- END SUBROUTINE h5fget_file_image_f
-
-END MODULE H5F_PROVISIONAL
diff --git a/fortran/src/H5Fff_F90.f90 b/fortran/src/H5Fff_F90.f90
deleted file mode 100644
index b6e659b..0000000
--- a/fortran/src/H5Fff_F90.f90
+++ /dev/null
@@ -1,43 +0,0 @@
-!****h* ROBODoc/H5F (F90)
-!
-! NAME
-! H5F_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5F functions. It
-! containsthe same functions as H5Fff_F03.f90, when applicable,
-! but excludes the Fortran 2003 functions and the interface listings.
-! This file will be compiled instead of H5Fff_F03.f90 if Fortran 2003
-! functions are not enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5F function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-
-MODULE H5F_PROVISIONAL
-
- USE H5GLOBAL
- IMPLICIT NONE
-
-END MODULE H5F_PROVISIONAL
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.F90
index d4d7496..d4d7496 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.F90
diff --git a/fortran/src/H5Iff.f90 b/fortran/src/H5Iff.F90
index 7c9a843..7c9a843 100644
--- a/fortran/src/H5Iff.f90
+++ b/fortran/src/H5Iff.F90
diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c
index 6523ab4..f4ad1d4 100644
--- a/fortran/src/H5Lf.c
+++ b/fortran/src/H5Lf.c
@@ -53,7 +53,7 @@
*/
int_f
-nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
+h5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id)
/******/
@@ -110,7 +110,7 @@ done:
*/
int_f
-nh5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen,
+h5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id)
/******/
@@ -170,7 +170,7 @@ done:
*/
int_f
-nh5ldelete_c ( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id )
+h5ldelete_c ( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id )
/******/
{
char *c_name = NULL;
@@ -218,7 +218,7 @@ done:
*/
int_f
-nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
+h5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_name_len,
hid_t_f *lcpl_id, hid_t_f *lapl_id )
@@ -275,7 +275,7 @@ nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
* SOURCE
*/
int_f
-nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
+h5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id )
@@ -344,7 +344,7 @@ nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
* SOURCE
*/
int_f
-nh5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+h5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id)
/******/
{
@@ -397,7 +397,7 @@ done:
* SOURCE
*/
int_f
-nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists)
+h5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists)
/******/
{
char *c_name = NULL; /* Buffer to hold C string */
@@ -456,7 +456,7 @@ done:
* SOURCE
*/
int_f
-nh5lget_info_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
+h5lget_info_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
int_f *cset, int_f *corder, int_f *corder_valid, int_f *link_type,
haddr_t_f *address, size_t_f *val_size,
hid_t_f *lapl_id)
@@ -525,7 +525,7 @@ done:
* SOURCE
*/
int_f
-nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+h5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
int_f *link_type, int_f *corder_valid, int_f *corder, int_f *cset, haddr_t_f *address, size_t_f *val_size, hid_t_f *lapl_id)
/******/
@@ -588,7 +588,7 @@ done:
* SOURCE
*/
int_f
-nh5lis_registered_c(int_f *link_cls_id)
+h5lis_registered_c(int_f *link_cls_id)
/******/
{
int_f ret_value; /* Return value */
@@ -643,7 +643,7 @@ nh5lis_registered_c(int_f *link_cls_id)
* SOURCE
*/
int_f
-nh5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
+h5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id)
/******/
{
@@ -701,7 +701,7 @@ done:
* SOURCE
*/
int_f
-nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+h5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
size_t_f *size, _fcd name, hid_t_f *lapl_id)
/******/
@@ -774,7 +774,7 @@ done:
/* * SOURCE */
/* *\/ */
/* int_f */
-/* nh5lget_val_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, */
+/* h5lget_val_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, */
/* size_t_f *size, _fcd linkval_buff, */
/* hid_t_f *lapl_id) */
/* { */
@@ -842,7 +842,7 @@ done:
/* int_f */
-/* nh5lregistered_c(int_f *version, int_f *class_id, */
+/* h5lregistered_c(int_f *version, int_f *class_id, */
/* _fcd comment, size_t_f *comment_len, */
/* _fcd create_func, size_t_f *create_func_len, */
/* _fcd move_func, size_t_f *move_func_len, */
@@ -938,7 +938,7 @@ done:
* SOURCE
*/
int_f
-nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
+h5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
void *linkval_buff, hid_t_f *lapl_id)
/******/
{
diff --git a/fortran/src/H5Lff.f90 b/fortran/src/H5Lff.F90
index 4660e52..41f3d9d 100644
--- a/fortran/src/H5Lff.f90
+++ b/fortran/src/H5Lff.F90
@@ -35,6 +35,37 @@
MODULE H5L
USE H5GLOBAL
+ USE ISO_C_BINDING
+
+ IMPLICIT NONE
+
+!****t* H5L (F03)/h5l_info_t
+!
+! Fortran2003 Derived Type:
+!
+ TYPE, bind(c) :: union_t
+ INTEGER(haddr_t) :: address
+ INTEGER(size_t) :: val_size
+ END TYPE union_t
+
+ TYPE, bind(c) :: h5l_info_t
+ INTEGER(c_int) :: type ! H5L_type_t type
+! LOGICAL(c_bool) :: corder_valid ! hbool_t corder_valid
+ INTEGER(c_int64_t) :: corder ! int64_t corder;
+ INTEGER(c_int) :: cset ! H5T_cset_t cset;
+ TYPE(union_t) :: u
+ END TYPE h5l_info_t
+
+!*****
+
+!type specifies the link class. Valid values include the following:
+! H5L_TYPE_HARD Hard link
+! H5L_TYPE_SOFT Soft link
+! H5L_TYPE_EXTERNAL External link
+! H5L_TYPE_ERROR Error
+!cset specifies the character set in which the link name is encoded. Valid values include the following:
+! H5T_CSET_ASCII US ASCII
+! H5T_CSET_UTF8 UTF-8 Unicode encoding
CONTAINS
@@ -87,16 +118,13 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lcopy_c(src_loc_id, src_name, src_namelen, dest_loc_id, dest_name, dest_namelen, &
- lcpl_id_default, lapl_id_default)
+ lcpl_id_default, lapl_id_default) BIND(C,name='h5lcopy_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCOPY_C'::h5lcopy_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: src_name, dest_name
INTEGER(HID_T), INTENT(IN) :: src_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: src_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name
INTEGER(HID_T), INTENT(IN) :: dest_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: dest_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dest_name
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
@@ -154,14 +182,11 @@ CONTAINS
INTEGER(SIZE_T) :: namelen
INTERFACE
- INTEGER FUNCTION h5ldelete_c(loc_id, name, namelen, lapl_id_default)
+ INTEGER FUNCTION h5ldelete_c(loc_id, name, namelen, lapl_id_default) BIND(C,name='h5ldelete_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LDELETE_C'::h5ldelete_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
INTEGER(HID_T) :: lapl_id_default
INTEGER(SIZE_T) :: namelen
END FUNCTION h5ldelete_c
@@ -220,16 +245,13 @@ CONTAINS
INTEGER FUNCTION h5lcreate_soft_c(target_path, target_path_len, &
link_loc_id, &
link_name,link_name_len, &
- lcpl_id_default, lapl_id_default )
+ lcpl_id_default, lapl_id_default ) BIND(C,NAME='h5lcreate_soft_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_SOFT_C'::h5lcreate_soft_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: target_path, link_name
- CHARACTER(LEN=*), INTENT(IN) :: target_path
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: target_path
INTEGER(SIZE_T) :: target_path_len
INTEGER(HID_T), INTENT(IN) :: link_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: link_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name
INTEGER(SIZE_T) :: link_name_len
INTEGER(HID_T) :: lcpl_id_default
INTEGER(HID_T) :: lapl_id_default
@@ -299,17 +321,13 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lcreate_hard_c(obj_loc_id, obj_name, obj_namelen, &
- link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default)
-
+ link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default) BIND(C,NAME='h5lcreate_hard_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_HARD_C'::h5lcreate_hard_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: obj_name, link_name
INTEGER(HID_T), INTENT(IN) :: obj_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name
INTEGER(HID_T), INTENT(IN) :: link_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: link_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: link_namelen
INTEGER(HID_T) :: lcpl_id_default
@@ -380,17 +398,13 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lcreate_external_c(file_name, file_namelen, obj_name, obj_namelen, &
- link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default)
-
+ link_loc_id, link_name, link_namelen, lcpl_id_default, lapl_id_default) BIND(C,NAME='h5lcreate_external_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LCREATE_EXTERNAL_C'::h5lcreate_external_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: file_name, obj_name, link_name
- CHARACTER(LEN=*), INTENT(IN) :: file_name
- CHARACTER(LEN=*), INTENT(IN) :: obj_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: file_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: obj_name
INTEGER(HID_T), INTENT(IN) :: link_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: link_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name
INTEGER(SIZE_T) :: file_namelen
INTEGER(SIZE_T) :: obj_namelen
INTEGER(SIZE_T) :: link_namelen
@@ -471,14 +485,12 @@ CONTAINS
INTEGER(SIZE_T) :: group_namelen
INTERFACE
- INTEGER FUNCTION h5ldelete_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, lapl_id_default)
+ INTEGER FUNCTION h5ldelete_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, lapl_id_default) &
+ BIND(C,NAME='h5ldelete_by_idx_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LDELETE_BY_IDX_C'::h5ldelete_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: group_name
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: group_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
INTEGER, INTENT(IN) :: index_field
INTEGER, INTENT(IN) :: order
INTEGER(HSIZE_T), INTENT(IN) :: n
@@ -530,18 +542,16 @@ CONTAINS
! Link access property list identifier.
!*****
INTEGER :: link_exists_c
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: namelen
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: namelen
INTERFACE
- INTEGER FUNCTION h5lexists_c(loc_id, name, namelen, lapl_id_default, link_exists_c)
+ INTEGER FUNCTION h5lexists_c(loc_id, name, namelen, lapl_id_default, link_exists_c) &
+ BIND(C,NAME='h5lexists_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LEXISTS_C'::h5lexists_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
INTEGER(SIZE_T), INTENT(IN) :: namelen
INTEGER, INTENT(OUT) :: link_exists_c
INTEGER(HID_T) :: lapl_id_default
@@ -636,14 +646,11 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lget_info_c(link_loc_id, link_name, link_namelen, &
cset, corder, corder_valid, link_type, address, val_size, &
- lapl_id_default)
+ lapl_id_default) BIND(C,NAME='h5lget_info_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_INFO_C'::h5lget_info_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: link_name
INTEGER(HID_T), INTENT(IN) :: link_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: link_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name
INTEGER, INTENT(OUT) :: cset
INTEGER, INTENT(OUT) :: corder
INTEGER, INTENT(OUT) :: link_type
@@ -750,14 +757,12 @@ CONTAINS
!
INTERFACE
INTEGER FUNCTION h5lget_info_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, &
- link_type, corder_valid, corder, cset, address, val_size, lapl_id_default)
+ link_type, corder_valid, corder, cset, address, val_size, lapl_id_default) &
+ BIND(C,NAME='h5lget_info_by_idx_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_INFO_BY_IDX_C'::h5lget_info_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: group_name
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: group_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
INTEGER(SIZE_T) :: group_namelen
INTEGER, INTENT(IN) :: index_field
INTEGER, INTENT(IN) :: order
@@ -818,11 +823,8 @@ CONTAINS
! 0 on success and -1 on failure
!*****
INTERFACE
- INTEGER FUNCTION h5lis_registered_c(link_cls_id)
+ INTEGER FUNCTION h5lis_registered_c(link_cls_id) BIND(C,NAME='h5lis_registered_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LIS_REGISTERED_C'::h5lis_registered_c
- !DEC$ENDIF
INTEGER, INTENT(IN) :: link_cls_id ! User-defined link class identifier
END FUNCTION h5lis_registered_c
END INTERFACE
@@ -886,18 +888,15 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lmove_c(src_loc_id, src_name, src_namelen, dest_loc_id, &
- dest_name, dest_namelen, lcpl_id_default, lapl_id_default)
+ dest_name, dest_namelen, lcpl_id_default, lapl_id_default) BIND(C,NAME='h5lmove_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LMOVE_C'::h5lmove_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: src_name, dest_name
INTEGER(HID_T), INTENT(IN) :: src_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: src_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: src_name
INTEGER(SIZE_T) :: src_namelen
INTEGER(HID_T), INTENT(IN) :: dest_loc_id
- CHARACTER(LEN=*), INTENT(IN) :: dest_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: dest_name
INTEGER(SIZE_T) :: dest_namelen
INTEGER(HID_T) :: lcpl_id_default
@@ -976,21 +975,18 @@ CONTAINS
INTERFACE
INTEGER FUNCTION h5lget_name_by_idx_c(loc_id, group_name, group_namelen, index_field, order, n, &
- size_default, name, lapl_id_default)
+ size_default, name, lapl_id_default) BIND(C,NAME='h5lget_name_by_idx_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_NAME_BY_IDX_C'::h5lget_name_by_idx_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: group_name, name
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: group_name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
INTEGER(SIZE_T) :: group_namelen
INTEGER, INTENT(IN) :: index_field
INTEGER, INTENT(IN) :: order
INTEGER(HSIZE_T), INTENT(IN) :: n
INTEGER(SIZE_T) :: size_default
- CHARACTER(LEN=*), INTENT(OUT) :: name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(OUT) :: name
INTEGER(HID_T) :: lapl_id_default
END FUNCTION h5lget_name_by_idx_c
END INTERFACE
@@ -1085,7 +1081,7 @@ CONTAINS
!!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_VAL_BY_IDX_C'::h5lget_val_by_idx_c
!!$ !DEC$ENDIF
!!$ INTEGER(HID_T), INTENT(IN) :: loc_id
-!!$ CHARACTER(LEN=*), INTENT(IN) :: group_name
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
!!$ INTEGER(SIZE_T) :: group_namelen
!!$ INTEGER, INTENT(IN) :: index_field
!!$ INTEGER, INTENT(IN) :: order
@@ -1166,7 +1162,7 @@ CONTAINS
!!$ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LGET_VAL_C'::h5lget_val_c
!!$ !DEC$ENDIF
!!$ INTEGER(HID_T), INTENT(IN) :: link_loc_id ! File or group identifier.
-!!$ CHARACTER(LEN=*), INTENT(IN) :: link_name ! Link whose value is to be returned.
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: link_name ! Link whose value is to be returned.
!!$ INTEGER :: link_namelen
!!$ INTEGER(SIZE_T), INTENT(IN) :: size ! Maximum number of characters of link value to be returned.
!!$
@@ -1259,13 +1255,13 @@ CONTAINS
!!$ !DEC$ENDIF
!!$ INTEGER, INTENT(IN) :: version ! Version number of this struct
!!$ INTEGER, INTENT(IN) :: class_id ! Link class identifier
-!!$ CHARACTER(LEN=*), INTENT(IN) :: comment ! Comment for debugging
-!!$ CHARACTER(LEN=*), INTENT(IN) :: create_func ! Callback during link creation
-!!$ CHARACTER(LEN=*), INTENT(IN) :: move_func ! Callback after moving link
-!!$ CHARACTER(LEN=*), INTENT(IN) :: copy_func ! Callback after copying link
-!!$ CHARACTER(LEN=*), INTENT(IN) :: trav_func ! The main traversal function
-!!$ CHARACTER(LEN=*), INTENT(IN) :: del_func ! Callback for link deletion
-!!$ CHARACTER(LEN=*), INTENT(IN) :: query_func ! Callback for queries
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: comment ! Comment for debugging
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: create_func ! Callback during link creation
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: move_func ! Callback after moving link
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: copy_func ! Callback after copying link
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: trav_func ! The main traversal function
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: del_func ! Callback for link deletion
+!!$ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: query_func ! Callback for queries
!!$ INTEGER, INTENT(OUT) :: hdferr ! Error code:
!!$ ! 0 on success and -1 on failure
!!$ INTEGER :: comment_len
@@ -1297,4 +1293,169 @@ CONTAINS
!!$
!!$ END SUBROUTINE H5Lregistered_f
+!****s* H5L (F03)/h5literate_f
+!
+! NAME
+! h5literate_f
+!
+! PURPOSE
+! Iterates through links in a group.
+!
+! Inputs:
+! group_id - Identifier specifying subject group
+! index_type - Type of index which determines the order:
+! H5_INDEX_NAME_F - Alpha-numeric index on name
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! order - Order within index:
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - Fastest available order
+! idx - IN: Iteration position at which to start
+! op - Callback function passing data regarding the link to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the link
+!
+! Outputs:
+! idx - OUT: Position at which an interrupted iteration may be restarted
+! return_value - Success: The return value of the first operator that
+! returns non-zero, or zero if all members were
+! processed with no operator returning non-zero.
+!
+! Failure: Negative if something goes wrong within the
+! library, or the negative value returned by one
+! of the operators.
+!
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! July 8, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5literate_f(group_id, index_type, order, idx, op, op_data, return_value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: group_id
+ INTEGER , INTENT(IN) :: index_type
+ INTEGER , INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR) , INTENT(IN) :: op
+ TYPE(C_PTR) , INTENT(IN) :: op_data
+ INTEGER , INTENT(OUT) :: return_value
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) &
+ BIND(C, NAME='h5literate_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: group_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ END FUNCTION h5literate_c
+ END INTERFACE
+
+ return_value = h5literate_c(group_id, index_type, order, idx, op, op_data)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5literate_f
+
+!****s* H5L (F03)/h5literate_by_name_f
+!
+! NAME
+! h5literate_by_name_f
+!
+! PURPOSE
+! Iterates through links in a group.
+!
+! Inputs:
+! loc_id - File or group identifier specifying location of subject group
+! group_name - Name of subject group
+! index_type - Type of index which determines the order:
+! H5_INDEX_NAME_F - Alpha-numeric index on name
+! H5_INDEX_CRT_ORDER_F - Index on creation order
+! order - Order within index:
+! H5_ITER_INC_F - Increasing order
+! H5_ITER_DEC_F - Decreasing order
+! H5_ITER_NATIVE_F - Fastest available order
+! idx - IN: Iteration position at which to start
+! op - Callback function passing data regarding the link to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the link
+!
+! Outputs:
+! idx - OUT: Position at which an interrupted iteration may be restarted
+! return_value - Success: The return value of the first operator that
+! returns non-zero, or zero if all members were
+! processed with no operator returning non-zero.
+!
+! Failure: Negative if something goes wrong within the
+! library, or the negative value returned by one
+! of the operators.
+!
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! Optional parameters:
+! lapl_id - Link access property list
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! Augest 18, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, &
+ idx, op, op_data, return_value, hdferr, lapl_id)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: group_name
+ INTEGER , INTENT(IN) :: index_type
+ INTEGER , INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR) , INTENT(IN) :: op
+ TYPE(C_PTR) , INTENT(IN) :: op_data
+ INTEGER , INTENT(OUT) :: return_value
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id
+!*****
+ INTEGER(HID_T) :: lapl_id_default
+ INTEGER(SIZE_T) :: namelen
+
+ INTERFACE
+ INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order,&
+ idx, op, op_data, lapl_id_default) BIND(C, NAME='h5literate_by_name_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
+ USE H5GLOBAL
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER(SIZE_T) , INTENT(IN) :: namelen
+ INTEGER , INTENT(IN) :: index_type
+ INTEGER , INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(INOUT) :: idx
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
+ END FUNCTION
+ END INTERFACE
+
+ namelen = LEN(group_name)
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ return_value = h5literate_by_name_c(loc_id, group_name, namelen, index_type, order, idx, op, op_data, lapl_id_default)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5literate_by_name_f
+
END MODULE H5L
diff --git a/fortran/src/H5Lff_F03.f90 b/fortran/src/H5Lff_F03.f90
deleted file mode 100644
index fa95717..0000000
--- a/fortran/src/H5Lff_F03.f90
+++ /dev/null
@@ -1,242 +0,0 @@
-!****h* ROBODoc/H5L (F03)
-!
-! NAME
-! H5L_PROVISIONAL
-!
-! FILE
-! src/fortran/src/H5Lff_F03.f90
-!
-! PURPOSE
-!
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5L functions.
-! It contains the same functions as H5Lff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Lff_F90.f90 if Fortran 2003 functions are enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5A function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5L_PROVISIONAL
-
- USE H5GLOBAL
- USE ISO_C_BINDING
-
- IMPLICIT NONE
-
-!****t* H5L (F03)/h5l_info_t
-!
-! Fortran2003 Derived Type:
-!
- TYPE, bind(c) :: union_t
- INTEGER(haddr_t) :: address
- INTEGER(size_t) :: val_size
- END TYPE union_t
-
- TYPE, bind(c) :: h5l_info_t
- INTEGER(c_int) :: type ! H5L_type_t type
-! LOGICAL(c_bool) :: corder_valid ! hbool_t corder_valid
- INTEGER(c_int64_t) :: corder ! int64_t corder;
- INTEGER(c_int) :: cset ! H5T_cset_t cset;
- TYPE(union_t) :: u
- END TYPE h5l_info_t
-
-!*****
-
-!type specifies the link class. Valid values include the following:
-! H5L_TYPE_HARD Hard link
-! H5L_TYPE_SOFT Soft link
-! H5L_TYPE_EXTERNAL External link
-! H5L_TYPE_ERROR Error
-!cset specifies the character set in which the link name is encoded. Valid values include the following:
-! H5T_CSET_ASCII US ASCII
-! H5T_CSET_UTF8 UTF-8 Unicode encoding
-
-CONTAINS
-
-!****s* H5L (F03)/h5literate_f
-!
-! NAME
-! h5literate_f
-!
-! PURPOSE
-! Iterates through links in a group.
-!
-! Inputs:
-! group_id - Identifier specifying subject group
-! index_type - Type of index which determines the order:
-! H5_INDEX_NAME_F - Alpha-numeric index on name
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! order - Order within index:
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - Fastest available order
-! idx - IN: Iteration position at which to start
-! op - Callback function passing data regarding the link to the calling application
-! op_data - User-defined pointer to data required by the application for its processing of the link
-!
-! Outputs:
-! idx - OUT: Position at which an interrupted iteration may be restarted
-! return_value - Success: The return value of the first operator that
-! returns non-zero, or zero if all members were
-! processed with no operator returning non-zero.
-!
-! Failure: Negative if something goes wrong within the
-! library, or the negative value returned by one
-! of the operators.
-!
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! July 8, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5literate_f(group_id, index_type, order, idx, op, op_data, return_value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: group_id
- INTEGER , INTENT(IN) :: index_type
- INTEGER , INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(INOUT) :: idx
- TYPE(C_FUNPTR) , INTENT(IN) :: op
- TYPE(C_PTR) , INTENT(IN) :: op_data
- INTEGER , INTENT(OUT) :: return_value
- INTEGER , INTENT(OUT) :: hdferr
-!*****
- INTERFACE
- INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) &
- BIND(C, NAME='h5literate_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: group_id
- INTEGER, INTENT(IN) :: index_type
- INTEGER, INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(INOUT) :: idx
- TYPE(C_FUNPTR), VALUE :: op
- TYPE(C_PTR), VALUE :: op_data
- END FUNCTION h5literate_c
- END INTERFACE
-
- return_value = h5literate_c(group_id, index_type, order, idx, op, op_data)
-
- IF(return_value.GE.0)THEN
- hdferr = 0
- ELSE
- hdferr = -1
- END IF
-
- END SUBROUTINE h5literate_f
-
-!****s* H5L (F03)/h5literate_by_name_f
-!
-! NAME
-! h5literate_by_name_f
-!
-! PURPOSE
-! Iterates through links in a group.
-!
-! Inputs:
-! loc_id - File or group identifier specifying location of subject group
-! group_name - Name of subject group
-! index_type - Type of index which determines the order:
-! H5_INDEX_NAME_F - Alpha-numeric index on name
-! H5_INDEX_CRT_ORDER_F - Index on creation order
-! order - Order within index:
-! H5_ITER_INC_F - Increasing order
-! H5_ITER_DEC_F - Decreasing order
-! H5_ITER_NATIVE_F - Fastest available order
-! idx - IN: Iteration position at which to start
-! op - Callback function passing data regarding the link to the calling application
-! op_data - User-defined pointer to data required by the application for its processing of the link
-!
-! Outputs:
-! idx - OUT: Position at which an interrupted iteration may be restarted
-! return_value - Success: The return value of the first operator that
-! returns non-zero, or zero if all members were
-! processed with no operator returning non-zero.
-!
-! Failure: Negative if something goes wrong within the
-! library, or the negative value returned by one
-! of the operators.
-!
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! Optional parameters:
-! lapl_id - Link access property list
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! Augest 18, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, &
- idx, op, op_data, return_value, hdferr, lapl_id)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: group_name
- INTEGER , INTENT(IN) :: index_type
- INTEGER , INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(INOUT) :: idx
- TYPE(C_FUNPTR) , INTENT(IN) :: op
- TYPE(C_PTR) , INTENT(IN) :: op_data
- INTEGER , INTENT(OUT) :: return_value
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(HID_T) , INTENT(IN), OPTIONAL :: lapl_id
-!*****
- INTEGER(HID_T) :: lapl_id_default
- INTEGER(SIZE_T) :: namelen
-
- INTERFACE
- INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order,&
- idx, op, op_data, lapl_id_default) BIND(C, NAME='h5literate_by_name_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
- USE H5GLOBAL
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER(SIZE_T) , INTENT(IN) :: namelen
- INTEGER , INTENT(IN) :: index_type
- INTEGER , INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(INOUT) :: idx
- TYPE(C_FUNPTR), VALUE :: op
- TYPE(C_PTR), VALUE :: op_data
- INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
- END FUNCTION
- END INTERFACE
-
- namelen = LEN(group_name)
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- return_value = h5literate_by_name_c(loc_id, group_name, namelen, index_type, order, idx, op, op_data, lapl_id_default)
-
- IF(return_value.GE.0)THEN
- hdferr = 0
- ELSE
- hdferr = -1
- END IF
-
- END SUBROUTINE h5literate_by_name_f
-
-END MODULE H5L_PROVISIONAL
diff --git a/fortran/src/H5Lff_F90.f90 b/fortran/src/H5Lff_F90.f90
deleted file mode 100644
index dd62b7b..0000000
--- a/fortran/src/H5Lff_F90.f90
+++ /dev/null
@@ -1,39 +0,0 @@
-!****h* ROBODoc/H5L (F90)
-!
-! NAME
-! MODULE H5L_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5L functions. It contains
-! the same functions as H5Lff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Lff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! NOTE
-! Currently contains no functions.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5L_PROVISIONAL
-
-END MODULE H5L_PROVISIONAL
diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.F90
index 8a40079..e4125bc 100644
--- a/fortran/src/H5Off.f90
+++ b/fortran/src/H5Off.F90
@@ -39,6 +39,65 @@
MODULE H5O
USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+
+ IMPLICIT NONE
+
+!****t* H5T (F03)/h5o_info_t
+!
+! Fortran2003 Derived Type:
+!
+ TYPE, BIND(C) :: space_t
+ INTEGER(hsize_t) :: total ! Total space for storing object header in file
+ INTEGER(hsize_t) :: meta ! Space within header for object header metadata information
+ INTEGER(hsize_t) :: mesg ! Space within header for actual message information
+ INTEGER(hsize_t) :: free ! Free space within object header
+ END TYPE space_t
+
+ TYPE, BIND(C) :: mesg_t
+ INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type in header
+ INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared in header
+ END TYPE mesg_t
+
+ TYPE, BIND(C) :: hdr_t
+ INTEGER :: version ! Version number of header format in file
+ INTEGER :: nmesgs ! Number of object header messages
+ INTEGER :: nchunks ! Number of object header chunks
+ INTEGER :: flags ! Object header status flags
+ TYPE(space_t) :: space
+ TYPE(mesg_t) :: mesg
+ END TYPE hdr_t
+
+ ! Extra metadata storage for obj & attributes
+ TYPE, BIND(C) :: H5_ih_info_t
+ INTEGER(hsize_t) :: index_size ! btree and/or list
+ INTEGER(hsize_t) :: heap_size
+ END TYPE H5_ih_info_t
+
+ TYPE, BIND(C) :: meta_size_t
+ TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets
+ TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes
+ ENDTYPE meta_size_t
+
+ TYPE, BIND(C) :: h5o_info_t
+ INTEGER(C_LONG) :: fileno ! File number that object is located in
+ INTEGER(haddr_t) :: addr ! Object address in file
+ INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.)
+ INTEGER :: rc ! Reference count of object
+
+ INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE --
+ INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer array
+ INTEGER, DIMENSION(8) :: ctime ! Change time ! as specified in the Fortran
+ INTEGER, DIMENSION(8) :: btime ! Birth time ! intrinsic DATE_AND_TIME(VALUES)
+
+ INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object
+
+ TYPE(hdr_t) :: hdr
+
+ TYPE(meta_size_t) :: meta_size
+ END TYPE h5o_info_t
+
+!*****
CONTAINS
@@ -771,5 +830,338 @@ CONTAINS
END SUBROUTINE h5oset_comment_by_name_f
+!****s* H5O (F03)/h5ovisit_f_F03
+!
+! NAME
+! h5ovisit_f
+!
+! PURPOSE
+! Recursively visits all objects starting from a specified object.
+!
+! Inputs:
+! object_id - Identifier of the object at which the recursive iteration begins.
+! index_type - Type of index; valid values include:
+! H5_INDEX_NAME_F
+! H5_INDEX_CRT_ORDER_F
+! order - Order in which index is traversed; valid values include:
+! H5_ITER_DEC_F
+! H5_ITER_INC_F
+! H5_ITER_NATIVE_F
+! op - Callback function passing data regarding the group to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the group
+!
+! Outputs:
+! return_value - returns the return value of the first operator that returns a positive value, or
+! zero if all members were processed with no operator returning non-zero.
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! M. Scot Breitenfeld
+! November 19, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5ovisit_f(object_id, index_type, order, op, op_data, return_value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+
+ TYPE(C_FUNPTR):: op
+ TYPE(C_PTR) :: op_data
+ INTEGER, INTENT(OUT) :: return_value
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+
+ INTERFACE
+ INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) &
+ BIND(C, NAME='h5ovisit_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ INTEGER, INTENT(IN) :: index_type
+ INTEGER, INTENT(IN) :: order
+ TYPE(C_FUNPTR), VALUE :: op
+ TYPE(C_PTR), VALUE :: op_data
+ END FUNCTION h5ovisit_c
+ END INTERFACE
+
+ return_value = h5ovisit_c(object_id, index_type, order, op, op_data)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5ovisit_f
+
+!****s* H5O (F03)/h5oget_info_by_name_f_F03
+!
+! NAME
+! h5oget_info_by_name_f
+!
+! PURPOSE
+! Retrieves the metadata for an object, identifying the object by location and relative name.
+!
+! Inputs:
+! loc_id - File or group identifier specifying location of group
+! in which object is located.
+! name - Name of group, relative to loc_id.
+!
+! Outputs:
+! object_info - Buffer in which to return object information.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! Optional parameters:
+! lapl_id - Link access property list.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! December 1, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5oget_info_by_name_f(loc_id, name, object_info, hdferr, lapl_id)
+
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
+!*****
+ INTEGER(SIZE_T) :: namelen
+ INTEGER(HID_T) :: lapl_id_default
+ TYPE(C_PTR) :: ptr
+
+ INTERFACE
+ INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) &
+ BIND(C, NAME='h5oget_info_by_name_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER(SIZE_T) , INTENT(IN) :: namelen
+ INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
+ TYPE(C_PTR),VALUE :: object_info
+
+ END FUNCTION h5oget_info_by_name_c
+ END INTERFACE
+
+ namelen = LEN(name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ ptr = C_LOC(object_info)
+
+ hdferr = H5Oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, ptr)
+
+ END SUBROUTINE H5Oget_info_by_name_f
+
+!****s* H5O (F03)/h5oget_info_f_F03
+!
+! NAME
+! h5oget_info_f
+!
+! PURPOSE
+! Retrieves the metadata for an object specified by an identifier.
+!
+! Inputs:
+! object_id - Identifier for target object.
+!
+! Outputs:
+! object_info - Buffer in which to return object information.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! May 11, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5oget_info_f(object_id, object_info, hdferr)
+
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: object_id
+ TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ TYPE(C_PTR) :: ptr
+
+ INTERFACE
+ INTEGER FUNCTION h5oget_info_c(object_id, object_info) &
+ BIND(C, NAME='h5oget_info_c')
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ INTEGER(HID_T), INTENT(IN) :: object_id
+ TYPE(C_PTR), VALUE :: object_info
+ END FUNCTION h5oget_info_c
+ END INTERFACE
+
+ ptr = C_LOC(object_info)
+ hdferr = H5Oget_info_c(object_id, ptr)
+
+ END SUBROUTINE H5Oget_info_f
+
+!****s* H5O (F03)/h5oget_info_by_idx_f_F03
+!
+! NAME
+! h5oget_info_by_idx_f
+!
+! PURPOSE
+! Retrieves the metadata for an object, identifying the object by an index position.
+!
+! Inputs:
+! loc_id - File or group identifier specifying location of group
+! in which object is located.
+! group_name - Name of group in which object is located.
+! index_field - Index or field that determines the order.
+! order - Order within field or index.
+! n - Object for which information is to be returned
+!
+! Outputs:
+! object_info - Buffer in which to return object information.
+! hdferr - Returns 0 if successful and -1 if fails.
+!
+! Optional parameters:
+! lapl_id - Link access property list. (Not currently used.)
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! May 11, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, &
+ object_info, hdferr, lapl_id)
+
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: group_name
+ INTEGER , INTENT(IN) :: index_field
+ INTEGER , INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+ TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
+!*****
+ INTEGER(SIZE_T) :: namelen
+ INTEGER(HID_T) :: lapl_id_default
+ TYPE(C_PTR) :: ptr
+
+ INTERFACE
+ INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, &
+ index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c')
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
+ INTEGER(SIZE_T) , INTENT(IN) :: namelen
+ INTEGER , INTENT(IN) :: index_field
+ INTEGER , INTENT(IN) :: order
+ INTEGER(HSIZE_T), INTENT(IN) :: n
+ INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
+ TYPE(C_PTR), VALUE :: object_info
+
+ END FUNCTION h5oget_info_by_idx_c
+ END INTERFACE
+
+ namelen = LEN(group_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ ptr = C_LOC(object_info)
+ hdferr = H5Oget_info_by_idx_c(loc_id, group_name, namelen, index_field, order, n, lapl_id_default, ptr)
+
+ END SUBROUTINE H5Oget_info_by_idx_f
+
+
+!****s* H5O (F03)/h5ovisit_by_name_f_F03
+!
+! NAME
+! h5ovisit_by_name_f
+!
+! PURPOSE
+! Recursively visits all objects starting from a specified object.
+!
+! Inputs:
+! loc_id - Identifier of a file or group.
+! object_name - Name of the object, generally relative to loc_id, that will serve as root of the iteration
+! index_type - Type of index; valid values include:
+! H5_INDEX_NAME_F
+! H5_INDEX_CRT_ORDER_F
+! order - Order in which index is traversed; valid values include:
+! H5_ITER_DEC_F
+! H5_ITER_INC_F
+! H5_ITER_NATIVE_F
+! op - Callback function passing data regarding the group to the calling application
+! op_data - User-defined pointer to data required by the application for its processing of the group
+!
+! Outputs:
+! return_value - Returns the return value of the first operator that returns a positive value, or
+! zero if all members were processed with no operator returning non-zero.
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! Optional parameters:
+! lapl_id - Link access property list identifier.
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! November 19, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5ovisit_by_name_f(loc_id, object_name, index_type, order, op, op_data, &
+ return_value, hdferr, lapl_id)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(LEN=*), INTENT(IN) :: object_name
+ INTEGER , INTENT(IN) :: index_type
+ INTEGER , INTENT(IN) :: order
+
+ TYPE(C_FUNPTR) :: op
+ TYPE(C_PTR) :: op_data
+ INTEGER , INTENT(OUT) :: return_value
+ INTEGER , INTENT(OUT) :: hdferr
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
+!*****
+
+ INTEGER(SIZE_T) :: namelen
+ INTEGER(HID_T) :: lapl_id_default
+
+ INTERFACE
+ INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, &
+ op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c')
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ INTEGER(HID_T) , INTENT(IN) :: loc_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name
+ INTEGER(SIZE_T) :: namelen
+ INTEGER , INTENT(IN) :: index_type
+ INTEGER , INTENT(IN) :: order
+ TYPE(C_FUNPTR) , VALUE :: op
+ TYPE(C_PTR) , VALUE :: op_data
+ INTEGER(HID_T) , INTENT(IN) :: lapl_id
+ END FUNCTION h5ovisit_by_name_c
+ END INTERFACE
+
+ namelen = LEN(object_name)
+
+ lapl_id_default = H5P_DEFAULT_F
+ IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
+
+ return_value = h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, &
+ op, op_data, lapl_id_default)
+
+ IF(return_value.GE.0)THEN
+ hdferr = 0
+ ELSE
+ hdferr = -1
+ END IF
+
+ END SUBROUTINE h5ovisit_by_name_f
+
END MODULE H5O
diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90
deleted file mode 100644
index 36b6246..0000000
--- a/fortran/src/H5Off_F03.f90
+++ /dev/null
@@ -1,435 +0,0 @@
-!****h* ROBODoc/H5O (F03)
-!
-! NAME
-! H5O_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5O functions.
-! It contains the same functions as H5Off_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Off_F90.f90 if Fortran 2003 functions are enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5P function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5O_PROVISIONAL
-
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING
-
- IMPLICIT NONE
-
-!****t* H5T (F03)/h5o_info_t
-!
-! Fortran2003 Derived Type:
-!
- TYPE, BIND(C) :: space_t
- INTEGER(hsize_t) :: total ! Total space for storing object header in file
- INTEGER(hsize_t) :: meta ! Space within header for object header metadata information
- INTEGER(hsize_t) :: mesg ! Space within header for actual message information
- INTEGER(hsize_t) :: free ! Free space within object header
- END TYPE space_t
-
- TYPE, BIND(C) :: mesg_t
- INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type in header
- INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared in header
- END TYPE mesg_t
-
- TYPE, BIND(C) :: hdr_t
- INTEGER :: version ! Version number of header format in file
- INTEGER :: nmesgs ! Number of object header messages
- INTEGER :: nchunks ! Number of object header chunks
- INTEGER :: flags ! Object header status flags
- TYPE(space_t) :: space
- TYPE(mesg_t) :: mesg
- END TYPE hdr_t
-
- ! Extra metadata storage for obj & attributes
- TYPE, BIND(C) :: H5_ih_info_t
- INTEGER(hsize_t) :: index_size ! btree and/or list
- INTEGER(hsize_t) :: heap_size
- END TYPE H5_ih_info_t
-
- TYPE, BIND(C) :: meta_size_t
- TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets
- TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes
- ENDTYPE meta_size_t
-
- TYPE, BIND(C) :: h5o_info_t
- INTEGER(C_LONG) :: fileno ! File number that object is located in
- INTEGER(haddr_t) :: addr ! Object address in file
- INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.)
- INTEGER :: rc ! Reference count of object
-
- INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE --
- INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer array
- INTEGER, DIMENSION(8) :: ctime ! Change time ! as specified in the Fortran
- INTEGER, DIMENSION(8) :: btime ! Birth time ! intrinsic DATE_AND_TIME(VALUES)
-
- INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object
-
- TYPE(hdr_t) :: hdr
-
- TYPE(meta_size_t) :: meta_size
- END TYPE h5o_info_t
-
-!*****
-
-CONTAINS
-
-!****s* H5O (F03)/h5ovisit_f_F03
-!
-! NAME
-! h5ovisit_f
-!
-! PURPOSE
-! Recursively visits all objects starting from a specified object.
-!
-! Inputs:
-! object_id - Identifier of the object at which the recursive iteration begins.
-! index_type - Type of index; valid values include:
-! H5_INDEX_NAME_F
-! H5_INDEX_CRT_ORDER_F
-! order - Order in which index is traversed; valid values include:
-! H5_ITER_DEC_F
-! H5_ITER_INC_F
-! H5_ITER_NATIVE_F
-! op - Callback function passing data regarding the group to the calling application
-! op_data - User-defined pointer to data required by the application for its processing of the group
-!
-! Outputs:
-! return_value - returns the return value of the first operator that returns a positive value, or
-! zero if all members were processed with no operator returning non-zero.
-! hdferr - Returns 0 if successful and -1 if fails
-! AUTHOR
-! M. Scot Breitenfeld
-! November 19, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5ovisit_f(object_id, index_type, order, op, op_data, return_value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: object_id
- INTEGER, INTENT(IN) :: index_type
- INTEGER, INTENT(IN) :: order
-
- TYPE(C_FUNPTR):: op
- TYPE(C_PTR) :: op_data
- INTEGER, INTENT(OUT) :: return_value
- INTEGER, INTENT(OUT) :: hdferr
-!*****
-
- INTERFACE
- INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) &
- BIND(C, NAME='h5ovisit_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: object_id
- INTEGER, INTENT(IN) :: index_type
- INTEGER, INTENT(IN) :: order
- TYPE(C_FUNPTR), VALUE :: op
- TYPE(C_PTR), VALUE :: op_data
- END FUNCTION h5ovisit_c
- END INTERFACE
-
- return_value = h5ovisit_c(object_id, index_type, order, op, op_data)
-
- IF(return_value.GE.0)THEN
- hdferr = 0
- ELSE
- hdferr = -1
- END IF
-
- END SUBROUTINE h5ovisit_f
-
-!****s* H5O (F03)/h5oget_info_by_name_f_F03
-!
-! NAME
-! h5oget_info_by_name_f
-!
-! PURPOSE
-! Retrieves the metadata for an object, identifying the object by location and relative name.
-!
-! Inputs:
-! loc_id - File or group identifier specifying location of group
-! in which object is located.
-! name - Name of group, relative to loc_id.
-!
-! Outputs:
-! object_info - Buffer in which to return object information.
-! hdferr - Returns 0 if successful and -1 if fails.
-!
-! Optional parameters:
-! lapl_id - Link access property list.
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! December 1, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5oget_info_by_name_f(loc_id, name, object_info, hdferr, lapl_id)
-
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
-!*****
- INTEGER(SIZE_T) :: namelen
- INTEGER(HID_T) :: lapl_id_default
- TYPE(C_PTR) :: ptr
-
- INTERFACE
- INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) &
- BIND(C, NAME='h5oget_info_by_name_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
- USE H5GLOBAL
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER(SIZE_T) , INTENT(IN) :: namelen
- INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
- TYPE(C_PTR),VALUE :: object_info
-
- END FUNCTION h5oget_info_by_name_c
- END INTERFACE
-
- namelen = LEN(name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- ptr = C_LOC(object_info)
-
- hdferr = H5Oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, ptr)
-
- END SUBROUTINE H5Oget_info_by_name_f
-
-!****s* H5O (F03)/h5oget_info_f_F03
-!
-! NAME
-! h5oget_info_f
-!
-! PURPOSE
-! Retrieves the metadata for an object specified by an identifier.
-!
-! Inputs:
-! object_id - Identifier for target object.
-!
-! Outputs:
-! object_info - Buffer in which to return object information.
-! hdferr - Returns 0 if successful and -1 if fails.
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! May 11, 2012
-!
-! Fortran2003 Interface:
- SUBROUTINE h5oget_info_f(object_id, object_info, hdferr)
-
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: object_id
- TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
- INTEGER , INTENT(OUT) :: hdferr
-!*****
- TYPE(C_PTR) :: ptr
-
- INTERFACE
- INTEGER FUNCTION h5oget_info_c(object_id, object_info) &
- BIND(C, NAME='h5oget_info_c')
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- INTEGER(HID_T), INTENT(IN) :: object_id
- TYPE(C_PTR), VALUE :: object_info
- END FUNCTION h5oget_info_c
- END INTERFACE
-
- ptr = C_LOC(object_info)
- hdferr = H5Oget_info_c(object_id, ptr)
-
- END SUBROUTINE H5Oget_info_f
-
-!****s* H5O (F03)/h5oget_info_by_idx_f_F03
-!
-! NAME
-! h5oget_info_by_idx_f
-!
-! PURPOSE
-! Retrieves the metadata for an object, identifying the object by an index position.
-!
-! Inputs:
-! loc_id - File or group identifier specifying location of group
-! in which object is located.
-! group_name - Name of group in which object is located.
-! index_field - Index or field that determines the order.
-! order - Order within field or index.
-! n - Object for which information is to be returned
-!
-! Outputs:
-! object_info - Buffer in which to return object information.
-! hdferr - Returns 0 if successful and -1 if fails.
-!
-! Optional parameters:
-! lapl_id - Link access property list. (Not currently used.)
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! May 11, 2012
-!
-! Fortran2003 Interface:
- SUBROUTINE h5oget_info_by_idx_f(loc_id, group_name, index_field, order, n, &
- object_info, hdferr, lapl_id)
-
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: group_name
- INTEGER , INTENT(IN) :: index_field
- INTEGER , INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
- TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
-!*****
- INTEGER(SIZE_T) :: namelen
- INTEGER(HID_T) :: lapl_id_default
- TYPE(C_PTR) :: ptr
-
- INTERFACE
- INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, &
- index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c')
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
- INTEGER(SIZE_T) , INTENT(IN) :: namelen
- INTEGER , INTENT(IN) :: index_field
- INTEGER , INTENT(IN) :: order
- INTEGER(HSIZE_T), INTENT(IN) :: n
- INTEGER(HID_T) , INTENT(IN) :: lapl_id_default
- TYPE(C_PTR), VALUE :: object_info
-
- END FUNCTION h5oget_info_by_idx_c
- END INTERFACE
-
- namelen = LEN(group_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- ptr = C_LOC(object_info)
- hdferr = H5Oget_info_by_idx_c(loc_id, group_name, namelen, index_field, order, n, lapl_id_default, ptr)
-
- END SUBROUTINE H5Oget_info_by_idx_f
-
-
-!****s* H5O (F03)/h5ovisit_by_name_f_F03
-!
-! NAME
-! h5ovisit_by_name_f
-!
-! PURPOSE
-! Recursively visits all objects starting from a specified object.
-!
-! Inputs:
-! loc_id - Identifier of a file or group.
-! object_name - Name of the object, generally relative to loc_id, that will serve as root of the iteration
-! index_type - Type of index; valid values include:
-! H5_INDEX_NAME_F
-! H5_INDEX_CRT_ORDER_F
-! order - Order in which index is traversed; valid values include:
-! H5_ITER_DEC_F
-! H5_ITER_INC_F
-! H5_ITER_NATIVE_F
-! op - Callback function passing data regarding the group to the calling application
-! op_data - User-defined pointer to data required by the application for its processing of the group
-!
-! Outputs:
-! return_value - Returns the return value of the first operator that returns a positive value, or
-! zero if all members were processed with no operator returning non-zero.
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! Optional parameters:
-! lapl_id - Link access property list identifier.
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! November 19, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5ovisit_by_name_f(loc_id, object_name, index_type, order, op, op_data, &
- return_value, hdferr, lapl_id)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: object_name
- INTEGER , INTENT(IN) :: index_type
- INTEGER , INTENT(IN) :: order
-
- TYPE(C_FUNPTR) :: op
- TYPE(C_PTR) :: op_data
- INTEGER , INTENT(OUT) :: return_value
- INTEGER , INTENT(OUT) :: hdferr
- INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: lapl_id
-!*****
-
- INTEGER(SIZE_T) :: namelen
- INTEGER(HID_T) :: lapl_id_default
-
- INTERFACE
- INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, &
- op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c')
- USE, INTRINSIC :: ISO_C_BINDING
- USE H5GLOBAL
- INTEGER(HID_T) , INTENT(IN) :: loc_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name
- INTEGER(SIZE_T) :: namelen
- INTEGER , INTENT(IN) :: index_type
- INTEGER , INTENT(IN) :: order
- TYPE(C_FUNPTR) , VALUE :: op
- TYPE(C_PTR) , VALUE :: op_data
- INTEGER(HID_T) , INTENT(IN) :: lapl_id
- END FUNCTION h5ovisit_by_name_c
- END INTERFACE
-
- namelen = LEN(object_name)
-
- lapl_id_default = H5P_DEFAULT_F
- IF(PRESENT(lapl_id)) lapl_id_default = lapl_id
-
- return_value = h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, &
- op, op_data, lapl_id_default)
-
- IF(return_value.GE.0)THEN
- hdferr = 0
- ELSE
- hdferr = -1
- END IF
-
- END SUBROUTINE h5ovisit_by_name_f
-
-END MODULE H5O_PROVISIONAL
-
diff --git a/fortran/src/H5Off_F90.f90 b/fortran/src/H5Off_F90.f90
deleted file mode 100644
index 5688c5d..0000000
--- a/fortran/src/H5Off_F90.f90
+++ /dev/null
@@ -1,39 +0,0 @@
-!****h* ROBODoc/H5O (F90)
-!
-! NAME
-! MODULE H5O_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5O functions. It contains
-! the same functions as H5Off_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Off_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! NOTE
-! Currently contains no functions.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5O_PROVISIONAL
-
-END MODULE H5O_PROVISIONAL
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.F90
index 3409f15..18da887 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.F90
@@ -40,6 +40,133 @@ MODULE H5P
MODULE PROCEDURE h5pset_fapl_multi_s
END INTERFACE
+ INTERFACE h5pset_fill_value_f
+ MODULE PROCEDURE h5pset_fill_value_integer
+ MODULE PROCEDURE h5pset_fill_value_real
+ MODULE PROCEDURE h5pset_fill_value_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_fill_value_f
+ MODULE PROCEDURE h5pget_fill_value_integer
+ MODULE PROCEDURE h5pget_fill_value_real
+ MODULE PROCEDURE h5pget_fill_value_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_fill_value_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pset_f
+ MODULE PROCEDURE h5pset_integer
+ MODULE PROCEDURE h5pset_real
+ MODULE PROCEDURE h5pset_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pset_ptr
+
+ END INTERFACE
+
+ INTERFACE h5pget_f
+ MODULE PROCEDURE h5pget_integer
+ MODULE PROCEDURE h5pget_real
+ MODULE PROCEDURE h5pget_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pget_ptr
+ END INTERFACE
+
+ INTERFACE h5pregister_f
+ MODULE PROCEDURE h5pregister_integer
+ MODULE PROCEDURE h5pregister_real
+ MODULE PROCEDURE h5pregister_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pregister_ptr
+ END INTERFACE
+
+ INTERFACE h5pinsert_f
+ MODULE PROCEDURE h5pinsert_integer
+ MODULE PROCEDURE h5pinsert_real
+ MODULE PROCEDURE h5pinsert_char
+ ! Recommended procedure:
+ MODULE PROCEDURE h5pinsert_ptr
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) &
+ BIND(C, NAME='h5pget_fill_value_c')
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
+ END FUNCTION h5pget_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) &
+ BIND(C, NAME='h5pset_fill_value_c')
+ USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
+ END FUNCTION h5pset_fill_value_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) &
+ BIND(C, NAME='h5pset_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value ! Property value
+ END FUNCTION h5pset_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) &
+ BIND(C, NAME='h5pget_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER :: name_len
+ TYPE(C_PTR), VALUE :: value ! Property value
+ END FUNCTION h5pget_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) &
+ BIND(C, NAME='h5pregister_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: class
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(C_PTR), INTENT(IN), VALUE :: value
+ END FUNCTION h5pregister_c
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) &
+ BIND(C, NAME='h5pinsert_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: plist
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(SIZE_T), INTENT(IN) :: size
+ TYPE(C_PTR), INTENT(IN), VALUE :: value
+ END FUNCTION h5pinsert_c
+ END INTERFACE
+
CONTAINS
!****s* H5P/h5pcreate_f
@@ -6394,6 +6521,1103 @@ SUBROUTINE h5pset_attr_phase_change_f(ocpl_id, max_compact, min_dense, hdferr)
END SUBROUTINE h5pget_chunk_cache_f
+!
+!****s* H5P (F03)/h5pset_fill_value_f_F90
+!
+! NAME
+! h5pset_fill_value_f
+!
+! PURPOSE
+! Sets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+! fillvalue - Fillvalue
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! IMPLICIT NONE
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(VOID) , INTENT(IN) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+
+ SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_integer
+!
+!****s* H5P (F03)/h5pget_fill_value_f_F90
+!
+! NAME
+! h5pget_fill_value_f
+!
+! PURPOSE
+! Gets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+!
+! Outputs:
+! fillvalue - Fillvalue
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pget(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(VOID) , INTENT(OUT) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ INTEGER, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pget_fill_value_integer
+
+
+ SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_real
+
+
+ SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ REAL, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pget_fill_value_real
+
+ SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ TYPE(C_PTR) :: f_ptr ! C address
+
+ f_ptr = C_LOC(fillvalue)
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
+
+ END SUBROUTINE h5pset_fill_value_char
+
+ SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ CHARACTER, INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr ! C address
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(fillvalue)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
+
+ DO i = 1, chr_len
+ fillvalue(i:i) = chr(i)
+ ENDDO
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pget_fill_value_char
+!
+!****s* H5P (F03)/h5pset_fill_value_f_F03
+!
+! NAME
+! h5pset_fill_value_f
+!
+! PURPOSE
+! Sets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+! fillvalue - Fillvalue
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pset(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(C_PTR) , INTENT(IN) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pset_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), INTENT(IN) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pset_fill_value_ptr
+
+!
+!****s* H5P (F03)/h5pget_fill_value_f_F03
+!
+! NAME
+! h5pget_fill_value_f
+!
+! PURPOSE
+! Gets fill value for a dataset creation property list
+!
+! Inputs:
+! prp_id - Property list identifier
+! type_id - Datatype identifier of fill value datatype (in memory)
+!
+! Outputs:
+! fillvalue - Fillvalue
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+!
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 14, 2001
+!
+! Added the recommended way of passing fillvalue
+! and that is by passing the C address, all other
+! ways are obsolete and should be avoided. June, 2008 MSB
+!
+! NOTES
+! h5pget(get)fill_value_f function is overloaded to support
+! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
+!! INTEGER(HID_T), INTENT(IN) :: prp_id
+!! INTEGER(HID_T), INTENT(IN) :: type_id
+!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
+ ! of fillvalue datatype
+ ! (in memory)
+ TYPE(C_PTR), INTENT(OUT) :: fillvalue ! Fillvalue
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
+
+ END SUBROUTINE h5pget_fill_value_ptr
+
+!
+!****s* H5P (F03)/h5pset_f_F90
+!
+! NAME
+! h5pset_f
+!
+! PURPOSE
+! Sets a property list value
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to modify
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_integer
+
+ SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pset_real
+
+ SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pset_char
+!
+!****s* H5P (F03)/h5pget_f_F90
+!
+! NAME
+! h5pget_f
+!
+! PURPOSE
+! Queries the value of a property.
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to get
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE , INTENT(OUT) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ INTEGER, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ END SUBROUTINE h5pget_integer
+
+ SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ REAL, INTENT(OUT), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+ END SUBROUTINE h5pget_real
+
+ SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+ TYPE(C_PTR) :: f_ptr
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
+
+ DO i = 1, chr_len
+ value(i:i) = chr(i)
+ ENDDO
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pget_char
+
+
+!
+!****s* H5P (F03)/h5pset_f_F03
+!
+! NAME
+! h5pset_f
+!
+! PURPOSE
+! Sets a property list value
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to modify
+! value - Pointer to value to set the property to
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pset_ptr(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pset_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pset_ptr
+!
+!****s* H5P (F03)/h5pget_f_F03
+!
+! NAME
+! h5pget_f (F03)
+!
+! PURPOSE
+! Queries the value of a property.
+!
+! Inputs:
+! prp_id - Property list identifier to modify
+! name - Name of property to get
+! value - Pointer to a location to which to copy the value of of the property
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: plid
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! TYPE(C_PTR) , INTENT(OUT) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pget_ptr(prp_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
+ TYPE(C_PTR), INTENT(OUT) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pget_c(prp_id, name, name_len, value)
+
+ END SUBROUTINE h5pget_ptr
+
+
+!
+!****s* H5P (F03)/h5pregister_f_F90
+!
+! NAME
+! h5pregister
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! Inputs:
+! class - Property list class identifier
+! name - Name of property to register
+! size - Size of the property value
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: class
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+
+ END SUBROUTINE h5pregister_integer
+
+ SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(C_PTR) :: f_ptr
+
+ f_ptr = C_LOC(value)
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+
+ END SUBROUTINE h5pregister_real
+
+ SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(C_PTR) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
+ DEALLOCATE(chr)
+ END SUBROUTINE h5pregister_char
+!
+!****s* H5P (F03)/h5pregister_f_F03
+!
+! NAME
+! h5pregister (F03)
+!
+! PURPOSE
+! Registers a permanent property with a property list class.
+!
+! Inputs:
+! class - Property list class identifier
+! name - Name of property to register
+! size - Size of the property value
+! value - Pointer to value to set the property to
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+!
+! Fortran2003 Interface:
+!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
+!! INTEGER(HID_T) , INTENT(IN) :: class
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+
+ SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ TYPE(C_PTR), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pregister_c(class, name, name_len, size, value)
+ END SUBROUTINE h5pregister_ptr
+
+!
+!****s* H5P (F03)/h5pinsert_f_F90
+!
+! NAME
+! h5pinsert (f90)
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! Inputs:
+! plist - Property list class identifier
+! name - Name of property to insert
+! size - Size of the property value
+! value - Property value, supported types are:
+! INTEGER
+! REAL
+! DOUBLE PRECISION
+! CHARACTER(LEN=*)
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+! AUTHOR
+! Elena Pourmal
+! October 10, 2002
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pinsert_f
+!! INTEGER(HID_T) , INTENT(IN) :: plist
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ INTEGER, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+ END SUBROUTINE h5pinsert_integer
+
+ SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
+ REAL, INTENT(IN), TARGET :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+ TYPE(c_ptr) :: f_ptr
+
+ f_ptr = c_loc(value)
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ END SUBROUTINE h5pinsert_real
+
+ SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ INTEGER :: i
+ CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
+ INTEGER :: chr_len
+
+ TYPE(c_ptr) :: f_ptr
+ ! To resolve Issue #1 outlined in the preamble of this file we
+ ! need to pack the character string into an array.
+
+ chr_len = LEN(value)
+ ALLOCATE(chr(1:chr_len), STAT=hdferr)
+ IF (hdferr .NE. 0) THEN
+ hdferr = -1
+ RETURN
+ ENDIF
+
+ DO i = 1, chr_len
+ chr(i) = value(i:i)
+ ENDDO
+
+ f_ptr = C_LOC(chr(1)(1:1))
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
+
+ DEALLOCATE(chr)
+
+ END SUBROUTINE h5pinsert_char
+
+!
+!****s* H5P (F03)/h5pinsert_f_F03
+!
+! NAME
+! h5pinsert (f03)
+!
+! PURPOSE
+! Registers a temporary property with a property list class.
+!
+! Inputs:
+! plist - Property list class identifier
+! name - Name of property to insert
+! size - Size of the property value
+! value - Pointer to new value pointer for the property being modified
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! June 24, 2008
+!
+! Fortran90 Interface:
+!! SUBROUTINE h5pinsert_f
+!! INTEGER(HID_T) , INTENT(IN) :: plist
+!! CHARACTER(LEN=*), INTENT(IN) :: name
+!! INTEGER(SIZE_T) , INTENT(IN) :: size
+!! TYPE(C_PTR) , INTENT(IN) :: value
+!! INTEGER , INTENT(OUT) :: hdferr
+!*****
+ SUBROUTINE h5pinsert_ptr(plist, name, size, value, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
+ INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
+ TYPE(c_ptr), INTENT(IN) :: value ! Property value
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: name_len
+
+ name_len = LEN(name)
+ hdferr = h5pinsert_c(plist, name , name_len, size, value)
+ END SUBROUTINE h5pinsert_ptr
+!
+!****s* H5P (F03)/h5pcreate_class_f_F03
+!
+! NAME
+! h5pcreate_class_f
+!
+! PURPOSE
+! Create a new property list class
+!
+! Inputs:
+! parent - Parent property list class identifier
+! Possible values include:
+! H5P_ROOT_F
+! H5P_FILE_CREATE_F
+! H5P_FILE_ACCESS_F
+! H5P_DATASET_CREATE_F
+! H5P_DATASET_XFER_F
+! H5P_FILE_MOUNT_F
+! name - Name of property to create
+!
+! Outputs:
+! class - Property list class identifier
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! Optional parameters:
+! H5P_cls_create_func_t (create) - Callback routine called when a property list is created
+! create_data - User pointer to any class creation information needed
+! H5P_cls_copy_func_t (copy) - Callback routine called when a property list is copied
+! copy_data - User pointer to any class copy information needed
+! H5P_cls_close_func_t (close) - Callback routine called when a property list is being closed
+! close_data - User pointer to any class close information needed
+!
+! AUTHOR
+! Elena Pourmal
+! October 9, 2002
+!
+! HISTORY
+! Added callback arguments
+! M. Scot Breitenfeld, July 3, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, copy, copy_data, close, close_data)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: parent
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER(HID_T) , INTENT(OUT) :: class
+ INTEGER , INTENT(OUT) :: hdferr
+ TYPE(C_PTR) , OPTIONAL :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR) , OPTIONAL :: create, copy, close
+!*****
+ INTEGER :: name_len
+ TYPE(C_PTR) :: create_data_default, copy_data_default, close_data_default
+ TYPE(C_FUNPTR) :: create_default, copy_default, close_default
+ INTERFACE
+ INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, &
+ create, create_data, copy, copy_data, close, close_data) &
+ BIND(C, NAME='h5pcreate_class_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: parent
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: name_len
+ INTEGER(HID_T), INTENT(OUT) :: class
+ TYPE(C_PTR), VALUE :: create_data, copy_data, close_data
+ TYPE(C_FUNPTR), VALUE :: create, copy, close
+ END FUNCTION h5pcreate_class_c
+ END INTERFACE
+ name_len = LEN(name)
+
+ create_default = c_null_funptr !fix:scot
+ create_data_default = c_null_ptr
+ copy_default = c_null_funptr !fix:scot
+ copy_data_default = c_null_ptr
+ close_default = c_null_funptr !fix:scot
+ close_data_default = c_null_ptr
+
+ IF(PRESENT(create)) create_default = create
+ IF(PRESENT(create_data)) create_data_default = create_data
+ IF(PRESENT(copy)) copy_default = copy
+ IF(PRESENT(copy_data)) copy_data_default = copy_data
+ IF(PRESENT(close)) close_default = close
+ IF(PRESENT(close_data)) close_data_default = close_data
+
+ hdferr = h5pcreate_class_c(parent, name , name_len, class, &
+ create_default, create_data_default, &
+ copy_default, copy_data_default, &
+ close_default, close_data_default)
+
+ END SUBROUTINE h5pcreate_class_f
+
+!
+!****s* H5P (F03)/h5pset_file_image_f_F03
+!
+! NAME
+! h5pset_file_image_f
+!
+! PURPOSE
+! Sets an initial file image in a memory buffer.
+!
+! Inputs:
+! fapl_id - File access property list identifier
+! buf_ptr - Pointer to the initial file image,
+! or C_NULL_PTR if no initial file image is desired
+! buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired
+!
+! Outputs:
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 19, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pset_file_image_f(fapl_id, buf_ptr, buf_len, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: fapl_id
+ TYPE(C_PTR) , INTENT(IN) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ INTEGER , INTENT(OUT) :: hdferr
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) &
+ BIND(C, NAME='h5pset_file_image_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ TYPE(C_PTR), VALUE :: buf_ptr
+ INTEGER(SIZE_T), INTENT(IN) :: buf_len
+ END FUNCTION h5pset_file_image_c
+ END INTERFACE
+
+ hdferr = h5pset_file_image_c(fapl_id, buf_ptr, buf_len)
+
+ END SUBROUTINE h5pset_file_image_f
+!
+!****s* H5P (F03)/h5pget_file_image_f_F03
+!
+! NAME
+! h5pget_file_image_f
+!
+! PURPOSE
+! Retrieves a copy of the file image designated as the initial content and structure of a file.
+!
+! Inputs:
+! fapl_id - File access property list identifier.
+!
+! Outputs:
+! buf_ptr - Will hold either a C_NULL_PTR or a scalar of type
+! c_loc. If buf_ptr is not C_NULL_PTR, on successful
+! return, buf_ptr shall contain a C pointer to a copy
+! of the initial image provided in the last call to
+! H5Pset_file_image_f for the supplied fapl_id, or
+! buf_ptr shall contain a C_NULL_PTR if there is no
+! initial image set.
+!
+! buf_len_ptr - Contains the value of the buffer parameter for
+! the initial image in the supplied fapl_id. The value
+! will be 0 if no initial image is set.
+!
+!
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 19, 2012
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5pget_file_image_f(fapl_id, buf_ptr, buf_len_ptr, hdferr)
+ USE iso_c_binding
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: fapl_id
+ TYPE(C_PTR) , INTENT(OUT), DIMENSION(*) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
+ INTEGER , INTENT(OUT) :: hdferr
+
+!*****
+ INTERFACE
+ INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) &
+ BIND(C, NAME='h5pget_file_image_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: fapl_id
+ TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr
+ INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
+ END FUNCTION h5pget_file_image_c
+ END INTERFACE
+
+ hdferr = h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr)
+
+ END SUBROUTINE h5pget_file_image_f
+
END MODULE H5P
diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90
deleted file mode 100644
index 01d1d98..0000000
--- a/fortran/src/H5Pff_F03.f90
+++ /dev/null
@@ -1,1267 +0,0 @@
-!****h* ROBODoc/H5P (F03)
-!
-! NAME
-! H5P_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5P functions.
-! It contains the same functions as H5Pff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Pff_F90.f90 if Fortran 2003 functions are enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5P function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5P_PROVISIONAL
-
- USE H5GLOBAL
-
- INTERFACE h5pset_fill_value_f
- MODULE PROCEDURE h5pset_fill_value_integer
- MODULE PROCEDURE h5pset_fill_value_real
- MODULE PROCEDURE h5pset_fill_value_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pset_fill_value_ptr
-
- END INTERFACE
-
- INTERFACE h5pget_fill_value_f
- MODULE PROCEDURE h5pget_fill_value_integer
- MODULE PROCEDURE h5pget_fill_value_real
- MODULE PROCEDURE h5pget_fill_value_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pget_fill_value_ptr
-
- END INTERFACE
-
- INTERFACE h5pset_f
- MODULE PROCEDURE h5pset_integer
- MODULE PROCEDURE h5pset_real
- MODULE PROCEDURE h5pset_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pset_ptr
-
- END INTERFACE
-
- INTERFACE h5pget_f
- MODULE PROCEDURE h5pget_integer
- MODULE PROCEDURE h5pget_real
- MODULE PROCEDURE h5pget_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pget_ptr
- END INTERFACE
-
- INTERFACE h5pregister_f
- MODULE PROCEDURE h5pregister_integer
- MODULE PROCEDURE h5pregister_real
- MODULE PROCEDURE h5pregister_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pregister_ptr
- END INTERFACE
-
- INTERFACE h5pinsert_f
- MODULE PROCEDURE h5pinsert_integer
- MODULE PROCEDURE h5pinsert_real
- MODULE PROCEDURE h5pinsert_char
- ! Recommended procedure:
- MODULE PROCEDURE h5pinsert_ptr
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) &
- BIND(C, NAME='h5pget_fill_value_c')
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
- END FUNCTION h5pget_fill_value_c
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) &
- BIND(C, NAME='h5pset_fill_value_c')
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- TYPE(C_PTR), VALUE :: fillvalue ! Fillvalue
- END FUNCTION h5pset_fill_value_c
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) &
- BIND(C, NAME='h5pset_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify
- INTEGER :: name_len
- TYPE(C_PTR), VALUE :: value ! Property value
- END FUNCTION h5pset_c
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) &
- BIND(C, NAME='h5pget_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name ! Name of property to modify
- INTEGER :: name_len
- TYPE(C_PTR), VALUE :: value ! Property value
- END FUNCTION h5pget_c
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) &
- BIND(C, NAME='h5pregister_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- TYPE(C_PTR), INTENT(IN), VALUE :: value
- END FUNCTION h5pregister_c
- END INTERFACE
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) &
- BIND(C, NAME='h5pinsert_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- TYPE(C_PTR), INTENT(IN), VALUE :: value
- END FUNCTION h5pinsert_c
- END INTERFACE
-
-CONTAINS
-
-!
-!****s* H5P (F03)/h5pset_fill_value_f_F90
-!
-! NAME
-! h5pset_fill_value_f
-!
-! PURPOSE
-! Sets fill value for a dataset creation property list
-!
-! Inputs:
-! prp_id - Property list identifier
-! type_id - Datatype identifier of fill value datatype (in memory)
-! fillvalue - Fillvalue
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Added the recommended way of passing fillvalue
-! and that is by passing the C address, all other
-! ways are obsolete and should be avoided. June, 2008 MSB
-!
-! NOTES
-! h5pset(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
-!! IMPLICIT NONE
-!! INTEGER(HID_T), INTENT(IN) :: prp_id
-!! INTEGER(HID_T), INTENT(IN) :: type_id
-!! TYPE(VOID) , INTENT(IN) :: fillvalue
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
-
- SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr ! C address
-
- f_ptr = C_LOC(fillvalue)
-
- hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
-
- END SUBROUTINE h5pset_fill_value_integer
-!
-!****s* H5P (F03)/h5pget_fill_value_f_F90
-!
-! NAME
-! h5pget_fill_value_f
-!
-! PURPOSE
-! Gets fill value for a dataset creation property list
-!
-! Inputs:
-! prp_id - Property list identifier
-! type_id - Datatype identifier of fill value datatype (in memory)
-!
-! Outputs:
-! fillvalue - Fillvalue
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Added the recommended way of passing fillvalue
-! and that is by passing the C address, all other
-! ways are obsolete and should be avoided. June, 2008 MSB
-!
-! NOTES
-! h5pget(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
-!! INTEGER(HID_T), INTENT(IN) :: prp_id
-!! INTEGER(HID_T), INTENT(IN) :: type_id
-!! TYPE(VOID) , INTENT(OUT) :: fillvalue
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr ! C address
-
- f_ptr = C_LOC(fillvalue)
-
- hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
-
- END SUBROUTINE h5pget_fill_value_integer
-
-
- SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(IN), TARGET :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr ! C address
-
- f_ptr = C_LOC(fillvalue)
-
- hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
-
- END SUBROUTINE h5pset_fill_value_real
-
-
- SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(OUT), TARGET :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr ! C address
-
- f_ptr = C_LOC(fillvalue)
-
- hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
-
- END SUBROUTINE h5pget_fill_value_real
-
- SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(IN), TARGET :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- TYPE(C_PTR) :: f_ptr ! C address
-
- f_ptr = C_LOC(fillvalue)
-
- hdferr = h5pset_fill_value_c(prp_id, type_id, f_ptr)
-
- END SUBROUTINE h5pset_fill_value_char
-
- SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(OUT) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: i
- CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
- INTEGER :: chr_len
-
- TYPE(C_PTR) :: f_ptr ! C address
- ! To resolve Issue #1 outlined in the preamble of this file we
- ! need to pack the character string into an array.
-
- chr_len = LEN(fillvalue)
- ALLOCATE(chr(1:chr_len), STAT=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- f_ptr = C_LOC(chr(1)(1:1))
-
- hdferr = h5pget_fill_value_c(prp_id, type_id, f_ptr)
-
- DO i = 1, chr_len
- fillvalue(i:i) = chr(i)
- ENDDO
- DEALLOCATE(chr)
-
- END SUBROUTINE h5pget_fill_value_char
-!
-!****s* H5P (F03)/h5pset_fill_value_f_F03
-!
-! NAME
-! h5pset_fill_value_f
-!
-! PURPOSE
-! Sets fill value for a dataset creation property list
-!
-! Inputs:
-! prp_id - Property list identifier
-! type_id - Datatype identifier of fill value datatype (in memory)
-! fillvalue - Fillvalue
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Added the recommended way of passing fillvalue
-! and that is by passing the C address, all other
-! ways are obsolete and should be avoided. June, 2008 MSB
-!
-! NOTES
-! h5pset(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5pset_fill_value_f(prp_id, type_id, fillvalue, hdferr)
-!! INTEGER(HID_T), INTENT(IN) :: prp_id
-!! INTEGER(HID_T), INTENT(IN) :: type_id
-!! TYPE(C_PTR) , INTENT(IN) :: fillvalue
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5pset_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- TYPE(C_PTR), INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- hdferr = h5pset_fill_value_c(prp_id, type_id, fillvalue)
-
- END SUBROUTINE h5pset_fill_value_ptr
-
-!
-!****s* H5P (F03)/h5pget_fill_value_f_F03
-!
-! NAME
-! h5pget_fill_value_f
-!
-! PURPOSE
-! Gets fill value for a dataset creation property list
-!
-! Inputs:
-! prp_id - Property list identifier
-! type_id - Datatype identifier of fill value datatype (in memory)
-!
-! Outputs:
-! fillvalue - Fillvalue
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-!
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! Added the recommended way of passing fillvalue
-! and that is by passing the C address, all other
-! ways are obsolete and should be avoided. June, 2008 MSB
-!
-! NOTES
-! h5pget(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5pget_fill_value_f(prp_id, type_id, fillvalue, hdferr)
-!! INTEGER(HID_T), INTENT(IN) :: prp_id
-!! INTEGER(HID_T), INTENT(IN) :: type_id
-!! TYPE(C_PTR) , INTENT(OUT) :: fillvalue
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5pget_fill_value_ptr(prp_id, type_id, fillvalue, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- TYPE(C_PTR), INTENT(OUT) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- hdferr = h5pget_fill_value_c(prp_id, type_id, fillvalue)
-
- END SUBROUTINE h5pget_fill_value_ptr
-
-!
-!****s* H5P (F03)/h5pset_f_F90
-!
-! NAME
-! h5pset_f
-!
-! PURPOSE
-! Sets a property list value
-!
-! Inputs:
-! prp_id - Property list identifier to modify
-! name - Name of property to modify
-! value - Property value, supported types are:
-! INTEGER
-! REAL
-! DOUBLE PRECISION
-! CHARACTER(LEN=*)
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: plid
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! TYPE , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
-
- END SUBROUTINE h5pset_integer
-
- SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
-
- END SUBROUTINE h5pset_real
-
- SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTEGER :: i
- CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
- INTEGER :: chr_len
-
- TYPE(C_PTR) :: f_ptr
- ! To resolve Issue #1 outlined in the preamble of this file we
- ! need to pack the character string into an array.
-
- chr_len = LEN(value)
- ALLOCATE(chr(1:chr_len), STAT=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- DO i = 1, chr_len
- chr(i) = value(i:i)
- ENDDO
-
- f_ptr = C_LOC(chr(1)(1:1))
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
-
- DEALLOCATE(chr)
-
- END SUBROUTINE h5pset_char
-!
-!****s* H5P (F03)/h5pget_f_F90
-!
-! NAME
-! h5pget_f
-!
-! PURPOSE
-! Queries the value of a property.
-!
-! Inputs:
-! prp_id - Property list identifier to modify
-! name - Name of property to get
-! value - Property value, supported types are:
-! INTEGER
-! REAL
-! DOUBLE PRECISION
-! CHARACTER(LEN=*)
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: plid
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! TYPE , INTENT(OUT) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(OUT), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
-
- END SUBROUTINE h5pget_integer
-
- SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(OUT), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
- END SUBROUTINE h5pget_real
-
- SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTEGER :: i
- CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
- INTEGER :: chr_len
- TYPE(C_PTR) :: f_ptr
-
- chr_len = LEN(value)
- ALLOCATE(chr(1:chr_len), STAT=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
- f_ptr = C_LOC(chr(1)(1:1))
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, f_ptr)
-
- DO i = 1, chr_len
- value(i:i) = chr(i)
- ENDDO
-
- DEALLOCATE(chr)
-
- END SUBROUTINE h5pget_char
-
-
-!
-!****s* H5P (F03)/h5pset_f_F03
-!
-! NAME
-! h5pset_f
-!
-! PURPOSE
-! Sets a property list value
-!
-! Inputs:
-! prp_id - Property list identifier to modify
-! name - Name of property to modify
-! value - Pointer to value to set the property to
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5pset_f(plid, name, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: plid
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! TYPE(C_PTR) , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pset_ptr(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- TYPE(C_PTR), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- name_len = LEN(name)
- hdferr = h5pset_c(prp_id, name, name_len, value)
-
- END SUBROUTINE h5pset_ptr
-!
-!****s* H5P (F03)/h5pget_f_F03
-!
-! NAME
-! h5pget_f (F03)
-!
-! PURPOSE
-! Queries the value of a property.
-!
-! Inputs:
-! prp_id - Property list identifier to modify
-! name - Name of property to get
-! value - Pointer to a location to which to copy the value of of the property
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5pget_f(plid, name, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: plid
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! TYPE(C_PTR) , INTENT(OUT) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pget_ptr(prp_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- TYPE(C_PTR), INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- name_len = LEN(name)
- hdferr = h5pget_c(prp_id, name, name_len, value)
-
- END SUBROUTINE h5pget_ptr
-
-
-!
-!****s* H5P (F03)/h5pregister_f_F90
-!
-! NAME
-! h5pregister
-!
-! PURPOSE
-! Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - Property list class identifier
-! name - Name of property to register
-! size - Size of the property value
-! value - Property value, supported types are:
-! INTEGER
-! REAL
-! DOUBLE PRECISION
-! CHARACTER(LEN=*)
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: class
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! INTEGER(SIZE_T) , INTENT(IN) :: size
-!! TYPE , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
-
- END SUBROUTINE h5pregister_integer
-
- SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- REAL, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(C_PTR) :: f_ptr
-
- f_ptr = C_LOC(value)
-
- name_len = LEN(name)
- hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
-
- END SUBROUTINE h5pregister_real
-
- SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTEGER :: i
- CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
- INTEGER :: chr_len
-
- TYPE(C_PTR) :: f_ptr
- ! To resolve Issue #1 outlined in the preamble of this file we
- ! need to pack the character string into an array.
-
- chr_len = LEN(value)
- ALLOCATE(chr(1:chr_len), STAT=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- DO i = 1, chr_len
- chr(i) = value(i:i)
- ENDDO
-
- f_ptr = C_LOC(chr(1)(1:1))
-
- name_len = LEN(name)
- hdferr = h5pregister_c(class, name, name_len, size, f_ptr)
- DEALLOCATE(chr)
- END SUBROUTINE h5pregister_char
-!
-!****s* H5P (F03)/h5pregister_f_F03
-!
-! NAME
-! h5pregister (F03)
-!
-! PURPOSE
-! Registers a permanent property with a property list class.
-!
-! Inputs:
-! class - Property list class identifier
-! name - Name of property to register
-! size - Size of the property value
-! value - Pointer to value to set the property to
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! June 24, 2008
-!
-! Fortran2003 Interface:
-!! SUBROUTINE h5pregister_f(class, name, size, value, hdferr)
-!! INTEGER(HID_T) , INTENT(IN) :: class
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! INTEGER(SIZE_T) , INTENT(IN) :: size
-!! TYPE(C_PTR) , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
-
- SUBROUTINE h5pregister_ptr(class, name, size, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- TYPE(C_PTR), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- name_len = LEN(name)
- hdferr = h5pregister_c(class, name, name_len, size, value)
- END SUBROUTINE h5pregister_ptr
-
-!
-!****s* H5P (F03)/h5pinsert_f_F90
-!
-! NAME
-! h5pinsert (f90)
-!
-! PURPOSE
-! Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - Property list class identifier
-! name - Name of property to insert
-! size - Size of the property value
-! value - Property value, supported types are:
-! INTEGER
-! REAL
-! DOUBLE PRECISION
-! CHARACTER(LEN=*)
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pinsert_f
-!! INTEGER(HID_T) , INTENT(IN) :: plist
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! INTEGER(SIZE_T) , INTENT(IN) :: size
-!! TYPE , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(c_ptr) :: f_ptr
-
- f_ptr = c_loc(value)
-
- name_len = LEN(name)
- hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
- END SUBROUTINE h5pinsert_integer
-
- SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- REAL, INTENT(IN), TARGET :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
- TYPE(c_ptr) :: f_ptr
-
- f_ptr = c_loc(value)
-
- name_len = LEN(name)
- hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
-
- END SUBROUTINE h5pinsert_real
-
- SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- INTEGER :: i
- CHARACTER(LEN=1), ALLOCATABLE, DIMENSION(:), TARGET :: chr
- INTEGER :: chr_len
-
- TYPE(c_ptr) :: f_ptr
- ! To resolve Issue #1 outlined in the preamble of this file we
- ! need to pack the character string into an array.
-
- chr_len = LEN(value)
- ALLOCATE(chr(1:chr_len), STAT=hdferr)
- IF (hdferr .NE. 0) THEN
- hdferr = -1
- RETURN
- ENDIF
-
- DO i = 1, chr_len
- chr(i) = value(i:i)
- ENDDO
-
- f_ptr = C_LOC(chr(1)(1:1))
-
- name_len = LEN(name)
- hdferr = h5pinsert_c(plist, name , name_len, size, f_ptr)
-
- DEALLOCATE(chr)
-
- END SUBROUTINE h5pinsert_char
-
-!
-!****s* H5P (F03)/h5pinsert_f_F03
-!
-! NAME
-! h5pinsert (f03)
-!
-! PURPOSE
-! Registers a temporary property with a property list class.
-!
-! Inputs:
-! plist - Property list class identifier
-! name - Name of property to insert
-! size - Size of the property value
-! value - Pointer to new value pointer for the property being modified
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! June 24, 2008
-!
-! Fortran90 Interface:
-!! SUBROUTINE h5pinsert_f
-!! INTEGER(HID_T) , INTENT(IN) :: plist
-!! CHARACTER(LEN=*), INTENT(IN) :: name
-!! INTEGER(SIZE_T) , INTENT(IN) :: size
-!! TYPE(C_PTR) , INTENT(IN) :: value
-!! INTEGER , INTENT(OUT) :: hdferr
-!*****
- SUBROUTINE h5pinsert_ptr(plist, name, size, value, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
- TYPE(c_ptr), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
- INTEGER :: name_len
-
- name_len = LEN(name)
- hdferr = h5pinsert_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_ptr
-!
-!****s* H5P (F03)/h5pcreate_class_f_F03
-!
-! NAME
-! h5pcreate_class_f
-!
-! PURPOSE
-! Create a new property list class
-!
-! Inputs:
-! parent - Parent property list class identifier
-! Possible values include:
-! H5P_ROOT_F
-! H5P_FILE_CREATE_F
-! H5P_FILE_ACCESS_F
-! H5P_DATASET_CREATE_F
-! H5P_DATASET_XFER_F
-! H5P_FILE_MOUNT_F
-! name - Name of property to create
-!
-! Outputs:
-! class - Property list class identifier
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! Optional parameters:
-! H5P_cls_create_func_t (create) - Callback routine called when a property list is created
-! create_data - User pointer to any class creation information needed
-! H5P_cls_copy_func_t (copy) - Callback routine called when a property list is copied
-! copy_data - User pointer to any class copy information needed
-! H5P_cls_close_func_t (close) - Callback routine called when a property list is being closed
-! close_data - User pointer to any class close information needed
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! HISTORY
-! Added callback arguments
-! M. Scot Breitenfeld, July 3, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr, create, create_data, copy, copy_data, close, close_data)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: parent
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER(HID_T) , INTENT(OUT) :: class
- INTEGER , INTENT(OUT) :: hdferr
- TYPE(C_PTR) , OPTIONAL :: create_data, copy_data, close_data
- TYPE(C_FUNPTR) , OPTIONAL :: create, copy, close
-!*****
- INTEGER :: name_len
- TYPE(C_PTR) :: create_data_default, copy_data_default, close_data_default
- TYPE(C_FUNPTR) :: create_default, copy_default, close_default
- INTERFACE
- INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, &
- create, create_data, copy, copy_data, close, close_data) &
- BIND(C, NAME='h5pcreate_class_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: parent
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(HID_T), INTENT(OUT) :: class
- TYPE(C_PTR), VALUE :: create_data, copy_data, close_data
- TYPE(C_FUNPTR), VALUE :: create, copy, close
- END FUNCTION h5pcreate_class_c
- END INTERFACE
- name_len = LEN(name)
-
- create_default = c_null_funptr !fix:scot
- create_data_default = c_null_ptr
- copy_default = c_null_funptr !fix:scot
- copy_data_default = c_null_ptr
- close_default = c_null_funptr !fix:scot
- close_data_default = c_null_ptr
-
- IF(PRESENT(create)) create_default = create
- IF(PRESENT(create_data)) create_data_default = create_data
- IF(PRESENT(copy)) copy_default = copy
- IF(PRESENT(copy_data)) copy_data_default = copy_data
- IF(PRESENT(close)) close_default = close
- IF(PRESENT(close_data)) close_data_default = close_data
-
- hdferr = h5pcreate_class_c(parent, name , name_len, class, &
- create_default, create_data_default, &
- copy_default, copy_data_default, &
- close_default, close_data_default)
-
- END SUBROUTINE h5pcreate_class_f
-
-!
-!****s* H5P (F03)/h5pset_file_image_f_F03
-!
-! NAME
-! h5pset_file_image_f
-!
-! PURPOSE
-! Sets an initial file image in a memory buffer.
-!
-! Inputs:
-! fapl_id - File access property list identifier
-! buf_ptr - Pointer to the initial file image,
-! or C_NULL_PTR if no initial file image is desired
-! buf_len - Size of the supplied buffer, or 0 (zero) if no initial image is desired
-!
-! Outputs:
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February 19, 2012
-!
-! Fortran2003 Interface:
- SUBROUTINE h5pset_file_image_f(fapl_id, buf_ptr, buf_len, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: fapl_id
- TYPE(C_PTR) , INTENT(IN) :: buf_ptr
- INTEGER(SIZE_T), INTENT(IN) :: buf_len
- INTEGER , INTENT(OUT) :: hdferr
-!*****
- INTERFACE
- INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) &
- BIND(C, NAME='h5pset_file_image_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: fapl_id
- TYPE(C_PTR), VALUE :: buf_ptr
- INTEGER(SIZE_T), INTENT(IN) :: buf_len
- END FUNCTION h5pset_file_image_c
- END INTERFACE
-
- hdferr = h5pset_file_image_c(fapl_id, buf_ptr, buf_len)
-
- END SUBROUTINE h5pset_file_image_f
-!
-!****s* H5P (F03)/h5pget_file_image_f_F03
-!
-! NAME
-! h5pget_file_image_f
-!
-! PURPOSE
-! Retrieves a copy of the file image designated as the initial content and structure of a file.
-!
-! Inputs:
-! fapl_id - File access property list identifier.
-!
-! Outputs:
-! buf_ptr - Will hold either a C_NULL_PTR or a scalar of type
-! c_loc. If buf_ptr is not C_NULL_PTR, on successful
-! return, buf_ptr shall contain a C pointer to a copy
-! of the initial image provided in the last call to
-! H5Pset_file_image_f for the supplied fapl_id, or
-! buf_ptr shall contain a C_NULL_PTR if there is no
-! initial image set.
-!
-! buf_len_ptr - Contains the value of the buffer parameter for
-! the initial image in the supplied fapl_id. The value
-! will be 0 if no initial image is set.
-!
-!
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February 19, 2012
-!
-! Fortran2003 Interface:
- SUBROUTINE h5pget_file_image_f(fapl_id, buf_ptr, buf_len_ptr, hdferr)
- USE iso_c_binding
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: fapl_id
- TYPE(C_PTR) , INTENT(OUT), DIMENSION(*) :: buf_ptr
- INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
- INTEGER , INTENT(OUT) :: hdferr
-
-!*****
- INTERFACE
- INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) &
- BIND(C, NAME='h5pget_file_image_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- USE H5GLOBAL
- INTEGER(HID_T), INTENT(IN) :: fapl_id
- TYPE(C_PTR), DIMENSION(*), INTENT(OUT) :: buf_ptr
- INTEGER(SIZE_T), INTENT(OUT) :: buf_len_ptr
- END FUNCTION h5pget_file_image_c
- END INTERFACE
-
- hdferr = h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr)
-
- END SUBROUTINE h5pget_file_image_f
-
-END MODULE H5P_PROVISIONAL
-
diff --git a/fortran/src/H5Pff_F90.f90 b/fortran/src/H5Pff_F90.f90
deleted file mode 100644
index b5ea13d..0000000
--- a/fortran/src/H5Pff_F90.f90
+++ /dev/null
@@ -1,949 +0,0 @@
-!****h* ROBODoc/H5P (_F90)
-!
-! NAME
-! H5P_PROVISIONAL
-!
-! PURPOSE
-!
-! This file contains Fortran 90 interfaces for H5P functions. It contains
-! the same functions as H5Pff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Pff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5P function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5P_PROVISIONAL
-
- USE H5GLOBAL
-
- INTERFACE h5pset_fill_value_f
- MODULE PROCEDURE h5pset_fill_value_integer
- MODULE PROCEDURE h5pset_fill_value_real
- MODULE PROCEDURE h5pset_fill_value_char
- END INTERFACE
-
- INTERFACE h5pget_fill_value_f
- MODULE PROCEDURE h5pget_fill_value_integer
- MODULE PROCEDURE h5pget_fill_value_real
- MODULE PROCEDURE h5pget_fill_value_char
- END INTERFACE
-
- INTERFACE h5pset_f
- MODULE PROCEDURE h5pset_integer
- MODULE PROCEDURE h5pset_real
- MODULE PROCEDURE h5pset_char
- END INTERFACE
-
- INTERFACE h5pget_f
- MODULE PROCEDURE h5pget_integer
- MODULE PROCEDURE h5pget_real
- MODULE PROCEDURE h5pget_char
- END INTERFACE
-
- INTERFACE h5pregister_f
- MODULE PROCEDURE h5pregister_integer
- MODULE PROCEDURE h5pregister_real
- MODULE PROCEDURE h5pregister_char
- END INTERFACE
-
- INTERFACE h5pinsert_f
- MODULE PROCEDURE h5pinsert_integer
- MODULE PROCEDURE h5pinsert_real
- MODULE PROCEDURE h5pinsert_char
- END INTERFACE
-
-CONTAINS
-!
-!****s* H5P (F90)/h5pset(get)fill_value_f
-!
-! NAME
-! h5pset(get)fill_value_f
-!
-! PURPOSE
-! Sets(gets) fill value for a dataset creation property list
-!
-! INPUTS
-! prp_id - dataset creation property list identifier
-! type_id - datatype identifier for fill value
-! fillvalue - fill value
-! OUTPUTS
-! type_id - datatype identifier for fill value
-! fillvalue - fill value
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 14, 2001
-!
-! NOTES
-! h5pset(get)fill_value_f function is overloaded to support
-! INTEGER, REAL, DOUBLE PRECISION and CHARACTER dtatypes.
-!
-! SOURCE
- SUBROUTINE h5pset_fill_value_integer(prp_id, type_id, fillvalue, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_INTEGER_C'::h5pset_fill_value_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_value_integer_c
- END INTERFACE
-
- hdferr = h5pset_fill_value_integer_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_integer
-
-
- SUBROUTINE h5pget_fill_value_integer(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- INTEGER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_INTEGER_C'::h5pget_fill_value_integer_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- INTEGER :: fillvalue
- END FUNCTION h5pget_fill_value_integer_c
- END INTERFACE
-
- hdferr = h5pget_fill_value_integer_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_integer
-
-
- SUBROUTINE h5pset_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_REAL_C'::h5pset_fill_value_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- REAL, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_value_real_c
- END INTERFACE
-
- hdferr = h5pset_fill_value_real_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_real
-
-
- SUBROUTINE h5pget_fill_value_real(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- REAL, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_REAL_C'::h5pget_fill_value_real_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- REAL :: fillvalue
- END FUNCTION h5pget_fill_value_real_c
- END INTERFACE
-
- hdferr = h5pget_fill_value_real_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_real
-
- SUBROUTINE h5pset_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUEC_C'::h5pset_fill_valuec_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: fillvalue
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER, INTENT(IN) :: fillvalue
- END FUNCTION h5pset_fill_valuec_c
- END INTERFACE
-
- hdferr = h5pset_fill_valuec_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pset_fill_value_char
-
- SUBROUTINE h5pget_fill_value_char(prp_id, type_id, fillvalue, &
- hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
- ! of fillvalue datatype
- ! (in memory)
- CHARACTER, INTENT(IN) :: fillvalue ! Fillvalue
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-
- INTERFACE
- INTEGER FUNCTION h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUEC_C'::h5pget_fill_valuec_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: fillvalue
- INTEGER(HID_T), INTENT(IN) :: prp_id
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER :: fillvalue
- END FUNCTION h5pget_fill_valuec_c
- END INTERFACE
-
- hdferr = h5pget_fill_valuec_c(prp_id, type_id, fillvalue)
- END SUBROUTINE h5pget_fill_value_char
-!
-!****s* H5P (F90)/h5pset_integer
-!
-! NAME
-! h5pset_integer
-!
-! PURPOSE
-! Sets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! OUTPUTS
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! SOURCE
- SUBROUTINE h5pset_integer(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pset_integer_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_INTEGER_C'::h5pset_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pset_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pset_integer_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pset_integer
-
-!
-!****s* H5P (F90)/h5pset_real
-!
-! NAME
-! h5pset_real
-!
-! PURPOSE
-! Sets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! OUTPUTS
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! SOURCE
- SUBROUTINE h5pset_real(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pset_real_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_REAL_C'::h5pset_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- REAL, INTENT(IN) :: value
- END FUNCTION h5pset_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pset_real_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pset_real
-
-!****s* H5P (F90)/h5pset_char
-!
-! NAME
-! h5pset_char
-!
-! PURPOSE
-! Sets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! value - value to set property to
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! OPTIONAL PARAMETERS
-! NONE
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-! SOURCE
- SUBROUTINE h5pset_char(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5psetc_c(prp_id, name, name_len, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSETC_C'::h5psetc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5psetc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5psetc_c(prp_id, name , name_len, value, value_len)
- END SUBROUTINE h5pset_char
-
-!****s* H5P (F90)/h5pget_integer
-!
-! NAME
-! h5pget_integer
-!
-! PURPOSE
-! Gets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! OUTPUTS
-! value - value of property
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! SOURCE
- SUBROUTINE h5pget_integer(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- INTEGER, INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_integer_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_INTEGER_C'::h5pget_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER, INTENT(OUT) :: value
- END FUNCTION h5pget_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pget_integer_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pget_integer
-
-!
-!****s* H5P (F90)/h5pget_real
-!
-! NAME
-! h5pget_real
-!
-! PURPOSE
-! Gets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! OUTPUTS
-! value - value of property
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-! SOURCE
- SUBROUTINE h5pget_real(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- REAL, INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pget_real_c(prp_id, name, name_len, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_REAL_C'::h5pget_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- REAL, INTENT(OUT) :: value
- END FUNCTION h5pget_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pget_real_c(prp_id, name , name_len, value)
- END SUBROUTINE h5pget_real
-
-!
-!****s* H5P (F90)/h5pget_char
-!
-! NAME
-! h5pget_char
-!
-! PURPOSE
-! Gets a property list value
-!
-! INPUTS
-! prp_id - iproperty list identifier to modify
-! name - name of property to modify
-! OUTPUTS
-! value - value of property
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! SOURCE
- SUBROUTINE h5pget_char(prp_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to modify
- CHARACTER(LEN=*), INTENT(OUT) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pgetc_c(prp_id, name, name_len, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGETC_C'::h5pgetc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: prp_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- CHARACTER(LEN=*), INTENT(OUT) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pgetc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pgetc_c(prp_id, name , name_len, value, value_len)
- END SUBROUTINE h5pget_char
-
-!
-!****s* H5P (F90)/h5pregister_integer
-!
-! NAME
-! h5pregister_integer
-!
-! PURPOSE
-! Registers a permanent property with a property list class.
-!
-! INPUTS
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-!
-! SOURCE
- SUBROUTINE h5pregister_integer(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pregister_integer_c(class, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_INTEGER_C'::h5pregister_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pregister_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pregister_integer_c(class, name , name_len, size, value)
- END SUBROUTINE h5pregister_integer
-
-!****s* H5P (F90)/h5pregister_real
-!
-! NAME
-!
-! h5pregister_real
-!
-! PURPOSE Registers a permanent property with a property list class.
-!
-! INPUTS
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-! SOURCE
- SUBROUTINE h5pregister_real(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pregister_real_c(class, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_REAL_C'::h5pregister_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- REAL, INTENT(IN) :: value
- END FUNCTION h5pregister_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pregister_real_c(class, name , name_len, size, value)
- END SUBROUTINE h5pregister_real
-
-!
-!****s* H5P (F90)/h5pregister_char
-!
-! NAME
-! h5pregister_char
-!
-! PURPOSE
-! Registers a permanent property with a property list class.
-!
-! INPUTS
-! class - property list class to register
-! permanent property within
-! name - name of property to register
-! size - size of property in bytes
-! value - default value for property in newly
-! created property lists
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-! SOURCE
- SUBROUTINE h5pregister_char(class, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: class ! Property list class identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to register
- INTEGER(SIZE_T), INTENT(IN) :: size ! size of the property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pregisterc_c(class, name, name_len, size, value, &
- value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTERC_C'::h5pregisterc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: class
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pregisterc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pregisterc_c(class, name , name_len, size, value, value_len)
- END SUBROUTINE h5pregister_char
-!
-!****s* H5P (F90)/h5pinsert_integer
-!
-! NAME
-! h5pinsert_integer
-!
-! PURPOSE
-! Registers a temporary property with a property list class.
-!
-! INPUTS
-! plist - property list identifier
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-! SOURCE
- SUBROUTINE h5pinsert_integer(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- INTEGER, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_integer_c(plist, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_INTEGER_C'::h5pinsert_integer_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- INTEGER, INTENT(IN) :: value
- END FUNCTION h5pinsert_integer_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pinsert_integer_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_integer
-
-!
-!****s* H5P (F90)/h5pinsert_real
-!
-! NAME
-! h5pinsert_real
-!
-! PURPOSE
-! Registers a temporary property with a property list class.
-!
-! INPUTS
-! plist - property list identifier
-! permanent property within
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-! SOURCE
- SUBROUTINE h5pinsert_real(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of the property value
- REAL, INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsert_real_c(plist, name, name_len, size, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_REAL_C'::h5pinsert_real_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- REAL, INTENT(IN) :: value
- END FUNCTION h5pinsert_real_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pinsert_real_c(plist, name , name_len, size, value)
- END SUBROUTINE h5pinsert_real
-
-
-!
-!****s* H5P (F90)/h5pinsert_char
-!
-! NAME
-! h5pinsert_char
-!
-! PURPOSE
-! Registers a temporary property with a property list class.
-!
-! INPUTS
-! plist - property list identifier
-! permanent property within
-! name - name of property to insert
-! size - size of property in bytes
-! value - initial value for the property
-! OUTPUTS
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 10, 2002
-! SOURCE
-SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: plist ! Property list identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of property to insert
- INTEGER(SIZE_T), INTENT(IN) :: size ! Size of property value
- CHARACTER(LEN=*), INTENT(IN) :: value ! Property value
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
- INTEGER :: value_len
-
- INTERFACE
- INTEGER FUNCTION h5pinsertc_c(plist, name, name_len, size, value, value_len)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERTC_C'::h5pinsertc_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: value
- INTEGER(HID_T), INTENT(IN) :: plist
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(SIZE_T), INTENT(IN) :: size
- CHARACTER(LEN=*), INTENT(IN) :: value
- INTEGER, INTENT(IN) :: value_len
- END FUNCTION h5pinsertc_c
- END INTERFACE
-
- name_len = LEN(name)
- value_len = LEN(value)
- hdferr = h5pinsertc_c(plist, name , name_len, size, value, value_len)
- END SUBROUTINE h5pinsert_char
-
-!
-!****s* H5P (F90)/h5pcreate_class_f
-!
-! NAME
-! h5pcreate_class_f
-!
-! PURPOSE
-! Create a new property list class
-!
-! INPUTS
-! parent - Property list identifier of the parent class
-! Possible values include:
-! H5P_ROOT_F
-! H5P_FILE_CREATE_F
-! H5P_FILE_ACCESS_F
-! H5P_DATASET_CREATE_F
-! H5P_DATASET_XFER_F
-! H5P_FILE_MOUNT_F
-! name - name of the class we are creating
-! OUTPUTS
-! class - property list class identifier
-! hdferr - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! October 9, 2002
-!
-! SOURCE
- SUBROUTINE h5pcreate_class_f(parent, name, class, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: parent ! parent property list class
- ! identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! name of property tocreate
- INTEGER(HID_T), INTENT(OUT) :: class ! property list class identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5pcreate_class_f90_c(parent, name, name_len, class)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_F90_C'::h5pcreate_class_f90_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: parent
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: name_len
- INTEGER(HID_T), INTENT(OUT) :: class
- END FUNCTION h5pcreate_class_f90_c
- END INTERFACE
-
- name_len = LEN(name)
- hdferr = h5pcreate_class_f90_c(parent, name, name_len, class)
-
- END SUBROUTINE h5pcreate_class_f
-
-END MODULE H5P_PROVISIONAL
-
diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c
index 068f24e..271bfee 100644
--- a/fortran/src/H5Rf.c
+++ b/fortran/src/H5Rf.c
@@ -43,7 +43,7 @@
* SOURCE
*/
int_f
-nh5rcreate_object_c(haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
+h5rcreate_object_c(haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
/******/
{
char *c_name = NULL;
@@ -69,7 +69,7 @@ done:
if(c_name)
HDfree(c_name);
return ret_value;
-} /* nh5rcreate_object_c() */
+} /* h5rcreate_object_c() */
/****if* H5Rf/h5rcreate_region_c
* NAME
@@ -94,7 +94,7 @@ done:
* SOURCE
*/
int_f
-nh5rcreate_region_c(int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id)
+h5rcreate_region_c(int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id)
/******/
{
char *c_name = NULL;
@@ -120,7 +120,7 @@ done:
if(c_name)
HDfree(c_name);
return ret_value;
-} /* end nh5rcreate_region_c() */
+} /* end h5rcreate_region_c() */
/****if* H5Rf/h5rcreate_ptr_c
* NAME
@@ -185,7 +185,7 @@ h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *r
* SOURCE
*/
int_f
-nh5rdereference_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
+h5rdereference_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
/******/
{
hdset_reg_ref_t ref_c;
@@ -206,7 +206,7 @@ nh5rdereference_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id)
done:
return ret_value;
-} /* end nh5rdereference_region_c() */
+} /* end h5rdereference_region_c() */
/****if* H5Rf/h5rdereference_object_c
* NAME
@@ -228,7 +228,7 @@ done:
* SOURCE
*/
int_f
-nh5rdereference_object_c(hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id)
+h5rdereference_object_c(hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id)
/******/
{
hid_t c_obj_id;
@@ -246,7 +246,7 @@ nh5rdereference_object_c(hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id)
done:
return ret_value;
-} /* end nh5rdereference_object_c() */
+} /* end h5rdereference_object_c() */
/****if* H5Rf/h5rdereference_ptr_c
* NAME
@@ -306,7 +306,7 @@ h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_
* SOURCE
*/
int_f
-nh5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id)
+h5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id)
/******/
{
hid_t c_space_id;
@@ -327,7 +327,7 @@ nh5rget_region_region_c(hid_t_f *dset_id, int_f *ref, hid_t_f *space_id)
done:
return ret_value;
-} /* end nh5rget_region_region_c() */
+} /* end h5rget_region_region_c() */
/****if* H5Rf/h5rget_region_ptr_c
* NAME
@@ -366,7 +366,7 @@ h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id)
done:
return ret_value;
-} /* end nh5rget_region_ptr_c() */
+} /* end h5rget_region_ptr_c() */
/****if* H5Rf/h5rget_object_type_obj_c
@@ -390,7 +390,7 @@ done:
* SOURCE
*/
int_f
-nh5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type)
+h5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type)
/******/
{
H5O_type_t c_obj_type;
@@ -408,7 +408,7 @@ nh5rget_object_type_obj_c(hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type)
done:
return ret_value;
-} /* end nh5rget_object_type_obj_c() */
+} /* end h5rget_object_type_obj_c() */
/****if* H5Rf/h5rget_name_object_c
* NAME
@@ -434,7 +434,7 @@ done:
* SOURCE
*/
int_f
-nh5rget_name_object_c(hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+h5rget_name_object_c(hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
/******/
{
hobj_ref_t ref_c = (hobj_ref_t)*ref;
@@ -466,7 +466,7 @@ done:
if(c_buf)
HDfree(c_buf);
return ret_value;
-} /* end nh5rget_name_object_c() */
+} /* end h5rget_name_object_c() */
/****if* H5Rf/h5rget_name_region_c
* NAME
@@ -492,7 +492,7 @@ done:
* SOURCE
*/
int_f
-nh5rget_name_region_c(hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+h5rget_name_region_c(hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
/******/
{
hdset_reg_ref_t ref_c;
diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff.F90
index 8f40607..69455c8 100644
--- a/fortran/src/H5Rff_F03.f90
+++ b/fortran/src/H5Rff.F90
@@ -1,32 +1,29 @@
-!****h* ROBODoc/H5R (F03)
+!****h* ROBODoc/H5R
!
! NAME
-! MODULE H5R_PROVISIONAL
+! MODULE H5R
!
! FILE
-! fortran/src/H5Rff_F03.f90
+! fortran/src/H5Rff.f90
!
! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5R functions.
-! It contains the same functions as H5Rff_DEPRECIATE.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Rff_DEPRECIATE.f90 if Fortran 2003 functions are enabled.
+! This file contains Fortran interfaces for H5R functions.
!
! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! NOTES
! *** IMPORTANT ***
@@ -35,7 +32,8 @@
! This is needed for Windows based operating systems.
!
!*****
-MODULE H5R_PROVISIONAL
+
+MODULE H5R
USE H5GLOBAL
USE, INTRINSIC :: ISO_C_BINDING
@@ -53,6 +51,12 @@ MODULE H5R_PROVISIONAL
! END TYPE
!
+ INTERFACE h5rget_object_type_f
+
+ MODULE PROCEDURE h5rget_object_type_obj_f
+
+ END INTERFACE
+
TYPE :: hdset_reg_ref_t_f03
INTEGER(C_SIGNED_CHAR), DIMENSION(1:H5R_DSET_REG_REF_BUF_SIZE_F) :: ref
END TYPE hdset_reg_ref_t_f03
@@ -140,8 +144,70 @@ MODULE H5R_PROVISIONAL
END FUNCTION h5rget_region_ptr_c
END INTERFACE
+
CONTAINS
+!****s* H5R/h5rget_object_type_obj_f
+!
+! NAME
+! h5rget_object_type_obj_f
+!
+! PURPOSE
+! Retrieves the type of object that an object reference points to.
+!
+! INPUTS
+! dset_id - identifier of the dataset containing
+! reference to the objects
+! ref - reference to open
+! OUTPUTS
+! obj_type - object_type, possible values:
+! H5G_UNKNOWN_F
+! H5G_GROUP_F
+! H5G_DATASET_F
+! H5G_TYPE_F
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). February 28, 2001
+!
+! NOTES
+! This is a module procedure for the h5rget_object_type_f
+! subroutine.
+! SOURCE
+ SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
+ TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
+ INTEGER, INTENT(OUT) :: obj_type ! Object type
+ ! H5G_UNKNOWN_F
+ ! H5G_GROUP_F
+ ! H5G_DATASET_F
+ ! H5G_TYPE_F
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
+
+ INTERFACE
+ INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type) BIND(C, NAME='h5rget_object_type_obj_c')
+ USE H5GLOBAL
+ INTEGER(HID_T), INTENT(IN) :: dset_id
+ INTEGER(HADDR_T) :: ref_f
+ INTEGER, INTENT(OUT) :: obj_type
+ END FUNCTION h5rget_object_type_obj_c
+ END INTERFACE
+
+ ref_f = ref%ref
+ hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
+
+ END SUBROUTINE h5rget_object_type_obj_f
+
+
!****s* H5R/h5rget_region_region_f
!
! NAME
@@ -180,13 +246,10 @@ CONTAINS
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
INTERFACE
- INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id)
+ INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id) BIND(C, NAME='h5rget_region_region_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c
- !DEC$ENDIF
+ IMPLICIT NONE
INTEGER(HID_T), INTENT(IN) :: dset_id
- ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
INTEGER :: ref_f(REF_REG_BUF_LEN)
INTEGER(HID_T), INTENT(OUT) :: space_id
END FUNCTION h5rget_region_region_c
@@ -322,16 +385,13 @@ CONTAINS
INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
INTERFACE
- INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
+ INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id) BIND(C,NAME='h5rcreate_region_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+ IMPORT :: C_CHAR
+ IMPLICIT NONE
INTEGER :: ref_f(REF_REG_BUF_LEN)
INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
INTEGER :: namelen
INTEGER(HID_T), INTENT(IN) :: space_id
END FUNCTION h5rcreate_region_c
@@ -716,4 +776,4 @@ CONTAINS
END SUBROUTINE h5rget_obj_type_f
-END MODULE H5R_PROVISIONAL
+END MODULE H5R
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
deleted file mode 100644
index 77a1ff8..0000000
--- a/fortran/src/H5Rff.f90
+++ /dev/null
@@ -1,128 +0,0 @@
-!****h* ROBODoc/H5R
-!
-! NAME
-! MODULE H5R
-!
-! FILE
-! fortran/src/H5Rff.f90
-!
-! PURPOSE
-! This file contains Fortran interfaces for H5R functions. It includes
-! all the functions that are independent on whether the Fortran 2003 functions
-! are enabled or disabled.
-!
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5R function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5R
- USE H5GLOBAL
-
- ! If you change the value of these parameters, do not forget to change corresponding
- ! values in the H5f90.h file.
- ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- !
- ! TYPE hobj_ref_t_f
- ! INTEGER ref(REF_OBJ_BUF_LEN)
- ! END TYPE
- !
- ! TYPE hdset_reg_ref_t_f
- ! INTEGER ref(REF_REG_BUF_LEN)
- ! END TYPE
- !
-
- INTERFACE h5rget_object_type_f
-
- MODULE PROCEDURE h5rget_object_type_obj_f
-
- END INTERFACE
-
-CONTAINS
-
-!****s* H5R/h5rget_object_type_obj_f
-!
-! NAME
-! h5rget_object_type_obj_f
-!
-! PURPOSE
-! Retrieves the type of object that an object reference points to.
-!
-! INPUTS
-! dset_id - identifier of the dataset containing
-! reference to the objects
-! ref - reference to open
-! OUTPUTS
-! obj_type - object_type, possible values:
-! H5G_UNKNOWN_F
-! H5G_GROUP_F
-! H5G_DATASET_F
-! H5G_TYPE_F
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rget_object_type_f
-! subroutine.
-! SOURCE
- SUBROUTINE h5rget_object_type_obj_f(dset_id, ref, obj_type, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER, INTENT(OUT) :: obj_type ! Object type
- ! H5G_UNKNOWN_F
- ! H5G_GROUP_F
- ! H5G_DATASET_F
- ! H5G_TYPE_F
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rget_object_type_obj_c(dset_id, ref_f, obj_type)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJECT_TYPE_OBJ_C':: h5rget_object_type_obj_c
- !DEC$ENDIF
- ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HADDR_T) :: ref_f
- INTEGER, INTENT(OUT) :: obj_type
- END FUNCTION h5rget_object_type_obj_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rget_object_type_obj_c(dset_id, ref_f, obj_type )
-
- END SUBROUTINE h5rget_object_type_obj_f
-
-END MODULE H5R
diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90
deleted file mode 100644
index ac45857..0000000
--- a/fortran/src/H5Rff_F90.f90
+++ /dev/null
@@ -1,514 +0,0 @@
-!****h* ROBODoc/H5R (F90)
-!
-! NAME
-! MODULE H5R_PROVISIONAL
-!
-! FILE
-! fortran/src/H5Rff_F90.f90
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5R functions. It contains
-! the same functions as H5Rff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Rff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5R function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5R_PROVISIONAL
- USE H5GLOBAL
-
-! If you change the value of these parameters, do not forget to change corresponding
-! values in the H5f90.h file.
-! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
-!
-! TYPE hobj_ref_t_f
-! INTEGER ref(REF_OBJ_BUF_LEN)
-! END TYPE
-!
-! TYPE hdset_reg_ref_t_f
-! INTEGER ref(REF_REG_BUF_LEN)
-! END TYPE
-!
- INTERFACE h5rcreate_f
-
- MODULE PROCEDURE h5rcreate_object_f
- MODULE PROCEDURE h5rcreate_region_f
-
- END INTERFACE
-
- INTERFACE h5rdereference_f
-
- MODULE PROCEDURE h5rdereference_object_f
- MODULE PROCEDURE h5rdereference_region_f
-
- END INTERFACE
-
- INTERFACE h5rget_name_f
-
- MODULE PROCEDURE h5rget_name_object_f
- MODULE PROCEDURE h5rget_name_region_f
-
- END INTERFACE
-
- INTERFACE h5rget_region_f
-
- MODULE PROCEDURE h5rget_region_region_f
-
- END INTERFACE
-
-
-CONTAINS
-
-
-!****s* H5R/h5rget_region_region_f
-!
-! NAME
-! h5rget_region_region_f
-!
-! PURPOSE
-! Retrieves a dataspace with the specified region selected
-!
-! INPUTS
-! dset_id - identifier of the dataset containing
-! reference to the regions
-! ref - reference to open
-! OUTPUTS
-! space_id - dataspace identifier
-! hdferr - Returns 0 if successful and -1 if fails
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rget_region_f subroutine.
-!
-! SOURCE
- SUBROUTINE h5rget_region_region_f(dset_id, ref, space_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Dataset region reference
- INTEGER(HID_T), INTENT(OUT) :: space_id ! Space identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rget_region_region_c(dset_id, ref_f, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_REGION_C':: h5rget_region_region_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
- ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(OUT) :: space_id
- END FUNCTION h5rget_region_region_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rget_region_region_c(dset_id, ref_f, space_id )
-
- END SUBROUTINE h5rget_region_region_f
-
-
-
-!****s* H5R (F90)/h5rcreate_object_f
-!
-! NAME
-! h5rcreate_object_f
-!
-! PURPOSE
-! Creates reference to the object
-!
-! INPUTS
-! loc_id - location identifier
-! name - name of the object at the specified location
-! OUTPUTS
-! ref - reference to the specified object
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rcreate_f subroutine.
-!
-! SOURCE
- SUBROUTINE h5rcreate_object_f(loc_id, name, ref, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the object at location specified
- ! by loc_id identifier
- TYPE(hobj_ref_t_f), INTENT(OUT) :: ref ! Object reference
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: namelen ! Name length
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rcreate_object_c(ref_f, loc_id, name, namelen)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_OBJECT_C':: h5rcreate_object_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HADDR_T) :: ref_f
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- END FUNCTION h5rcreate_object_c
- END INTERFACE
-
- namelen = LEN(name)
- ref_f = 0
- hdferr = h5rcreate_object_c(ref_f, loc_id, name, namelen )
- ref%ref = ref_f
-
- END SUBROUTINE h5rcreate_object_f
-
-!****s* H5R (F90)/h5rcreate_region_f
-!
-! NAME
-! h5rcreate_region_f
-!
-! PURPOSE
-! Creates reference to the dataset region
-!
-! INPUTS
-! loc_id - location identifier
-! name - name of the dataset at the specified location
-! space_id - dataspace identifier that describes selected region
-! OUTPUTS
-! ref - reference to the dataset region
-! hdferr: - error code
-! Success: 0
-! Failure: -1
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rcreate_f subroutine.
-!
-! SOURCE
- SUBROUTINE h5rcreate_region_f(loc_id, name, space_id, ref, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Location identifier
- CHARACTER(LEN=*), INTENT(IN) :: name ! Name of the dataset at location specified
- ! by loc_id identifier
- INTEGER(HID_T), INTENT(IN) :: space_id ! Dataset's dataspace identifier
- TYPE(hdset_reg_ref_t_f), INTENT(OUT) :: ref ! Dataset region reference
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: namelen ! Name length
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_REGION_C':: h5rcreate_region_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- ! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(IN) :: loc_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER :: namelen
- INTEGER(HID_T), INTENT(IN) :: space_id
- END FUNCTION h5rcreate_region_c
- END INTERFACE
-
- namelen = LEN(name)
- ref_f = 0
- hdferr = h5rcreate_region_c(ref_f, loc_id, name, namelen, space_id )
- ref%ref = ref_f
-
- END SUBROUTINE h5rcreate_region_f
-!****s* H5R (F90)/h5rdereference_object_f
-!
-! NAME
-! h5rdereference_object_f
-!
-! PURPOSE
-! Opens the HDF5 object referenced
-!
-! INPUTS
-! dset_id - identifier of the dataset containing reference
-! ref - reference to open
-! OUTPUTS
-! obj_id - object_identifier
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rdereference_f subroutine.
-!
-! SOURCE
- SUBROUTINE h5rdereference_object_f(dset_id, ref, obj_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rdereference_object_c(dset_id, ref_f, obj_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_OBJECT_C':: h5rdereference_object_c
- !DEC$ENDIF
- ! INTEGER, PARAMETER :: REF_OBJ_BUF_LEN = 2
- INTEGER(HID_T), INTENT(IN) :: dset_id
- INTEGER(HADDR_T) :: ref_f
- INTEGER(HID_T), INTENT(OUT) :: obj_id
- END FUNCTION h5rdereference_object_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rdereference_object_c(dset_id, ref_f, obj_id )
-
- END SUBROUTINE h5rdereference_object_f
-!****s* H5R (F90)/h5rdereference_region_f
-!
-! NAME
-! h5rdereference_region_f
-!
-! PURPOSE
-! Opens the dataset region
-!
-! INPUTS
-! dset_id - identifier of the dataset containing
-! reference to teh regions
-! ref - reference to open
-! OUTPUTS
-! obj_id - dataspace identifier
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). February 28, 2001
-!
-! NOTES
-! This is a module procedure for the h5rdereference_f subroutine.
-!
-! SOURCE
- SUBROUTINE h5rdereference_region_f(dset_id, ref, obj_id, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: dset_id ! Dataset identifier
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(HID_T), INTENT(OUT) :: obj_id ! Dataspace identifier
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
-
- INTERFACE
- INTEGER FUNCTION h5rdereference_region_c(dset_id, ref_f, obj_id)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_REGION_C':: h5rdereference_region_c
- !DEC$ENDIF
- INTEGER(HID_T), INTENT(IN) :: dset_id
-! INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
- INTEGER :: ref_f(REF_REG_BUF_LEN)
- INTEGER(HID_T), INTENT(OUT) :: obj_id
- END FUNCTION h5rdereference_region_c
- END INTERFACE
-
- ref_f = ref%ref
- hdferr = h5rdereference_region_c(dset_id, ref_f, obj_id )
-
- END SUBROUTINE h5rdereference_region_f
-!****s* H5R (F90)/h5rget_name_object_f
-!
-! NAME
-! h5rget_name_object_f
-!
-! PURPOSE
-! Retrieves a name of a referenced object.
-!
-! INPUTS
-! loc_id - Identifier for the file containing the reference or for any object in that file.
-! ref - An object or dataset region reference.
-!
-! OUTPUTS
-! name - A name associated with the referenced object or dataset region.
-!
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! OPTIONAL PARAMETERS
-! size - The size of the name buffer, returning 0 (zero) if
-! no name is associated with the identifier
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! March 28, 2008
-!
-! SOURCES
- SUBROUTINE h5rget_name_object_f(loc_id, ref, name, hdferr, size)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id ! Identifier for the file containing the reference or
- ! for any object in that file.
- ! or for the group that dataset is in.
- TYPE(hobj_ref_t_f), INTENT(IN) :: ref ! Object reference
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size ! The size of the name buffer,
- ! returning 0 (zero) if no name is associated with the identifier
- CHARACTER(LEN=*), INTENT(OUT) :: name ! A name associated with the referenced object or dataset region.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER(HADDR_T) :: ref_f ! Local buffer to pass reference
-
- INTEGER(SIZE_T) :: size_default
- INTEGER(SIZE_T) :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_OBJECT_C':: h5rget_name_object_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(SIZE_T) :: size_default
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER(HADDR_T) :: ref_f
-
- INTEGER(SIZE_T) :: name_len
- END FUNCTION h5rget_name_object_c
- END INTERFACE
-
- name_len=LEN(name)
-
- ref_f = ref%ref
- hdferr = h5rget_name_object_c(loc_id, ref_f, name, name_len, size_default)
-
- IF(PRESENT(size)) size = size_default
-
- END SUBROUTINE h5rget_name_object_f
-
-!****s* H5R (F90)/h5rget_name_region_f
-!
-! NAME
-! h5rget_name_region_f
-!
-! PURPOSE
-! Retrieves a name of a dataset region.
-!
-! INPUTS
-! loc_id - Identifier for the file containing the reference or
-! for any object in that file.
-! ref - An object or dataset region reference.
-!
-! OUTPUTS
-! name - A name associated with the referenced object or dataset region.
-! hdferr - error code
-! Success: 0
-! Failure: -1
-!
-! OPTIONAL PARAMETERS
-! size - The size of the name buffer, returning 0 (zero) if no
-! name is associated with the identifier
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! March 28, 2008
-!
-! SOURCE
- SUBROUTINE h5rget_name_region_f(loc_id, ref, name, hdferr, size)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: loc_id
- TYPE(hdset_reg_ref_t_f), INTENT(IN) :: ref
- INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER, INTENT(OUT) :: hdferr
-!*****
- INTEGER :: ref_f(REF_REG_BUF_LEN) ! Local buffer to pass reference
- INTEGER(SIZE_T) :: size_default
- INTEGER(SIZE_T) :: name_len
-
- INTERFACE
- INTEGER FUNCTION h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_REGION_C':: h5rget_name_region_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: loc_id
- INTEGER(SIZE_T) :: size_default
- CHARACTER(LEN=*), INTENT(OUT) :: name
- INTEGER :: ref_f(REF_REG_BUF_LEN)
-
- INTEGER(SIZE_T) :: name_len
- END FUNCTION h5rget_name_region_c
- END INTERFACE
-
- name_len=LEN(name)
-
- ref_f = ref%ref
- hdferr = h5rget_name_region_c(loc_id, ref_f, name, name_len, size_default)
-
- IF(PRESENT(size)) size = size_default
-
- END SUBROUTINE h5rget_name_region_f
-
-END MODULE H5R_PROVISIONAL
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.F90
index c493d46..c493d46 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.F90
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.F90
index 4b4c0b6..d43db38 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.F90
@@ -36,6 +36,21 @@
MODULE H5T
USE H5GLOBAL
+ USE, INTRINSIC :: ISO_C_BINDING
+
+!****t* H5T (F03)/hvl_t
+! Fortran2003 Derived Type:
+ TYPE hvl_t
+ INTEGER(size_t) :: len ! Length of VL data (in base type units)
+ TYPE(C_PTR) :: p ! Pointer to VL data
+ END TYPE hvl_t
+
+!*****
+
+ INTERFACE h5tenum_insert_f
+ MODULE PROCEDURE h5tenum_insert_f03
+ MODULE PROCEDURE h5tenum_insert_f90
+ END INTERFACE
CONTAINS
@@ -3102,4 +3117,169 @@ CONTAINS
hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id)
END SUBROUTINE h5tget_native_type_f
+!****s* H5T (F03)/H5Tconvert_f_F03
+!
+! NAME
+! H5Tconvert_f
+!
+! PURPOSE
+! Converts data from between specified datatypes.
+!
+! Inputs:
+! src_id - Identifier for the source datatype.
+! dst_id - Identifier for the destination datatype.
+! nelmts - Size of array buf.
+! buf - Array containing pre-conversion values.
+! background - Optional background buffer.
+! plist_id - Dataset transfer property list identifier.
+!
+! Outputs:
+! buf - Array containing post-conversion values.
+! hdferr - error code:
+! 0 on success and -1 on failure
+! AUTHOR
+! M. Scot Breitenfeld
+! Decemember 8, 2008
+!
+! Fortran2003 Interface:
+ SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id)
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: src_id
+ INTEGER(HID_T) , INTENT(IN) :: dst_id
+ INTEGER(SIZE_T), INTENT(IN) :: nelmts
+ TYPE(C_PTR) , INTENT(INOUT) :: buf
+ INTEGER , INTENT(OUT) :: hdferr
+ TYPE(C_PTR) , INTENT(INOUT), OPTIONAL :: background
+ INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: plist_id
+!*****
+ INTEGER(HID_T) :: plist_id_default
+ TYPE(C_PTR) :: background_default
+
+ INTERFACE
+ INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) &
+ BIND(C, NAME='h5tconvert_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: src_id
+ INTEGER(HID_T) , INTENT(IN) :: dst_id
+ INTEGER(SIZE_T), INTENT(IN) :: nelmts
+ TYPE(C_PTR) , VALUE :: buf
+ TYPE(C_PTR) , VALUE :: background
+ INTEGER(HID_T) , INTENT(IN) :: plist_id
+ END FUNCTION h5tconvert_c
+ END INTERFACE
+
+ plist_id_default = H5P_DEFAULT_F
+ IF(PRESENT(plist_id)) plist_id_default = plist_id
+
+ background_default = C_NULL_PTR
+ IF(PRESENT(background)) background_default = background
+
+ hdferr = H5Tconvert_c(src_id, dst_id, nelmts, buf, background_default, plist_id_default)
+
+ END SUBROUTINE h5tconvert_f
+!
+!****s* (F03) H5T/h5tenum_insert_f90
+!
+! NAME
+! h5tenum_insert_f
+!
+! PURPOSE
+! Inserts a new enumeration datatype member.
+!
+! INPUTS
+! type_id - Datatype identifier for the enumeration datatype.
+! name - Datatype identifier.
+! value - Value of the new member.
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! Elena Pourmal
+! August 12, 1999
+!
+! HISTORY
+! Explicit Fortran interfaces were added for
+! called C functions (it is needed for Windows
+! port). March 7, 2001
+! SOURCE
+ SUBROUTINE h5tenum_insert_f90(type_id, name, value, hdferr)
+ IMPLICIT NONE
+ INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+ CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
+ INTEGER, INTENT(IN) :: value ! value of the new member
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+!*****
+ INTEGER :: namelen
+ INTERFACE
+ INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
+ USE H5GLOBAL
+ !DEC$IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
+ !DEC$ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER(HID_T), INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ INTEGER, INTENT(IN) :: value
+ INTEGER :: namelen
+ END FUNCTION h5tenum_insert_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5tenum_insert_c(type_id, name, namelen, value)
+ END SUBROUTINE h5tenum_insert_f90
+
+!
+!****s* (F03) H5T/h5tenum_insert_f03
+!
+! NAME
+! h5tenum_insert_f
+!
+! PURPOSE
+! Inserts a new enumeration datatype member.
+!
+! INPUTS
+! type_id - Datatype identifier for the enumeration datatype.
+! name - Datatype identifier.
+! value - Pointer to the value of the new member.
+! OUTPUTS
+! hdferr - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! February 6, 2015
+!
+! HISTORY
+! F2003 implementation of function
+! SOURCE
+ SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr)
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: type_id
+ CHARACTER(LEN=*), INTENT(IN) :: name
+ TYPE(C_PTR) , INTENT(IN) :: value
+ INTEGER, INTENT(OUT) :: hdferr
+!*****
+ INTEGER :: namelen
+
+ INTERFACE
+ INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) &
+ BIND(C, NAME='h5tenum_insert_ptr_c')
+ USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER(HID_T) , INTENT(IN) :: type_id
+ CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+ INTEGER :: namelen
+ TYPE(C_PTR), VALUE :: value
+ END FUNCTION h5tenum_insert_ptr_c
+ END INTERFACE
+
+ namelen = LEN(name)
+ hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value)
+ END SUBROUTINE h5tenum_insert_f03
+
END MODULE H5T
diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90
deleted file mode 100644
index 2c9f212..0000000
--- a/fortran/src/H5Tff_F03.f90
+++ /dev/null
@@ -1,223 +0,0 @@
-!****h* ROBODoc/H5T (F03)
-!
-! NAME
-! H5T_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 and Fortran 2003 interfaces for H5T functions.
-! It contains the same functions as H5Tff_F90.f90 but includes the
-! Fortran 2003 functions and the interface listings. This file will be compiled
-! instead of H5Tff_F90.f90 if Fortran 2003 functions are enabled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new H5T function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!
-!*****
-
-MODULE H5T_PROVISIONAL
-
- USE H5GLOBAL
- USE, INTRINSIC :: ISO_C_BINDING
-
-!****t* H5T (F03)/hvl_t
-! Fortran2003 Derived Type:
- TYPE hvl_t
- INTEGER(size_t) :: len ! Length of VL data (in base type units)
- TYPE(C_PTR) :: p ! Pointer to VL data
- END TYPE hvl_t
-
-!*****
-
- INTERFACE h5tenum_insert_f
- MODULE PROCEDURE h5tenum_insert_f03
- MODULE PROCEDURE h5tenum_insert_f90
- END INTERFACE
-
-CONTAINS
-
-!****s* H5T (F03)/H5Tconvert_f_F03
-!
-! NAME
-! H5Tconvert_f
-!
-! PURPOSE
-! Converts data from between specified datatypes.
-!
-! Inputs:
-! src_id - Identifier for the source datatype.
-! dst_id - Identifier for the destination datatype.
-! nelmts - Size of array buf.
-! buf - Array containing pre-conversion values.
-! background - Optional background buffer.
-! plist_id - Dataset transfer property list identifier.
-!
-! Outputs:
-! buf - Array containing post-conversion values.
-! hdferr - error code:
-! 0 on success and -1 on failure
-! AUTHOR
-! M. Scot Breitenfeld
-! Decemember 8, 2008
-!
-! Fortran2003 Interface:
- SUBROUTINE h5tconvert_f(src_id, dst_id, nelmts, buf, hdferr, background, plist_id)
- USE, INTRINSIC :: ISO_C_BINDING
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: src_id
- INTEGER(HID_T) , INTENT(IN) :: dst_id
- INTEGER(SIZE_T), INTENT(IN) :: nelmts
- TYPE(C_PTR) , INTENT(INOUT) :: buf
- INTEGER , INTENT(OUT) :: hdferr
- TYPE(C_PTR) , INTENT(INOUT), OPTIONAL :: background
- INTEGER(HID_T) , INTENT(IN) , OPTIONAL :: plist_id
-!*****
- INTEGER(HID_T) :: plist_id_default
- TYPE(C_PTR) :: background_default
-
- INTERFACE
- INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) &
- BIND(C, NAME='h5tconvert_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
- USE H5GLOBAL
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: src_id
- INTEGER(HID_T) , INTENT(IN) :: dst_id
- INTEGER(SIZE_T), INTENT(IN) :: nelmts
- TYPE(C_PTR) , VALUE :: buf
- TYPE(C_PTR) , VALUE :: background
- INTEGER(HID_T) , INTENT(IN) :: plist_id
- END FUNCTION h5tconvert_c
- END INTERFACE
-
- plist_id_default = H5P_DEFAULT_F
- IF(PRESENT(plist_id)) plist_id_default = plist_id
-
- background_default = C_NULL_PTR
- IF(PRESENT(background)) background_default = background
-
- hdferr = H5Tconvert_c(src_id, dst_id, nelmts, buf, background_default, plist_id_default)
-
- END SUBROUTINE h5tconvert_f
-!
-!****s* (F03) H5T/h5tenum_insert_f90
-!
-! NAME
-! h5tenum_insert_f
-!
-! PURPOSE
-! Inserts a new enumeration datatype member.
-!
-! INPUTS
-! type_id - Datatype identifier for the enumeration datatype.
-! name - Datatype identifier.
-! value - Value of the new member.
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-! SOURCE
- SUBROUTINE h5tenum_insert_f90(type_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
- CHARACTER(LEN=*), INTENT(IN) :: name !Name of the new member
- INTEGER, INTENT(IN) :: value ! value of the new member
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-!*****
- INTEGER :: namelen
- INTERFACE
- INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: value
- INTEGER :: namelen
- END FUNCTION h5tenum_insert_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5tenum_insert_c(type_id, name, namelen, value)
- END SUBROUTINE h5tenum_insert_f90
-
-!
-!****s* (F03) H5T/h5tenum_insert_f03
-!
-! NAME
-! h5tenum_insert_f
-!
-! PURPOSE
-! Inserts a new enumeration datatype member.
-!
-! INPUTS
-! type_id - Datatype identifier for the enumeration datatype.
-! name - Datatype identifier.
-! value - Pointer to the value of the new member.
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! February 6, 2015
-!
-! HISTORY
-! F2003 implementation of function
-! SOURCE
- SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr)
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
- USE H5GLOBAL
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: type_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- TYPE(C_PTR) , INTENT(IN) :: value
- INTEGER, INTENT(OUT) :: hdferr
-!*****
- INTEGER :: namelen
-
- INTERFACE
- INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) &
- BIND(C, NAME='h5tenum_insert_ptr_c')
- USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
- USE H5GLOBAL
- IMPLICIT NONE
- INTEGER(HID_T) , INTENT(IN) :: type_id
- CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
- INTEGER :: namelen
- TYPE(C_PTR), VALUE :: value
- END FUNCTION h5tenum_insert_ptr_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value)
- END SUBROUTINE h5tenum_insert_f03
-
-END MODULE H5T_PROVISIONAL
-
diff --git a/fortran/src/H5Tff_F90.f90 b/fortran/src/H5Tff_F90.f90
deleted file mode 100644
index 380fbec..0000000
--- a/fortran/src/H5Tff_F90.f90
+++ /dev/null
@@ -1,95 +0,0 @@
-!****h* ROBODoc/H5T (F90)
-!
-! NAME
-! MODULE H5T_PROVISIONAL
-!
-! PURPOSE
-! This file contains Fortran 90 interfaces for H5T functions. It contains
-! the same functions as H5Tff_F03.f90 but excludes the Fortran 2003 functions
-! and the interface listings. This file will be compiled instead of H5Tff_F03.f90
-! if Fortran 2003 functions are not enabled.
-!
-! NOTE
-! Currently contains no functions.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! *** IMPORTANT ***
-! If you add a new H5D function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5T_PROVISIONAL
-
- USE H5GLOBAL
-
-CONTAINS
-
-!
-!****s* H5T/h5tenum_insert_f
-!
-! NAME
-! h5tenum_insert_f
-!
-! PURPOSE
-! Inserts a new enumeration datatype member.
-!
-! INPUTS
-! type_id - Datatype identifier for the enumeration datatype.
-! name - Datatype identifier.
-! value - Value of the new member.
-! OUTPUTS
-! hdferr - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-! Elena Pourmal
-! August 12, 1999
-!
-! HISTORY
-! Explicit Fortran interfaces were added for
-! called C functions (it is needed for Windows
-! port). March 7, 2001
-! SOURCE
- SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
- IMPLICIT NONE
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: value
- INTEGER, INTENT(OUT) :: hdferr
-!*****
- INTEGER :: namelen
-
- INTERFACE
- INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
- !DEC$ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER(HID_T), INTENT(IN) :: type_id
- CHARACTER(LEN=*), INTENT(IN) :: name
- INTEGER, INTENT(IN) :: value
- INTEGER :: namelen
- END FUNCTION h5tenum_insert_c
- END INTERFACE
-
- namelen = LEN(name)
- hdferr = h5tenum_insert_c(type_id, name, namelen, value)
- END SUBROUTINE h5tenum_insert_f
-
-END MODULE H5T_PROVISIONAL
diff --git a/fortran/src/H5Zf.c b/fortran/src/H5Zf.c
index 169e018..cfe96ec 100644
--- a/fortran/src/H5Zf.c
+++ b/fortran/src/H5Zf.c
@@ -40,7 +40,7 @@
* SOURCE
*/
int_f
-nh5zunregister_c (int_f *filter)
+h5zunregister_c (int_f *filter)
/******/
{
int ret_value = -1;
@@ -76,7 +76,7 @@ nh5zunregister_c (int_f *filter)
*/
int_f
-nh5zfilter_avail_c ( int_f *filter , int_f *flag )
+h5zfilter_avail_c ( int_f *filter , int_f *flag )
/******/
{
int ret_value = 0;
@@ -111,7 +111,7 @@ nh5zfilter_avail_c ( int_f *filter , int_f *flag )
*/
int_f
-nh5zget_filter_info_c ( int_f *filter , int_f *flag )
+h5zget_filter_info_c ( int_f *filter , int_f *flag )
/******/
{
int ret_value = 0;
diff --git a/fortran/src/H5Zff.f90 b/fortran/src/H5Zff.F90
index 7b67b5b..416488a 100644
--- a/fortran/src/H5Zff.f90
+++ b/fortran/src/H5Zff.F90
@@ -4,25 +4,22 @@
! MODULE H5Z
!
! PURPOSE
-! This file contains Fortran interfaces for H5Z functions. It includes
-! all the functions that are independent on whether the Fortran 2003 functions
-! are enabled or disabled.
-!
+! This file contains Fortran interfaces for H5Z functions.
!
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
+! Copyright by The HDF Group. *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
! NOTES
@@ -69,18 +66,14 @@ CONTAINS
SUBROUTINE h5zunregister_f(filter, hdferr)
IMPLICIT NONE
INTEGER, INTENT(IN) :: filter
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER, INTENT(OUT) :: hdferr
!*****
INTERFACE
- INTEGER FUNCTION h5zunregister_c (filter)
- USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZUNREGISTER_C':: h5zunregister_c
- !DEC$ENDIF
+ INTEGER FUNCTION h5zunregister_c(filter) BIND(C,NAME='h5zunregister_c')
INTEGER, INTENT(IN) :: filter
END FUNCTION h5zunregister_c
END INTERFACE
- hdferr = h5zunregister_c (filter)
+ hdferr = h5zunregister_c(filter)
END SUBROUTINE h5zunregister_f
!****s* H5Z/h5zfilter_avail_f
@@ -121,11 +114,8 @@ CONTAINS
INTEGER :: flag ! "TRUE/FALSE/ERROR from C"
INTERFACE
- INTEGER FUNCTION h5zfilter_avail_c(filter, flag)
+ INTEGER FUNCTION h5zfilter_avail_c(filter, flag) BIND(C,NAME='h5zfilter_avail_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZFILTER_AVAIL_C'::h5zfilter_avail_c
- !DEC$ENDIF
INTEGER, INTENT(IN) :: filter
INTEGER :: flag
END FUNCTION h5zfilter_avail_c
@@ -176,11 +166,8 @@ CONTAINS
!*****
INTERFACE
- INTEGER FUNCTION h5zget_filter_info_c(filter, config_flags)
+ INTEGER FUNCTION h5zget_filter_info_c(filter, config_flags) BIND(C,NAME='h5zget_filter_info_c')
USE H5GLOBAL
- !DEC$IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ZGET_FILTER_INFO_C'::h5zget_filter_info_c
- !DEC$ENDIF
INTEGER, INTENT(IN) :: filter
INTEGER, INTENT(OUT) :: config_flags
END FUNCTION h5zget_filter_info_c
diff --git a/fortran/src/H5_DBLE_InterfaceExclude.f90 b/fortran/src/H5_DBLE_InterfaceExclude.F90
index 2a3e26f..2a3e26f 100644
--- a/fortran/src/H5_DBLE_InterfaceExclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceExclude.F90
diff --git a/fortran/src/H5_DBLE_InterfaceInclude.f90 b/fortran/src/H5_DBLE_InterfaceInclude.F90
index 11e0a85..11e0a85 100644
--- a/fortran/src/H5_DBLE_InterfaceInclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceInclude.F90
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index a149109..e4aadb6 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -32,15 +32,15 @@
* types - array with the predefined Native Fortran
* type, its element and length must be the
* same as the types array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* floatingtypes - array with the predefined Floating Fortran
* type, its element and length must be the
* same as the floatingtypes array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* integertypes - array with the predefined Integer Fortran
* type, its element and length must be the
* same as the integertypes array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* RETURNS
* 0 on success, -1 on failure
* AUTHOR
@@ -274,24 +274,24 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
* types - array with the predefined Native Fortran
* type, its element and length must be the
* same as the types array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* lentypes - length of the types array, which must be the
* same as the length of types array defined
- * in the H5f90global.f90
+ * in the H5f90global.F90
* floatingtypes - array with the predefined Floating Fortran
* type, its element and length must be the
* same as the floatingtypes array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* floatinglen - length of the floatingtypes array, which must be the
* same as the length of floatingtypes array defined
- * in the H5f90global.f90
+ * in the H5f90global.F90
* integertypes - array with the predefined Integer Fortran
* type, its element and length must be the
* same as the integertypes array defined in the
- * H5f90global.f90
+ * H5f90global.F90
* integerlen - length of the floatingtypes array, which must be the
* same as the length of floatingtypes array defined
- * in the H5f90global.f90
+ * in the H5f90global.F90
* RETURNS
* 0 on success, -1 on failure
* AUTHOR
diff --git a/fortran/src/H5_ff.f90 b/fortran/src/H5_ff.F90
index 49e64a3..3ca3979 100644
--- a/fortran/src/H5_ff.f90
+++ b/fortran/src/H5_ff.F90
@@ -6,11 +6,6 @@
! PURPOSE
! This module provides fortran specific helper functions for the HDF library
!
-! USES
-! H5LIB_PROVISIONAL - This module provides helper functions for Fortran 2003
-! only features. If Fortran 2003 functions are enabled then
-! H5_ff_F03.f90 is compiled, else H5_ff_F90.f90,
-! which is just a place holder blank module, is compiled.
! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
@@ -37,9 +32,6 @@
MODULE H5LIB
- USE H5LIB_PROVISIONAL ! helper functions for Fortran 2003 features:
- ! pre-Fortran 2003 - empty module
- ! Forttran 2003 - contains functions
USE H5GLOBAL
CONTAINS
@@ -406,4 +398,42 @@ CONTAINS
END FUNCTION h5kind_to_type
+!****f* H5LIB_PROVISIONAL/h5offsetof
+!
+! NAME
+! h5offsetof
+!
+! PURPOSE
+! Computes the offset in memory
+!
+! Inputs:
+! start - starting pointer address
+! end - ending pointer address
+!
+! Outputs:
+! offset - offset of a member within the derived type
+!
+! AUTHOR
+! M. Scot Breitenfeld
+! Augest 25, 2008
+!
+! ACKNOWLEDGEMENTS
+! Joe Krahn
+!
+! Fortran2003 Interface:
+ FUNCTION h5offsetof(start,end) RESULT(offset)
+ USE, INTRINSIC :: ISO_C_BINDING
+ USE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER(SIZE_T) :: offset
+ TYPE(C_PTR), VALUE, INTENT(IN) :: start, end
+!*****
+ INTEGER(C_INTPTR_T) :: int_address_start, int_address_end
+ int_address_start = TRANSFER(start, int_address_start)
+ int_address_end = TRANSFER(end , int_address_end )
+
+ offset = int_address_end - int_address_start
+
+ END FUNCTION h5offsetof
+
END MODULE H5LIB
diff --git a/fortran/src/H5_ff_F03.f90 b/fortran/src/H5_ff_F03.f90
deleted file mode 100644
index d418ed5..0000000
--- a/fortran/src/H5_ff_F03.f90
+++ /dev/null
@@ -1,75 +0,0 @@
-!****h* ROBODoc/H5LIB_PROVISIONAL
-!
-! NAME
-! MODULE H5LIB_PROVISIONAL
-!
-! PURPOSE
-! This file contains helper functions for Fortran 2003 features and is
-! only compiled when Fortran 2003 features are enabled, otherwise
-! the file H5_ff_F90.f90 is compiled.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-! NOTES
-! *** IMPORTANT ***
-! If you add a new function you must add the function name to the
-! Windows dll file 'hdf5_fortrandll.def.in' in the fortran/src directory.
-! This is needed for Windows based operating systems.
-!*****
-
-MODULE H5LIB_PROVISIONAL
-
-CONTAINS
-!****f* H5LIB_PROVISIONAL/h5offsetof
-!
-! NAME
-! h5offsetof
-!
-! PURPOSE
-! Computes the offset in memory
-!
-! Inputs:
-! start - starting pointer address
-! end - ending pointer address
-!
-! Outputs:
-! offset - offset of a member within the derived type
-!
-! AUTHOR
-! M. Scot Breitenfeld
-! Augest 25, 2008
-!
-! ACKNOWLEDGEMENTS
-! Joe Krahn
-!
-! Fortran2003 Interface:
- FUNCTION h5offsetof(start,end) RESULT(offset)
- USE, INTRINSIC :: ISO_C_BINDING
- USE H5GLOBAL
- IMPLICIT NONE
- INTEGER(SIZE_T) :: offset
- TYPE(C_PTR), VALUE, INTENT(IN) :: start, end
-!*****
- INTEGER(C_INTPTR_T) :: int_address_start, int_address_end
- int_address_start = TRANSFER(start, int_address_start)
- int_address_end = TRANSFER(end , int_address_end )
-
- offset = int_address_end - int_address_start
-
- END FUNCTION h5offsetof
-
-END MODULE H5LIB_PROVISIONAL
diff --git a/fortran/src/H5_ff_F90.f90 b/fortran/src/H5_ff_F90.f90
deleted file mode 100644
index a5d303a..0000000
--- a/fortran/src/H5_ff_F90.f90
+++ /dev/null
@@ -1,34 +0,0 @@
-!****h* ROBODoc/H5LIB_PROVISIONAL (F90)
-!
-! NAME
-! MODULE H5LIB_PROVISIONAL
-!
-! FILE
-! fortran/src/H5_ff_F90.f90
-!
-! PURPOSE
-! This file is a dummy module for when Fortran 2003 features are not enabled.
-! It is compiled in place of H5_ff_F03.f90 and is empty.
-!
-! COPYRIGHT
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! Copyright by The HDF Group. *
-! Copyright by the Board of Trustees of the University of Illinois. *
-! All rights reserved. *
-! *
-! This file is part of HDF5. The full HDF5 copyright notice, including *
-! terms governing use, modification, and redistribution, is contained in *
-! the files COPYING and Copyright.html. COPYING can be found at the root *
-! of the source code distribution tree; Copyright.html can be found at the *
-! root level of an installed copy of the electronic HDF5 document set and *
-! is linked from the top-level documents page. It can also be found at *
-! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from help@hdfgroup.org. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
-!*****
-
-MODULE H5LIB_PROVISIONAL
-
-
-END MODULE H5LIB_PROVISIONAL
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.F90
index ca50e20..6cb35c0 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.F90
@@ -940,5 +940,33 @@ MODULE H5GLOBAL
!!$ EQUIVALENCE(H5F_flags(1), H5F_SCOPE_GLOBAL_F)
!!$ EQUIVALENCE(H5F_flags(2), H5F_SCOPE_LOCAL_F)
+CONTAINS
+
+ SUBROUTINE C2F_string(c_string, f_string)
+
+ USE, INTRINSIC :: ISO_C_BINDING
+ IMPLICIT NONE
+ CHARACTER(KIND=C_CHAR, LEN=*), INTENT(IN) :: c_string
+ CHARACTER(LEN=*), INTENT(OUT) :: f_string
+ INTEGER(SIZE_T) :: c_len, f_len
+
+ ! Find the length of the C string by located the null terminator
+ c_len = MAX(INDEX(c_string,C_NULL_CHAR, KIND=SIZE_T)-1,1)
+ ! Find the length of the Fortran string
+ f_len = LEN(f_string)
+
+ ! CASE (1): C string is equal to or larger then Fortran character buffer,
+ ! so fill the entire Fortran buffer.
+ IF(c_len.GE.f_len)THEN !
+ f_string(1:f_len) = c_string(1:f_len)
+
+ ! CASE (2): C string is smaller then Fortran character buffer,
+ ! so copy C string and blank pad remaining characters.
+ ELSE
+ f_string(1:c_len) = c_string(1:c_len)
+ f_string(c_len+1:f_len) =' '
+ ENDIF
+ END SUBROUTINE C2F_string
+
END MODULE H5GLOBAL
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index 6bde877..04462cd 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -523,8 +523,6 @@ H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f
#define nh5aopen_idx_c H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C)
#define nh5aget_space_c H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C)
#define nh5aget_type_c H5_FC_FUNC_(h5aget_type_c, H5AGET_TYPE_C)
-#define nh5aget_num_attrs_c H5_FC_FUNC_(h5aget_num_attrs_c, H5AGET_NUM_ATTRS_C)
-#define nh5adelete_c H5_FC_FUNC_(h5adelete_c, H5ADELETE_C)
#define nh5aget_storage_size_c H5_FC_FUNC_(h5aget_storage_size_c, H5AGET_STORAGE_SIZE_C)
#define nh5arename_by_name_c H5_FC_FUNC_(h5arename_by_name_c, H5ARENAME_BY_NAME_C)
#define nh5aopen_c H5_FC_FUNC_(h5aopen_c, H5AOPEN_C)
@@ -616,11 +614,11 @@ H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void
H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
H5_FCDLL int_f h5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id );
-H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen);
+H5_FCDLL int_f h5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen);
H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id);
H5_FCDLL int_f nh5aget_space_c (hid_t_f *attr_id, hid_t_f *space_id);
H5_FCDLL int_f nh5aget_type_c (hid_t_f *attr_id, hid_t_f *type_id);
-H5_FCDLL int_f nh5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num);
+H5_FCDLL int_f h5aget_num_attrs_c (hid_t_f *obj_id, int_f *attr_num);
H5_FCDLL int_f nh5aget_name_c(hid_t_f *attr_id, size_t_f *size, _fcd buf);
H5_FCDLL int_f nh5aget_storage_size_c ( hid_t_f *attr_id, hsize_t_f *size );
H5_FCDLL int_f nh5arename_by_name_c ( hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
@@ -1155,27 +1153,17 @@ H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_
/*
* Functions frome H5Rf.c
*/
-#define nh5rcreate_object_c H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C)
-#define nh5rcreate_region_c H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C)
-#define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C)
-#define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C)
-#define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C)
-#define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C)
-#define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C)
-#define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C)
-
-
-H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
-H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
+H5_FCDLL int_f h5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
+H5_FCDLL int_f h5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
H5_FCDLL int_f h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id);
-H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
-H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id);
+H5_FCDLL int_f h5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
+H5_FCDLL int_f h5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id);
H5_FCDLL int_f h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id);
-H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
+H5_FCDLL int_f h5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
H5_FCDLL int_f h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id);
-H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type);
-H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
-H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
+H5_FCDLL int_f h5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type);
+H5_FCDLL int_f h5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
+H5_FCDLL int_f h5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
H5_FCDLL int_f h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
H5_FCDLL int_f h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type);
/*
@@ -1251,65 +1239,46 @@ H5_FCDLL int_f nh5dont_atexit_c(void);
/*
* Functions from H5Zf.c
*/
-#define nh5zunregister_c H5_FC_FUNC_(h5zunregister_c, H5ZUNREGISTER_C)
-#define nh5zfilter_avail_c H5_FC_FUNC_(h5zfilter_avail_c, H5ZFILTER_AVAIL_C)
-#define nh5zget_filter_info_c H5_FC_FUNC_(h5zget_filter_info_c, H5ZGET_FILTER_INFO_C)
-
-
-H5_FCDLL int_f nh5zunregister_c (int_f *filter);
-H5_FCDLL int_f nh5zfilter_avail_c (int_f *filter, int_f *flag);
-H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag);
-
+H5_FCDLL int_f h5zunregister_c (int_f *filter);
+H5_FCDLL int_f h5zfilter_avail_c (int_f *filter, int_f *flag);
+H5_FCDLL int_f h5zget_filter_info_c (int_f *filter, int_f *flag);
/*
* Functions from H5Lf.c
*/
-#define nh5lcopy_c H5_FC_FUNC_(h5lcopy_c, H5LCOPY_C)
-#define nh5lcreate_external_c H5_FC_FUNC_(h5lcreate_external_c, H5LCREATE_EXTERNAL_C)
-#define nh5lcreate_hard_c H5_FC_FUNC_(h5lcreate_hard_c, H5LCREATE_HARD_C)
-#define nh5lcreate_soft_c H5_FC_FUNC_(h5lcreate_soft_c, H5LCREATE_SOFT_C)
-#define nh5ldelete_c H5_FC_FUNC_(h5ldelete_c, H5LDELETE_C)
-#define nh5ldelete_by_idx_c H5_FC_FUNC_(h5ldelete_by_idx_c, H5LDELETE_BY_IDX_C)
-#define nh5lexists_c H5_FC_FUNC_(h5lexists_c, H5LEXISTS_C)
-#define nh5lget_info_c H5_FC_FUNC_(h5lget_info_c, H5LGET_INFO_C)
-#define nh5lget_info_by_idx_c H5_FC_FUNC_(h5lget_info_by_idx_c, H5LGET_INFO_BY_IDX_C)
-#define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C)
-#define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C)
-#define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C)
-#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C)
-H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
+H5_FCDLL int_f h5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen,
+H5_FCDLL int_f h5lcreate_external_c(_fcd file_name, size_t_f *file_namelen, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
+H5_FCDLL int_f h5lcreate_hard_c(hid_t_f *obj_loc_id, _fcd obj_name, size_t_f *obj_namelen,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_namelen,
hid_t_f *lcpl_id, hid_t_f *lapl_id );
-H5_FCDLL int_f nh5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
+H5_FCDLL int_f h5lcreate_soft_c(_fcd target_path, size_t_f *target_path_len,
hid_t_f *link_loc_id,
_fcd link_name, size_t_f *link_name_len,
hid_t_f *lcpl_id, hid_t_f *lapl_id );
-H5_FCDLL int_f nh5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id );
-H5_FCDLL int_f nh5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+H5_FCDLL int_f h5ldelete_c( hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id );
+H5_FCDLL int_f h5ldelete_by_idx_c (hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists);
-H5_FCDLL int_f nh5lget_info_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
+H5_FCDLL int_f h5lexists_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id, int_f *link_exists);
+H5_FCDLL int_f h5lget_info_c (hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen,
int_f *cset, int_f *corder, int_f *corder_valid, int_f *link_type,
haddr_t_f *address, size_t_f *val_size,
hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+H5_FCDLL int_f h5lget_info_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
int_f *link_type, int_f *corder_valid, int_f *corder, int_f *cset, haddr_t_f *address, size_t_f *val_size, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lis_registered_c(int_f *link_cls_id);
-H5_FCDLL int_f nh5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
+H5_FCDLL int_f h5lis_registered_c(int_f *link_cls_id);
+H5_FCDLL int_f h5lmove_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
_fcd dest_name, size_t_f *dest_namelen, hid_t_f *lcpl_id, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
+H5_FCDLL int_f h5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
int_f *index_field, int_f *order, hsize_t_f *n,
size_t_f *size, _fcd name, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
+H5_FCDLL int_f h5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
void *linkval_buff, hid_t_f *lapl_id) ;
H5_FCDLL int_f h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data );
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index c4b7f73..14b76a4 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -9,7 +9,7 @@
* PURPOSE
* C Program to match C types to Fortran types.
* Creates the files H5f90i_gen.h for the C code and
- * H5fortran_types.f90 for the Fortran code.
+ * H5fortran_types.F90 for the Fortran code.
*
* COPYRIGHT
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -45,7 +45,7 @@ FILE * c_header;
FILE * fort_header;
#define CFILE "H5f90i_gen.h"
-#define FFILE "H5fortran_types.f90"
+#define FFILE "H5fortran_types.F90"
/* Prototypes for the write routines */
void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size);
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.F90
index 1a1a0ec..1a1a0ec 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.F90
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.F90
index 468086a..468086a 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.F90
diff --git a/fortran/src/H5test_kind_STORAGE_SIZE.f90 b/fortran/src/H5test_kind_STORAGE_SIZE.F90
index 89c904c..89c904c 100644
--- a/fortran/src/H5test_kind_STORAGE_SIZE.f90
+++ b/fortran/src/H5test_kind_STORAGE_SIZE.F90
diff --git a/fortran/src/HDF5.f90 b/fortran/src/HDF5.F90
index 75af333..6309d2f 100644
--- a/fortran/src/HDF5.f90
+++ b/fortran/src/HDF5.F90
@@ -30,26 +30,17 @@
MODULE HDF5
USE H5GLOBAL
USE H5F
- USE H5F_PROVISIONAL
USE H5G
USE H5E
- USE H5E_PROVISIONAL
USE H5I
USE H5L
- USE H5L_PROVISIONAL
USE H5S
USE H5D
- USE H5D_PROVISIONAL
USE H5A
- USE H5A_PROVISIONAL
USE H5T
- USE H5T_PROVISIONAL
USE H5O
- USE H5O_PROVISIONAL
USE H5P
- USE H5P_PROVISIONAL
USE H5R
- USE H5R_PROVISIONAL
USE H5Z
USE H5_DBLE_INTERFACE
USE H5LIB
diff --git a/fortran/src/HDF5mpio.f90 b/fortran/src/HDF5mpio.F90
index b8fb645..b8fb645 100644
--- a/fortran/src/HDF5mpio.f90
+++ b/fortran/src/HDF5mpio.F90
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index a4b3843..7e008d7 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -42,11 +42,11 @@ else
AM_LDFLAGS+=-static
endif
-# Include HDF5.f90 if parallel is disabled, HDF5mpiof* if parallel is enabled
+# Include HDF5.F90 if parallel is disabled, HDF5mpiof* if parallel is enabled
if BUILD_PARALLEL_CONDITIONAL
- PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+ PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.F90 H5FDmpioff.F90
else
- PARALLEL_COND_SRC = HDF5.f90
+ PARALLEL_COND_SRC = HDF5.F90
endif
# Check if the compiler supports the Fortran 2003 standard
@@ -69,15 +69,13 @@ else
endif
# Source files for the library.
-libhdf5_fortran_la_SOURCES=H5f90global.f90 \
- H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
- H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
- H5Tff.f90 H5Zff.f90 \
- H5_DBLE_Interface$(F_DBLE).f90 \
+libhdf5_fortran_la_SOURCES=H5f90global.F90 \
+ H5fortran_types.F90 H5_ff.F90 H5Aff.F90 H5Dff.F90 H5Eff.F90 \
+ H5Fff.F90 H5Gff.F90 H5Iff.F90 H5Lff.F90 H5Off.F90 H5Pff.F90 H5Rff.F90 H5Sff.F90 \
+ H5Tff.F90 H5Zff.F90 \
+ H5_DBLE_Interface$(F_DBLE).F90 \
H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
- H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 H5Eff$(F_STATUS).f90 H5Fff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
- H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c $(PARALLEL_COND_SRC)
# HDF5 Fortran library depends on HDF5 Library.
libhdf5_fortran_la_LIBADD=$(LIBHDF5)
@@ -86,11 +84,11 @@ libhdf5_fortran_la_LIBADD=$(LIBHDF5)
# Remove it only when distclean.
DISTCLEANFILES=h5fc
-# H5fortran_types.f90 and H5f90i.h are automatically generaed by
+# H5fortran_types.F90 and H5f90i.h are automatically generaed by
# H5match_types, and must be cleaned explicitly. H5fort_type_defines.h
# is generated by H5fortran_detect
-MOSTLYCLEANFILES=H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
- H5fortran_detect.f90
+MOSTLYCLEANFILES=H5fortran_types.F90 H5f90i_gen.h H5fort_type_defines.h \
+ H5fortran_detect.F90
# Fortran module files can have different extensions and different names
# (e.g., different capitalizations) on different platforms. Write rules
@@ -136,24 +134,24 @@ endif
# programs.
# It's a bit tricky to make sure that Automake builds things in the right
# order (especially when using 'gmake -j ...')
-# H5test_kind is compiled and run to produce H5fortran_detect.f90.
+# H5test_kind is compiled and run to produce H5fortran_detect.F90.
# H5fortran_detect is compiled and run to produce H5fort_type_defines.h.
# H5match_types.c then includes this file and can be compiled into
# H5match_types. When H5match_types is run, it creates H5f90i_gen.h
-# and H5fortran_types.f90, which are included in the Fortran library.
+# and H5fortran_types.F90, which are included in the Fortran library.
# These are the helper programs we need to build.
noinst_PROGRAMS = H5match_types H5fortran_detect H5test_kind
# Tell Automake to create H5f90i_gen.h before it builds the library
# sources. When it creates H5f90i_gen.h, it will create
-# H5fortran_types.f90 as a side effect.
+# H5fortran_types.F90 as a side effect.
BUILT_SOURCES = H5f90i_gen.h
#Specify what Automake needs to create: first the H5fort_type_defines.h
# header, then H5match_types which includes that header, then
# it needs to run H5match_types.
-H5fortran_types.f90 H5f90i_gen.h: H5match_types$(EXEEXT)
+H5fortran_types.F90 H5f90i_gen.h: H5match_types$(EXEEXT)
$(RUNSERIAL) ./H5match_types$(EXEEXT)
# H5fort_type_defines.h is created by running H5fortran_detect.
@@ -165,24 +163,24 @@ H5match_types.$(OBJEXT): H5fort_type_defines.h
# Automake knows how to build fortran programs if we tell it the source
# files.
-H5fortran_detect_SOURCES = H5fortran_detect.f90
+H5fortran_detect_SOURCES = H5fortran_detect.F90
-# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if
+# H5test_kind.F90 generates H5Fortran_detect.F90 depending on if
# intrinsic function SIZEOF is available.
-H5fortran_detect.f90: H5test_kind$(EXEEXT)
- $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90
+H5fortran_detect.F90: H5test_kind$(EXEEXT)
+ $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.F90
-# H5test_kind.f90 is included in the distribution, and Automake knows
+# H5test_kind.F90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
if FORTRAN_HAVE_STORAGE_SIZE
- H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
+ H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.F90
else
if FORTRAN_HAVE_SIZEOF
- H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
+ H5test_kind_SOURCES = H5test_kind_SIZEOF.F90
else
- H5test_kind_SOURCES = H5test_kind.f90
+ H5test_kind_SOURCES = H5test_kind.F90
endif
endif
@@ -193,51 +191,41 @@ FORTRAN_API=yes
# determining this automagically (like we do with the C files). So, when
# doing a parallel make, some modules could be made way before the
# modules they depend upon are actually made. *sigh*
-H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_types.lo
-H5fortran_types.lo: H5fortran_types.f90
-H5fortran_detect.lo: H5fortran_detect.f90
-H5test_kind.lo: $(srcdir)/H5test_kind.f90
-H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
-H5_ff$(F_STATUS).lo: $(srcdir)/H5_ff$(F_STATUS).f90 H5f90global.lo
-H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo H5_ff$(F_STATUS).lo
-H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
-H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
-H5Aff$(F_STATUS).lo: $(srcdir)/H5Aff$(F_STATUS).f90 H5f90global.lo
-H5Dff$(F_STATUS).lo: $(srcdir)/H5Dff$(F_STATUS).f90 H5f90global.lo
-H5Eff$(F_STATUS).lo: $(srcdir)/H5Eff$(F_STATUS).f90 H5f90global.lo
-H5Fff$(F_STATUS).lo: $(srcdir)/H5Fff$(F_STATUS).f90 H5f90global.lo
-H5Lff$(F_STATUS).lo: $(srcdir)/H5Lff$(F_STATUS).f90 H5f90global.lo
-H5Off$(F_STATUS).lo: $(srcdir)/H5Off$(F_STATUS).f90 H5f90global.lo
-H5Pff$(F_STATUS).lo: $(srcdir)/H5Pff$(F_STATUS).f90 H5f90global.lo
-H5Rff$(F_STATUS).lo: $(srcdir)/H5Rff$(F_STATUS).f90 H5f90global.lo
-H5Tff$(F_STATUS).lo: $(srcdir)/H5Tff$(F_STATUS).f90 H5f90global.lo
-H5Eff.lo: $(srcdir)/H5Eff.f90 H5f90global.lo
-H5Fff.lo: $(srcdir)/H5Fff.f90 H5f90global.lo
-H5Gff.lo: $(srcdir)/H5Gff.f90 H5f90global.lo
-H5Iff.lo: $(srcdir)/H5Iff.f90 H5f90global.lo
-H5Lff.lo: $(srcdir)/H5Lff.f90 H5f90global.lo
-H5Off.lo: $(srcdir)/H5Off.f90 H5f90global.lo
-H5Pff.lo: $(srcdir)/H5Pff.f90 H5f90global.lo
-H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
-H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
-H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
-H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
-H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Fff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo
-HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Aff$(F_STATUS).lo \
- H5Dff.lo H5Dff$(F_STATUS).lo \
- H5Eff.lo H5Eff$(F_STATUS).lo \
- H5Fff.lo H5Fff$(F_STATUS).lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
- H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+H5f90global.lo: $(srcdir)/H5f90global.F90 H5fortran_types.lo
+H5fortran_types.lo: H5fortran_types.F90
+H5fortran_detect.lo: H5fortran_detect.F90
+H5test_kind.lo: $(srcdir)/H5test_kind.F90
+H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.F90
+H5_ff.lo: $(srcdir)/H5_ff.F90 H5f90global.lo
+H5Aff.lo: $(srcdir)/H5Aff.F90 H5f90global.lo
+H5Dff.lo: $(srcdir)/H5Dff.F90 H5f90global.lo
+H5Eff.lo: $(srcdir)/H5Eff.F90 H5f90global.lo
+H5Fff.lo: $(srcdir)/H5Fff.F90 H5f90global.lo
+H5Gff.lo: $(srcdir)/H5Gff.F90 H5f90global.lo
+H5Iff.lo: $(srcdir)/H5Iff.F90 H5f90global.lo
+H5Lff.lo: $(srcdir)/H5Lff.F90 H5f90global.lo
+H5Off.lo: $(srcdir)/H5Off.F90 H5f90global.lo
+H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo
+H5Rff.lo: $(srcdir)/H5Rff.F90 H5f90global.lo
+H5Sff.lo: $(srcdir)/H5Sff.F90 H5f90global.lo
+H5Tff.lo: $(srcdir)/H5Tff.F90 H5f90global.lo
+H5Zff.lo: $(srcdir)/H5Zff.F90 H5f90global.lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).F90
+HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.lo H5_ff.lo H5Aff.lo \
+ H5Dff.lo \
+ H5Eff.lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
+ H5Off.lo H5Pff.lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Zff.lo \
H5_DBLE_Interface$(F_DBLE).lo
-H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
-HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo \
- H5Aff.lo H5Aff$(F_STATUS).lo \
- H5Dff.lo H5Dff$(F_STATUS).lo \
- H5Eff.lo H5Eff$(F_STATUS).lo \
- H5Fff.lo H5Fff$(F_STATUS).lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
- H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+H5FDmpioff.lo: $(srcdir)/H5FDmpioff.F90 H5f90global.lo
+HDF5mpio.lo: $(srcdir)/H5FDmpioff.F90 H5f90global.lo H5_ff.lo \
+ H5Aff.lo \
+ H5Dff.lo \
+ H5Eff.lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
+ H5Off.lo H5Pff.lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Zff.lo \
H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
include $(top_srcdir)/config/conclude.am
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index f9f4a7b..ffcaf62 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -150,30 +150,22 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libhdf5_fortran_la_DEPENDENCIES = $(LIBHDF5)
-am__libhdf5_fortran_la_SOURCES_DIST = H5f90global.f90 \
- H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 \
- H5Dff.f90 H5Eff.f90 H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 \
- H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 H5Tff.f90 H5Zff.f90 \
- H5_DBLE_Interface$(F_DBLE).f90 H5f90kit.c H5_f.c H5Af.c H5Df.c \
+am__libhdf5_fortran_la_SOURCES_DIST = H5f90global.F90 \
+ H5fortran_types.F90 H5_ff.F90 H5Aff.F90 H5Dff.F90 H5Eff.F90 \
+ H5Fff.F90 H5Gff.F90 H5Iff.F90 H5Lff.F90 H5Off.F90 H5Pff.F90 \
+ H5Rff.F90 H5Sff.F90 H5Tff.F90 H5Zff.F90 \
+ H5_DBLE_Interface$(F_DBLE).F90 H5f90kit.c H5_f.c H5Af.c H5Df.c \
H5Ef.c H5Ff.c H5Gf.c H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c \
- H5Tf.c H5Zf.c H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 \
- H5Eff$(F_STATUS).f90 H5Fff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
- H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 \
- H5Tff$(F_STATUS).f90 HDF5.f90 H5FDmpiof.c HDF5mpio.f90 \
- H5FDmpioff.f90
+ H5Tf.c H5Zf.c HDF5.F90 H5FDmpiof.c HDF5mpio.F90 H5FDmpioff.F90
@BUILD_PARALLEL_CONDITIONAL_FALSE@am__objects_1 = HDF5.lo
@BUILD_PARALLEL_CONDITIONAL_TRUE@am__objects_1 = H5FDmpiof.lo \
@BUILD_PARALLEL_CONDITIONAL_TRUE@ HDF5mpio.lo H5FDmpioff.lo
am_libhdf5_fortran_la_OBJECTS = H5f90global.lo H5fortran_types.lo \
- H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Dff.lo H5Eff.lo \
- H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo H5Off.lo H5Pff.lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Zff.lo H5_DBLE_Interface$(F_DBLE).lo \
- H5f90kit.lo H5_f.lo H5Af.lo H5Df.lo H5Ef.lo H5Ff.lo H5Gf.lo \
- H5If.lo H5Lf.lo H5Of.lo H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo \
- H5Zf.lo H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo \
- H5Eff$(F_STATUS).lo H5Fff$(F_STATUS).lo H5Lff$(F_STATUS).lo \
- H5Off$(F_STATUS).lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo \
- H5Tff$(F_STATUS).lo $(am__objects_1)
+ H5_ff.lo H5Aff.lo H5Dff.lo H5Eff.lo H5Fff.lo H5Gff.lo H5Iff.lo \
+ H5Lff.lo H5Off.lo H5Pff.lo H5Rff.lo H5Sff.lo H5Tff.lo H5Zff.lo \
+ H5_DBLE_Interface$(F_DBLE).lo H5f90kit.lo H5_f.lo H5Af.lo \
+ H5Df.lo H5Ef.lo H5Ff.lo H5Gf.lo H5If.lo H5Lf.lo H5Of.lo \
+ H5Pf.lo H5Rf.lo H5Sf.lo H5Tf.lo H5Zf.lo $(am__objects_1)
libhdf5_fortran_la_OBJECTS = $(am_libhdf5_fortran_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -190,8 +182,8 @@ H5fortran_detect_LDADD = $(LDADD)
H5match_types_SOURCES = H5match_types.c
H5match_types_OBJECTS = H5match_types.$(OBJEXT)
H5match_types_LDADD = $(LDADD)
-am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90 \
- H5test_kind_STORAGE_SIZE.f90
+am__H5test_kind_SOURCES_DIST = H5test_kind.F90 H5test_kind_SIZEOF.F90 \
+ H5test_kind_STORAGE_SIZE.F90
@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind.$(OBJEXT)
@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@am_H5test_kind_OBJECTS = H5test_kind_SIZEOF.$(OBJEXT)
@FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_H5test_kind_OBJECTS = H5test_kind_STORAGE_SIZE.$(OBJEXT)
@@ -213,6 +205,24 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
depcomp = $(SHELL) $(top_srcdir)/bin/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
+PPFCCOMPILE = $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS)
+LTPPFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(FC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_FCFLAGS) $(FCFLAGS)
+AM_V_PPFC = $(am__v_PPFC_@AM_V@)
+am__v_PPFC_ = $(am__v_PPFC_@AM_DEFAULT_V@)
+am__v_PPFC_0 = @echo " PPFC " $@;
+am__v_PPFC_1 =
+FCLD = $(FC)
+FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_FCLD = $(am__v_FCLD_@AM_V@)
+am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
+am__v_FCLD_0 = @echo " FCLD " $@;
+am__v_FCLD_1 =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -231,21 +241,6 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS)
-LTFCCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS)
-AM_V_FC = $(am__v_FC_@AM_V@)
-am__v_FC_ = $(am__v_FC_@AM_DEFAULT_V@)
-am__v_FC_0 = @echo " FC " $@;
-am__v_FC_1 =
-FCLD = $(FC)
-FCLINK = $(LIBTOOL) $(AM_V_lt) --tag=FC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_FCLD = $(am__v_FCLD_@AM_V@)
-am__v_FCLD_ = $(am__v_FCLD_@AM_DEFAULT_V@)
-am__v_FCLD_0 = @echo " FCLD " $@;
-am__v_FCLD_1 =
SOURCES = $(libhdf5_fortran_la_SOURCES) $(H5fortran_detect_SOURCES) \
H5match_types.c $(H5test_kind_SOURCES)
DIST_SOURCES = $(am__libhdf5_fortran_la_SOURCES_DIST) \
@@ -733,10 +728,10 @@ lib_LTLIBRARIES = libhdf5_fortran.la
# Add libtool numbers to the HDF5 Fortran library (from config/lt_vers.am)
libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
-@BUILD_PARALLEL_CONDITIONAL_FALSE@PARALLEL_COND_SRC = HDF5.f90
+@BUILD_PARALLEL_CONDITIONAL_FALSE@PARALLEL_COND_SRC = HDF5.F90
-# Include HDF5.f90 if parallel is disabled, HDF5mpiof* if parallel is enabled
-@BUILD_PARALLEL_CONDITIONAL_TRUE@PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.f90 H5FDmpioff.f90
+# Include HDF5.F90 if parallel is disabled, HDF5mpiof* if parallel is enabled
+@BUILD_PARALLEL_CONDITIONAL_TRUE@PARALLEL_COND_SRC = H5FDmpiof.c HDF5mpio.F90 H5FDmpioff.F90
@FORTRAN_2003_CONDITIONAL_F_FALSE@F_STATUS = _F90
# Check if the compiler supports the Fortran 2003 standard
@@ -752,15 +747,13 @@ libhdf5_fortran_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISI
@FORTRAN_DEFAULT_REALisDBLE_F_TRUE@F_DBLE = Exclude
# Source files for the library.
-libhdf5_fortran_la_SOURCES = H5f90global.f90 \
- H5fortran_types.f90 H5_ff$(F_STATUS).f90 H5_ff.f90 H5Aff.f90 H5Dff.f90 H5Eff.f90 \
- H5Fff.f90 H5Gff.f90 H5Iff.f90 H5Lff.f90 H5Off.f90 H5Pff.f90 H5Rff.f90 H5Sff.f90 \
- H5Tff.f90 H5Zff.f90 \
- H5_DBLE_Interface$(F_DBLE).f90 \
+libhdf5_fortran_la_SOURCES = H5f90global.F90 \
+ H5fortran_types.F90 H5_ff.F90 H5Aff.F90 H5Dff.F90 H5Eff.F90 \
+ H5Fff.F90 H5Gff.F90 H5Iff.F90 H5Lff.F90 H5Off.F90 H5Pff.F90 H5Rff.F90 H5Sff.F90 \
+ H5Tff.F90 H5Zff.F90 \
+ H5_DBLE_Interface$(F_DBLE).F90 \
H5f90kit.c H5_f.c H5Af.c H5Df.c H5Ef.c H5Ff.c H5Gf.c \
- H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
- H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 H5Eff$(F_STATUS).f90 H5Fff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
- H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c $(PARALLEL_COND_SRC)
# HDF5 Fortran library depends on HDF5 Library.
@@ -770,11 +763,11 @@ libhdf5_fortran_la_LIBADD = $(LIBHDF5)
# Remove it only when distclean.
DISTCLEANFILES = h5fc
-# H5fortran_types.f90 and H5f90i.h are automatically generaed by
+# H5fortran_types.F90 and H5f90i.h are automatically generaed by
# H5match_types, and must be cleaned explicitly. H5fort_type_defines.h
# is generated by H5fortran_detect
-MOSTLYCLEANFILES = H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
- H5fortran_detect.f90
+MOSTLYCLEANFILES = H5fortran_types.F90 H5f90i_gen.h H5fort_type_defines.h \
+ H5fortran_detect.F90
@BUILD_PARALLEL_CONDITIONAL_FALSE@H5FC_NAME = h5fc
@@ -784,18 +777,18 @@ MOSTLYCLEANFILES = H5fortran_types.f90 H5f90i_gen.h H5fort_type_defines.h \
# Tell Automake to create H5f90i_gen.h before it builds the library
# sources. When it creates H5f90i_gen.h, it will create
-# H5fortran_types.f90 as a side effect.
+# H5fortran_types.F90 as a side effect.
BUILT_SOURCES = H5f90i_gen.h
# Automake knows how to build fortran programs if we tell it the source
# files.
-H5fortran_detect_SOURCES = H5fortran_detect.f90
-@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind.f90
-@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
+H5fortran_detect_SOURCES = H5fortran_detect.F90
+@FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind.F90
+@FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@H5test_kind_SOURCES = H5test_kind_SIZEOF.F90
-# H5test_kind.f90 is included in the distribution, and Automake knows
+# H5test_kind.F90 is included in the distribution, and Automake knows
# how to compile a fortran program given its sources.
-@FORTRAN_HAVE_STORAGE_SIZE_TRUE@H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
+@FORTRAN_HAVE_STORAGE_SIZE_TRUE@H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.F90
# Mark this directory as part of the Fortran API
FORTRAN_API = yes
@@ -823,7 +816,7 @@ all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .c .f90 .lo .log .o .obj .sh .sh$(EXEEXT) .trs
+.SUFFIXES: .F90 .c .lo .log .o .obj .sh .sh$(EXEEXT) .trs
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/commence.am $(top_srcdir)/config/lt_vers.am $(top_srcdir)/config/conclude.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -941,6 +934,15 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5f90kit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/H5match_types.Po@am__quote@
+.F90.o:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
+
+.F90.obj:
+ $(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.F90.lo:
+ $(AM_V_PPFC)$(LTPPFCCOMPILE) -c -o $@ $<
+
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@@ -962,15 +964,6 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-.f90.o:
- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) $<
-
-.f90.obj:
- $(AM_V_FC)$(FCCOMPILE) -c -o $@ $(FCFLAGS_f90) `$(CYGPATH_W) '$<'`
-
-.f90.lo:
- $(AM_V_FC)$(LTFCCOMPILE) -c -o $@ $(FCFLAGS_f90) $<
-
mostlyclean-libtool:
-rm -f *.lo
@@ -1401,7 +1394,7 @@ install-exec-local:
#Specify what Automake needs to create: first the H5fort_type_defines.h
# header, then H5match_types which includes that header, then
# it needs to run H5match_types.
-H5fortran_types.f90 H5f90i_gen.h: H5match_types$(EXEEXT)
+H5fortran_types.F90 H5f90i_gen.h: H5match_types$(EXEEXT)
$(RUNSERIAL) ./H5match_types$(EXEEXT)
# H5fort_type_defines.h is created by running H5fortran_detect.
@@ -1411,61 +1404,51 @@ H5fort_type_defines.h: H5fortran_detect$(EXEEXT)
H5match_types.$(OBJEXT): H5fort_type_defines.h
-# H5test_kind.f90 generates H5Fortran_detect.f90 depending on if
+# H5test_kind.F90 generates H5Fortran_detect.F90 depending on if
# intrinsic function SIZEOF is available.
-H5fortran_detect.f90: H5test_kind$(EXEEXT)
- $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.f90
+H5fortran_detect.F90: H5test_kind$(EXEEXT)
+ $(RUNSERIAL) ./H5test_kind$(EXEEXT) > H5fortran_detect.F90
# Hardcode the dependencies of these files. There isn't a known way of
# determining this automagically (like we do with the C files). So, when
# doing a parallel make, some modules could be made way before the
# modules they depend upon are actually made. *sigh*
-H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_types.lo
-H5fortran_types.lo: H5fortran_types.f90
-H5fortran_detect.lo: H5fortran_detect.f90
-H5test_kind.lo: $(srcdir)/H5test_kind.f90
-H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.f90
-H5_ff$(F_STATUS).lo: $(srcdir)/H5_ff$(F_STATUS).f90 H5f90global.lo
-H5_ff.lo: $(srcdir)/H5_ff.f90 H5f90global.lo H5_ff$(F_STATUS).lo
-H5Aff.lo: $(srcdir)/H5Aff.f90 H5f90global.lo
-H5Dff.lo: $(srcdir)/H5Dff.f90 H5f90global.lo
-H5Aff$(F_STATUS).lo: $(srcdir)/H5Aff$(F_STATUS).f90 H5f90global.lo
-H5Dff$(F_STATUS).lo: $(srcdir)/H5Dff$(F_STATUS).f90 H5f90global.lo
-H5Eff$(F_STATUS).lo: $(srcdir)/H5Eff$(F_STATUS).f90 H5f90global.lo
-H5Fff$(F_STATUS).lo: $(srcdir)/H5Fff$(F_STATUS).f90 H5f90global.lo
-H5Lff$(F_STATUS).lo: $(srcdir)/H5Lff$(F_STATUS).f90 H5f90global.lo
-H5Off$(F_STATUS).lo: $(srcdir)/H5Off$(F_STATUS).f90 H5f90global.lo
-H5Pff$(F_STATUS).lo: $(srcdir)/H5Pff$(F_STATUS).f90 H5f90global.lo
-H5Rff$(F_STATUS).lo: $(srcdir)/H5Rff$(F_STATUS).f90 H5f90global.lo
-H5Tff$(F_STATUS).lo: $(srcdir)/H5Tff$(F_STATUS).f90 H5f90global.lo
-H5Eff.lo: $(srcdir)/H5Eff.f90 H5f90global.lo
-H5Fff.lo: $(srcdir)/H5Fff.f90 H5f90global.lo
-H5Gff.lo: $(srcdir)/H5Gff.f90 H5f90global.lo
-H5Iff.lo: $(srcdir)/H5Iff.f90 H5f90global.lo
-H5Lff.lo: $(srcdir)/H5Lff.f90 H5f90global.lo
-H5Off.lo: $(srcdir)/H5Off.f90 H5f90global.lo
-H5Pff.lo: $(srcdir)/H5Pff.f90 H5f90global.lo
-H5Rff.lo: $(srcdir)/H5Rff.f90 H5f90global.lo
-H5Sff.lo: $(srcdir)/H5Sff.f90 H5f90global.lo
-H5Tff.lo: $(srcdir)/H5Tff.f90 H5f90global.lo
-H5Zff.lo: $(srcdir)/H5Zff.f90 H5f90global.lo
-H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).f90 H5Aff$(F_STATUS).lo H5Dff$(F_STATUS).lo H5Fff$(F_STATUS).lo H5Eff$(F_STATUS).lo H5Pff$(F_STATUS).lo
-HDF5.lo: $(srcdir)/HDF5.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo H5Aff.lo H5Aff$(F_STATUS).lo \
- H5Dff.lo H5Dff$(F_STATUS).lo \
- H5Eff.lo H5Eff$(F_STATUS).lo \
- H5Fff.lo H5Fff$(F_STATUS).lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
- H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+H5f90global.lo: $(srcdir)/H5f90global.F90 H5fortran_types.lo
+H5fortran_types.lo: H5fortran_types.F90
+H5fortran_detect.lo: H5fortran_detect.F90
+H5test_kind.lo: $(srcdir)/H5test_kind.F90
+H5test_kind_SIZEOF.lo: $(srcdir)/H5test_kind_SIZEOF.F90
+H5_ff.lo: $(srcdir)/H5_ff.F90 H5f90global.lo
+H5Aff.lo: $(srcdir)/H5Aff.F90 H5f90global.lo
+H5Dff.lo: $(srcdir)/H5Dff.F90 H5f90global.lo
+H5Eff.lo: $(srcdir)/H5Eff.F90 H5f90global.lo
+H5Fff.lo: $(srcdir)/H5Fff.F90 H5f90global.lo
+H5Gff.lo: $(srcdir)/H5Gff.F90 H5f90global.lo
+H5Iff.lo: $(srcdir)/H5Iff.F90 H5f90global.lo
+H5Lff.lo: $(srcdir)/H5Lff.F90 H5f90global.lo
+H5Off.lo: $(srcdir)/H5Off.F90 H5f90global.lo
+H5Pff.lo: $(srcdir)/H5Pff.F90 H5f90global.lo
+H5Rff.lo: $(srcdir)/H5Rff.F90 H5f90global.lo
+H5Sff.lo: $(srcdir)/H5Sff.F90 H5f90global.lo
+H5Tff.lo: $(srcdir)/H5Tff.F90 H5f90global.lo
+H5Zff.lo: $(srcdir)/H5Zff.F90 H5f90global.lo
+H5_DBLE_Interface$(F_DBLE).lo: $(srcdir)/H5_DBLE_Interface$(F_DBLE).F90
+HDF5.lo: $(srcdir)/HDF5.F90 H5f90global.lo H5_ff.lo H5Aff.lo \
+ H5Dff.lo \
+ H5Eff.lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
+ H5Off.lo H5Pff.lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Zff.lo \
H5_DBLE_Interface$(F_DBLE).lo
-H5FDmpioff.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo
-HDF5mpio.lo: $(srcdir)/H5FDmpioff.f90 H5f90global.lo H5_ff$(F_STATUS).lo H5_ff.lo \
- H5Aff.lo H5Aff$(F_STATUS).lo \
- H5Dff.lo H5Dff$(F_STATUS).lo \
- H5Eff.lo H5Eff$(F_STATUS).lo \
- H5Fff.lo H5Fff$(F_STATUS).lo H5Gff.lo H5Iff.lo H5Lff.lo H5Lff$(F_STATUS).lo \
- H5Off.lo H5Off$(F_STATUS).lo H5Pff.lo H5Pff$(F_STATUS).lo H5Rff$(F_STATUS).lo H5Rff.lo \
- H5Sff.lo H5Tff.lo H5Tff$(F_STATUS).lo H5Zff.lo \
+H5FDmpioff.lo: $(srcdir)/H5FDmpioff.F90 H5f90global.lo
+HDF5mpio.lo: $(srcdir)/H5FDmpioff.F90 H5f90global.lo H5_ff.lo \
+ H5Aff.lo \
+ H5Dff.lo \
+ H5Eff.lo \
+ H5Fff.lo H5Gff.lo H5Iff.lo H5Lff.lo \
+ H5Off.lo H5Pff.lo H5Rff.lo \
+ H5Sff.lo H5Tff.lo H5Zff.lo \
H5_DBLE_Interface$(F_DBLE).lo H5FDmpioff.lo
# lib/progs/tests targets recurse into subdirectories. build-* targets