summaryrefslogtreecommitdiffstats
path: root/fortran/src
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-06-16 21:47:00 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-06-16 21:47:00 (GMT)
commit85bcb7790404198084b47f9dcf49d8ab08f4aa4f (patch)
tree885bc468353f2a72b39d14169a0b03be7d1a7514 /fortran/src
parent48086667b56335a9344115c79e5de75fff2f4089 (diff)
downloadhdf5-85bcb7790404198084b47f9dcf49d8ab08f4aa4f.zip
hdf5-85bcb7790404198084b47f9dcf49d8ab08f4aa4f.tar.gz
hdf5-85bcb7790404198084b47f9dcf49d8ab08f4aa4f.tar.bz2
[svn-r27221] Reworked Fortran autools REAL KIND detection.
Diffstat (limited to 'fortran/src')
-rw-r--r--fortran/src/H5_f.c24
-rw-r--r--fortran/src/H5config_f.inc.in15
-rw-r--r--fortran/src/H5fort_type_defines.h.in1
-rw-r--r--fortran/src/H5match_types.c53
-rw-r--r--fortran/src/H5test_kind.F90158
-rw-r--r--fortran/src/Makefile.in5
6 files changed, 134 insertions, 122 deletions
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index f21528f..fa96ebe 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -227,27 +227,29 @@ h5init_types_c( hid_t_f * types, hid_t_f * floatingtypes, hid_t_f * integertypes
/*
* FIND H5T_NATIVE_REAL_C_LONG_DOUBLE
*/
-#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE
+#if H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE!=0
if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(float)) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_FLOAT)) < 0) return ret_value;
} /*end if */
else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(double)) {
if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
} /*end if */
-# if FORTRAN_HAVE_C_LONG_DOUBLE!=0
+# if H5_FORTRAN_HAVE_C_LONG_DOUBLE!=0
else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(long double)) {
- if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
- } /*end else */
+ if ( H5_PAC_C_MAX_REAL_PRECISION >= H5_PAC_FC_MAX_REAL_PRECISION) {
+ if ((types[12] = (hid_t_f)H5Tcopy(H5T_NATIVE_LDOUBLE)) < 0) return ret_value;
+ }
+ else {
+ if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value;
+ if ( H5Tset_precision (types[12], 128) < 0) return ret_value;
+ }
+ }
# else
- else if (sizeof(real_C_LONG_DOUBLE_f) == sizeof(long double)) {
- if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value;
- if ( H5Tset_precision (types[12], 128) < 0) return ret_value;
- } /*end else */
+ if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value;
+ if ( H5Tset_precision (types[12], 64) < 0) return ret_value;
# endif
-
#else
- if ((types[12] = H5Tcopy (H5T_NATIVE_FLOAT)) < 0) return ret_value;
- if ( H5Tset_precision (types[12], 64) < 0) return ret_value;
+ if ((types[12] = H5Tcopy(H5T_NATIVE_DOUBLE)) < 0) return ret_value;
#endif
/*
* FIND H5T_NATIVE_B_8
diff --git a/fortran/src/H5config_f.inc.in b/fortran/src/H5config_f.inc.in
index d6909ed..b0de405 100644
--- a/fortran/src/H5config_f.inc.in
+++ b/fortran/src/H5config_f.inc.in
@@ -39,3 +39,18 @@
! Maximum decimal precision for C
#undef PAC_C_MAX_REAL_PRECISION
+! number of valid REAL KINDs
+#undef H5CONFIG_F_NUM_RKIND
+
+! valid REAL KINDs (need to have a matching C counter-part)
+#undef H5CONFIG_F_RKIND
+
+! valid REAL KINDs (need to have a matching C counter-part)
+#undef H5CONFIG_F_RKIND_SIZEOF
+
+! number of valid INTEGER KINDs
+#undef H5CONFIG_F_NUM_IKIND
+
+! valid INTEGER KINDs (need to have a matching C counter-part)
+#undef H5CONFIG_F_IKIND
+
diff --git a/fortran/src/H5fort_type_defines.h.in b/fortran/src/H5fort_type_defines.h.in
index 5511742..0e14e86 100644
--- a/fortran/src/H5fort_type_defines.h.in
+++ b/fortran/src/H5fort_type_defines.h.in
@@ -11,7 +11,6 @@
#define H5_FORTRAN_INTEGER_KINDS_SIZEOF @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@
#define H5_FORTRAN_REAL_KINDS @PAC_FC_ALL_REAL_KINDS@
#define H5_FORTRAN_REAL_KINDS_SIZEOF @PAC_FC_ALL_REAL_KINDS_SIZEOF@
-#define H5_PAC_FC_MAX_REAL_PRECISION @PAC_FC_MAX_REAL_PRECISION@
#define H5_HAVE_Fortran_INTEGER_SIZEOF_16 @HAVE_Fortran_INTEGER_SIZEOF_16@
#define H5_FORTRAN_HAVE_C_LONG_DOUBLE @FORTRAN_HAVE_C_LONG_DOUBLE@
#define H5_FORTRAN_C_LONG_DOUBLE_IS_UNIQUE @FORTRAN_C_LONG_DOUBLE_IS_UNIQUE@
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index b0e682d..360f224 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -153,7 +153,6 @@ int main(void)
int FoundRealSizeKind[10];
int i, j,flag;
char chrA[32],chrB[32];
- int H5_C_HAS_REAL_NATIVE_16;
int IntKinds[] = H5_FORTRAN_INTEGER_KINDS;
int IntKinds_SizeOf[] = H5_FORTRAN_INTEGER_KINDS_SIZEOF;
@@ -169,9 +168,6 @@ int main(void)
c_header = fopen(CFILE, "w");
fort_header = fopen(FFILE, "w");
- /* Default is C has 16 byte float */
- H5_C_HAS_REAL_NATIVE_16 = 1;
-
/* Write copyright, boilerplate to both files */
initCfile();
initFfile();
@@ -208,30 +204,45 @@ int main(void)
/* (b) Define c_float_x */
for(i=0;i< H5_FORTRAN_NUM_REAL_KINDS;i++) {
-
if (sizeof(float) == RealKinds_SizeOf[i]) {
writeTypedef("float", "float", RealKinds[i]);
- strcpy(Real_C_TYPES[i], "C_FLOAT"); }
+ strcpy(Real_C_TYPES[i], "C_FLOAT");
+ }
else if(sizeof(double) == RealKinds_SizeOf[i]) {
writeTypedef("float", "double", RealKinds[i]);
- strcpy(Real_C_TYPES[i], "C_DOUBLE"); }
+ strcpy(Real_C_TYPES[i], "C_DOUBLE");
+ }
#if H5_FORTRAN_HAVE_C_LONG_DOUBLE!=0
else if(sizeof(long double) == RealKinds_SizeOf[i] && found_long_double == 0) {
writeTypedef("float", "long double", RealKinds[i]);
strcpy(Real_C_TYPES[i], "C_LONG_DOUBLE");
- found_long_double = 1; }
-#endif
-#ifdef H5_HAVE_FLOAT128
+ found_long_double = 1;
+ }
+# ifdef H5_HAVE_FLOAT128
/* Don't select a higher precision than Fortran can support */
else if(sizeof(__float128) == RealKinds_SizeOf[i] && found_long_double == 1 && H5_PAC_FC_MAX_REAL_PRECISION > 28) {
writeTypedef("float", "__float128", RealKinds[i]);
strcpy(Real_C_TYPES[i], "C_FLOAT128");
}
-#else
+# else
else if(sizeof(long double) == RealKinds_SizeOf[i] && found_long_double == 1 && H5_PAC_FC_MAX_REAL_PRECISION > 28) {
writeTypedef("float", "long double", RealKinds[i]);
strcpy(Real_C_TYPES[i], "C_FLOAT128");
}
+# endif
+#else /* There is no C_LONG_DOUBLE intrinsic */
+# ifdef H5_HAVE_FLOAT128
+ /* Don't select a higher precision than Fortran can support */
+ else if(sizeof(__float128) == RealKinds_SizeOf[i] ) {
+ writeTypedef("float", "__float128", RealKinds[i]);
+ strcpy(Real_C_TYPES[i], "C_FLOAT128");
+ }
+# else
+ else if(sizeof(long double) == RealKinds_SizeOf[i] ) {
+ writeTypedef("float", "long double", RealKinds[i]);
+ strcpy(Real_C_TYPES[i], "C_FLOAT128");
+ }
+# endif
#endif
/* else { */
/* /\* Did not find the real type, use the next smallest *\/ */
@@ -246,10 +257,12 @@ int main(void)
/* writeTypedef("float", "long double", RealKinds[i]); */
/* strcpy(Real_C_TYPES[i], "C_LONG_DOUBLE"); } */
else {
- printf(" **** HDF5 WARNING ****\n");
- printf("Fortran REAL is %d bytes, but no corresponding C floating type exists\n",RealKinds_SizeOf[i]);
- printf("Fortran Interface will create a custom datatype to store Fortran Real\n",RealKinds_SizeOf[i]);
+ printf("\n **** HDF5 WARNING ****\n");
+ printf("Fortran REAL(KIND=%d) is %d Bytes, but no corresponding C float type exists of that size\n",RealKinds[i],RealKinds_SizeOf[i]);
+ printf(" !!! Fortran interfaces will not be generated for REAL(KIND=%d) !!!\n\n",RealKinds[i]);
+ RealKinds_SizeOf[i] = -1;
+ RealKinds[i] = -1;
/* writeTypedef("float", "long double", RealKinds[i]); */
/* strcpy(Real_C_TYPES[i], "C_LONG_DOUBLE"); } */
}
@@ -392,12 +405,14 @@ int main(void)
FoundRealSize[4] = -1;
for(i=0;i<H5_FORTRAN_NUM_REAL_KINDS;i++) {
- FoundRealSize[i] = (int)RealKinds[i];
- FoundRealSizeKind[i] = (int)RealKinds_SizeOf[i];
- sprintf(chrA, "Fortran_REAL_%s", Real_C_TYPES[i]);
+ if (RealKinds[i] > 0) {
+ FoundRealSize[i] = (int)RealKinds[i];
+ FoundRealSizeKind[i] = (int)RealKinds_SizeOf[i];
+ sprintf(chrA, "Fortran_REAL_%s", Real_C_TYPES[i]);
/* sprintf(chrB, "real_%d_f", FoundRealSize[i]); */
- sprintf(chrB, "real_%s_f", Real_C_TYPES[i]);
- writeToFiles("float",chrA, chrB, RealKinds[i], RealKinds_SizeOf[i]);
+ sprintf(chrB, "real_%s_f", Real_C_TYPES[i]);
+ writeToFiles("float",chrA, chrB, RealKinds[i], RealKinds_SizeOf[i]);
+ }
}
/* for(i=0;i<H5_FORTRAN_NUM_REAL_KINDS;i++) { */
diff --git a/fortran/src/H5test_kind.F90 b/fortran/src/H5test_kind.F90
index e83139a..f73f915 100644
--- a/fortran/src/H5test_kind.F90
+++ b/fortran/src/H5test_kind.F90
@@ -51,7 +51,15 @@
PROGRAM test_kind
USE, INTRINSIC :: ISO_C_BINDING
IMPLICIT NONE
- INTEGER :: i, j, k, ii, ir, last, ikind_numbers(10), rkind_numbers(10)
+
+! These values are valid REAL KINDs (with corresponding C float) found during configure
+ H5_H5CONFIG_F_NUM_RKIND
+ H5_H5CONFIG_F_RKIND
+! These values are valid INTEGER KINDs (with corresponding C float) found during configure
+ H5_H5CONFIG_F_NUM_IKIND
+ H5_H5CONFIG_F_IKIND
+
+ INTEGER :: i, j, k
INTEGER :: ji, jr, jd
#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE
REAL(KIND=C_LONG_DOUBLE) :: c_longdble
@@ -85,38 +93,6 @@ PROGRAM test_kind
' f_ptr = C_LOC(buf(1,1,1,1,1,1,1))' &
/)
- last = -1
- ii = 0
-
- ikind_numbers = 0
- rkind_numbers = 0
-
- DO i = 1,100
- j = SELECTED_INT_KIND(i)
- IF(j .NE. last) THEN
- IF(last .NE. -1) THEN
- ii = ii + 1
- 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
-
GOTO 10
! Generate program information:
@@ -214,8 +190,8 @@ WRITE(*,'(40(A,/))') &
"//TRIM(ADJUSTL(ichr2))//"//'"_KIND "'//"//ADJUSTL(jchr2)"
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
- DO i = 1, ii
- j = ikind_numbers(i)
+ DO i = 1, num_ikinds
+ j = ikind(i)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a"
@@ -233,8 +209,8 @@ WRITE(*,'(40(A,/))') &
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
ENDDO
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a"
@@ -267,12 +243,12 @@ WRITE(*,'(40(A,/))') &
WRITE(*, "("" CALL r"", i2.2,""()"")") jr
jd = 0
WRITE(*, "("" CALL d"", i2.2,""()"")") jd
- DO i = 1, ii
- j = ikind_numbers(i)
+ DO i = 1, num_ikinds
+ j = ikind(i)
WRITE(*, "("" CALL i"", i2.2,""()"")") j
ENDDO
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(*, "("" CALL r"", i2.2,""()"")") j
ENDDO
#ifdef H5_FORTRAN_HAVE_C_LONG_DOUBLE
@@ -373,8 +349,8 @@ WRITE(*,'(40(A,/))') &
! H5Awrite_f
!
WRITE(11,'(A)') " INTERFACE h5awrite_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
DO k = 1, 8
WRITE(11,'(A)') " MODULE PROCEDURE h5awrite_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k)
@@ -384,8 +360,8 @@ WRITE(*,'(40(A,/))') &
! H5Aread_f
WRITE(11,'(A)') " INTERFACE h5aread_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
DO k = 1, 8
WRITE(11,'(A)') " MODULE PROCEDURE h5aread_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k)
@@ -398,8 +374,8 @@ WRITE(*,'(40(A,/))') &
!
! H5Dwrite_f
WRITE(11,'(A)') " INTERFACE h5dwrite_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
DO k = 1, 8
WRITE(11,'(A)') " MODULE PROCEDURE h5dwrite_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k)
@@ -409,8 +385,8 @@ WRITE(*,'(40(A,/))') &
! H5Dread_f
WRITE(11,'(A)') " INTERFACE h5dread_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
DO k = 1, 8
WRITE(11,'(A)') " MODULE PROCEDURE h5dread_kind_"//TRIM(ADJUSTL(chr2))//'_rank'//chr_rank(k)
@@ -424,8 +400,8 @@ WRITE(*,'(40(A,/))') &
!
! H5Pset_fill_value_f
WRITE(11,'(A)') " INTERFACE h5pset_fill_value_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pset_fill_value_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -433,8 +409,8 @@ WRITE(*,'(40(A,/))') &
! H5Pget_fill_value_f
WRITE(11,'(A)') " INTERFACE h5pget_fill_value_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pget_fill_value_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -442,8 +418,8 @@ WRITE(*,'(40(A,/))') &
! H5Pset_f
WRITE(11,'(A)') " INTERFACE h5pset_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pset_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -451,8 +427,8 @@ WRITE(*,'(40(A,/))') &
! H5Pget_f
WRITE(11,'(A)') " INTERFACE h5pget_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pget_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -460,8 +436,8 @@ WRITE(*,'(40(A,/))') &
! H5Pregister_f
WRITE(11,'(A)') " INTERFACE h5pregister_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pregister_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -469,8 +445,8 @@ WRITE(*,'(40(A,/))') &
! H5Pinsert_f
WRITE(11,'(A)') " INTERFACE h5pinsert_f"
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE h5pinsert_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -483,8 +459,8 @@ WRITE(*,'(40(A,/))') &
!**********************
!
! H5Awrite_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
DO j = 1, 8
@@ -511,8 +487,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
!
! H5Aread_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
DO j = 1, 8
! DLL definitions for windows
@@ -541,8 +517,8 @@ WRITE(*,'(40(A,/))') &
!**********************
!
! h5dread_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
DO j = 1, 8
! DLL definitions for windows
@@ -582,8 +558,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
!
! h5dwrite_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
DO j = 1, 8
! DLL definitions for windows
@@ -626,8 +602,8 @@ WRITE(*,'(40(A,/))') &
!**********************
!
! H5Pset_fill_value_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -648,8 +624,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
! H5Pget_fill_value_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -670,8 +646,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
! H5Pset_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -695,8 +671,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
! H5Pget_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -719,8 +695,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
! H5Pregister_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -744,8 +720,8 @@ WRITE(*,'(40(A,/))') &
ENDDO
! H5Pinsert_f
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_DLL)'
@@ -812,13 +788,13 @@ WRITE(*,'(40(A,/))') &
! Interfaces for validating REALs, INTEGERs, CHARACTERs, LOGICALs
WRITE(11,'(A)') ' INTERFACE verify'
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE verify_real_kind_"//TRIM(ADJUSTL(chr2))
END DO
- DO i = 1, ii
- j = ikind_numbers(i)
+ DO i = 1, num_ikinds
+ j = ikind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE verify_integer_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -827,8 +803,8 @@ WRITE(*,'(40(A,/))') &
WRITE(11,'(A)') " END INTERFACE"
WRITE(11,'(A)') ' INTERFACE check_real_eq'
- DO i = 1, ir
- j = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ j = rkind(i)
WRITE(chr2,'(I2)') j
WRITE(11,'(A)') " MODULE PROCEDURE real_eq_kind_"//TRIM(ADJUSTL(chr2))
END DO
@@ -839,8 +815,8 @@ WRITE(*,'(40(A,/))') &
! ***************************
! VALIDATE INTEGERS
! ***************************
- DO i = 1, ii
- k = ikind_numbers(i)
+ DO i = 1, num_ikinds
+ k = ikind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)'
@@ -863,8 +839,8 @@ WRITE(*,'(40(A,/))') &
! ***************************
! VALIDATE REALS
! ***************************
- DO i = 1, ir
- k = rkind_numbers(i)
+ DO i = 1, num_rkinds
+ k = rkind(i)
WRITE(chr2,'(I2)') k
! DLL definitions for windows
WRITE(11,'(A)') '!DEC$if defined(BUILD_HDF5_TEST_DLL)'
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 16be9d1..2b98af2 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -508,6 +508,11 @@ FORTRAN_HAVE_C_LONG_DOUBLE = @FORTRAN_HAVE_C_LONG_DOUBLE@
FORTRAN_SIZEOF_LONG_DOUBLE = @FORTRAN_SIZEOF_LONG_DOUBLE@
FSEARCH_DIRS = @FSEARCH_DIRS@
GREP = @GREP@
+H5CONFIG_F_IKIND = @H5CONFIG_F_IKIND@
+H5CONFIG_F_NUM_IKIND = @H5CONFIG_F_NUM_IKIND@
+H5CONFIG_F_NUM_RKIND = @H5CONFIG_F_NUM_RKIND@
+H5CONFIG_F_RKIND = @H5CONFIG_F_RKIND@
+H5CONFIG_F_RKIND_SIZEOF = @H5CONFIG_F_RKIND_SIZEOF@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
H5_CXXFLAGS = @H5_CXXFLAGS@