summaryrefslogtreecommitdiffstats
path: root/fortran
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2008-12-15 19:17:49 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2008-12-15 19:17:49 (GMT)
commit41245b50b68c9f5469cf715006f099cc9b00a6c3 (patch)
tree7b3fff0818ffea46462c17b093c66d1e466d37ed /fortran
parent327484d5031e566b9c4c12a26e6d5576b32262d6 (diff)
downloadhdf5-41245b50b68c9f5469cf715006f099cc9b00a6c3.zip
hdf5-41245b50b68c9f5469cf715006f099cc9b00a6c3.tar.gz
hdf5-41245b50b68c9f5469cf715006f099cc9b00a6c3.tar.bz2
[svn-r16197] Maintenance: Merged trunk into the hdf5_1_8 branch
(used svn merge -r 15741:16196 http://svn.hdfgroup.uiuc.edu/hdf5/trunk/fortran).
Diffstat (limited to 'fortran')
-rw-r--r--fortran/src/H5Aff.f9013
-rw-r--r--fortran/src/H5Eff.f90255
-rw-r--r--fortran/src/H5Gff.f906
-rw-r--r--fortran/src/H5Lff.f9011
-rw-r--r--fortran/src/H5Off.f902
-rw-r--r--fortran/src/H5Pff.f902
-rw-r--r--fortran/src/H5Rff.f902
-rw-r--r--fortran/src/H5Sf.c5
-rw-r--r--fortran/src/H5Sff.f9010
-rw-r--r--fortran/src/H5Tff.f907
-rw-r--r--fortran/src/H5_DBLE_InterfaceExclude.f9026
-rw-r--r--fortran/src/H5_DBLE_InterfaceInclude.f9027
-rw-r--r--fortran/src/H5_f.c88
-rw-r--r--fortran/src/H5f90global.f901550
-rw-r--r--fortran/src/H5fortran_flags.f9026
-rw-r--r--fortran/src/H5match_types.c253
-rw-r--r--fortran/src/H5test_kind.f90127
-rw-r--r--fortran/src/H5test_kind_SIZEOF.f90114
-rw-r--r--fortran/src/Makefile.am5
-rw-r--r--fortran/src/Makefile.in26
-rw-r--r--fortran/test/fortranlib_test.f906
-rw-r--r--fortran/test/tH5T.f901
22 files changed, 1522 insertions, 1040 deletions
diff --git a/fortran/src/H5Aff.f90 b/fortran/src/H5Aff.f90
index 891a39c..3fdd6fd 100644
--- a/fortran/src/H5Aff.f90
+++ b/fortran/src/H5Aff.f90
@@ -2052,7 +2052,7 @@ CONTAINS
!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
@@ -2370,7 +2370,7 @@ CONTAINS
!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
+ !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
@@ -2594,7 +2594,7 @@ CONTAINS
!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
+ !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
@@ -2677,6 +2677,7 @@ CONTAINS
!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
@@ -2836,6 +2837,7 @@ CONTAINS
!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
@@ -2921,6 +2923,7 @@ CONTAINS
!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
@@ -3011,6 +3014,7 @@ CONTAINS
!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
@@ -3082,6 +3086,7 @@ CONTAINS
!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
@@ -3146,6 +3151,7 @@ CONTAINS
!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
@@ -3221,6 +3227,7 @@ CONTAINS
!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
diff --git a/fortran/src/H5Eff.f90 b/fortran/src/H5Eff.f90
index 5489a07..c7870fe 100644
--- a/fortran/src/H5Eff.f90
+++ b/fortran/src/H5Eff.f90
@@ -1,4 +1,13 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!****h* fortran/src/H5Eff.f90
+!
+! NAME
+! H5E
+!
+! FUNCTION
+! This file contains Fortran interfaces for H5E functions.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
! All rights reserved. *
@@ -11,16 +20,27 @@
! 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. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-! This file contains FORTRAN90 interfaces for H5E functions
+! NOTES
+! *** IMPORTANT ***
+! If you add a new H5E function you must add the function name to the
+! Windows dll file 'hdf5_fortrandll.def' in the fortran/src directory.
+! This is needed for Windows based operating systems.
!
- MODULE H5E
+!*****
- USE H5GLOBAL
-
- CONTAINS
+MODULE H5E
+
+ USE H5GLOBAL
+
+ !Turn on automatic printing of errors
+ INTEGER, PARAMETER :: PRINTON = 1
+
+ !Turn off automatic printing of errors
+ INTEGER, PARAMETER :: PRINTOFF = 0
+
+CONTAINS
!----------------------------------------------------------------------
! Name: h5eclear_f
@@ -47,23 +67,23 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5eclear_f(hdferr)
- IMPLICIT NONE
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ SUBROUTINE h5eclear_f(hdferr)
+ IMPLICIT NONE
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
! INTEGER, EXTERNAL :: h5eclear_c
! MS FORTRAN needs explicit interface for C functions called here.
!
- INTERFACE
- INTEGER FUNCTION h5eclear_c()
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5ECLEAR_C'::h5eclear_c
- !DEC$ ENDIF
- END FUNCTION h5eclear_c
- END INTERFACE
- hdferr = h5eclear_c()
- END SUBROUTINE h5eclear_f
+ INTERFACE
+ INTEGER FUNCTION h5eclear_c()
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5ECLEAR_C'::h5eclear_c
+ !DEC$ ENDIF
+ END FUNCTION h5eclear_c
+ END INTERFACE
+ hdferr = h5eclear_c()
+ END SUBROUTINE h5eclear_f
!----------------------------------------------------------------------
! Name: h5h5eprint_f
@@ -89,42 +109,38 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5eprint_f(hdferr, name)
- CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name
- INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5eprint_c1, h5eprint_c2
- INTEGER :: namelen
+ SUBROUTINE h5eprint_f(hdferr, name)
+ CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: name ! File name
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
+ INTEGER :: namelen
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5eprint_c1(name, namelen)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C1'::h5eprint_c1
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER :: namelen
- CHARACTER(LEN=*),INTENT(IN) :: name
- END FUNCTION h5eprint_c1
- END INTERFACE
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5eprint_c2()
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C2'::h5eprint_c2
- !DEC$ ENDIF
- END FUNCTION h5eprint_c2
- END INTERFACE
- namelen = LEN(NAME)
- if (present(name)) then
- hdferr = h5eprint_c1(name, namelen)
- else
- hdferr = h5eprint_c2()
- endif
- END SUBROUTINE h5eprint_f
+ INTERFACE
+ INTEGER FUNCTION h5eprint_c1(name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C1'::h5eprint_c1
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: namelen
+ CHARACTER(LEN=*),INTENT(IN) :: name
+ END FUNCTION h5eprint_c1
+ END INTERFACE
+
+ INTERFACE
+ INTEGER FUNCTION h5eprint_c2()
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EPRINT_C2'::h5eprint_c2
+ !DEC$ ENDIF
+ END FUNCTION h5eprint_c2
+ END INTERFACE
+ namelen = LEN(NAME)
+ IF (PRESENT(name)) THEN
+ hdferr = h5eprint_c1(name, namelen)
+ ELSE
+ hdferr = h5eprint_c2()
+ ENDIF
+ END SUBROUTINE h5eprint_f
!----------------------------------------------------------------------
! Name: h5eget_major_f
@@ -152,31 +168,28 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5eget_major_f(error_no, name, namelen, hdferr)
- INTEGER, INTENT(IN) :: error_no !Major error number
- CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
- ! the error.
- INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ SUBROUTINE h5eget_major_f(error_no, name, namelen, hdferr)
+ INTEGER, INTENT(IN) :: error_no ! Major error number
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
+ ! the error.
+ INTEGER(SIZE_T), INTENT(IN) :: namelen !Anticipated number of characters in name.
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5eget_major_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5eget_major_c(error_no, name, namelen)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EGET_MAJOR_C'::h5eget_major_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER :: error_no
- CHARACTER(LEN=*) :: name
- INTEGER(SIZE_T), INTENT(IN) :: namelen
- END FUNCTION h5eget_major_c
- END INTERFACE
-
- hdferr = h5eget_major_c(error_no, name, namelen)
- END SUBROUTINE h5eget_major_f
+ INTERFACE
+ INTEGER FUNCTION h5eget_major_c(error_no, name, namelen)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EGET_MAJOR_C'::h5eget_major_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: error_no
+ CHARACTER(LEN=*) :: name
+ INTEGER(SIZE_T), INTENT(IN) :: namelen
+ END FUNCTION h5eget_major_c
+ END INTERFACE
+
+ hdferr = h5eget_major_c(error_no, name, namelen)
+ END SUBROUTINE h5eget_major_f
!----------------------------------------------------------------------
! Name: h5eget_minor_f
@@ -206,29 +219,26 @@
! Comment:
!----------------------------------------------------------------------
- SUBROUTINE h5eget_minor_f(error_no, name, hdferr)
- INTEGER, INTENT(IN) :: error_no !Major error number
- CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
- ! the error
- INTEGER, INTENT(OUT) :: hdferr ! Error code
+ SUBROUTINE h5eget_minor_f(error_no, name, hdferr)
+ INTEGER, INTENT(IN) :: error_no !Major error number
+ CHARACTER(LEN=*), INTENT(OUT) :: name ! Character string describing
+ ! the error
+ INTEGER, INTENT(OUT) :: hdferr ! Error code
-! INTEGER, EXTERNAL :: h5eget_minor_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- INTERFACE
- INTEGER FUNCTION h5eget_minor_c(error_no, name)
- USE H5GLOBAL
- !DEC$ IF DEFINED(HDF5F90_WINDOWS)
- !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EGET_MINOR_C'::h5eget_minor_c
- !DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- INTEGER :: error_no
- CHARACTER(LEN=*) :: name
- END FUNCTION h5eget_minor_c
- END INTERFACE
+ INTERFACE
+ INTEGER FUNCTION h5eget_minor_c(error_no, name)
+ USE H5GLOBAL
+ !DEC$ IF DEFINED(HDF5F90_WINDOWS)
+ !DEC$ ATTRIBUTES C,reference,decorate,alias:'H5EGET_MINOR_C'::h5eget_minor_c
+ !DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
+ INTEGER :: error_no
+ CHARACTER(LEN=*) :: name
+ END FUNCTION h5eget_minor_c
+ END INTERFACE
- hdferr = h5eget_minor_c(error_no, name)
- END SUBROUTINE h5eget_minor_f
+ hdferr = h5eget_minor_c(error_no, name)
+ END SUBROUTINE h5eget_minor_f
!----------------------------------------------------------------------
! Name: h5eset_auto_f
!
@@ -258,29 +268,26 @@
!----------------------------------------------------------------------
- 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
-
-! INTEGER, EXTERNAL :: h5eset_auto_c
-! MS FORTRAN needs explicit interface for C functions called here.
-!
- 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
+ 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
- hdferr = h5eset_auto_c(printflag)
- END SUBROUTINE h5eset_auto_f
+ 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
- END MODULE H5E
+ hdferr = h5eset_auto_c(printflag)
+ END SUBROUTINE h5eset_auto_f
+
+END MODULE H5E
diff --git a/fortran/src/H5Gff.f90 b/fortran/src/H5Gff.f90
index 5852e4a..d393a83 100644
--- a/fortran/src/H5Gff.f90
+++ b/fortran/src/H5Gff.f90
@@ -955,8 +955,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_COMMENT_C'::h5gget_comment_c
!DEC$ ENDIF
- !DEC$ATTRIBUTES reference :: name
- !DEC$ATTRIBUTES reference :: buffer
+ !DEC$ATTRIBUTES reference :: name, buffer
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: name
INTEGER :: namelen
@@ -1216,6 +1215,8 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_IDX_C'::h5gget_info_by_idx_c
!DEC$ ENDIF
+
+ !DEC$ATTRIBUTES reference :: group_name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: group_name
INTEGER, INTENT(IN) :: index_type
@@ -1314,6 +1315,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5GGET_INFO_BY_NAME_C'::h5gget_info_by_name_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: group_name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: group_name
INTEGER(HID_T), INTENT(IN) :: lapl_id_default
diff --git a/fortran/src/H5Lff.f90 b/fortran/src/H5Lff.f90
index 5d5433b..cad00b6 100644
--- a/fortran/src/H5Lff.f90
+++ b/fortran/src/H5Lff.f90
@@ -79,6 +79,7 @@ CONTAINS
!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
INTEGER(HID_T), INTENT(IN) :: dest_loc_id
@@ -147,6 +148,7 @@ CONTAINS
!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
INTEGER(HID_T) :: lapl_id_default
@@ -214,6 +216,7 @@ CONTAINS
!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
INTEGER(SIZE_T) :: target_path_len
INTEGER(HID_T), INTENT(IN) :: link_loc_id
@@ -295,6 +298,7 @@ CONTAINS
!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
INTEGER(HID_T), INTENT(IN) :: link_loc_id
@@ -378,6 +382,7 @@ CONTAINS
!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
INTEGER(HID_T), INTENT(IN) :: link_loc_id
@@ -534,6 +539,7 @@ CONTAINS
!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
INTEGER(SIZE_T), INTENT(IN) :: namelen
@@ -626,6 +632,7 @@ CONTAINS
!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
INTEGER, INTENT(OUT) :: cset
@@ -719,6 +726,7 @@ CONTAINS
!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
INTEGER(SIZE_T) :: group_namelen
@@ -853,7 +861,7 @@ CONTAINS
!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
INTEGER(SIZE_T) :: src_namelen
@@ -944,6 +952,7 @@ CONTAINS
!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
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: group_name
INTEGER(SIZE_T) :: group_namelen
diff --git a/fortran/src/H5Off.f90 b/fortran/src/H5Off.f90
index b79dbf2..ef58d47 100644
--- a/fortran/src/H5Off.f90
+++ b/fortran/src/H5Off.f90
@@ -69,6 +69,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5OLINK_C'::h5olink_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: new_link_name
INTEGER(HID_T), INTENT(IN) :: object_id
INTEGER(HID_T), INTENT(IN) :: new_loc_id
CHARACTER(LEN=*), INTENT(IN) :: new_link_name
@@ -134,6 +135,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5OOPEN_C'::h5oopen_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: name
INTEGER(HID_T), INTENT(IN) :: loc_id
CHARACTER(LEN=*), INTENT(IN) :: name
INTEGER(HID_T) :: lapl_id_default
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index b0b9933..f8cc771 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -6338,6 +6338,7 @@
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PGET_DATA_TRANSFORM_C'::h5pget_data_transform_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: expression
INTEGER(HID_T), INTENT(IN) :: plist_id
CHARACTER(LEN=*), INTENT(OUT) :: expression
INTEGER(SIZE_T) :: size_default
@@ -6392,6 +6393,7 @@
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5PSET_DATA_TRANSFORM_C'::h5pset_data_transform_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: expression
INTEGER(HID_T), INTENT(IN) :: plist_id
CHARACTER(LEN=*), INTENT(IN) :: expression
INTEGER :: expression_len
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
index de4f5f0..57843b7 100644
--- a/fortran/src/H5Rff.f90
+++ b/fortran/src/H5Rff.f90
@@ -489,6 +489,7 @@
!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
@@ -554,6 +555,7 @@
!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
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index 82e760c..da3db6e 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -1035,11 +1035,6 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements, hsi
int i, j;
hsize_t *c_coord;
size_t c_nelements;
-/*
- if (*op != H5S_SELECT_SET_F) return ret_value;
-*/
-/* if (*op != H5S_SELECT_SET) return ret_value; */
-/* c_op = H5S_SELECT_SET; */
c_op = (H5S_seloper_t)*op;
diff --git a/fortran/src/H5Sff.f90 b/fortran/src/H5Sff.f90
index f7feca2..6469124 100644
--- a/fortran/src/H5Sff.f90
+++ b/fortran/src/H5Sff.f90
@@ -595,16 +595,6 @@
c_coord(i,:) = coord(rank-i+1, :) - 1
ENDDO
hdferr = h5sselect_elements_c(space_id, OPERATOR, num_elements, c_coord)
-
-! ALLOCATE(c_coord(num_elements,rank), stat = error)
-! IF (error.NE. 0) THEN
-! hdferr = -1
-! RETURN
-! ENDIF
-!
-! c_coord = TRANSPOSE(coord)
-! hdferr = h5sselect_elements_c(space_id, OPERATOR, INT(rank,size_t), c_coord)
-
DEALLOCATE(c_coord)
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index eb4ff30..4849f0e 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -1770,7 +1770,7 @@ CONTAINS
! index - filed index (0-based)
! Outputs:
! member_name - buffer to hold member's name
-! namelen - name lenght
+! namelen - name length
! hdferr: - error code
! Success: 0
! Failure: -1
@@ -2811,7 +2811,7 @@ CONTAINS
!----------------------------------------------------------------------
! Name: h5tvlen_create_f
!
-! Purpose: Creates a new variable-lenght datatype.
+! Purpose: Creates a new variable-length datatype.
!
! Inputs:
! type_id - identifier iof base datatype
@@ -3132,6 +3132,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5TDECODE_C'::h5tdecode_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
CHARACTER(LEN=*), INTENT(IN) :: buf
INTEGER(HID_T), INTENT(OUT) :: obj_id ! Object ID
END FUNCTION h5tdecode_c
@@ -3180,6 +3181,7 @@ CONTAINS
!DEC$ IF DEFINED(HDF5F90_WINDOWS)
!DEC$ ATTRIBUTES C,reference,decorate,alias:'H5TENCODE_C'::h5tencode_c
!DEC$ ENDIF
+ !DEC$ATTRIBUTES reference :: buf
INTEGER(HID_T), INTENT(IN) :: obj_id
CHARACTER(LEN=*), INTENT(OUT) :: buf
INTEGER(SIZE_T), INTENT(INOUT) :: nalloc
@@ -3339,5 +3341,4 @@ CONTAINS
hdferr = h5tget_native_type_c(dtype_id, direction, native_dtype_id)
END SUBROUTINE h5tget_native_type_f
-
END MODULE H5T
diff --git a/fortran/src/H5_DBLE_InterfaceExclude.f90 b/fortran/src/H5_DBLE_InterfaceExclude.f90
index 4db8bdd..976a6f4 100644
--- a/fortran/src/H5_DBLE_InterfaceExclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceExclude.f90
@@ -1,3 +1,18 @@
+!****h* fortran/src/H5_DBLE_InterfaceExclude.f90
+!
+! NAME
+! H5_DBLE_INTERFACE
+!
+! FUNCTION
+! This module is used for when the default REAL is of type DOUBLE PRECISION.
+! We do not include the double precision interfaces if the defaut REAL is
+! DOUBLE PRECISION since this would lead to a non-unique conflict with the
+! generic interfaces declared as REAL and those declared as DOUBLE PRECISION.
+!
+! NOTES
+! Empty module.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,14 +28,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! AUTHOR
+! M.S. Breitenfeld
!
-! FUNCTION
-! This module is included for when the default REAL is of type DOUBLE PRECISION.
-! We do not include the double precision interfaces if the defaut REAL is
-! DOUBLE PRECISION since this would lead to a non-unique conflict with the
-! generic interfaces declared as REAL.
-!
-!
+!*****
+
MODULE H5_DBLE_INTERFACE
diff --git a/fortran/src/H5_DBLE_InterfaceInclude.f90 b/fortran/src/H5_DBLE_InterfaceInclude.f90
index 69be022..0fdd63c 100644
--- a/fortran/src/H5_DBLE_InterfaceInclude.f90
+++ b/fortran/src/H5_DBLE_InterfaceInclude.f90
@@ -1,3 +1,19 @@
+!****h* fortran/src/H5_DBLE_InterfaceInclude.f90
+!
+! NAME
+! H5_DBLE_INTERFACE
+!
+! FUNCTION
+! This module is used for when the default REAL is not of the type DOUBLE PRECISION.
+! We only do not include the double precision interfaces if the defaut REAL is
+! DOUBLE PRECISION since this would lead to a non-unique conflict with the
+! generic interfaces declared as REAL. Otherwise it is okay to include the interfaces.
+!
+! NOTES
+! This module contains all the DOUBLE PRECISION interfaces and corresponding subroutines
+! from the HDF function catagory H5A, H5D and H5P.
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,14 +29,11 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
+! AUTHOR
+! M.S. Breitenfeld
!
-! FUNCTION
-! This module is included for when the default REAL is not of the type DOUBLE PRECISION.
-! We do not include the double precision interfaces if the defaut REAL is
-! DOUBLE PRECISION since this would lead to a non-unique conflict with the
-! generic interfaces declared as REAL. Otherwise it is okay to include the interfaces.
-!
-!
+!*****
+
MODULE H5_DBLE_INTERFACE
USE H5GLOBAL
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 8a81010..915f8cb 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -106,6 +106,94 @@ nh5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertype
if ((types[4] = (hid_t_f)H5Tcopy(H5T_STD_REF_OBJ)) < 0) return ret_value;
if ((types[5] = (hid_t_f)H5Tcopy(H5T_STD_REF_DSETREG)) < 0) return ret_value;
+ if (sizeof(int_1_f) == sizeof(char)) {
+ if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_1_f) == sizeof(short)) {
+ if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_SHORT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_1_f) == sizeof(int)) {
+ if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_1_f) == sizeof(long_long)) {
+ if ((types[6] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
+ } /*end else */
+
+ if (sizeof(int_2_f) == sizeof(char)) {
+ if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_2_f) == sizeof(short)) {
+ if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_SHORT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_2_f) == sizeof(int)) {
+ if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_2_f) == sizeof(long_long)) {
+ if ((types[7] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
+ } /*end else */
+
+ if (sizeof(int_4_f) == sizeof(char)) {
+ if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_4_f) == sizeof(short)) {
+ if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_SHORT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_4_f) == sizeof(int)) {
+ if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_4_f) == sizeof(long_long)) {
+ if ((types[8] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
+ } /*end else */
+
+ if (sizeof(int_8_f) == sizeof(char)) {
+ if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_CHAR)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_8_f) == sizeof(short)) {
+ if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_SHORT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_8_f) == sizeof(int)) {
+ if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_INT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(int_8_f) == sizeof(long_long)) {
+ if ((types[9] = (hid_t_f)H5Tcopy(H5T_NATIVE_LLONG)) < 0) return ret_value;
+ } /*end else */
+
+ if (sizeof(real_4_f) == sizeof(float)) {
+ if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(real_4_f) == sizeof(double)) {
+ if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
+ } /*end if */
+#if H5_SIZEOF_LONG_DOUBLE!=0
+ else if (sizeof(real_4_f) == sizeof(long double)) {
+ if ((types[10] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
+ } /*end else */
+#endif
+
+ if (sizeof(real_8_f) == sizeof(float)) {
+ if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(real_8_f) == sizeof(double)) {
+ if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
+ } /*end if */
+#if H5_SIZEOF_LONG_DOUBLE!=0
+ else if (sizeof(real_8_f) == sizeof(long double)) {
+ if ((types[11] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
+ } /*end else */
+#endif
+
+ if (sizeof(real_16_f) == sizeof(float)) {
+ if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
+ } /*end if */
+ else if (sizeof(real_16_f) == sizeof(double)) {
+ if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
+ } /*end if */
+#if H5_SIZEOF_LONG_DOUBLE!=0
+ else if (sizeof(real_16_f) == sizeof(long double)) {
+ if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
+ } /*end else */
+#endif
+
if ((floatingtypes[0] = (hid_t_f)H5Tcopy(H5T_IEEE_F32BE)) < 0) return ret_value;
if ((floatingtypes[1] = (hid_t_f)H5Tcopy(H5T_IEEE_F32LE)) < 0) return ret_value;
if ((floatingtypes[2] = (hid_t_f)H5Tcopy(H5T_IEEE_F64BE)) < 0) return ret_value;
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index bf2d715..c8e6649 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -1,3 +1,23 @@
+!****h* fortran/src/H5f90global.f90
+!
+! NAME
+! H5GLOBAL
+!
+! FUNCTION
+! This module is used to pass C stubs for H5 Fortran APIs. The C stubs are
+! packed into arrays in H5_f.c and these arrays are then passed to Fortran.
+! This module then uses EQUIVALENCE to assign elements of the arrays to
+! Fortran equivalent C stubs.
+!
+! NOTES
+! The size of the C arrays in H5_f.c have to match the values of the variables
+! declared as PARAMETER, hence if the size of an array in H5_f.c is changed
+! then the PARAMETER of that corresponding array in Fortran must also be changed.
+!
+! USES
+! H5FORTRAN_TYPES - This module is generated at run time. See
+! H5fortran_types.f90 for further informaton.
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
@@ -13,755 +33,783 @@
! access to either file, you may request a copy from help@hdfgroup.org. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
- MODULE H5GLOBAL
- USE H5FORTRAN_TYPES
-!
-!
-! Definitions for reference datatypes.
-! If you change the value of these parameters, do not forget to change corresponding
-! values in the H5f90.h file.
- INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
-
- TYPE hobj_ref_t_f
- INTEGER(HADDR_T) ref
- END TYPE hobj_ref_t_f
-
- TYPE hdset_reg_ref_t_f
- INTEGER ref(REF_REG_BUF_LEN)
- END TYPE hdset_reg_ref_t_f
-
- INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 6 ! Do not forget to change this
- ! value when new predefined
- ! datatypes are added
- ! Do not forget to change the following line when new predefined
- ! floating data types are added
- INTEGER, PARAMETER :: FLOATING_TYPES_LEN = 4
-
- ! Do not forget to change the following line when new predefined
- ! integer data types are added
- INTEGER, PARAMETER :: INTEGER_TYPES_LEN = 17
-
- INTEGER(HID_T) H5T_NATIVE_INTEGER, &
- H5T_NATIVE_REAL, &
- H5T_NATIVE_DOUBLE, &
- H5T_NATIVE_CHARACTER , &
- H5T_STD_REF_OBJ, &
- H5T_STD_REF_DSETREG, &
- H5T_IEEE_F32BE, &
- H5T_IEEE_F32LE, &
- H5T_IEEE_F64BE, &
- H5T_IEEE_F64LE, &
- H5T_STD_I8BE, &
- H5T_STD_I8LE, &
- H5T_STD_I16BE, &
- H5T_STD_I16LE, &
- H5T_STD_I32BE, &
- H5T_STD_I32LE, &
- H5T_STD_I64BE, &
- H5T_STD_I64LE, &
- H5T_STD_U8BE, &
- H5T_STD_U8LE, &
- H5T_STD_U16BE, &
- H5T_STD_U16LE, &
- H5T_STD_U32BE, &
- H5T_STD_U32LE, &
- H5T_STD_U64BE, &
- H5T_STD_U64LE, &
- H5T_STRING
-
-
- INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
- EQUIVALENCE (predef_types(1), H5T_NATIVE_INTEGER)
- EQUIVALENCE (predef_types(2), H5T_NATIVE_REAL)
- EQUIVALENCE (predef_types(3), H5T_NATIVE_DOUBLE)
- EQUIVALENCE (predef_types(4), H5T_NATIVE_CHARACTER)
- EQUIVALENCE (predef_types(5), H5T_STD_REF_OBJ)
- EQUIVALENCE (predef_types(6), H5T_STD_REF_DSETREG)
-
- INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types
- EQUIVALENCE (floating_types(1), H5T_IEEE_F32BE )
- EQUIVALENCE (floating_types(2), H5T_IEEE_F32LE)
- EQUIVALENCE (floating_types(3), H5T_IEEE_F64BE)
- EQUIVALENCE (floating_types(4), H5T_IEEE_F64LE)
-
- INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types
- EQUIVALENCE (integer_types(1), H5T_STD_I8BE )
- EQUIVALENCE (integer_types(2), H5T_STD_I8LE)
- EQUIVALENCE (integer_types(3), H5T_STD_I16BE)
- EQUIVALENCE (integer_types(4), H5T_STD_I16LE)
- EQUIVALENCE (integer_types(5), H5T_STD_I32BE)
- EQUIVALENCE (integer_types(6), H5T_STD_I32LE)
- EQUIVALENCE (integer_types(7), H5T_STD_I64BE)
- EQUIVALENCE (integer_types(8), H5T_STD_I64LE)
- EQUIVALENCE (integer_types(9), H5T_STD_U8BE)
- EQUIVALENCE (integer_types(10), H5T_STD_U8LE)
- EQUIVALENCE (integer_types(11), H5T_STD_U16BE)
- EQUIVALENCE (integer_types(12), H5T_STD_U16LE)
- EQUIVALENCE (integer_types(13), H5T_STD_U32BE)
- EQUIVALENCE (integer_types(14), H5T_STD_U32LE)
- EQUIVALENCE (integer_types(15), H5T_STD_U64BE)
- EQUIVALENCE (integer_types(16), H5T_STD_U64LE)
- EQUIVALENCE (integer_types(17), H5T_STRING)
-
-
-! COMMON /PREDEFINED_TYPES/ H5T_NATIVE_INTEGER, &
-! H5T_NATIVE_REAL, &
-! H5T_NATIVE_DOUBLE, &
-! H5T_NATIVE_CHARACTER, &
-! H5T_STD_REF_OBJ, &
-! H5T_STD_REF_DSETREG
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /PREDEFINED_TYPES/
-!DEC$endif
- COMMON /PREDEFINED_TYPES/ predef_types
-
-! COMMON /FLOATING_TYPES/ H5T_IEEE_F32BE, &
-! H5T_IEEE_F32LE, &
-! H5T_IEEE_F64BE, &
-! H5T_IEEE_F64LE
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /FLOATING_TYPES/
-!DEC$endif
- COMMON /FLOATING_TYPES/ floating_types
-!
-! COMMON /INTEGER_TYPES/ H5T_STD_I8BE, &
-! H5T_STD_I8LE, &
-! H5T_STD_I16BE, &
-! H5T_STD_I16LE, &
-! H5T_STD_I32BE, &
-! H5T_STD_I32LE, &
-! H5T_STD_I64BE, &
-! H5T_STD_I64LE, &
-! H5T_STD_U8BE, &
-! H5T_STD_U8LE, &
-! H5T_STD_U16BE, &
-! H5T_STD_U16LE, &
-! H5T_STD_U32BE, &
-! H5T_STD_U32LE, &
-! H5T_STD_U64BE, &
-! H5T_STD_U64LE
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /INTEGER_TYPES/
-!DEC$endif
- COMMON /INTEGER_TYPES/ integer_types
-!
-! Fortran flags
-!
-!
-! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDEDD !)
-!
-! H5F flags declaration
-!
- INTEGER, PARAMETER :: H5F_FLAGS_LEN = 19
- INTEGER H5F_flags(H5F_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5F_FLAGS/
-!DEC$endif
- COMMON /H5F_FLAGS/ H5F_flags
-
- INTEGER :: H5F_ACC_RDWR_F
- INTEGER :: H5F_ACC_RDONLY_F
- INTEGER :: H5F_ACC_TRUNC_F
- INTEGER :: H5F_ACC_EXCL_F
- INTEGER :: H5F_ACC_DEBUG_F
- INTEGER :: H5F_SCOPE_LOCAL_F
- INTEGER :: H5F_SCOPE_GLOBAL_F
- INTEGER :: H5F_CLOSE_DEFAULT_F
- INTEGER :: H5F_CLOSE_WEAK_F
- INTEGER :: H5F_CLOSE_SEMI_F
- INTEGER :: H5F_CLOSE_STRONG_F
- INTEGER :: H5F_OBJ_FILE_F
- INTEGER :: H5F_OBJ_DATASET_F
- INTEGER :: H5F_OBJ_GROUP_F
- INTEGER :: H5F_OBJ_DATATYPE_F
- INTEGER :: H5F_OBJ_ALL_F
- INTEGER :: H5F_LIBVER_EARLIEST_F
- INTEGER :: H5F_LIBVER_LATEST_F
-
- EQUIVALENCE(H5F_flags(1), H5F_ACC_RDWR_F)
- EQUIVALENCE(H5F_flags(2), H5F_ACC_RDONLY_F)
- EQUIVALENCE(H5F_flags(3), H5F_ACC_TRUNC_F)
- EQUIVALENCE(H5F_flags(4), H5F_ACC_EXCL_F)
- EQUIVALENCE(H5F_flags(5), H5F_ACC_DEBUG_F)
- EQUIVALENCE(H5F_flags(6), H5F_SCOPE_LOCAL_F)
- EQUIVALENCE(H5F_flags(7), H5F_SCOPE_GLOBAL_F)
- EQUIVALENCE(H5F_flags(8), H5F_CLOSE_DEFAULT_F)
- EQUIVALENCE(H5F_flags(9), H5F_CLOSE_WEAK_F)
- EQUIVALENCE(H5F_flags(10), H5F_CLOSE_SEMI_F)
- EQUIVALENCE(H5F_flags(11), H5F_CLOSE_STRONG_F)
- EQUIVALENCE(H5F_flags(12), H5F_OBJ_FILE_F)
- EQUIVALENCE(H5F_flags(13), H5F_OBJ_DATASET_F)
- EQUIVALENCE(H5F_flags(14), H5F_OBJ_GROUP_F)
- EQUIVALENCE(H5F_flags(15), H5F_OBJ_DATATYPE_F)
- EQUIVALENCE(H5F_flags(16), H5F_OBJ_ALL_F)
- EQUIVALENCE(H5F_flags(17), H5F_LIBVER_EARLIEST_F)
- EQUIVALENCE(H5F_flags(18), H5F_LIBVER_LATEST_F)
-!
-! H5generic flags declaration
-!
- INTEGER, PARAMETER :: H5generic_FLAGS_LEN = 9
- INTEGER H5generic_flags(H5generic_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5generic_FLAGS/
-!DEC$endif
- COMMON /H5generic_FLAGS/ H5generic_flags
-
- INTEGER :: H5_INDEX_UNKNOWN_F
- INTEGER :: H5_INDEX_NAME_F
- INTEGER :: H5_INDEX_CRT_ORDER_F
- INTEGER :: H5_INDEX_N_F
- INTEGER :: H5_ITER_UNKNOWN_F
- INTEGER :: H5_ITER_INC_F
- INTEGER :: H5_ITER_DEC_F
- INTEGER :: H5_ITER_NATIVE_F
- INTEGER :: H5_ITER_N_F
-
- EQUIVALENCE(H5generic_flags(1), H5_INDEX_UNKNOWN_F)
- EQUIVALENCE(H5generic_flags(2), H5_INDEX_NAME_F)
- EQUIVALENCE(H5generic_flags(3), H5_INDEX_CRT_ORDER_F)
- EQUIVALENCE(H5generic_flags(4), H5_INDEX_N_F)
- EQUIVALENCE(H5generic_flags(5), H5_ITER_UNKNOWN_F)
- EQUIVALENCE(H5generic_flags(6), H5_ITER_INC_F)
- EQUIVALENCE(H5generic_flags(7), H5_ITER_DEC_F)
- EQUIVALENCE(H5generic_flags(8), H5_ITER_NATIVE_F)
- EQUIVALENCE(H5generic_flags(9), H5_ITER_N_F)
-
-
-!
-! H5G flags declaration
-!
- INTEGER, PARAMETER :: H5G_FLAGS_LEN = 12
- INTEGER H5G_flags(H5G_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5G_FLAGS/
-!DEC$endif
- COMMON /H5G_FLAGS/ H5G_flags
-
- INTEGER :: H5G_UNKNOWN_F
- INTEGER :: H5G_GROUP_F
- INTEGER :: H5G_DATASET_F
- INTEGER :: H5G_TYPE_F
-! XXX: Fix problems with H5G_LINK_F! - QAK
- INTEGER :: H5G_LINK_F
- INTEGER :: H5G_LINK_ERROR_F
- INTEGER :: H5G_LINK_HARD_F
- INTEGER :: H5G_LINK_SOFT_F
- INTEGER :: H5G_STORAGE_TYPE_UNKNOWN_F
- INTEGER :: H5G_STORAGE_TYPE_SYMBOL_TABLE_F
- INTEGER :: H5G_STORAGE_TYPE_COMPACT_F
- INTEGER :: H5G_STORAGE_TYPE_DENSE_F
-
- EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F)
- EQUIVALENCE(H5G_flags(2), H5G_GROUP_F)
- EQUIVALENCE(H5G_flags(3), H5G_DATASET_F)
- EQUIVALENCE(H5G_flags(4), H5G_TYPE_F)
-! XXX: Fix problems with H5G_LINK_F! - QAK ! these are really H5L values -MSB-
- EQUIVALENCE(H5G_flags(5), H5G_LINK_F)
- EQUIVALENCE(H5G_flags(6), H5G_LINK_ERROR_F)
- EQUIVALENCE(H5G_flags(7), H5G_LINK_HARD_F)
- EQUIVALENCE(H5G_flags(8), H5G_LINK_SOFT_F)
-! XXX
-
- EQUIVALENCE(H5G_flags(9), H5G_STORAGE_TYPE_UNKNOWN_F )
- EQUIVALENCE(H5G_flags(10), H5G_STORAGE_TYPE_SYMBOL_TABLE_F)
- EQUIVALENCE(H5G_flags(11), H5G_STORAGE_TYPE_COMPACT_F)
- EQUIVALENCE(H5G_flags(12), H5G_STORAGE_TYPE_DENSE_F)
-!
-! H5D flags declaration
-!
-
- INTEGER, PARAMETER :: H5D_FLAGS_LEN = 19
- INTEGER H5D_flags(H5D_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5D_FLAGS/
-!DEC$endif
- COMMON /H5D_FLAGS/ H5D_flags
-
- INTEGER :: H5D_COMPACT_F
- INTEGER :: H5D_CONTIGUOUS_F
- INTEGER :: H5D_CHUNKED_F
-
- INTEGER :: H5D_ALLOC_TIME_ERROR_F
- INTEGER :: H5D_ALLOC_TIME_DEFAULT_F
- INTEGER :: H5D_ALLOC_TIME_EARLY_F
- INTEGER :: H5D_ALLOC_TIME_LATE_F
- INTEGER :: H5D_ALLOC_TIME_INCR_F
-
- INTEGER :: H5D_SPACE_STS_ERROR_F
- INTEGER :: H5D_SPACE_STS_NOT_ALLOCATED_F
- INTEGER :: H5D_SPACE_STS_PART_ALLOCATED_F
- INTEGER :: H5D_SPACE_STS_ALLOCATED_F
-
- INTEGER :: H5D_FILL_TIME_ERROR_F
- INTEGER :: H5D_FILL_TIME_ALLOC_F
- INTEGER :: H5D_FILL_TIME_NEVER_F
-
- INTEGER :: H5D_FILL_VALUE_ERROR_F
- INTEGER :: H5D_FILL_VALUE_UNDEFINED_F
- INTEGER :: H5D_FILL_VALUE_DEFAULT_F
- INTEGER :: H5D_FILL_VALUE_USER_DEFINED_F
-
- EQUIVALENCE(H5D_flags(1), H5D_COMPACT_F)
- EQUIVALENCE(H5D_flags(2), H5D_CONTIGUOUS_F)
- EQUIVALENCE(H5D_flags(3), H5D_CHUNKED_F)
-
- EQUIVALENCE(H5D_flags(4), H5D_ALLOC_TIME_ERROR_F)
- EQUIVALENCE(H5D_flags(5), H5D_ALLOC_TIME_DEFAULT_F)
- EQUIVALENCE(H5D_flags(6), H5D_ALLOC_TIME_EARLY_F)
- EQUIVALENCE(H5D_flags(7), H5D_ALLOC_TIME_LATE_F)
- EQUIVALENCE(H5D_flags(8), H5D_ALLOC_TIME_INCR_F)
-
- EQUIVALENCE(H5D_flags(9), H5D_SPACE_STS_ERROR_F)
- EQUIVALENCE(H5D_flags(10), H5D_SPACE_STS_NOT_ALLOCATED_F)
- EQUIVALENCE(H5D_flags(11), H5D_SPACE_STS_PART_ALLOCATED_F)
- EQUIVALENCE(H5D_flags(12), H5D_SPACE_STS_ALLOCATED_F)
-
- EQUIVALENCE(H5D_flags(13), H5D_FILL_TIME_ERROR_F)
- EQUIVALENCE(H5D_flags(14), H5D_FILL_TIME_ALLOC_F)
- EQUIVALENCE(H5D_flags(15), H5D_FILL_TIME_NEVER_F)
-
- EQUIVALENCE(H5D_flags(16), H5D_FILL_VALUE_ERROR_F)
- EQUIVALENCE(H5D_flags(17), H5D_FILL_VALUE_UNDEFINED_F)
- EQUIVALENCE(H5D_flags(18), H5D_FILL_VALUE_DEFAULT_F)
- EQUIVALENCE(H5D_flags(19), H5D_FILL_VALUE_USER_DEFINED_F)
-
-!
-! H5FD flags declaration
-!
- INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 11
- INTEGER H5FD_flags(H5FD_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5FD_FLAGS/
-!DEC$endif
- COMMON /H5FD_FLAGS/ H5FD_flags
-
- INTEGER :: H5FD_MPIO_INDEPENDENT_F
- INTEGER :: H5FD_MPIO_COLLECTIVE_F
- INTEGER :: H5FD_MEM_NOLIST_F
- INTEGER :: H5FD_MEM_DEFAULT_F
- INTEGER :: H5FD_MEM_SUPER_F
- INTEGER :: H5FD_MEM_BTREE_F
- INTEGER :: H5FD_MEM_DRAW_F
- INTEGER :: H5FD_MEM_GHEAP_F
- INTEGER :: H5FD_MEM_LHEAP_F
- INTEGER :: H5FD_MEM_OHDR_F
- INTEGER :: H5FD_MEM_NTYPES_F
-
- EQUIVALENCE(H5FD_flags(1), H5FD_MPIO_INDEPENDENT_F)
- EQUIVALENCE(H5FD_flags(2), H5FD_MPIO_COLLECTIVE_F)
- EQUIVALENCE(H5FD_flags(3), H5FD_MEM_NOLIST_F)
- EQUIVALENCE(H5FD_flags(4), H5FD_MEM_DEFAULT_F)
- EQUIVALENCE(H5FD_flags(5), H5FD_MEM_SUPER_F)
- EQUIVALENCE(H5FD_flags(6), H5FD_MEM_BTREE_F)
- EQUIVALENCE(H5FD_flags(7), H5FD_MEM_DRAW_F)
- EQUIVALENCE(H5FD_flags(8), H5FD_MEM_GHEAP_F)
- EQUIVALENCE(H5FD_flags(9), H5FD_MEM_LHEAP_F)
- EQUIVALENCE(H5FD_flags(10), H5FD_MEM_OHDR_F)
- EQUIVALENCE(H5FD_flags(11), H5FD_MEM_NTYPES_F)
-!
-! H5FD file drivers flags declaration
-!
- INTEGER, PARAMETER :: H5FD_HID_FLAGS_LEN = 7
- INTEGER(HID_T) H5FD_hid_flags(H5FD_HID_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5FD_HID_FLAGS/
-!DEC$endif
- COMMON /H5FD_HID_FLAGS/ H5FD_hid_flags
-
- INTEGER(HID_T) :: H5FD_CORE_F
- INTEGER(HID_T) :: H5FD_FAMILY_F
- INTEGER(HID_T) :: H5FD_LOG_F
- INTEGER(HID_T) :: H5FD_MPIO_F
- INTEGER(HID_T) :: H5FD_MULTI_F
- INTEGER(HID_T) :: H5FD_SEC2_F
- INTEGER(HID_T) :: H5FD_STDIO_F
-
- EQUIVALENCE(H5FD_hid_flags(1), H5FD_CORE_F)
- EQUIVALENCE(H5FD_hid_flags(2), H5FD_FAMILY_F)
- EQUIVALENCE(H5FD_hid_flags(3), H5FD_LOG_F)
- EQUIVALENCE(H5FD_hid_flags(4), H5FD_MPIO_F)
- EQUIVALENCE(H5FD_hid_flags(5), H5FD_MULTI_F)
- EQUIVALENCE(H5FD_hid_flags(6), H5FD_SEC2_F)
- EQUIVALENCE(H5FD_hid_flags(7), H5FD_STDIO_F)
-
-!
-! H5I flags declaration
-!
- INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7
- INTEGER H5I_flags(H5I_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5I_FLAGS/
-!DEC$endif
- COMMON /H5I_FLAGS/ H5I_flags
-
- INTEGER :: H5I_FILE_F
- INTEGER :: H5I_GROUP_F
- INTEGER :: H5I_DATATYPE_F
- INTEGER :: H5I_DATASPACE_F
- INTEGER :: H5I_DATASET_F
- INTEGER :: H5I_ATTR_F
- INTEGER :: H5I_BADID_F
-
- EQUIVALENCE(H5I_flags(1), H5I_FILE_F)
- EQUIVALENCE(H5I_flags(2), H5I_GROUP_F)
- EQUIVALENCE(H5I_flags(3), H5I_DATATYPE_F)
- EQUIVALENCE(H5I_flags(4), H5I_DATASPACE_F)
- EQUIVALENCE(H5I_flags(5), H5I_DATASET_F)
- EQUIVALENCE(H5I_flags(6), H5I_ATTR_F)
- EQUIVALENCE(H5I_flags(7), H5I_BADID_F)
-!
-! H5L flags declaration
-!
- INTEGER, PARAMETER :: H5L_FLAGS_LEN = 6
- INTEGER :: H5L_flags(H5L_FLAGS_LEN)
-
- INTEGER :: H5L_LINK_F
- INTEGER :: H5L_LINK_ERROR_F
- INTEGER :: H5L_LINK_HARD_F
- INTEGER :: H5L_LINK_SOFT_F
- INTEGER :: H5L_SAME_LOC_F
- INTEGER :: H5L_LINK_CLASS_T_VERS_F
-
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5L_FLAGS/
-!DEC$endif
- COMMON /H5L_FLAGS/ H5L_flags
-
- EQUIVALENCE(H5L_flags(1), H5L_LINK_F)
- EQUIVALENCE(H5L_flags(2), H5L_LINK_ERROR_F)
- EQUIVALENCE(H5L_flags(3), H5L_LINK_HARD_F)
- EQUIVALENCE(H5L_flags(4), H5L_LINK_SOFT_F)
- EQUIVALENCE(H5L_flags(5), H5L_SAME_LOC_F)
- EQUIVALENCE(H5L_flags(6), H5L_LINK_CLASS_T_VERS_F)
-!
-! H5O flags declaration
-!
- INTEGER, PARAMETER :: H5O_FLAGS_LEN = 22
- INTEGER :: H5o_flags(H5O_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5O_FLAGS/
-!DEC$endif
- COMMON /H5O_FLAGS/ H5O_flags
-
- INTEGER :: H5O_COPY_SHALLOW_HIERARCHY_F ! * THESE VARIABLES DO
- INTEGER :: H5O_COPY_EXPAND_SOFT_LINK_F ! NOT MATCH THE C VARIABLE
- INTEGER :: H5O_COPY_EXPAND_EXT_LINK_F ! IN ORDER
- INTEGER :: H5O_COPY_EXPAND_REFERENCE_F ! TO STAY UNDER THE
- INTEGER :: H5O_COPY_WITHOUT_ATTR_FLAG_F
- INTEGER :: H5O_COPY_PRESERVE_NULL_FLAG_F
- INTEGER :: H5O_COPY_ALL_F
- INTEGER :: H5O_SHMESG_NONE_FLAG_F
- INTEGER :: H5O_SHMESG_SDSPACE_FLAG_F
- INTEGER :: H5O_SHMESG_DTYPE_FLAG_F
- INTEGER :: H5O_SHMESG_FILL_FLAG_F
- INTEGER :: H5O_SHMESG_PLINE_FLAG_F
- INTEGER :: H5O_SHMESG_ATTR_FLAG_F
- INTEGER :: H5O_SHMESG_ALL_FLAG_F
- INTEGER :: H5O_HDR_CHUNK0_SIZE_F
- INTEGER :: H5O_HDR_ATTR_CRT_ORDER_TRACK_F ! 32 CHARACTER
- INTEGER :: H5O_HDR_ATTR_CRT_ORDER_INDEX_F ! VARIABLE
- INTEGER :: H5O_HDR_ATTR_STORE_PHASE_CHA_F ! LENGTH *
- INTEGER :: H5O_HDR_STORE_TIMES_F
- INTEGER :: H5O_HDR_ALL_FLAGS_F
- INTEGER :: H5O_SHMESG_MAX_NINDEXES_F
- INTEGER :: H5O_SHMESG_MAX_LIST_SIZE_F
-
- EQUIVALENCE(h5o_flags(1) , H5O_COPY_SHALLOW_HIERARCHY_F)
- EQUIVALENCE(h5o_flags(2) , H5O_COPY_EXPAND_SOFT_LINK_F)
- EQUIVALENCE(h5o_flags(3) , H5O_COPY_EXPAND_EXT_LINK_F)
- EQUIVALENCE(h5o_flags(4) , H5O_COPY_EXPAND_REFERENCE_F)
- EQUIVALENCE(h5o_flags(5) , H5O_COPY_WITHOUT_ATTR_FLAG_F)
- EQUIVALENCE(h5o_flags(6) , H5O_COPY_PRESERVE_NULL_FLAG_F)
- EQUIVALENCE(h5o_flags(7) , H5O_COPY_ALL_F)
- EQUIVALENCE(h5o_flags(8) , H5O_SHMESG_NONE_FLAG_F)
- EQUIVALENCE(h5o_flags(9) , H5O_SHMESG_SDSPACE_FLAG_F)
- EQUIVALENCE(h5o_flags(10) , H5O_SHMESG_DTYPE_FLAG_F)
- EQUIVALENCE(h5o_flags(11) , H5O_SHMESG_FILL_FLAG_F)
- EQUIVALENCE(h5o_flags(12) , H5O_SHMESG_PLINE_FLAG_F)
- EQUIVALENCE(h5o_flags(13) , H5O_SHMESG_ATTR_FLAG_F)
- EQUIVALENCE(h5o_flags(14) , H5O_SHMESG_ALL_FLAG_F)
- EQUIVALENCE(h5o_flags(15) , H5O_HDR_CHUNK0_SIZE_F)
- EQUIVALENCE(h5o_flags(16) , H5O_HDR_ATTR_CRT_ORDER_TRACK_F)
- EQUIVALENCE(h5o_flags(17) , H5O_HDR_ATTR_CRT_ORDER_INDEX_F)
- EQUIVALENCE(h5o_flags(18) , H5O_HDR_ATTR_STORE_PHASE_CHA_F)
- EQUIVALENCE(h5o_flags(19) , H5O_HDR_STORE_TIMES_F)
- EQUIVALENCE(h5o_flags(20) , H5O_HDR_ALL_FLAGS_F)
- EQUIVALENCE(h5o_flags(21) , H5O_SHMESG_MAX_NINDEXES_F)
- EQUIVALENCE(h5o_flags(22) , H5O_SHMESG_MAX_LIST_SIZE_F)
-
-!
-! H5P flags declaration
-!
- INTEGER, PARAMETER :: H5P_FLAGS_LEN = 18
- INTEGER(HID_T) H5P_flags(H5P_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5P_FLAGS/
-!DEC$endif
- COMMON /H5P_FLAGS/ H5P_flags
-
- INTEGER(HID_T) :: H5P_FILE_CREATE_F
- INTEGER(HID_T) :: H5P_FILE_ACCESS_F
- INTEGER(HID_T) :: H5P_DATASET_CREATE_F
- INTEGER(HID_T) :: H5P_DATASET_XFER_F
- INTEGER(HID_T) :: H5P_FILE_MOUNT_F
- INTEGER(HID_T) :: H5P_DEFAULT_F
- INTEGER(HID_T) :: H5P_ROOT_F
- INTEGER(HID_T) :: H5P_OBJECT_CREATE_F
- INTEGER(HID_T) :: H5P_DATASET_ACCESS_F
- INTEGER(HID_T) :: H5P_GROUP_CREATE_F
- INTEGER(HID_T) :: H5P_GROUP_ACCESS_F
- INTEGER(HID_T) :: H5P_DATATYPE_CREATE_F
- INTEGER(HID_T) :: H5P_DATATYPE_ACCESS_F
- INTEGER(HID_T) :: H5P_STRING_CREATE_F
- INTEGER(HID_T) :: H5P_ATTRIBUTE_CREATE_F
- INTEGER(HID_T) :: H5P_OBJECT_COPY_F
- INTEGER(HID_T) :: H5P_LINK_CREATE_F
- INTEGER(HID_T) :: H5P_LINK_ACCESS_F
-
- EQUIVALENCE(H5P_flags(1), H5P_FILE_CREATE_F)
- EQUIVALENCE(H5P_flags(2), H5P_FILE_ACCESS_F)
- EQUIVALENCE(H5P_flags(3), H5P_DATASET_CREATE_F)
- EQUIVALENCE(H5P_flags(4), H5P_DATASET_XFER_F)
- EQUIVALENCE(H5P_flags(5), H5P_FILE_MOUNT_F)
- EQUIVALENCE(H5P_flags(6), H5P_DEFAULT_F)
- EQUIVALENCE(H5P_flags(7), H5P_ROOT_F)
- EQUIVALENCE(H5P_flags(8), H5P_OBJECT_CREATE_F)
- EQUIVALENCE(H5P_flags(9), H5P_DATASET_ACCESS_F)
- EQUIVALENCE(H5P_flags(10), H5P_GROUP_CREATE_F)
- EQUIVALENCE(H5P_flags(11), H5P_GROUP_ACCESS_F)
- EQUIVALENCE(H5P_flags(12), H5P_DATATYPE_CREATE_F)
- EQUIVALENCE(H5P_flags(13), H5P_DATATYPE_ACCESS_F)
- EQUIVALENCE(H5P_flags(14), H5P_STRING_CREATE_F)
- EQUIVALENCE(H5P_flags(15), H5P_ATTRIBUTE_CREATE_F)
- EQUIVALENCE(H5P_flags(16), H5P_OBJECT_COPY_F)
- EQUIVALENCE(H5P_flags(17), H5P_LINK_CREATE_F)
- EQUIVALENCE(H5P_flags(18), H5P_LINK_ACCESS_F)
-
-!
-! H5P intgere flags declaration
-!
- INTEGER, PARAMETER :: H5P_FLAGS_INT_LEN = 2
- INTEGER H5P_flags_int(H5P_FLAGS_INT_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5P_FLAGS_INT/
-!DEC$endif
- COMMON /H5P_FLAGS_INT/ H5P_flags_int
- INTEGER :: H5P_CRT_ORDER_INDEXED_F
- INTEGER :: H5P_CRT_ORDER_TRACKED_F
- EQUIVALENCE(H5P_flags_int(1), H5P_CRT_ORDER_INDEXED_F)
- EQUIVALENCE(H5P_flags_int(2), H5P_CRT_ORDER_TRACKED_F)
-!
-! H5R flags declaration
-!
- INTEGER, PARAMETER :: H5R_FLAGS_LEN = 2
- INTEGER H5R_flags(H5R_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5R_FLAGS/
-!DEC$endif
- COMMON /H5R_FLAGS/ H5R_flags
-
- INTEGER :: H5R_OBJECT_F
- INTEGER :: H5R_DATASET_REGION_F
-
- EQUIVALENCE(H5R_flags(1), H5R_OBJECT_F)
- EQUIVALENCE(H5R_flags(2), H5R_DATASET_REGION_F)
-
-!
-! H5S flags declaration
-!
- INTEGER, PARAMETER :: H5S_FLAGS_LEN = 20
- INTEGER H5S_flags(H5S_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5S_FLAGS/
-!DEC$endif
- COMMON /H5S_FLAGS/ H5S_flags
-
- INTEGER :: H5S_SCALAR_F
- INTEGER :: H5S_SIMPLE_F
- INTEGER :: H5S_NULL_F
-
- INTEGER :: H5S_UNLIMITED_F
- INTEGER :: H5S_ALL_F
-
- INTEGER :: H5S_SELECT_NOOP_F
- INTEGER :: H5S_SELECT_SET_F
- INTEGER :: H5S_SELECT_OR_F
- INTEGER :: H5S_SELECT_AND_F
- INTEGER :: H5S_SELECT_XOR_F
- INTEGER :: H5S_SELECT_NOTB_F
- INTEGER :: H5S_SELECT_NOTA_F
- INTEGER :: H5S_SELECT_APPEND_F
- INTEGER :: H5S_SELECT_PREPEND_F
- INTEGER :: H5S_SELECT_INVALID_F
-
-
- INTEGER :: H5S_SEL_ERROR_F
- INTEGER :: H5S_SEL_NONE_F
- INTEGER :: H5S_SEL_POINTS_F
- INTEGER :: H5S_SEL_HYPERSLABS_F
- INTEGER :: H5S_SEL_ALL_F
-
- EQUIVALENCE(H5S_flags(1), H5S_SCALAR_F)
- EQUIVALENCE(H5S_flags(2), H5S_SIMPLE_F)
- EQUIVALENCE(H5S_flags(3), H5S_NULL_F)
- EQUIVALENCE(H5S_flags(4), H5S_SELECT_SET_F)
- EQUIVALENCE(H5S_flags(5), H5S_SELECT_OR_F)
- EQUIVALENCE(H5S_flags(6), H5S_UNLIMITED_F)
- EQUIVALENCE(H5S_flags(7), H5S_ALL_F)
-
- EQUIVALENCE(H5S_flags(8), H5S_SELECT_NOOP_F)
- EQUIVALENCE(H5S_flags(9), H5S_SELECT_AND_F)
- EQUIVALENCE(H5S_flags(10), H5S_SELECT_XOR_F)
- EQUIVALENCE(H5S_flags(11), H5S_SELECT_NOTB_F)
- EQUIVALENCE(H5S_flags(12), H5S_SELECT_NOTA_F)
- EQUIVALENCE(H5S_flags(13), H5S_SELECT_APPEND_F)
- EQUIVALENCE(H5S_flags(14), H5S_SELECT_PREPEND_F)
- EQUIVALENCE(H5S_flags(15), H5S_SELECT_INVALID_F)
-
-
- EQUIVALENCE(H5S_flags(16), H5S_SEL_ERROR_F)
- EQUIVALENCE(H5S_flags(17), H5S_SEL_NONE_F)
- EQUIVALENCE(H5S_flags(18), H5S_SEL_POINTS_F)
- EQUIVALENCE(H5S_flags(19), H5S_SEL_HYPERSLABS_F)
- EQUIVALENCE(H5S_flags(20), H5S_SEL_ALL_F)
-
-!
-! H5T flags declaration
-!
- INTEGER, PARAMETER :: H5T_FLAGS_LEN = 33
- INTEGER H5T_flags(H5T_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5T_FLAGS/
-!DEC$endif
- COMMON /H5T_FLAGS/ H5T_flags
-
- INTEGER :: H5T_NO_CLASS_F
- INTEGER :: H5T_INTEGER_F
- INTEGER :: H5T_FLOAT_F
- INTEGER :: H5T_TIME_F
- INTEGER :: H5T_STRING_F
- INTEGER :: H5T_BITFIELD_F
- INTEGER :: H5T_OPAQUE_F
- INTEGER :: H5T_COMPOUND_F
- INTEGER :: H5T_REFERENCE_F
- INTEGER :: H5T_ENUM_F
- INTEGER :: H5T_VLEN_F
- INTEGER :: H5T_ARRAY_F
- INTEGER :: H5T_ORDER_LE_F
- INTEGER :: H5T_ORDER_BE_F
- INTEGER :: H5T_ORDER_VAX_F
- INTEGER :: H5T_PAD_ZERO_F
- INTEGER :: H5T_PAD_ONE_F
- INTEGER :: H5T_PAD_BACKGROUND_F
- INTEGER :: H5T_PAD_ERROR_F
- INTEGER :: H5T_SGN_NONE_F
- INTEGER :: H5T_SGN_2_F
- INTEGER :: H5T_SGN_ERROR_F
- INTEGER :: H5T_NORM_IMPLIED_F
- INTEGER :: H5T_NORM_MSBSET_F
- INTEGER :: H5T_NORM_NONE_F
- INTEGER :: H5T_CSET_ASCII_F
- INTEGER :: H5T_CSET_UTF8_F
- INTEGER :: H5T_STR_NULLTERM_F
- INTEGER :: H5T_STR_NULLPAD_F
- INTEGER :: H5T_STR_SPACEPAD_F
- INTEGER :: H5T_STR_ERROR_F
- INTEGER :: H5T_DIR_ASCEND_F
- INTEGER :: H5T_DIR_DESCEND_F
-
- EQUIVALENCE(H5T_flags(1), H5T_NO_CLASS_F)
- EQUIVALENCE(H5T_flags(2), H5T_INTEGER_F)
- EQUIVALENCE(H5T_flags(3), H5T_FLOAT_F)
- EQUIVALENCE(H5T_flags(4), H5T_TIME_F)
- EQUIVALENCE(H5T_flags(5), H5T_STRING_F)
- EQUIVALENCE(H5T_flags(6), H5T_BITFIELD_F)
- EQUIVALENCE(H5T_flags(7), H5T_OPAQUE_F)
- EQUIVALENCE(H5T_flags(8), H5T_COMPOUND_F)
- EQUIVALENCE(H5T_flags(9), H5T_REFERENCE_F)
- EQUIVALENCE(H5T_flags(10), H5T_ENUM_F)
- EQUIVALENCE(H5T_flags(11), H5T_ORDER_LE_F)
- EQUIVALENCE(H5T_flags(12), H5T_ORDER_BE_F)
- EQUIVALENCE(H5T_flags(13), H5T_ORDER_VAX_F)
- EQUIVALENCE(H5T_flags(14), H5T_PAD_ZERO_F)
- EQUIVALENCE(H5T_flags(15), H5T_PAD_ONE_F)
- EQUIVALENCE(H5T_flags(16), H5T_PAD_BACKGROUND_F)
- EQUIVALENCE(H5T_flags(17), H5T_PAD_ERROR_F)
- EQUIVALENCE(H5T_flags(18), H5T_SGN_NONE_F)
- EQUIVALENCE(H5T_flags(19), H5T_SGN_2_F)
- EQUIVALENCE(H5T_flags(20), H5T_SGN_ERROR_F)
- EQUIVALENCE(H5T_flags(21), H5T_NORM_IMPLIED_F)
- EQUIVALENCE(H5T_flags(22), H5T_NORM_MSBSET_F)
- EQUIVALENCE(H5T_flags(23), H5T_NORM_NONE_F)
- EQUIVALENCE(H5T_flags(24), H5T_CSET_ASCII_F)
- EQUIVALENCE(H5T_flags(25), H5T_CSET_UTF8_F)
- EQUIVALENCE(H5T_flags(26), H5T_STR_NULLTERM_F)
- EQUIVALENCE(H5T_flags(27), H5T_STR_NULLPAD_F)
- EQUIVALENCE(H5T_flags(28), H5T_STR_SPACEPAD_F)
- EQUIVALENCE(H5T_flags(29), H5T_STR_ERROR_F)
- EQUIVALENCE(H5T_flags(30), H5T_VLEN_F)
- EQUIVALENCE(H5T_flags(31), H5T_ARRAY_F)
- EQUIVALENCE(H5T_flags(32), H5T_DIR_ASCEND_F)
- EQUIVALENCE(H5T_flags(33), H5T_DIR_DESCEND_F)
-
-!
-! H5Z flags declaration
-!
- INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 14
- INTEGER H5Z_flags(H5Z_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5Z_FLAGS/
-!DEC$endif
- COMMON /H5Z_FLAGS/ H5Z_flags
-
- INTEGER :: H5Z_FILTER_ERROR_F
- INTEGER :: H5Z_FILTER_NONE_F
- INTEGER :: H5Z_FILTER_ALL_F
- INTEGER :: H5Z_FILTER_DEFLATE_F
- INTEGER :: H5Z_FILTER_SHUFFLE_F
- INTEGER :: H5Z_FILTER_FLETCHER32_F
- INTEGER :: H5Z_FILTER_SZIP_F
- INTEGER :: H5Z_ERROR_EDC_F
- INTEGER :: H5Z_DISABLE_EDC_F
- INTEGER :: H5Z_ENABLE_EDC_F
- INTEGER :: H5Z_NO_EDC_F
- INTEGER :: H5Z_FLAG_OPTIONAL_F
- INTEGER :: H5Z_FILTER_ENCODE_ENABLED_F
- INTEGER :: H5Z_FILTER_DECODE_ENABLED_F
-
- EQUIVALENCE(H5Z_flags(1), H5Z_FILTER_ERROR_F)
- EQUIVALENCE(H5Z_flags(2), H5Z_FILTER_NONE_F)
- EQUIVALENCE(H5Z_flags(3), H5Z_FILTER_DEFLATE_F)
- EQUIVALENCE(H5Z_flags(4), H5Z_FILTER_SHUFFLE_F)
- EQUIVALENCE(H5Z_flags(5), H5Z_FILTER_FLETCHER32_F)
- EQUIVALENCE(H5Z_flags(6), H5Z_ERROR_EDC_F)
- EQUIVALENCE(H5Z_flags(7), H5Z_DISABLE_EDC_F)
- EQUIVALENCE(H5Z_flags(8), H5Z_ENABLE_EDC_F)
- EQUIVALENCE(H5Z_flags(9), H5Z_NO_EDC_F)
- EQUIVALENCE(H5Z_flags(10), H5Z_FILTER_SZIP_F)
- EQUIVALENCE(H5Z_flags(11), H5Z_FLAG_OPTIONAL_F)
- EQUIVALENCE(H5Z_flags(12), H5Z_FILTER_ENCODE_ENABLED_F)
- EQUIVALENCE(H5Z_flags(13), H5Z_FILTER_DECODE_ENABLED_F)
- EQUIVALENCE(H5Z_flags(14), H5Z_FILTER_ALL_F)
-
-
-!
-! H5 Library flags declaration
-!
- INTEGER, PARAMETER :: H5LIB_FLAGS_LEN = 2
- INTEGER :: H5LIB_flags(H5LIB_FLAGS_LEN)
-!DEC$if defined(BUILD_HDF5_DLL)
-!DEC$ ATTRIBUTES DLLEXPORT :: /H5LIB_FLAGS/
-!DEC$endif
- COMMON /H5LIB_FLAGS/ H5LIB_flags
- INTEGER :: H5_SZIP_EC_OM_F
- INTEGER :: H5_SZIP_NN_OM_F
-!
- EQUIVALENCE(H5LIB_flags(1), H5_SZIP_EC_OM_F)
- EQUIVALENCE(H5LIB_flags(2), H5_SZIP_NN_OM_F)
-
-
-! General H5 flags declarations
-!
+! AUTHOR
+! Elena Pourmal
+!
+!*****
+
+MODULE H5GLOBAL
+ USE H5FORTRAN_TYPES
+
+ ! Definitions for reference datatypes.
+ ! If you change the value of these parameters, do not forget to change corresponding
+ ! values in the H5f90.h file.
+ INTEGER, PARAMETER :: REF_REG_BUF_LEN = 3
+
+ ! Parameters used in the function 'h5kind_to_type' located in H5_ff.f90.
+ ! The flag is used to tell the function whether the kind input variable
+ ! is for a REAL or INTEGER data type.
+
+ INTEGER, PARAMETER :: H5_REAL_KIND = 1
+ INTEGER, PARAMETER :: H5_INTEGER_KIND = 0
+
+ TYPE :: hobj_ref_t_f
+ INTEGER(HADDR_T) ref
+ END TYPE hobj_ref_t_f
+
+ TYPE :: hdset_reg_ref_t_f
+ INTEGER, DIMENSION(1:REF_REG_BUF_LEN) :: ref
+ END TYPE hdset_reg_ref_t_f
+
+ INTEGER, PARAMETER :: PREDEF_TYPES_LEN = 13 ! Do not forget to change this
+ ! value when new predefined
+ ! datatypes are added
+
+ ! Do not forget to change the following line when new predefined
+ ! floating data types are added
+ INTEGER, PARAMETER :: FLOATING_TYPES_LEN = 4
+
+ ! Do not forget to change the following line when new predefined
+ ! integer data types are added
+ INTEGER, PARAMETER :: INTEGER_TYPES_LEN = 17
+
+ INTEGER(HID_T) H5T_NATIVE_INTEGER_1, &
+ H5T_NATIVE_INTEGER_2, &
+ H5T_NATIVE_INTEGER_4, &
+ H5T_NATIVE_INTEGER_8, &
+ H5T_NATIVE_REAL_4, &
+ H5T_NATIVE_REAL_8, &
+ H5T_NATIVE_REAL_16, &
+ H5T_NATIVE_INTEGER, &
+ H5T_NATIVE_REAL, &
+ H5T_NATIVE_DOUBLE, &
+ H5T_NATIVE_CHARACTER , &
+ H5T_STD_REF_OBJ, &
+ H5T_STD_REF_DSETREG, &
+ H5T_IEEE_F32BE, &
+ H5T_IEEE_F32LE, &
+ H5T_IEEE_F64BE, &
+ H5T_IEEE_F64LE, &
+ H5T_STD_I8BE, &
+ H5T_STD_I8LE, &
+ H5T_STD_I16BE, &
+ H5T_STD_I16LE, &
+ H5T_STD_I32BE, &
+ H5T_STD_I32LE, &
+ H5T_STD_I64BE, &
+ H5T_STD_I64LE, &
+ H5T_STD_U8BE, &
+ H5T_STD_U8LE, &
+ H5T_STD_U16BE, &
+ H5T_STD_U16LE, &
+ H5T_STD_U32BE, &
+ H5T_STD_U32LE, &
+ H5T_STD_U64BE, &
+ H5T_STD_U64LE, &
+ H5T_STRING
+
+
+ INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
+ EQUIVALENCE (predef_types(1), H5T_NATIVE_INTEGER)
+ EQUIVALENCE (predef_types(2), H5T_NATIVE_REAL)
+ EQUIVALENCE (predef_types(3), H5T_NATIVE_DOUBLE)
+ EQUIVALENCE (predef_types(4), H5T_NATIVE_CHARACTER)
+ EQUIVALENCE (predef_types(5), H5T_STD_REF_OBJ)
+ EQUIVALENCE (predef_types(6), H5T_STD_REF_DSETREG)
+ EQUIVALENCE (predef_types(7), H5T_NATIVE_INTEGER_1)
+ EQUIVALENCE (predef_types(8), H5T_NATIVE_INTEGER_2)
+ EQUIVALENCE (predef_types(9), H5T_NATIVE_INTEGER_4)
+ EQUIVALENCE (predef_types(10), H5T_NATIVE_INTEGER_8)
+ EQUIVALENCE (predef_types(11), H5T_NATIVE_REAL_4)
+ EQUIVALENCE (predef_types(12), H5T_NATIVE_REAL_8)
+ EQUIVALENCE (predef_types(13), H5T_NATIVE_REAL_16)
+
+
+ INTEGER(HID_T), DIMENSION(FLOATING_TYPES_LEN) :: floating_types
+ EQUIVALENCE (floating_types(1), H5T_IEEE_F32BE )
+ EQUIVALENCE (floating_types(2), H5T_IEEE_F32LE)
+ EQUIVALENCE (floating_types(3), H5T_IEEE_F64BE)
+ EQUIVALENCE (floating_types(4), H5T_IEEE_F64LE)
+
+ INTEGER(HID_T), DIMENSION(INTEGER_TYPES_LEN) :: integer_types
+ EQUIVALENCE (integer_types(1), H5T_STD_I8BE )
+ EQUIVALENCE (integer_types(2), H5T_STD_I8LE)
+ EQUIVALENCE (integer_types(3), H5T_STD_I16BE)
+ EQUIVALENCE (integer_types(4), H5T_STD_I16LE)
+ EQUIVALENCE (integer_types(5), H5T_STD_I32BE)
+ EQUIVALENCE (integer_types(6), H5T_STD_I32LE)
+ EQUIVALENCE (integer_types(7), H5T_STD_I64BE)
+ EQUIVALENCE (integer_types(8), H5T_STD_I64LE)
+ EQUIVALENCE (integer_types(9), H5T_STD_U8BE)
+ EQUIVALENCE (integer_types(10), H5T_STD_U8LE)
+ EQUIVALENCE (integer_types(11), H5T_STD_U16BE)
+ EQUIVALENCE (integer_types(12), H5T_STD_U16LE)
+ EQUIVALENCE (integer_types(13), H5T_STD_U32BE)
+ EQUIVALENCE (integer_types(14), H5T_STD_U32LE)
+ EQUIVALENCE (integer_types(15), H5T_STD_U64BE)
+ EQUIVALENCE (integer_types(16), H5T_STD_U64LE)
+ EQUIVALENCE (integer_types(17), H5T_STRING)
+
+
+ ! COMMON /PREDEFINED_TYPES/ H5T_NATIVE_INTEGER, &
+ ! H5T_NATIVE_REAL, &
+ ! H5T_NATIVE_DOUBLE, &
+ ! H5T_NATIVE_CHARACTER, &
+ ! H5T_STD_REF_OBJ, &
+ ! H5T_STD_REF_DSETREG
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /PREDEFINED_TYPES/
+ !DEC$endif
+ COMMON /PREDEFINED_TYPES/ predef_types
+
+ ! COMMON /FLOATING_TYPES/ H5T_IEEE_F32BE, &
+ ! H5T_IEEE_F32LE, &
+ ! H5T_IEEE_F64BE, &
+ ! H5T_IEEE_F64LE
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /FLOATING_TYPES/
+ !DEC$endif
+ COMMON /FLOATING_TYPES/ floating_types
+ !
+ ! COMMON /INTEGER_TYPES/ H5T_STD_I8BE, &
+ ! H5T_STD_I8LE, &
+ ! H5T_STD_I16BE, &
+ ! H5T_STD_I16LE, &
+ ! H5T_STD_I32BE, &
+ ! H5T_STD_I32LE, &
+ ! H5T_STD_I64BE, &
+ ! H5T_STD_I64LE, &
+ ! H5T_STD_U8BE, &
+ ! H5T_STD_U8LE, &
+ ! H5T_STD_U16BE, &
+ ! H5T_STD_U16LE, &
+ ! H5T_STD_U32BE, &
+ ! H5T_STD_U32LE, &
+ ! H5T_STD_U64BE, &
+ ! H5T_STD_U64LE
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /INTEGER_TYPES/
+ !DEC$endif
+ COMMON /INTEGER_TYPES/ integer_types
+ !
+ ! Fortran flags
+ !
+ !
+ ! H5F flags (DO NOT FORGET TO UPDATE WHEN NEW FLAGS ARE ADDEDD !)
+ !
+ ! H5F flags declaration
+ !
+ INTEGER, PARAMETER :: H5F_FLAGS_LEN = 19
+ INTEGER H5F_flags(H5F_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5F_FLAGS/
+ !DEC$endif
+ COMMON /H5F_FLAGS/ H5F_flags
+
+ INTEGER :: H5F_ACC_RDWR_F
+ INTEGER :: H5F_ACC_RDONLY_F
+ INTEGER :: H5F_ACC_TRUNC_F
+ INTEGER :: H5F_ACC_EXCL_F
+ INTEGER :: H5F_ACC_DEBUG_F
+ INTEGER :: H5F_SCOPE_LOCAL_F
+ INTEGER :: H5F_SCOPE_GLOBAL_F
+ INTEGER :: H5F_CLOSE_DEFAULT_F
+ INTEGER :: H5F_CLOSE_WEAK_F
+ INTEGER :: H5F_CLOSE_SEMI_F
+ INTEGER :: H5F_CLOSE_STRONG_F
+ INTEGER :: H5F_OBJ_FILE_F
+ INTEGER :: H5F_OBJ_DATASET_F
+ INTEGER :: H5F_OBJ_GROUP_F
+ INTEGER :: H5F_OBJ_DATATYPE_F
+ INTEGER :: H5F_OBJ_ALL_F
+ INTEGER :: H5F_LIBVER_EARLIEST_F
+ INTEGER :: H5F_LIBVER_LATEST_F
+
+ EQUIVALENCE(H5F_flags(1), H5F_ACC_RDWR_F)
+ EQUIVALENCE(H5F_flags(2), H5F_ACC_RDONLY_F)
+ EQUIVALENCE(H5F_flags(3), H5F_ACC_TRUNC_F)
+ EQUIVALENCE(H5F_flags(4), H5F_ACC_EXCL_F)
+ EQUIVALENCE(H5F_flags(5), H5F_ACC_DEBUG_F)
+ EQUIVALENCE(H5F_flags(6), H5F_SCOPE_LOCAL_F)
+ EQUIVALENCE(H5F_flags(7), H5F_SCOPE_GLOBAL_F)
+ EQUIVALENCE(H5F_flags(8), H5F_CLOSE_DEFAULT_F)
+ EQUIVALENCE(H5F_flags(9), H5F_CLOSE_WEAK_F)
+ EQUIVALENCE(H5F_flags(10), H5F_CLOSE_SEMI_F)
+ EQUIVALENCE(H5F_flags(11), H5F_CLOSE_STRONG_F)
+ EQUIVALENCE(H5F_flags(12), H5F_OBJ_FILE_F)
+ EQUIVALENCE(H5F_flags(13), H5F_OBJ_DATASET_F)
+ EQUIVALENCE(H5F_flags(14), H5F_OBJ_GROUP_F)
+ EQUIVALENCE(H5F_flags(15), H5F_OBJ_DATATYPE_F)
+ EQUIVALENCE(H5F_flags(16), H5F_OBJ_ALL_F)
+ EQUIVALENCE(H5F_flags(17), H5F_LIBVER_EARLIEST_F)
+ EQUIVALENCE(H5F_flags(18), H5F_LIBVER_LATEST_F)
+ !
+ ! H5generic flags declaration
+ !
+ INTEGER, PARAMETER :: H5generic_FLAGS_LEN = 9
+ INTEGER H5generic_flags(H5generic_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5generic_FLAGS/
+ !DEC$endif
+ COMMON /H5generic_FLAGS/ H5generic_flags
+
+ INTEGER :: H5_INDEX_UNKNOWN_F
+ INTEGER :: H5_INDEX_NAME_F
+ INTEGER :: H5_INDEX_CRT_ORDER_F
+ INTEGER :: H5_INDEX_N_F
+ INTEGER :: H5_ITER_UNKNOWN_F
+ INTEGER :: H5_ITER_INC_F
+ INTEGER :: H5_ITER_DEC_F
+ INTEGER :: H5_ITER_NATIVE_F
+ INTEGER :: H5_ITER_N_F
+
+ EQUIVALENCE(H5generic_flags(1), H5_INDEX_UNKNOWN_F)
+ EQUIVALENCE(H5generic_flags(2), H5_INDEX_NAME_F)
+ EQUIVALENCE(H5generic_flags(3), H5_INDEX_CRT_ORDER_F)
+ EQUIVALENCE(H5generic_flags(4), H5_INDEX_N_F)
+ EQUIVALENCE(H5generic_flags(5), H5_ITER_UNKNOWN_F)
+ EQUIVALENCE(H5generic_flags(6), H5_ITER_INC_F)
+ EQUIVALENCE(H5generic_flags(7), H5_ITER_DEC_F)
+ EQUIVALENCE(H5generic_flags(8), H5_ITER_NATIVE_F)
+ EQUIVALENCE(H5generic_flags(9), H5_ITER_N_F)
+
+
+ !
+ ! H5G flags declaration
+ !
+ INTEGER, PARAMETER :: H5G_FLAGS_LEN = 12
+ INTEGER H5G_flags(H5G_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5G_FLAGS/
+ !DEC$endif
+ COMMON /H5G_FLAGS/ H5G_flags
+
+ INTEGER :: H5G_UNKNOWN_F
+ INTEGER :: H5G_GROUP_F
+ INTEGER :: H5G_DATASET_F
+ INTEGER :: H5G_TYPE_F
+ ! XXX: Fix problems with H5G_LINK_F! - QAK
+ INTEGER :: H5G_LINK_F
+ INTEGER :: H5G_LINK_ERROR_F
+ INTEGER :: H5G_LINK_HARD_F
+ INTEGER :: H5G_LINK_SOFT_F
+ INTEGER :: H5G_STORAGE_TYPE_UNKNOWN_F
+ INTEGER :: H5G_STORAGE_TYPE_SYMBOL_TABLE_F
+ INTEGER :: H5G_STORAGE_TYPE_COMPACT_F
+ INTEGER :: H5G_STORAGE_TYPE_DENSE_F
+
+ EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F)
+ EQUIVALENCE(H5G_flags(2), H5G_GROUP_F)
+ EQUIVALENCE(H5G_flags(3), H5G_DATASET_F)
+ EQUIVALENCE(H5G_flags(4), H5G_TYPE_F)
+ ! XXX: Fix problems with H5G_LINK_F! - QAK ! these are really H5L values -MSB-
+ EQUIVALENCE(H5G_flags(5), H5G_LINK_F)
+ EQUIVALENCE(H5G_flags(6), H5G_LINK_ERROR_F)
+ EQUIVALENCE(H5G_flags(7), H5G_LINK_HARD_F)
+ EQUIVALENCE(H5G_flags(8), H5G_LINK_SOFT_F)
+ ! XXX
+
+ EQUIVALENCE(H5G_flags(9), H5G_STORAGE_TYPE_UNKNOWN_F )
+ EQUIVALENCE(H5G_flags(10), H5G_STORAGE_TYPE_SYMBOL_TABLE_F)
+ EQUIVALENCE(H5G_flags(11), H5G_STORAGE_TYPE_COMPACT_F)
+ EQUIVALENCE(H5G_flags(12), H5G_STORAGE_TYPE_DENSE_F)
+ !
+ ! H5D flags declaration
+ !
+
+ INTEGER, PARAMETER :: H5D_FLAGS_LEN = 19
+ INTEGER H5D_flags(H5D_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5D_FLAGS/
+ !DEC$endif
+ COMMON /H5D_FLAGS/ H5D_flags
+
+ INTEGER :: H5D_COMPACT_F
+ INTEGER :: H5D_CONTIGUOUS_F
+ INTEGER :: H5D_CHUNKED_F
+
+ INTEGER :: H5D_ALLOC_TIME_ERROR_F
+ INTEGER :: H5D_ALLOC_TIME_DEFAULT_F
+ INTEGER :: H5D_ALLOC_TIME_EARLY_F
+ INTEGER :: H5D_ALLOC_TIME_LATE_F
+ INTEGER :: H5D_ALLOC_TIME_INCR_F
+
+ INTEGER :: H5D_SPACE_STS_ERROR_F
+ INTEGER :: H5D_SPACE_STS_NOT_ALLOCATED_F
+ INTEGER :: H5D_SPACE_STS_PART_ALLOCATED_F
+ INTEGER :: H5D_SPACE_STS_ALLOCATED_F
+
+ INTEGER :: H5D_FILL_TIME_ERROR_F
+ INTEGER :: H5D_FILL_TIME_ALLOC_F
+ INTEGER :: H5D_FILL_TIME_NEVER_F
+
+ INTEGER :: H5D_FILL_VALUE_ERROR_F
+ INTEGER :: H5D_FILL_VALUE_UNDEFINED_F
+ INTEGER :: H5D_FILL_VALUE_DEFAULT_F
+ INTEGER :: H5D_FILL_VALUE_USER_DEFINED_F
+
+ EQUIVALENCE(H5D_flags(1), H5D_COMPACT_F)
+ EQUIVALENCE(H5D_flags(2), H5D_CONTIGUOUS_F)
+ EQUIVALENCE(H5D_flags(3), H5D_CHUNKED_F)
+
+ EQUIVALENCE(H5D_flags(4), H5D_ALLOC_TIME_ERROR_F)
+ EQUIVALENCE(H5D_flags(5), H5D_ALLOC_TIME_DEFAULT_F)
+ EQUIVALENCE(H5D_flags(6), H5D_ALLOC_TIME_EARLY_F)
+ EQUIVALENCE(H5D_flags(7), H5D_ALLOC_TIME_LATE_F)
+ EQUIVALENCE(H5D_flags(8), H5D_ALLOC_TIME_INCR_F)
+
+ EQUIVALENCE(H5D_flags(9), H5D_SPACE_STS_ERROR_F)
+ EQUIVALENCE(H5D_flags(10), H5D_SPACE_STS_NOT_ALLOCATED_F)
+ EQUIVALENCE(H5D_flags(11), H5D_SPACE_STS_PART_ALLOCATED_F)
+ EQUIVALENCE(H5D_flags(12), H5D_SPACE_STS_ALLOCATED_F)
+
+ EQUIVALENCE(H5D_flags(13), H5D_FILL_TIME_ERROR_F)
+ EQUIVALENCE(H5D_flags(14), H5D_FILL_TIME_ALLOC_F)
+ EQUIVALENCE(H5D_flags(15), H5D_FILL_TIME_NEVER_F)
+
+ EQUIVALENCE(H5D_flags(16), H5D_FILL_VALUE_ERROR_F)
+ EQUIVALENCE(H5D_flags(17), H5D_FILL_VALUE_UNDEFINED_F)
+ EQUIVALENCE(H5D_flags(18), H5D_FILL_VALUE_DEFAULT_F)
+ EQUIVALENCE(H5D_flags(19), H5D_FILL_VALUE_USER_DEFINED_F)
+
+ !
+ ! H5FD flags declaration
+ !
+ INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 11
+ INTEGER H5FD_flags(H5FD_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5FD_FLAGS/
+ !DEC$endif
+ COMMON /H5FD_FLAGS/ H5FD_flags
+
+ INTEGER :: H5FD_MPIO_INDEPENDENT_F
+ INTEGER :: H5FD_MPIO_COLLECTIVE_F
+ INTEGER :: H5FD_MEM_NOLIST_F
+ INTEGER :: H5FD_MEM_DEFAULT_F
+ INTEGER :: H5FD_MEM_SUPER_F
+ INTEGER :: H5FD_MEM_BTREE_F
+ INTEGER :: H5FD_MEM_DRAW_F
+ INTEGER :: H5FD_MEM_GHEAP_F
+ INTEGER :: H5FD_MEM_LHEAP_F
+ INTEGER :: H5FD_MEM_OHDR_F
+ INTEGER :: H5FD_MEM_NTYPES_F
+
+ EQUIVALENCE(H5FD_flags(1), H5FD_MPIO_INDEPENDENT_F)
+ EQUIVALENCE(H5FD_flags(2), H5FD_MPIO_COLLECTIVE_F)
+ EQUIVALENCE(H5FD_flags(3), H5FD_MEM_NOLIST_F)
+ EQUIVALENCE(H5FD_flags(4), H5FD_MEM_DEFAULT_F)
+ EQUIVALENCE(H5FD_flags(5), H5FD_MEM_SUPER_F)
+ EQUIVALENCE(H5FD_flags(6), H5FD_MEM_BTREE_F)
+ EQUIVALENCE(H5FD_flags(7), H5FD_MEM_DRAW_F)
+ EQUIVALENCE(H5FD_flags(8), H5FD_MEM_GHEAP_F)
+ EQUIVALENCE(H5FD_flags(9), H5FD_MEM_LHEAP_F)
+ EQUIVALENCE(H5FD_flags(10), H5FD_MEM_OHDR_F)
+ EQUIVALENCE(H5FD_flags(11), H5FD_MEM_NTYPES_F)
+ !
+ ! H5FD file drivers flags declaration
+ !
+ INTEGER, PARAMETER :: H5FD_HID_FLAGS_LEN = 7
+ INTEGER(HID_T) H5FD_hid_flags(H5FD_HID_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5FD_HID_FLAGS/
+ !DEC$endif
+ COMMON /H5FD_HID_FLAGS/ H5FD_hid_flags
+
+ INTEGER(HID_T) :: H5FD_CORE_F
+ INTEGER(HID_T) :: H5FD_FAMILY_F
+ INTEGER(HID_T) :: H5FD_LOG_F
+ INTEGER(HID_T) :: H5FD_MPIO_F
+ INTEGER(HID_T) :: H5FD_MULTI_F
+ INTEGER(HID_T) :: H5FD_SEC2_F
+ INTEGER(HID_T) :: H5FD_STDIO_F
+
+ EQUIVALENCE(H5FD_hid_flags(1), H5FD_CORE_F)
+ EQUIVALENCE(H5FD_hid_flags(2), H5FD_FAMILY_F)
+ EQUIVALENCE(H5FD_hid_flags(3), H5FD_LOG_F)
+ EQUIVALENCE(H5FD_hid_flags(4), H5FD_MPIO_F)
+ EQUIVALENCE(H5FD_hid_flags(5), H5FD_MULTI_F)
+ EQUIVALENCE(H5FD_hid_flags(6), H5FD_SEC2_F)
+ EQUIVALENCE(H5FD_hid_flags(7), H5FD_STDIO_F)
+
+ !
+ ! H5I flags declaration
+ !
+ INTEGER, PARAMETER :: H5I_FLAGS_LEN = 7
+ INTEGER H5I_flags(H5I_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5I_FLAGS/
+ !DEC$endif
+ COMMON /H5I_FLAGS/ H5I_flags
+
+ INTEGER :: H5I_FILE_F
+ INTEGER :: H5I_GROUP_F
+ INTEGER :: H5I_DATATYPE_F
+ INTEGER :: H5I_DATASPACE_F
+ INTEGER :: H5I_DATASET_F
+ INTEGER :: H5I_ATTR_F
+ INTEGER :: H5I_BADID_F
+
+ EQUIVALENCE(H5I_flags(1), H5I_FILE_F)
+ EQUIVALENCE(H5I_flags(2), H5I_GROUP_F)
+ EQUIVALENCE(H5I_flags(3), H5I_DATATYPE_F)
+ EQUIVALENCE(H5I_flags(4), H5I_DATASPACE_F)
+ EQUIVALENCE(H5I_flags(5), H5I_DATASET_F)
+ EQUIVALENCE(H5I_flags(6), H5I_ATTR_F)
+ EQUIVALENCE(H5I_flags(7), H5I_BADID_F)
+ !
+ ! H5L flags declaration
+ !
+ INTEGER, PARAMETER :: H5L_FLAGS_LEN = 6
+ INTEGER :: H5L_flags(H5L_FLAGS_LEN)
+
+ INTEGER :: H5L_LINK_F
+ INTEGER :: H5L_LINK_ERROR_F
+ INTEGER :: H5L_LINK_HARD_F
+ INTEGER :: H5L_LINK_SOFT_F
+ INTEGER :: H5L_SAME_LOC_F
+ INTEGER :: H5L_LINK_CLASS_T_VERS_F
+
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5L_FLAGS/
+ !DEC$endif
+ COMMON /H5L_FLAGS/ H5L_flags
+
+ EQUIVALENCE(H5L_flags(1), H5L_LINK_F)
+ EQUIVALENCE(H5L_flags(2), H5L_LINK_ERROR_F)
+ EQUIVALENCE(H5L_flags(3), H5L_LINK_HARD_F)
+ EQUIVALENCE(H5L_flags(4), H5L_LINK_SOFT_F)
+ EQUIVALENCE(H5L_flags(5), H5L_SAME_LOC_F)
+ EQUIVALENCE(H5L_flags(6), H5L_LINK_CLASS_T_VERS_F)
+ !
+ ! H5O flags declaration
+ !
+ INTEGER, PARAMETER :: H5O_FLAGS_LEN = 22
+ INTEGER :: H5o_flags(H5O_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5O_FLAGS/
+ !DEC$endif
+ COMMON /H5O_FLAGS/ H5O_flags
+
+ INTEGER :: H5O_COPY_SHALLOW_HIERARCHY_F ! * THESE VARIABLES DO
+ INTEGER :: H5O_COPY_EXPAND_SOFT_LINK_F ! NOT MATCH THE C VARIABLE
+ INTEGER :: H5O_COPY_EXPAND_EXT_LINK_F ! IN ORDER
+ INTEGER :: H5O_COPY_EXPAND_REFERENCE_F ! TO STAY UNDER THE
+ INTEGER :: H5O_COPY_WITHOUT_ATTR_FLAG_F
+ INTEGER :: H5O_COPY_PRESERVE_NULL_FLAG_F
+ INTEGER :: H5O_COPY_ALL_F
+ INTEGER :: H5O_SHMESG_NONE_FLAG_F
+ INTEGER :: H5O_SHMESG_SDSPACE_FLAG_F
+ INTEGER :: H5O_SHMESG_DTYPE_FLAG_F
+ INTEGER :: H5O_SHMESG_FILL_FLAG_F
+ INTEGER :: H5O_SHMESG_PLINE_FLAG_F
+ INTEGER :: H5O_SHMESG_ATTR_FLAG_F
+ INTEGER :: H5O_SHMESG_ALL_FLAG_F
+ INTEGER :: H5O_HDR_CHUNK0_SIZE_F
+ INTEGER :: H5O_HDR_ATTR_CRT_ORDER_TRACK_F ! 32 CHARACTER
+ INTEGER :: H5O_HDR_ATTR_CRT_ORDER_INDEX_F ! VARIABLE
+ INTEGER :: H5O_HDR_ATTR_STORE_PHASE_CHA_F ! LENGTH *
+ INTEGER :: H5O_HDR_STORE_TIMES_F
+ INTEGER :: H5O_HDR_ALL_FLAGS_F
+ INTEGER :: H5O_SHMESG_MAX_NINDEXES_F
+ INTEGER :: H5O_SHMESG_MAX_LIST_SIZE_F
+
+ EQUIVALENCE(h5o_flags(1) , H5O_COPY_SHALLOW_HIERARCHY_F)
+ EQUIVALENCE(h5o_flags(2) , H5O_COPY_EXPAND_SOFT_LINK_F)
+ EQUIVALENCE(h5o_flags(3) , H5O_COPY_EXPAND_EXT_LINK_F)
+ EQUIVALENCE(h5o_flags(4) , H5O_COPY_EXPAND_REFERENCE_F)
+ EQUIVALENCE(h5o_flags(5) , H5O_COPY_WITHOUT_ATTR_FLAG_F)
+ EQUIVALENCE(h5o_flags(6) , H5O_COPY_PRESERVE_NULL_FLAG_F)
+ EQUIVALENCE(h5o_flags(7) , H5O_COPY_ALL_F)
+ EQUIVALENCE(h5o_flags(8) , H5O_SHMESG_NONE_FLAG_F)
+ EQUIVALENCE(h5o_flags(9) , H5O_SHMESG_SDSPACE_FLAG_F)
+ EQUIVALENCE(h5o_flags(10) , H5O_SHMESG_DTYPE_FLAG_F)
+ EQUIVALENCE(h5o_flags(11) , H5O_SHMESG_FILL_FLAG_F)
+ EQUIVALENCE(h5o_flags(12) , H5O_SHMESG_PLINE_FLAG_F)
+ EQUIVALENCE(h5o_flags(13) , H5O_SHMESG_ATTR_FLAG_F)
+ EQUIVALENCE(h5o_flags(14) , H5O_SHMESG_ALL_FLAG_F)
+ EQUIVALENCE(h5o_flags(15) , H5O_HDR_CHUNK0_SIZE_F)
+ EQUIVALENCE(h5o_flags(16) , H5O_HDR_ATTR_CRT_ORDER_TRACK_F)
+ EQUIVALENCE(h5o_flags(17) , H5O_HDR_ATTR_CRT_ORDER_INDEX_F)
+ EQUIVALENCE(h5o_flags(18) , H5O_HDR_ATTR_STORE_PHASE_CHA_F)
+ EQUIVALENCE(h5o_flags(19) , H5O_HDR_STORE_TIMES_F)
+ EQUIVALENCE(h5o_flags(20) , H5O_HDR_ALL_FLAGS_F)
+ EQUIVALENCE(h5o_flags(21) , H5O_SHMESG_MAX_NINDEXES_F)
+ EQUIVALENCE(h5o_flags(22) , H5O_SHMESG_MAX_LIST_SIZE_F)
+
+ !
+ ! H5P flags declaration
+ !
+ INTEGER, PARAMETER :: H5P_FLAGS_LEN = 18
+ INTEGER(HID_T) H5P_flags(H5P_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5P_FLAGS/
+ !DEC$endif
+ COMMON /H5P_FLAGS/ H5P_flags
+
+ INTEGER(HID_T) :: H5P_FILE_CREATE_F
+ INTEGER(HID_T) :: H5P_FILE_ACCESS_F
+ INTEGER(HID_T) :: H5P_DATASET_CREATE_F
+ INTEGER(HID_T) :: H5P_DATASET_XFER_F
+ INTEGER(HID_T) :: H5P_FILE_MOUNT_F
+ INTEGER(HID_T) :: H5P_DEFAULT_F
+ INTEGER(HID_T) :: H5P_ROOT_F
+ INTEGER(HID_T) :: H5P_OBJECT_CREATE_F
+ INTEGER(HID_T) :: H5P_DATASET_ACCESS_F
+ INTEGER(HID_T) :: H5P_GROUP_CREATE_F
+ INTEGER(HID_T) :: H5P_GROUP_ACCESS_F
+ INTEGER(HID_T) :: H5P_DATATYPE_CREATE_F
+ INTEGER(HID_T) :: H5P_DATATYPE_ACCESS_F
+ INTEGER(HID_T) :: H5P_STRING_CREATE_F
+ INTEGER(HID_T) :: H5P_ATTRIBUTE_CREATE_F
+ INTEGER(HID_T) :: H5P_OBJECT_COPY_F
+ INTEGER(HID_T) :: H5P_LINK_CREATE_F
+ INTEGER(HID_T) :: H5P_LINK_ACCESS_F
+
+ EQUIVALENCE(H5P_flags(1), H5P_FILE_CREATE_F)
+ EQUIVALENCE(H5P_flags(2), H5P_FILE_ACCESS_F)
+ EQUIVALENCE(H5P_flags(3), H5P_DATASET_CREATE_F)
+ EQUIVALENCE(H5P_flags(4), H5P_DATASET_XFER_F)
+ EQUIVALENCE(H5P_flags(5), H5P_FILE_MOUNT_F)
+ EQUIVALENCE(H5P_flags(6), H5P_DEFAULT_F)
+ EQUIVALENCE(H5P_flags(7), H5P_ROOT_F)
+ EQUIVALENCE(H5P_flags(8), H5P_OBJECT_CREATE_F)
+ EQUIVALENCE(H5P_flags(9), H5P_DATASET_ACCESS_F)
+ EQUIVALENCE(H5P_flags(10), H5P_GROUP_CREATE_F)
+ EQUIVALENCE(H5P_flags(11), H5P_GROUP_ACCESS_F)
+ EQUIVALENCE(H5P_flags(12), H5P_DATATYPE_CREATE_F)
+ EQUIVALENCE(H5P_flags(13), H5P_DATATYPE_ACCESS_F)
+ EQUIVALENCE(H5P_flags(14), H5P_STRING_CREATE_F)
+ EQUIVALENCE(H5P_flags(15), H5P_ATTRIBUTE_CREATE_F)
+ EQUIVALENCE(H5P_flags(16), H5P_OBJECT_COPY_F)
+ EQUIVALENCE(H5P_flags(17), H5P_LINK_CREATE_F)
+ EQUIVALENCE(H5P_flags(18), H5P_LINK_ACCESS_F)
+
+ !
+ ! H5P intgere flags declaration
+ !
+ INTEGER, PARAMETER :: H5P_FLAGS_INT_LEN = 2
+ INTEGER H5P_flags_int(H5P_FLAGS_INT_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5P_FLAGS_INT/
+ !DEC$endif
+ COMMON /H5P_FLAGS_INT/ H5P_flags_int
+ INTEGER :: H5P_CRT_ORDER_INDEXED_F
+ INTEGER :: H5P_CRT_ORDER_TRACKED_F
+ EQUIVALENCE(H5P_flags_int(1), H5P_CRT_ORDER_INDEXED_F)
+ EQUIVALENCE(H5P_flags_int(2), H5P_CRT_ORDER_TRACKED_F)
+ !
+ ! H5R flags declaration
+ !
+ INTEGER, PARAMETER :: H5R_FLAGS_LEN = 2
+ INTEGER H5R_flags(H5R_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5R_FLAGS/
+ !DEC$endif
+ COMMON /H5R_FLAGS/ H5R_flags
+
+ INTEGER :: H5R_OBJECT_F
+ INTEGER :: H5R_DATASET_REGION_F
+
+ EQUIVALENCE(H5R_flags(1), H5R_OBJECT_F)
+ EQUIVALENCE(H5R_flags(2), H5R_DATASET_REGION_F)
+
+ !
+ ! H5S flags declaration
+ !
+ INTEGER, PARAMETER :: H5S_FLAGS_LEN = 20
+ INTEGER H5S_flags(H5S_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5S_FLAGS/
+ !DEC$endif
+ COMMON /H5S_FLAGS/ H5S_flags
+
+ INTEGER :: H5S_SCALAR_F
+ INTEGER :: H5S_SIMPLE_F
+ INTEGER :: H5S_NULL_F
+
+ INTEGER :: H5S_UNLIMITED_F
+ INTEGER :: H5S_ALL_F
+
+ INTEGER :: H5S_SELECT_NOOP_F
+ INTEGER :: H5S_SELECT_SET_F
+ INTEGER :: H5S_SELECT_OR_F
+ INTEGER :: H5S_SELECT_AND_F
+ INTEGER :: H5S_SELECT_XOR_F
+ INTEGER :: H5S_SELECT_NOTB_F
+ INTEGER :: H5S_SELECT_NOTA_F
+ INTEGER :: H5S_SELECT_APPEND_F
+ INTEGER :: H5S_SELECT_PREPEND_F
+ INTEGER :: H5S_SELECT_INVALID_F
+
+
+ INTEGER :: H5S_SEL_ERROR_F
+ INTEGER :: H5S_SEL_NONE_F
+ INTEGER :: H5S_SEL_POINTS_F
+ INTEGER :: H5S_SEL_HYPERSLABS_F
+ INTEGER :: H5S_SEL_ALL_F
+
+ EQUIVALENCE(H5S_flags(1), H5S_SCALAR_F)
+ EQUIVALENCE(H5S_flags(2), H5S_SIMPLE_F)
+ EQUIVALENCE(H5S_flags(3), H5S_NULL_F)
+ EQUIVALENCE(H5S_flags(4), H5S_SELECT_SET_F)
+ EQUIVALENCE(H5S_flags(5), H5S_SELECT_OR_F)
+ EQUIVALENCE(H5S_flags(6), H5S_UNLIMITED_F)
+ EQUIVALENCE(H5S_flags(7), H5S_ALL_F)
+
+ EQUIVALENCE(H5S_flags(8), H5S_SELECT_NOOP_F)
+ EQUIVALENCE(H5S_flags(9), H5S_SELECT_AND_F)
+ EQUIVALENCE(H5S_flags(10), H5S_SELECT_XOR_F)
+ EQUIVALENCE(H5S_flags(11), H5S_SELECT_NOTB_F)
+ EQUIVALENCE(H5S_flags(12), H5S_SELECT_NOTA_F)
+ EQUIVALENCE(H5S_flags(13), H5S_SELECT_APPEND_F)
+ EQUIVALENCE(H5S_flags(14), H5S_SELECT_PREPEND_F)
+ EQUIVALENCE(H5S_flags(15), H5S_SELECT_INVALID_F)
+
+
+ EQUIVALENCE(H5S_flags(16), H5S_SEL_ERROR_F)
+ EQUIVALENCE(H5S_flags(17), H5S_SEL_NONE_F)
+ EQUIVALENCE(H5S_flags(18), H5S_SEL_POINTS_F)
+ EQUIVALENCE(H5S_flags(19), H5S_SEL_HYPERSLABS_F)
+ EQUIVALENCE(H5S_flags(20), H5S_SEL_ALL_F)
+
+
+ !
+ ! H5T flags declaration
+ !
+ INTEGER, PARAMETER :: H5T_FLAGS_LEN = 33
+ INTEGER H5T_flags(H5T_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5T_FLAGS/
+ !DEC$endif
+ COMMON /H5T_FLAGS/ H5T_flags
+
+ INTEGER :: H5T_NO_CLASS_F
+ INTEGER :: H5T_INTEGER_F
+ INTEGER :: H5T_FLOAT_F
+ INTEGER :: H5T_TIME_F
+ INTEGER :: H5T_STRING_F
+ INTEGER :: H5T_BITFIELD_F
+ INTEGER :: H5T_OPAQUE_F
+ INTEGER :: H5T_COMPOUND_F
+ INTEGER :: H5T_REFERENCE_F
+ INTEGER :: H5T_ENUM_F
+ INTEGER :: H5T_VLEN_F
+ INTEGER :: H5T_ARRAY_F
+ INTEGER :: H5T_ORDER_LE_F
+ INTEGER :: H5T_ORDER_BE_F
+ INTEGER :: H5T_ORDER_VAX_F
+ INTEGER :: H5T_PAD_ZERO_F
+ INTEGER :: H5T_PAD_ONE_F
+ INTEGER :: H5T_PAD_BACKGROUND_F
+ INTEGER :: H5T_PAD_ERROR_F
+ INTEGER :: H5T_SGN_NONE_F
+ INTEGER :: H5T_SGN_2_F
+ INTEGER :: H5T_SGN_ERROR_F
+ INTEGER :: H5T_NORM_IMPLIED_F
+ INTEGER :: H5T_NORM_MSBSET_F
+ INTEGER :: H5T_NORM_NONE_F
+ INTEGER :: H5T_CSET_ASCII_F
+ INTEGER :: H5T_CSET_UTF8_F
+ INTEGER :: H5T_STR_NULLTERM_F
+ INTEGER :: H5T_STR_NULLPAD_F
+ INTEGER :: H5T_STR_SPACEPAD_F
+ INTEGER :: H5T_STR_ERROR_F
+ INTEGER :: H5T_DIR_ASCEND_F
+ INTEGER :: H5T_DIR_DESCEND_F
+
+ EQUIVALENCE(H5T_flags(1), H5T_NO_CLASS_F)
+ EQUIVALENCE(H5T_flags(2), H5T_INTEGER_F)
+ EQUIVALENCE(H5T_flags(3), H5T_FLOAT_F)
+ EQUIVALENCE(H5T_flags(4), H5T_TIME_F)
+ EQUIVALENCE(H5T_flags(5), H5T_STRING_F)
+ EQUIVALENCE(H5T_flags(6), H5T_BITFIELD_F)
+ EQUIVALENCE(H5T_flags(7), H5T_OPAQUE_F)
+ EQUIVALENCE(H5T_flags(8), H5T_COMPOUND_F)
+ EQUIVALENCE(H5T_flags(9), H5T_REFERENCE_F)
+ EQUIVALENCE(H5T_flags(10), H5T_ENUM_F)
+ EQUIVALENCE(H5T_flags(11), H5T_ORDER_LE_F)
+ EQUIVALENCE(H5T_flags(12), H5T_ORDER_BE_F)
+ EQUIVALENCE(H5T_flags(13), H5T_ORDER_VAX_F)
+ EQUIVALENCE(H5T_flags(14), H5T_PAD_ZERO_F)
+ EQUIVALENCE(H5T_flags(15), H5T_PAD_ONE_F)
+ EQUIVALENCE(H5T_flags(16), H5T_PAD_BACKGROUND_F)
+ EQUIVALENCE(H5T_flags(17), H5T_PAD_ERROR_F)
+ EQUIVALENCE(H5T_flags(18), H5T_SGN_NONE_F)
+ EQUIVALENCE(H5T_flags(19), H5T_SGN_2_F)
+ EQUIVALENCE(H5T_flags(20), H5T_SGN_ERROR_F)
+ EQUIVALENCE(H5T_flags(21), H5T_NORM_IMPLIED_F)
+ EQUIVALENCE(H5T_flags(22), H5T_NORM_MSBSET_F)
+ EQUIVALENCE(H5T_flags(23), H5T_NORM_NONE_F)
+ EQUIVALENCE(H5T_flags(24), H5T_CSET_ASCII_F)
+ EQUIVALENCE(H5T_flags(25), H5T_CSET_UTF8_F)
+ EQUIVALENCE(H5T_flags(26), H5T_STR_NULLTERM_F)
+ EQUIVALENCE(H5T_flags(27), H5T_STR_NULLPAD_F)
+ EQUIVALENCE(H5T_flags(28), H5T_STR_SPACEPAD_F)
+ EQUIVALENCE(H5T_flags(29), H5T_STR_ERROR_F)
+ EQUIVALENCE(H5T_flags(30), H5T_VLEN_F)
+ EQUIVALENCE(H5T_flags(31), H5T_ARRAY_F)
+ EQUIVALENCE(H5T_flags(32), H5T_DIR_ASCEND_F)
+ EQUIVALENCE(H5T_flags(33), H5T_DIR_DESCEND_F)
+
+ !
+ ! H5Z flags declaration
+ !
+ INTEGER, PARAMETER :: H5Z_FLAGS_LEN = 14
+ INTEGER H5Z_flags(H5Z_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5Z_FLAGS/
+ !DEC$endif
+ COMMON /H5Z_FLAGS/ H5Z_flags
+
+ INTEGER :: H5Z_FILTER_ERROR_F
+ INTEGER :: H5Z_FILTER_NONE_F
+ INTEGER :: H5Z_FILTER_ALL_F
+ INTEGER :: H5Z_FILTER_DEFLATE_F
+ INTEGER :: H5Z_FILTER_SHUFFLE_F
+ INTEGER :: H5Z_FILTER_FLETCHER32_F
+ INTEGER :: H5Z_FILTER_SZIP_F
+ INTEGER :: H5Z_ERROR_EDC_F
+ INTEGER :: H5Z_DISABLE_EDC_F
+ INTEGER :: H5Z_ENABLE_EDC_F
+ INTEGER :: H5Z_NO_EDC_F
+ INTEGER :: H5Z_FLAG_OPTIONAL_F
+ INTEGER :: H5Z_FILTER_ENCODE_ENABLED_F
+ INTEGER :: H5Z_FILTER_DECODE_ENABLED_F
+
+ EQUIVALENCE(H5Z_flags(1), H5Z_FILTER_ERROR_F)
+ EQUIVALENCE(H5Z_flags(2), H5Z_FILTER_NONE_F)
+ EQUIVALENCE(H5Z_flags(3), H5Z_FILTER_DEFLATE_F)
+ EQUIVALENCE(H5Z_flags(4), H5Z_FILTER_SHUFFLE_F)
+ EQUIVALENCE(H5Z_flags(5), H5Z_FILTER_FLETCHER32_F)
+ EQUIVALENCE(H5Z_flags(6), H5Z_ERROR_EDC_F)
+ EQUIVALENCE(H5Z_flags(7), H5Z_DISABLE_EDC_F)
+ EQUIVALENCE(H5Z_flags(8), H5Z_ENABLE_EDC_F)
+ EQUIVALENCE(H5Z_flags(9), H5Z_NO_EDC_F)
+ EQUIVALENCE(H5Z_flags(10), H5Z_FILTER_SZIP_F)
+ EQUIVALENCE(H5Z_flags(11), H5Z_FLAG_OPTIONAL_F)
+ EQUIVALENCE(H5Z_flags(12), H5Z_FILTER_ENCODE_ENABLED_F)
+ EQUIVALENCE(H5Z_flags(13), H5Z_FILTER_DECODE_ENABLED_F)
+ EQUIVALENCE(H5Z_flags(14), H5Z_FILTER_ALL_F)
+
+
+ !
+ ! H5 Library flags declaration
+ !
+ INTEGER, PARAMETER :: H5LIB_FLAGS_LEN = 2
+ INTEGER :: H5LIB_flags(H5LIB_FLAGS_LEN)
+ !DEC$if defined(BUILD_HDF5_DLL)
+ !DEC$ ATTRIBUTES DLLEXPORT :: /H5LIB_FLAGS/
+ !DEC$endif
+ COMMON /H5LIB_FLAGS/ H5LIB_flags
+ INTEGER :: H5_SZIP_EC_OM_F
+ INTEGER :: H5_SZIP_NN_OM_F
+ !
+ EQUIVALENCE(H5LIB_flags(1), H5_SZIP_EC_OM_F)
+ EQUIVALENCE(H5LIB_flags(2), H5_SZIP_NN_OM_F)
+
+
+ ! General H5 flags declarations
+ !
!!$ INTEGER, PARAMETER :: H5_FLAGS_LEN = 2
!!$ INTEGER H5_flags(H5_FLAGS_LEN)
!!$!DEC$if defined(BUILD_HDF5_DLL)
@@ -775,5 +823,5 @@
!!$ EQUIVALENCE(H5F_flags(1), H5F_SCOPE_GLOBAL_F)
!!$ EQUIVALENCE(H5F_flags(2), H5F_SCOPE_LOCAL_F)
- END MODULE H5GLOBAL
-
+END MODULE H5GLOBAL
+
diff --git a/fortran/src/H5fortran_flags.f90 b/fortran/src/H5fortran_flags.f90
deleted file mode 100644
index 80122cd..0000000
--- a/fortran/src/H5fortran_flags.f90
+++ /dev/null
@@ -1,26 +0,0 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! 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 H5FORTRAN_FLAGS
-!
-! H5E interface related fortran flags:
-!
- !Turn on automatic printing of errors
- INTEGER, PARAMETER :: PRINTON = 1
-
- !Turn off automatic printing of errors
- INTEGER, PARAMETER :: PRINTOFF = 0
-
- END MODULE H5FORTRAN_FLAGS
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index 7d969ad..034ff72 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -1,4 +1,5 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
@@ -8,8 +9,8 @@
* 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * 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. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* C Program to match C types to Fortran types
@@ -39,7 +40,7 @@ initCfile(void)
{
fprintf(c_header,
"/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\
-* Copyright by the Board of Trustees of the University of Illinois. *\n\
+ * Copyright by the Board of Trustees of the University of Illinois. *\n\
* All rights reserved. *\n\
* *\n\
* This file is part of HDF5. The full HDF5 copyright notice, including *\n\
@@ -110,12 +111,6 @@ void writeFloatTypedef(const char* c_type, unsigned int size)
fprintf(c_header, "#define c_float_%d %s\n", size, c_type);
}
-/* Define a c_double_x type in the C header */
-void writeDoubleTypedef(const char* c_type, unsigned int size)
-{
- fprintf(c_header, "#define c_double_%d %s\n", size, c_type);
-}
-
/* Call this function if there is no matching C type for sizes > 1 */
void writeTypedefDefault(unsigned int size)
{
@@ -139,21 +134,25 @@ void writeFloatToFiles(const char* fortran_type, const char* c_type, unsigned in
fprintf(c_header, "typedef c_float_%d %s;\n", size, c_type);
}
-/* Create matching Fortran and C floating types by writing to both files */
-void writeDoubleToFiles(const char* fortran_type, const char* c_type, unsigned int size)
-{
- fprintf(fort_header, " INTEGER, PARAMETER :: %s = %d\n", fortran_type, size);
-
- fprintf(c_header, "typedef c_double_%d %s;\n", size, c_type);
-}
-
-
int main()
{
+ int FoundIntSize[4];
+ int FoundRealSize[4];
+ int i,j,flag;
+ char chrA[20],chrB[20];
+ int H5_C_HAS_REAL_NATIVE_16;
+ int H5_C_HAS_REAL_NATIVE_12;
+
/* Open target files */
c_header = fopen(CFILE, "w");
fort_header = fopen(FFILE, "w");
+
+/* Default is C has 16 byte float */
+ H5_C_HAS_REAL_NATIVE_16 = 1;
+/* Default is C has 12 byte float */
+ H5_C_HAS_REAL_NATIVE_12 = 1;
+
/* Write copyright, boilerplate to both files */
initCfile();
initFfile();
@@ -217,7 +216,7 @@ int main()
/* Define c_float_x */
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_4
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_4 || defined H5_FORTRAN_HAS_REAL_4
if(sizeof(long double) == 4)
writeFloatTypedef("long double", 4);
else if(sizeof(double) == 4)
@@ -231,7 +230,7 @@ int main()
}
#endif /*H5_FORTRAN_HAS_REAL_NATIVE_4*/
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_8
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_8 || defined H5_FORTRAN_HAS_REAL_8
if(sizeof(long double) == 8)
writeFloatTypedef("long double", 8);
else if(sizeof(double) == 8)
@@ -245,50 +244,34 @@ int main()
}
#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8*/
-#if defined H5_FORTRAN_HAS_REAL_NATIVE_16
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_12 || defined H5_FORTRAN_HAS_REAL_12
+ if(sizeof(long double) == 12)
+ writeFloatTypedef("long double", 12);
+ else if(sizeof(double) == 12)
+ writeFloatTypedef("double", 12);
+ else if(sizeof(float) == 12)
+ writeFloatTypedef("float", 12);
+ else /*C has no 12 byte float so disable it in Fortran*/
+ { printf("warning: Fortran REAL is 12 bytes, no corresponding C floating type\n");
+ printf(" Disabling Fortran 12 byte REALs\n");
+ H5_C_HAS_REAL_NATIVE_12 = 0;
+ }
+#endif /*H5_FORTRAN_HAS_REAL_NATIVE_8*/
+
+#if defined H5_FORTRAN_HAS_REAL_NATIVE_16 || defined H5_FORTRAN_HAS_REAL_16
if(sizeof(long double) == 16)
writeFloatTypedef("long double", 16);
else if(sizeof(double) == 16)
writeFloatTypedef("double", 16);
else if(sizeof(float) == 16)
writeFloatTypedef("float", 16);
- else
- { printf("Fortran REAL is 16 bytes, no corresponding C floating type\n");
- printf("Quitting....\n");
- return -1;
+ else /*C has no 16 byte float so disable it in Fortran*/
+ { printf("warning: Fortran REAL is 16 bytes, no corresponding C floating type\n");
+ printf(" Disabling Fortran 16 byte REALs\n");
+ H5_C_HAS_REAL_NATIVE_16 = 0;
}
#endif /*H5_FORTRAN_HAS_REAL_NATIVE_16*/
- /* Define c_double_x */
-
-#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8
- if(sizeof(long double) == 8)
- writeDoubleTypedef("long double", 8);
- else if(sizeof(double) == 8)
- writeDoubleTypedef("double", 8);
- else if(sizeof(float) == 8)
- writeDoubleTypedef("float", 8);
- else
- { printf("Fortran DOUBLE is 16 bytes, no corresponding C floating type\n");
- printf("Quitting....\n");
- return -1;
- }
-#endif /*H5_FORTRAN_HAS_DOUBLE_NATIVE_8*/
-
-#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16
- if(sizeof(long double) == 16)
- writeDoubleTypedef("long double", 16);
- else if(sizeof(double) == 16)
- writeDoubleTypedef("double", 16);
- else if(sizeof(float) == 16)
- writeDoubleTypedef("float", 16);
- else
- { printf("Fortran DOUBLE is 16 bytes, no corresponding C floating type\n");
- printf("Quitting....\n");
- return -1;
- }
-#endif /*H5_FORTRAN_HAS_DOUBLE_NATIVE_16*/
-
/* Now begin defining fortran types. */
fprintf(c_header, "\n");
/* haddr_t */
@@ -362,6 +345,156 @@ int main()
return -1;
#endif
+
+ /* int_1, int_2, int_4, int_8 */
+
+/* Defined different KINDs of integers: */
+/* if the integer kind is not available then we assign */
+/* it a value of the next larger one, but if the next */
+/* higher one is not available we assigned it the next lowest */
+
+ FoundIntSize[0] = -1;
+ FoundIntSize[1] = -2;
+ FoundIntSize[2] = -4;
+ FoundIntSize[3] = -8;
+
+#if defined H5_FORTRAN_HAS_INTEGER_1
+ FoundIntSize[0] = 1;
+#endif
+#if defined H5_FORTRAN_HAS_INTEGER_2
+ FoundIntSize[1] = 2;
+#endif
+#if defined H5_FORTRAN_HAS_INTEGER_4
+ FoundIntSize[2] = 4;
+#endif
+#if defined H5_FORTRAN_HAS_INTEGER_8
+ FoundIntSize[3] = 8;
+#endif
+
+ for(i=0;i<4;i++) {
+ if( FoundIntSize[i] > 0) /* Found the integer type */
+ {
+ sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]);
+ sprintf(chrB, "int_%d_f", FoundIntSize[i]);
+ writeToFiles(chrA, chrB, FoundIntSize[i]);
+ }
+ else /* Did not find the integer type */
+ {
+ flag = 0; /* flag indicating if found the next highest */
+ for(j=i+1;j<4;j++) /* search for next highest */
+ {
+ if( FoundIntSize[j] > 0) /* Found the next highest */
+ {
+ sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
+ sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
+ writeToFiles(chrA, chrB, FoundIntSize[j]);
+ flag = 1;
+ break;
+ }
+ }
+ if(flag == 0) /* No higher one found, so find next lowest */
+ {
+ for(j=2;j>-1;j--) /* Search for next lowest */
+ {
+ if( FoundIntSize[j] > 0) /* Found the next lowest */
+ {
+ sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
+ sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
+ writeToFiles(chrA, chrB, FoundIntSize[j]);
+ flag = 1;
+ break;
+ }
+ }
+ }
+ if(flag == 0) /* No higher or lower one found, indicating an error */
+ {
+ return -1;
+ }
+ }
+ }
+
+ /* real_4, real_8, real_12, real_16 */
+
+/* Defined different KINDs of reals: */
+/* if the REAL kind is not available then we assign */
+/* it a value of the next larger one, but if the next */
+/* higher one is not available we assigned it the next lowest */
+
+ FoundRealSize[0] = -4;
+ FoundRealSize[1] = -8;
+ FoundRealSize[2] = -12;
+ FoundRealSize[3] = -16;
+
+#if defined H5_FORTRAN_HAS_REAL_4
+ FoundRealSize[0] = 4;
+#endif
+#if defined H5_FORTRAN_HAS_REAL_8
+ FoundRealSize[1] = 8;
+#endif
+#if defined H5_FORTRAN_HAS_REAL_12
+ if(H5_C_HAS_REAL_NATIVE_12 != 0) {
+ FoundRealSize[2] = 12;
+ }
+#endif
+#if defined H5_FORTRAN_HAS_REAL_16
+ if(H5_C_HAS_REAL_NATIVE_16 != 0) {
+ FoundRealSize[3] = 16;
+ }
+#endif
+
+ for(i=0;i<4;i++) {
+ if( FoundRealSize[i] > 0) /* Found the real type */
+ {
+ sprintf(chrA, "Fortran_REAL_%d", FoundRealSize[i]);
+ sprintf(chrB, "real_%d_f", FoundRealSize[i]);
+ writeFloatToFiles(chrA, chrB, FoundRealSize[i]);
+ }
+ else /* Did not find the real type */
+ {
+ flag = 0; /* flag indicating if found the next highest */
+ for(j=i+1;j<4;j++) /* search for next highest */
+ {
+ if( FoundRealSize[j] > 0) /* Found the next highest */
+ {
+ sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
+ sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
+ if(FoundRealSize[j]>4) {
+ writeFloatToFiles(chrA, chrB, FoundRealSize[j]);
+ flag = 1;
+ }
+ /* else { */
+/* writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */
+/* } */
+ flag = 1;
+ break;
+ }
+ }
+ if(flag == 0) /* No higher one found, so find next lowest */
+ {
+ for(j=2;j>-1;j--) /* Search for next lowest */
+ {
+ if( FoundRealSize[j] > 0) /* Found the next lowest */
+ {
+ sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
+ sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
+ if(FoundRealSize[j]>4) {
+ writeFloatToFiles(chrA, chrB, FoundRealSize[j]);
+ }
+ /* else { */
+/* writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */
+/* } */
+ flag = 1;
+ break;
+ }
+ }
+ }
+ if(flag == 0) /* No higher or lower one found, indicating an error */
+ {
+ return -1;
+ }
+ }
+ }
+
/* hid_t */
#if defined H5_FORTRAN_HAS_INTEGER_8 && H5_SIZEOF_HID_T >= 8
writeToFiles("HID_T", "hid_t_f", 8);
@@ -380,7 +513,13 @@ int main()
/* real_f */
#if defined H5_FORTRAN_HAS_REAL_NATIVE_16
+ if(H5_C_HAS_REAL_NATIVE_16 != 0) {
writeFloatToFiles("Fortran_REAL", "real_f", 16);
+ }
+#elif defined H5_FORTRAN_HAS_REAL_NATIVE_12
+ if(H5_C_HAS_REAL_NATIVE_12 != 0) {
+ writeFloatToFiles("Fortran_REAL", "real_f", 12);
+ }
#elif defined H5_FORTRAN_HAS_REAL_NATIVE_8
writeFloatToFiles("Fortran_REAL", "real_f", 8);
#elif defined H5_FORTRAN_HAS_REAL_NATIVE_4
@@ -392,9 +531,9 @@ int main()
/* double_f */
#if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16
- writeDoubleToFiles("Fortran_DOUBLE", "double_f", 16);
+ writeFloatToFiles("Fortran_DOUBLE", "double_f", 16);
#elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8
- writeDoubleToFiles("Fortran_DOUBLE", "double_f", 8);
+ writeFloatToFiles("Fortran_DOUBLE", "double_f", 8);
#else
/* Error: couldn't find a size for real_f */
return -1;
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index e357fea..b945cd3 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -1,4 +1,26 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!****h* fortran/src/H5test_kind.f90
+!
+! NAME
+! H5test_kind
+!
+! FUNCTION
+! This stand alone program is used at build time to generate the program
+! H5fortran_detect.f90. It cycles through all the available KIND parameters for
+! integers and reals. The appropriate program and subroutines are then generated
+! depending on which of the KIND values are found.
+!
+! NOTES
+! This program is depreciated in favor of H5test_kind_SIZEOF.f90 and is only
+! used when the Fortran intrinsic function SIZEOF is not available. It generates
+! code that does not make use of SIZEOF in H5fortran_detect.f90 which is less
+! portable in comparison to using SIZEOF.
+!
+! The availability of SIZEOF is checked at configure time and the TRUE/FALSE
+! condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
! All rights reserved. *
! *
@@ -8,17 +30,18 @@
! 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! 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. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-! H5test_kind.f90
-!
-! This fortran program generates H5fortran_detect.f90
-!
+! AUTHOR
+! Elena Pourma
!
+!*****
+
PROGRAM test_kind
- INTEGER :: i, j, ii, last, kind_numbers(10)
+ IMPLICIT NONE
+ INTEGER :: i, j, ii, ir, last, ikind_numbers(10), rkind_numbers(10)
INTEGER :: jr, jd
last = -1
ii = 0
@@ -28,13 +51,67 @@ PROGRAM test_kind
IF(j .NE. last) THEN
IF(last .NE. -1) THEN
ii = ii + 1
- kind_numbers(ii) = last
+ ikind_numbers(ii) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
+
+ last = -1
+ ir = 0
+ DO i = 1,100
+ j = SELECTED_REAL_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ir = ir + 1
+ rkind_numbers(ir) = last
ENDIF
last = j
IF(j .EQ. -1) EXIT
ENDIF
ENDDO
+
+! Generate program information:
+
+WRITE(*,'(40(A,/))') &
+'!****h* fortran/src/H5fortran_detect.f90',&
+'!',&
+'! NAME',&
+'! H5fortran_detect',&
+'! ',&
+'! FUNCTION',&
+'! This stand alone program is used at build time to generate the header file',&
+'! H5fort_type_defines.h. The source code itself was automatically generated by',&
+'! the program H5test_kind.f90',&
+'!',&
+'! NOTES',&
+'! This source code does not make use of the Fortran intrinsic function SIZEOF because',&
+'! the availability of the intrinsic function was determined to be not available at',&
+'! configure time',&
+'!',&
+'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
+'! 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. *',&
+'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
+'!',&
+'! AUTHOR',&
+'! H5test_kind.f90',&
+'!',&
+'!*****'
+
! Generate a program
+
WRITE(*,*) "PROGRAM int_kind"
WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
j = 0
@@ -44,9 +121,13 @@ PROGRAM test_kind
jd = 0
WRITE(*, "("" CALL d"", i2.2,""()"")") jd
DO i = 1, ii
- j = kind_numbers(i)
+ j = ikind_numbers(i)
WRITE(*, "("" CALL i"", i2.2,""()"")") j
ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" CALL r"", i2.2,""()"")") j
+ ENDDO
WRITE(*,*) "END PROGRAM int_kind"
j = 0
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
@@ -109,7 +190,7 @@ PROGRAM test_kind
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
DO i = 1, ii
- j = kind_numbers(i)
+ j = ikind_numbers(i)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER(",j,") :: a = 0"
@@ -133,6 +214,28 @@ PROGRAM test_kind
WRITE(*,*)" RETURN"
WRITE(*,*)" END SUBROUTINE"
ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" REAL(KIND=",j,") :: b(32)"
+ WRITE(*,*)" INTEGER :: a(1)"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER :: real_size"
+ WRITE(*,*)" a_size = BIT_SIZE(a(1)) ! Size in bits for integer"
+ WRITE(*,*)" real_size = (SIZE(TRANSFER(b,a))*a_size)/SIZE(b)"
+ WRITE(*,*)" IF (real_size .EQ. 32) THEN"
+ WRITE(*,*)" WRITE(*,*) ""#define H5_FORTRAN_HAS_REAL_4"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" IF (real_size .EQ. 64) THEN"
+ WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_8"" "
+ WRITE(*,*)" endif"
+ WRITE(*,*)" IF (real_size .EQ. 128) THEN"
+ WRITE(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_REAL_16"" "
+ WRITE(*,*)" ENDIF"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)" END SUBROUTINE"
+ ENDDO
END PROGRAM test_kind
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
index 72d9176..2b992a3 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -1,4 +1,25 @@
+!****h* fortran/src/H5test_kind_SIZEOF.f90
+!
+! NAME
+! H5test_kind
+!
+! FUNCTION
+! This stand alone program is used at build time to generate the program
+! H5fortran_detect.f90. It cycles through all the available KIND parameters for
+! integers and reals. The appropriate program and subroutines are then generated
+! depending on which of the KIND values are found.
+!
+! NOTES
+! This program is used in place of H5test_kind.f90 when the Fortran intrinsic
+! function SIZEOF is available. It generates code that makes use of SIZEOF in
+! H5fortran_detect.f90 which is a portable solution.
+!
+! The availability of SIZEOF is checked at configure time and the TRUE/FALSE
+! condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
+!
+! COPYRIGHT
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by The HDF Group. *
! Copyright by the Board of Trustees of the University of Illinois. *
! All rights reserved. *
! *
@@ -8,32 +29,86 @@
! 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://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
-! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! 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. *
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!
-! H5test_kind_SIZEOF.f90
-!
-! This fortran program generates H5fortran_detect.f90
-!
+! AUTHOR
+! M.S. Breitenfeld
!
+!*****
+
PROGRAM test_kind
- INTEGER :: i, j, ii, last, kind_numbers(10)
+ IMPLICIT NONE
+ INTEGER :: i, j, ii, ir, last, ikind_numbers(10),rkind_numbers(10)
INTEGER :: jr, jd
last = -1
ii = 0
- j = SELECTED_INT_KIND(18)
DO i = 1,100
j = SELECTED_INT_KIND(i)
IF(j .NE. last) THEN
IF(last .NE. -1) THEN
ii = ii + 1
- kind_numbers(ii) = last
+ ikind_numbers(ii) = last
ENDIF
last = j
IF(j .EQ. -1) EXIT
ENDIF
ENDDO
+
+ last = -1
+ ir = 0
+ DO i = 1,100
+ j = SELECTED_REAL_KIND(i)
+ IF(j .NE. last) THEN
+ IF(last .NE. -1) THEN
+ ir = ir + 1
+ rkind_numbers(ir) = last
+ ENDIF
+ last = j
+ IF(j .EQ. -1) EXIT
+ ENDIF
+ ENDDO
+
+! Generate program information:
+
+WRITE(*,'(40(A,/))') &
+'!****h* fortran/src/H5fortran_detect.f90',&
+'!',&
+'! NAME',&
+'! H5fortran_detect',&
+'! ',&
+'! FUNCTION',&
+'! This stand alone program is used at build time to generate the header file',&
+'! H5fort_type_defines.h. The source code itself was automatically generated by',&
+'! the program H5test_kind_SIZEOF.f90',&
+'!',&
+'! NOTES',&
+'! This source code makes use of the Fortran intrinsic function SIZEOF because',&
+'! the availability of the intrinsic function was determined to be available at',&
+'! configure time',&
+'!',&
+'! 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. *',&
+'! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
+'!',&
+'! AUTHOR',&
+'! H5test_kind_SIZEOF.f90',&
+'!',&
+'!*****'
+
! Generate a program
WRITE(*,*) "PROGRAM int_kind"
WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
@@ -44,9 +119,13 @@ PROGRAM test_kind
jd = 0
WRITE(*, "("" CALL d"", i2.2,""()"")") jd
DO i = 1, ii
- j = kind_numbers(i)
+ j = ikind_numbers(i)
WRITE(*, "("" CALL i"", i2.2,""()"")") j
ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" CALL r"", i2.2,""()"")") j
+ ENDDO
WRITE(*,*) "END PROGRAM int_kind"
j = 0
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
@@ -82,7 +161,7 @@ PROGRAM test_kind
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
DO i = 1, ii
- j = kind_numbers(i)
+ j = ikind_numbers(i)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER(",j,") :: a"
@@ -94,6 +173,19 @@ PROGRAM test_kind
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
+ WRITE(*,*)" IMPLICIT NONE"
+ WRITE(*,*)" REAL(KIND=",j,") :: a"
+ WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" CHARACTER(LEN=2) :: ichr2"
+ WRITE(*,*)" a_size = SIZEOF(a)"
+ WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
+ WRITE(*,*)' WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_"'//"//ADJUSTL(ichr2)"
+ WRITE(*,*)" RETURN"
+ WRITE(*,*)"END SUBROUTINE"
+ ENDDO
END PROGRAM test_kind
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index 34dc3b9..6275545 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -57,7 +57,7 @@ else
endif
# Source files for the library.
-libhdf5_fortran_la_SOURCES=H5fortran_flags.f90 H5f90global.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 \
@@ -170,8 +170,7 @@ 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*
-H5fortran_flags.lo: $(srcdir)/H5fortran_flags.f90
-H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_flags.lo H5fortran_types.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
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 836929c..82bf8c2 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -74,23 +74,22 @@ am__installdirs = "$(DESTDIR)$(libdir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libhdf5_fortran_la_LIBADD =
-am__libhdf5_fortran_la_SOURCES_DIST = H5fortran_flags.f90 \
- 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 \
+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 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 = H5fortran_flags.lo H5f90global.lo \
- H5fortran_types.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 $(am__objects_1)
+am_libhdf5_fortran_la_OBJECTS = H5f90global.lo H5fortran_types.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 $(am__objects_1)
libhdf5_fortran_la_OBJECTS = $(am_libhdf5_fortran_la_OBJECTS)
PROGRAMS = $(noinst_PROGRAMS)
am_H5fortran_detect_OBJECTS = H5fortran_detect.$(OBJEXT)
@@ -409,7 +408,7 @@ lib_LTLIBRARIES = libhdf5_fortran.la
@FORTRAN_DEFAULT_REALisDBLE_F_TRUE@F_DBLE = Exclude
# Source files for the library.
-libhdf5_fortran_la_SOURCES = H5fortran_flags.f90 H5f90global.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 \
@@ -873,8 +872,7 @@ H5fortran_detect.f90: H5test_kind$(EXEEXT)
# 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*
-H5fortran_flags.lo: $(srcdir)/H5fortran_flags.f90
-H5f90global.lo: $(srcdir)/H5f90global.f90 H5fortran_flags.lo H5fortran_types.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
diff --git a/fortran/test/fortranlib_test.f90 b/fortran/test/fortranlib_test.f90
index 697a9f6..12c3af8 100644
--- a/fortran/test/fortranlib_test.f90
+++ b/fortran/test/fortranlib_test.f90
@@ -50,11 +50,11 @@ PROGRAM fortranlibtest
total_error = total_error + 1
ENDIF
WRITE(*,*)
+
! CALL h5check_version_f(1,4,4,total_error)
! write(*,*) '========================================='
! write(*,*) 'Testing FILE Interface '
! write(*,*) '========================================='
-
ret_total_error = 0
CALL mountingtest(cleanup, ret_total_error)
@@ -153,7 +153,7 @@ PROGRAM fortranlibtest
ret_total_error = 0
CALL compoundtest(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' Compound datatype test', total_error)
-
+
ret_total_error = 0
CALL enumtest(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' Enum datatype test', total_error)
@@ -224,7 +224,7 @@ PROGRAM fortranlibtest
CALL vl_test_real(cleanup, ret_total_error)
CALL vl_test_string(cleanup, ret_total_error)
CALL write_test_status(ret_total_error, ' VL test', total_error)
-
+
WRITE(*,*)
WRITE(*,*) ' ============================================ '
diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90
index 9b8d097..dc5a872 100644
--- a/fortran/test/tH5T.f90
+++ b/fortran/test/tH5T.f90
@@ -1119,7 +1119,6 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
CALL h5fclose_f(file,error)
CALL check("h5fclose_f", error, total_error)
-
IF(cleanup) CALL h5_cleanup_f(filename, H5P_DEFAULT_F, error)
CALL check("h5_cleanup_f", error, total_error)