diff --git a/Makefile.in b/Makefile.in index 09c161cfaa..10e9d76a4d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -356,6 +356,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/c++/Makefile.in b/c++/Makefile.in index 7390f730f6..96c1a362ca 100644 --- a/c++/Makefile.in +++ b/c++/Makefile.in @@ -516,6 +516,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index aa77f818fb..3b82177618 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -464,6 +464,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index e637d934f6..69e8abd9fb 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -527,6 +527,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in index ef150e0d99..147a31ae91 100644 --- a/c++/test/Makefile.in +++ b/c++/test/Makefile.in @@ -518,6 +518,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index e223553e82..4edec03ba4 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -196,6 +196,11 @@ MACRO (H5MiscConversionTest VAR TEST msg) endif ("${TEST}" MATCHES "^${TEST}$") ENDMACRO (H5MiscConversionTest) +#----------------------------------------------------------------------------- +# Check if C has __float128 extension +#----------------------------------------------------------------------------- +CHECK_TYPE_SIZE("__float128" _FLOAT128) + #----------------------------------------------------------------------------- # Check various conversion capabilities #----------------------------------------------------------------------------- diff --git a/configure b/configure index b6bf787079..69dee6489b 100755 --- a/configure +++ b/configure @@ -729,6 +729,7 @@ PAC_FORTRAN_NATIVE_INTEGER_KIND PAC_FC_ALL_INTEGER_KINDS_SIZEOF PAC_FC_ALL_REAL_KINDS_SIZEOF PAC_FC_ALL_INTEGER_KINDS +PAC_FC_MAX_REAL_PRECISION PAC_FC_ALL_REAL_KINDS FCLIBS F9XMODEXT @@ -6969,6 +6970,24 @@ rm -f core conftest.err conftest.$ac_objext \ + + ## Set the sizeof function for use later in the fortran tests + if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes";then + FC_SIZEOF_A="STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + FC_SIZEOF_B="STORAGE_SIZE(b, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + FC_SIZEOF_C="STORAGE_SIZE(c, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + else + if test "X$HAVE_SIZEOF_FORTRAN" = "Xyes";then + FC_SIZEOF_A="SIZEOF(a)" + FC_SIZEOF_B="SIZEOF(a)" + FC_SIZEOF_C="SIZEOF(a)" + else + ## If neither intrinsic functions SIZEOF or STORAGE_SIZE is available then stop configure with an error + as_fn_error $? "Fortran compiler requires either intrinsic functions SIZEOF or STORAGE_SIZE" "$LINENO" 5 + fi + fi + + ## See if C_LONG_DOUBLE is available, and if it is different from C_DOUBLE FORTRAN_HAVE_C_LONG_DOUBLE="no" @@ -7052,31 +7071,43 @@ else PROGRAM main IMPLICIT NONE - INTEGER :: ik, k, lastkind + INTEGER :: ik, k, lastkind, max_decimal_prec lastkind=SELECTED_INT_KIND(1) - OPEN(8, FILE="pac_fconftest.out", form="formatted") - WRITE(8,'("ik:")',ADVANCE='NO') ! Find integer KINDs - DO ik=2,30 + OPEN(8, FILE='pac_fconftest.out', form='formatted') + WRITE(8,'(A)',ADVANCE='NO') 'A' ! Find integer KINDs + DO ik=2,36 k = SELECTED_INT_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' ENDIF IF (k .LE. 0) EXIT ENDDO - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " - WRITE(8,'(/)') - WRITE(8,'("rk:")',ADVANCE='NO') ! Find real KINDs + IF (lastkind.NE.-1) THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'B ' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'B ' + ENDIF + WRITE(8,'(A)',ADVANCE='NO') 'C' ! Find real KINDs lastkind=SELECTED_REAL_KIND(1) - DO ik=2,30 + max_decimal_prec = 1 + DO ik=2,36 k = SELECTED_REAL_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' + max_decimal_prec = ik ENDIF IF (k .LE. 0) EXIT ENDDO - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " + IF (lastkind.NE.-1)THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'D' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'D' + ENDIF + WRITE(8,'(A,I0,A)',ADVANCE='NO') ' E',max_decimal_prec,'F' END @@ -7086,8 +7117,11 @@ if ac_fn_fc_try_run "$LINENO"; then : if test -s pac_fconftest.out ; then - pac_validIntKinds="`sed -n -e 's/^.*ik://p' pac_fconftest.out`" - pac_validRealKinds="`sed -n -e 's/^.*rk://p' pac_fconftest.out`" + + tmp="`cat pac_fconftest.out`" + pac_validIntKinds="`echo $tmp | sed -e 's/.*A\(.*\)B.*/\1/'`" + pac_validRealKinds="`echo $tmp | sed -e 's/.*C\(.*\)D.*/\1/'`" + PAC_FC_MAX_REAL_PRECISION="`echo $tmp | sed -e 's/.*E\(.*\)F.*/\1/'`" PAC_FC_ALL_INTEGER_KINDS="{`echo $pac_validIntKinds | sed -e 's/ /,/g'`}" PAC_FC_ALL_REAL_KINDS="{`echo $pac_validRealKinds | sed -e 's/ /,/g'`}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran INTEGER KINDs" >&5 @@ -7098,6 +7132,10 @@ $as_echo "$PAC_FC_ALL_INTEGER_KINDS" >&6; } $as_echo_n "checking for Fortran REAL KINDs... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAC_FC_ALL_REAL_KINDS" >&5 $as_echo "$PAC_FC_ALL_REAL_KINDS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran REALs maximum decimal precision" >&5 +$as_echo_n "checking for Fortran REALs maximum decimal precision... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAC_FC_MAX_REAL_PRECISION" >&5 +$as_echo "$PAC_FC_MAX_REAL_PRECISION" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Error" >&5 $as_echo "Error" >&6; } @@ -7137,19 +7175,21 @@ rm -f pac_fconftest.out cat > conftest.$ac_ext <<_ACEOF - program main - integer a - real b - double precision c - open(8, file="pac_fconftest.out", form="formatted") - write(8,*) sizeof(a) - write(8,*) kind(a) - write(8,*) sizeof(b) - write(8,*) kind(b) - write(8,*) sizeof(c) - write(8,*) kind(c) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + INTEGER a + REAL b + DOUBLE PRECISION c + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,*) $FC_SIZEOF_A + WRITE(8,*) kind(a) + WRITE(8,*) $FC_SIZEOF_B + WRITE(8,*) kind(b) + WRITE(8,*) $FC_SIZEOF_C + WRITE(8,*) kind(c) + CLOSE(8) + END _ACEOF @@ -7208,31 +7248,43 @@ else PROGRAM main IMPLICIT NONE - INTEGER :: ik, k, lastkind + INTEGER :: ik, k, lastkind, max_decimal_prec lastkind=SELECTED_INT_KIND(1) - OPEN(8, FILE="pac_fconftest.out", form="formatted") - WRITE(8,'("ik:")',ADVANCE='NO') ! Find integer KINDs - DO ik=2,30 + OPEN(8, FILE='pac_fconftest.out', form='formatted') + WRITE(8,'(A)',ADVANCE='NO') 'A' ! Find integer KINDs + DO ik=2,36 k = SELECTED_INT_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' ENDIF IF (k .LE. 0) EXIT ENDDO - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " - WRITE(8,'(/)') - WRITE(8,'("rk:")',ADVANCE='NO') ! Find real KINDs + IF (lastkind.NE.-1) THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'B ' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'B ' + ENDIF + WRITE(8,'(A)',ADVANCE='NO') 'C' ! Find real KINDs lastkind=SELECTED_REAL_KIND(1) - DO ik=2,30 + max_decimal_prec = 1 + DO ik=2,36 k = SELECTED_REAL_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' + max_decimal_prec = ik ENDIF IF (k .LE. 0) EXIT ENDDO - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " + IF (lastkind.NE.-1)THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'D' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'D' + ENDIF + WRITE(8,'(A,I0,A)',ADVANCE='NO') ' E',max_decimal_prec,'F' END @@ -7242,8 +7294,11 @@ if ac_fn_fc_try_run "$LINENO"; then : if test -s pac_fconftest.out ; then - pac_validIntKinds="`sed -n -e 's/^.*ik://p' pac_fconftest.out`" - pac_validRealKinds="`sed -n -e 's/^.*rk://p' pac_fconftest.out`" + + tmp="`cat pac_fconftest.out`" + pac_validIntKinds="`echo $tmp | sed -e 's/.*A\(.*\)B.*/\1/'`" + pac_validRealKinds="`echo $tmp | sed -e 's/.*C\(.*\)D.*/\1/'`" + PAC_FC_MAX_REAL_PRECISION="`echo $tmp | sed -e 's/.*E\(.*\)F.*/\1/'`" PAC_FC_ALL_INTEGER_KINDS="{`echo $pac_validIntKinds | sed -e 's/ /,/g'`}" PAC_FC_ALL_REAL_KINDS="{`echo $pac_validRealKinds | sed -e 's/ /,/g'`}" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran INTEGER KINDs" >&5 @@ -7254,6 +7309,10 @@ $as_echo "$PAC_FC_ALL_INTEGER_KINDS" >&6; } $as_echo_n "checking for Fortran REAL KINDs... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAC_FC_ALL_REAL_KINDS" >&5 $as_echo "$PAC_FC_ALL_REAL_KINDS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fortran REALs maximum decimal precision" >&5 +$as_echo_n "checking for Fortran REALs maximum decimal precision... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PAC_FC_MAX_REAL_PRECISION" >&5 +$as_echo "$PAC_FC_MAX_REAL_PRECISION" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: Error" >&5 $as_echo "Error" >&6; } @@ -7294,12 +7353,14 @@ for kind in $pac_validIntKinds; do cat > conftest.$ac_ext <<_ACEOF - program main - integer (kind=$kind) a - open(8, file="pac_fconftest.out", form="formatted") - write(8,'(I0)') sizeof(a) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + INTEGER (KIND=$kind) a + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,'(I0)') $FC_SIZEOF_A + CLOSE(8) + END _ACEOF @@ -7354,12 +7415,14 @@ for kind in $pac_validRealKinds; do cat > conftest.$ac_ext <<_ACEOF - program main - REAL (kind=$kind) :: a - open(8, file="pac_fconftest.out", form="formatted") - write(8,'(I0)') sizeof(a) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + REAL (KIND=$kind) :: a + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,'(I0)') $FC_SIZEOF_A + CLOSE(8) + END _ACEOF @@ -7412,6 +7475,7 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu + ## Setting definition if there is a 16 byte fortran integer if `echo $PAC_FC_ALL_INTEGER_KINDS_SIZEOF | grep '16' >/dev/null`; then HAVE_Fortran_INTEGER_SIZEOF_16="1" @@ -7431,10 +7495,6 @@ $as_echo "#define HAVE_Fortran_INTEGER_SIZEOF_16 0" >>confdefs.h ##PAC_FC_AVAIL_INTEGER_MODELS - ## If neither intrinsic functions SIZEOF or STORAGE_SIZE is available then stop configure with an error - if test "X$HAVE_SIZEOF_FORTRAN" = "Xno" && test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xno"; then - as_fn_error $? "Fortran compiler requires either intrinsic functions SIZEOF or STORAGE_SIZE" "$LINENO" 5 - fi if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then diff --git a/configure.ac b/configure.ac index d5e0919b1d..ce5c8cdb61 100644 --- a/configure.ac +++ b/configure.ac @@ -429,6 +429,24 @@ if test "X$HDF_FORTRAN" = "Xyes"; then ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE" PAC_PROG_FC_STORAGE_SIZE + + ## Set the sizeof function for use later in the fortran tests + if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes";then + FC_SIZEOF_A="STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + FC_SIZEOF_B="STORAGE_SIZE(b, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + FC_SIZEOF_C="STORAGE_SIZE(c, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)" + else + if test "X$HAVE_SIZEOF_FORTRAN" = "Xyes";then + FC_SIZEOF_A="SIZEOF(a)" + FC_SIZEOF_B="SIZEOF(a)" + FC_SIZEOF_C="SIZEOF(a)" + else + ## If neither intrinsic functions SIZEOF or STORAGE_SIZE is available then stop configure with an error + AC_MSG_ERROR([Fortran compiler requires either intrinsic functions SIZEOF or STORAGE_SIZE]) + fi + fi + + ## See if C_LONG_DOUBLE is available, and if it is different from C_DOUBLE PAC_PROG_FC_HAVE_C_LONG_DOUBLE @@ -442,6 +460,7 @@ if test "X$HDF_FORTRAN" = "Xyes"; then PAC_FC_SIZEOF_REAL_KINDS AC_SUBST([PAC_FC_ALL_REAL_KINDS]) + AC_SUBST([PAC_FC_MAX_REAL_PRECISION]) AC_SUBST([PAC_FC_ALL_INTEGER_KINDS]) AC_SUBST([PAC_FC_ALL_REAL_KINDS_SIZEOF]) AC_SUBST([PAC_FC_ALL_INTEGER_KINDS_SIZEOF]) @@ -467,11 +486,7 @@ if test "X$HDF_FORTRAN" = "Xyes"; then ##fi ##PAC_FC_AVAIL_INTEGER_MODELS - - ## If neither intrinsic functions SIZEOF or STORAGE_SIZE is available then stop configure with an error - if test "X$HAVE_SIZEOF_FORTRAN" = "Xno" && test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xno"; then - AC_MSG_ERROR([Fortran compiler requires either intrinsic functions SIZEOF or STORAGE_SIZE]) - fi + if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then AC_DEFINE([FORTRAN_HAVE_STORAGE_SIZE], [1], [Define if we have Fortran intrinsic STORAGE_SIZE]) diff --git a/examples/Makefile.in b/examples/Makefile.in index 3140a07c45..29e414b65d 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -464,6 +464,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/fortran/Makefile.in b/fortran/Makefile.in index 8359314615..5fd05e7874 100644 --- a/fortran/Makefile.in +++ b/fortran/Makefile.in @@ -520,6 +520,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in index bc82f9ff2f..5db1685242 100644 --- a/fortran/examples/Makefile.in +++ b/fortran/examples/Makefile.in @@ -464,6 +464,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 03db5484f4..531734648c 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -27,7 +27,13 @@ if (H5_HAVE_PARALLEL) set (CMAKE_H5_HAVE_PARALLEL 1) endif (H5_HAVE_PARALLEL) +set (CMAKE_H5_HAVE_FLOAT128 0) +if (HAVE_FLOAT128) + set (CMAKE_H5_HAVE_FLOAT128 1) +endif(HAVE_FLOAT128) + configure_file (${HDF5_F90_SRC_SOURCE_DIR}/H5config_f.inc.cmake ${CMAKE_BINARY_DIR}/H5config_f.inc @ONLY) +configure_file (${HDF5_F90_SRC_SOURCE_DIR}/H5fort_type_defines.h.in ${HDF5_F90_BINARY_DIR}/H5fort_type_defines.h @ONLY) #----------------------------------------------------------------------------- # Setup the Fortran auto-detection utilities diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index f4090cc71c..aba9d1baf7 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -391,7 +391,7 @@ CONTAINS h5_type = H5T_NATIVE_REAL_C_DOUBLE ELSE IF(kind.EQ.Fortran_REAL_C_LONG_DOUBLE)THEN h5_type = H5T_NATIVE_REAL_C_LONG_DOUBLE -#if H5_HAVE_FLOAT128!=0 +#if H5_PAC_FC_MAX_REAL_PRECISION > 28 ELSE IF(kind.EQ.Fortran_REAL_C_FLOAT128)THEN h5_type = H5T_NATIVE_FLOAT_128 #endif diff --git a/fortran/src/H5config_f.inc.cmake b/fortran/src/H5config_f.inc.cmake index cb1d9e828a..9fbc987a8f 100644 --- a/fortran/src/H5config_f.inc.cmake +++ b/fortran/src/H5config_f.inc.cmake @@ -28,7 +28,7 @@ #undef H5_FORTRAN_HAVE_C_SIZEOF #endif -! Define if the intrinsic function FORTRAN_HAVE_C_LONG_DOUBLE exists +! Define if the intrinsic C_LONG_DOUBLE exists #define H5_FORTRAN_HAVE_C_LONG_DOUBLE @FORTRAN_HAVE_C_LONG_DOUBLE@ #if H5_FORTRAN_HAVE_C_LONG_DOUBLE==0 diff --git a/fortran/src/H5config_f.inc.in b/fortran/src/H5config_f.inc.in index b227c13266..a28480cf40 100644 --- a/fortran/src/H5config_f.inc.in +++ b/fortran/src/H5config_f.inc.in @@ -24,8 +24,8 @@ ! Define the size of C's long double #undef SIZEOF_LONG_DOUBLE -! Define if the C intrinsic __FLOAT128 exists -#undef HAVE_FLOAT128 +! Define the maximum decimal precision for reals +#undef PAC_FC_MAX_REAL_PRECISION ! Define if INTEGER*16 is available #undef HAVE_Fortran_INTEGER_SIZEOF_16 diff --git a/fortran/src/H5fort_type_defines.h.in b/fortran/src/H5fort_type_defines.h.in index 9e8015cfcd..dc2fc940e5 100644 --- a/fortran/src/H5fort_type_defines.h.in +++ b/fortran/src/H5fort_type_defines.h.in @@ -11,6 +11,7 @@ #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 C_LONG_DOUBLE_KIND 10 #define C_LONG_DOUBLE_SIZEOF 12 diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c index 2067f607e3..5ac5c803cb 100644 --- a/fortran/src/H5match_types.c +++ b/fortran/src/H5match_types.c @@ -206,28 +206,28 @@ int main(void) /* (b) Define c_float_x */ - /* make sure we find long double first before checking for __float128 - * ideally we need to match precision instead of matching sizeof */ - - int found_longdb = 0; + int found_long_double = 0; for(i=0;i< H5_FORTRAN_NUM_REAL_KINDS;i++) { -#ifdef H5_HAVE_FLOAT128 - if(sizeof(__float128) == RealKinds_SizeOf[i] && found_longdb == 1) { - writeTypedef("float", "__float128", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT128"); - } else -#endif - if(sizeof(long double) == RealKinds_SizeOf[i]) { - found_longdb = 1; - writeTypedef("float", "long double", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_LONG_DOUBLE"); + + if (sizeof(float) == RealKinds_SizeOf[i]) { + writeTypedef("float", "float", RealKinds[i]); + 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"); - } else if(sizeof(float) == RealKinds_SizeOf[i]) { - writeTypedef("float", "float", RealKinds[i]); - strcpy(Real_C_TYPES[i], "C_FLOAT"); - } else { + } 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; + } +#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"); + } +#endif + else { printf(" **** HDF5 WARNING ****/n"); printf("Fortran REAL is %d bytes, but no corresponding C floating type exists\n",RealKinds_SizeOf[i]); printf("Fortran Interfaces for Fortran REALs of %d bytes will not exist\n",RealKinds_SizeOf[i]); diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 8aea063b6c..eaf0244f96 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -565,6 +565,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in index a8a207e87a..eb132fbaa6 100644 --- a/fortran/test/Makefile.in +++ b/fortran/test/Makefile.in @@ -576,6 +576,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in index 000d2f0302..3b924f21fe 100644 --- a/fortran/testpar/Makefile.in +++ b/fortran/testpar/Makefile.in @@ -516,6 +516,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/Makefile.in b/hl/Makefile.in index b9291d0a59..b845fbfe47 100644 --- a/hl/Makefile.in +++ b/hl/Makefile.in @@ -520,6 +520,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/c++/Makefile.in b/hl/c++/Makefile.in index 8593085d12..cc050171cf 100644 --- a/hl/c++/Makefile.in +++ b/hl/c++/Makefile.in @@ -516,6 +516,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in index 66333393fe..2867e2bbf3 100644 --- a/hl/c++/examples/Makefile.in +++ b/hl/c++/examples/Makefile.in @@ -463,6 +463,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 1377756d58..50e3d3f4fb 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -519,6 +519,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/c++/test/Makefile.in b/hl/c++/test/Makefile.in index cae4d25194..9ef27d1f22 100644 --- a/hl/c++/test/Makefile.in +++ b/hl/c++/test/Makefile.in @@ -516,6 +516,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in index b21c80ded0..fe03288e48 100644 --- a/hl/examples/Makefile.in +++ b/hl/examples/Makefile.in @@ -463,6 +463,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in index 192b062510..296d21a178 100644 --- a/hl/fortran/Makefile.in +++ b/hl/fortran/Makefile.in @@ -520,6 +520,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in index f974fad681..c905cb0f23 100644 --- a/hl/fortran/examples/Makefile.in +++ b/hl/fortran/examples/Makefile.in @@ -463,6 +463,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index eb8865e71a..9a6511abe6 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -540,6 +540,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in index 1a0694972b..7d41c72c40 100644 --- a/hl/fortran/test/Makefile.in +++ b/hl/fortran/test/Makefile.in @@ -528,6 +528,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 0f6187dead..6d40b4f8c1 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -518,6 +518,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in index dc63ead5e2..b73370c0a6 100644 --- a/hl/test/Makefile.in +++ b/hl/test/Makefile.in @@ -555,6 +555,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in index d133ddb4bf..9322ef4a5e 100644 --- a/hl/tools/Makefile.in +++ b/hl/tools/Makefile.in @@ -517,6 +517,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in index 7213967a2a..4373a064b6 100644 --- a/hl/tools/gif2h5/Makefile.in +++ b/hl/tools/gif2h5/Makefile.in @@ -531,6 +531,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/m4/aclocal_fc.m4 b/m4/aclocal_fc.m4 index ea773b868c..35e55f06c2 100644 --- a/m4/aclocal_fc.m4 +++ b/m4/aclocal_fc.m4 @@ -310,48 +310,69 @@ AC_RUN_IFELSE([ AC_LANG_SOURCE([ PROGRAM main IMPLICIT NONE - INTEGER :: ik, k, lastkind + INTEGER :: ik, k, lastkind, max_decimal_prec lastkind=SELECTED_INT_KIND(1) - OPEN(8, FILE="pac_fconftest.out", form="formatted") - WRITE(8,'("ik:")',ADVANCE='NO') ! Find integer KINDs - DO ik=2,30 + OPEN(8, FILE='pac_fconftest.out', form='formatted') + WRITE(8,'(A)',ADVANCE='NO') 'A' ! Find integer KINDs + DO ik=2,36 k = SELECTED_INT_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' ENDIF IF (k .LE. 0) EXIT ENDDO - dnl IF (k.NE.lastkind) WRITE(8,'(I0,A)',ADVANCE='NO') k, " " - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " - WRITE(8,'(/)') - WRITE(8,'("rk:")',ADVANCE='NO') ! Find real KINDs + IF (lastkind.NE.-1) THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'B ' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'B ' + ENDIF + WRITE(8,'(A)',ADVANCE='NO') 'C' ! Find real KINDs lastkind=SELECTED_REAL_KIND(1) - DO ik=2,30 + max_decimal_prec = 1 + DO ik=2,36 k = SELECTED_REAL_KIND(ik) IF (k .NE. lastkind) THEN - WRITE(8,'(I0,A)',ADVANCE='NO') lastkind," " + WRITE(8,'(I0)',ADVANCE='NO') lastkind lastkind = k + IF(k.GT.0) WRITE(8,'(A)',ADVANCE='NO') ' ' + max_decimal_prec = ik ENDIF IF (k .LE. 0) EXIT ENDDO - IF (lastkind.NE.-1) WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, " " - dnl IF (k.NE.lastkind) WRITE(8,'(I0,A)',ADVANCE='NO') k, " " - + IF (lastkind.NE.-1)THEN + WRITE(8,'(I0,A)',ADVANCE='NO') lastkind, 'D' + ELSE + WRITE(8,'(A)',ADVANCE='NO') 'D' + ENDIF + WRITE(8,'(A,I0,A)',ADVANCE='NO') ' E',max_decimal_prec,'F' + END ]) ],[ if test -s pac_fconftest.out ; then - - dnl pac_flag="`sed -e 's/ */ /g' pac_fconftest.out | tr '\012' ','`" - pac_validIntKinds="`sed -n -e 's/^.*ik://p' pac_fconftest.out`" - pac_validRealKinds="`sed -n -e 's/^.*rk://p' pac_fconftest.out`" + + dnl The output from the above program will be something like + dnl A1 4 8 16B C4 8 10D E30F where: + dnl - valid integer kinds are the numbers between A and B + dnl - valid real kinds are the numbers between A and B + dnl - max decimal precision for reals is the number between E and F + + dnl pac_validIntKinds="`sed -n -e 's/^.*ik://p' pac_fconftest.out`" + dnl pac_validRealKinds="`sed -n -e 's/^.*rk://p' pac_fconftest.out`" + tmp="`cat pac_fconftest.out`" + pac_validIntKinds="`echo $tmp | sed -e 's/.*A\(.*\)B.*/\1/'`" + pac_validRealKinds="`echo $tmp | sed -e 's/.*C\(.*\)D.*/\1/'`" + PAC_FC_MAX_REAL_PRECISION="`echo $tmp | sed -e 's/.*E\(.*\)F.*/\1/'`" PAC_FC_ALL_INTEGER_KINDS="{`echo $pac_validIntKinds | sed -e 's/ /,/g'`}" PAC_FC_ALL_REAL_KINDS="{`echo $pac_validRealKinds | sed -e 's/ /,/g'`}" AC_MSG_CHECKING([for Fortran INTEGER KINDs]) AC_MSG_RESULT([$PAC_FC_ALL_INTEGER_KINDS]) AC_MSG_CHECKING([for Fortran REAL KINDs]) AC_MSG_RESULT([$PAC_FC_ALL_REAL_KINDS]) + AC_MSG_CHECKING([for Fortran REALs maximum decimal precision]) + AC_MSG_RESULT([$PAC_FC_MAX_REAL_PRECISION]) else AC_MSG_RESULT([Error]) AC_MSG_WARN([No output from test program!]) @@ -369,7 +390,6 @@ AC_RUN_IFELSE([ ]) AC_LANG_POP([Fortran]) ]) - AC_DEFUN([PAC_FC_SIZEOF_INT_KINDS],[ AC_REQUIRE([PAC_FC_AVAIL_KINDS]) AC_MSG_CHECKING([sizeof of available INTEGER KINDs]) @@ -379,12 +399,14 @@ rm -f pac_fconftest.out for kind in $pac_validIntKinds; do AC_LANG_CONFTEST([ AC_LANG_SOURCE([ - program main - integer (kind=$kind) a - open(8, file="pac_fconftest.out", form="formatted") - write(8,'(I0)') sizeof(a) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + INTEGER (KIND=$kind) a + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,'(I0)') $FC_SIZEOF_A + CLOSE(8) + END ]) ]) AC_RUN_IFELSE([],[ @@ -415,12 +437,14 @@ rm -f pac_fconftest.out for kind in $pac_validRealKinds; do AC_LANG_CONFTEST([ AC_LANG_SOURCE([ - program main - REAL (kind=$kind) :: a - open(8, file="pac_fconftest.out", form="formatted") - write(8,'(I0)') sizeof(a) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + REAL (KIND=$kind) :: a + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,'(I0)') $FC_SIZEOF_A + CLOSE(8) + END ]) ]) AC_RUN_IFELSE([],[ @@ -450,19 +474,21 @@ pack_int_sizeof="" rm -f pac_fconftest.out AC_LANG_CONFTEST([ AC_LANG_SOURCE([ - program main - integer a - real b - double precision c - open(8, file="pac_fconftest.out", form="formatted") - write(8,*) sizeof(a) - write(8,*) kind(a) - write(8,*) sizeof(b) - write(8,*) kind(b) - write(8,*) sizeof(c) - write(8,*) kind(c) - close(8) - end + PROGRAM main + USE ISO_C_BINDING + IMPLICIT NONE + INTEGER a + REAL b + DOUBLE PRECISION c + OPEN(8, FILE="pac_fconftest.out", FORM="formatted") + WRITE(8,*) $FC_SIZEOF_A + WRITE(8,*) kind(a) + WRITE(8,*) $FC_SIZEOF_B + WRITE(8,*) kind(b) + WRITE(8,*) $FC_SIZEOF_C + WRITE(8,*) kind(c) + CLOSE(8) + END ]) ]) AC_RUN_IFELSE([],[ diff --git a/src/Makefile.in b/src/Makefile.in index 80cfc82549..4e9445a24d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -579,6 +579,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/test/Makefile.in b/test/Makefile.in index 579252af42..06cd5c43e5 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -923,6 +923,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/testpar/Makefile.in b/testpar/Makefile.in index 8229729a04..79d0844078 100644 --- a/testpar/Makefile.in +++ b/testpar/Makefile.in @@ -546,6 +546,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/Makefile.in b/tools/Makefile.in index e101d75081..b4049038a3 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -517,6 +517,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5copy/Makefile.in b/tools/h5copy/Makefile.in index a6dd4834a7..01e1393129 100644 --- a/tools/h5copy/Makefile.in +++ b/tools/h5copy/Makefile.in @@ -525,6 +525,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5diff/Makefile.in b/tools/h5diff/Makefile.in index ff49111e37..9dffa38657 100644 --- a/tools/h5diff/Makefile.in +++ b/tools/h5diff/Makefile.in @@ -532,6 +532,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5dump/Makefile.in b/tools/h5dump/Makefile.in index b7539fb437..1cfca3a041 100644 --- a/tools/h5dump/Makefile.in +++ b/tools/h5dump/Makefile.in @@ -531,6 +531,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5import/Makefile.in b/tools/h5import/Makefile.in index 7dc4adf638..22994fe576 100644 --- a/tools/h5import/Makefile.in +++ b/tools/h5import/Makefile.in @@ -525,6 +525,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5jam/Makefile.in b/tools/h5jam/Makefile.in index 3e1946c6a8..cc04a206b7 100644 --- a/tools/h5jam/Makefile.in +++ b/tools/h5jam/Makefile.in @@ -537,6 +537,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5ls/Makefile.in b/tools/h5ls/Makefile.in index 9b7c8baf9a..e6d283e6fa 100644 --- a/tools/h5ls/Makefile.in +++ b/tools/h5ls/Makefile.in @@ -517,6 +517,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in index 78ff9ffb45..4225a4ff6e 100644 --- a/tools/h5repack/Makefile.in +++ b/tools/h5repack/Makefile.in @@ -549,6 +549,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/h5stat/Makefile.in b/tools/h5stat/Makefile.in index 5efd8b89ca..6ff4d0af29 100644 --- a/tools/h5stat/Makefile.in +++ b/tools/h5stat/Makefile.in @@ -527,6 +527,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/lib/Makefile.in b/tools/lib/Makefile.in index 4d33c14fd4..fdccf62b6e 100644 --- a/tools/lib/Makefile.in +++ b/tools/lib/Makefile.in @@ -514,6 +514,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/misc/Makefile.in b/tools/misc/Makefile.in index 498dca67bb..07c88d0a11 100644 --- a/tools/misc/Makefile.in +++ b/tools/misc/Makefile.in @@ -552,6 +552,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@ diff --git a/tools/perform/Makefile.in b/tools/perform/Makefile.in index 28aae68f32..367145f01c 100644 --- a/tools/perform/Makefile.in +++ b/tools/perform/Makefile.in @@ -556,6 +556,7 @@ PAC_FC_ALL_INTEGER_KINDS = @PAC_FC_ALL_INTEGER_KINDS@ PAC_FC_ALL_INTEGER_KINDS_SIZEOF = @PAC_FC_ALL_INTEGER_KINDS_SIZEOF@ PAC_FC_ALL_REAL_KINDS = @PAC_FC_ALL_REAL_KINDS@ PAC_FC_ALL_REAL_KINDS_SIZEOF = @PAC_FC_ALL_REAL_KINDS_SIZEOF@ +PAC_FC_MAX_REAL_PRECISION = @PAC_FC_MAX_REAL_PRECISION@ PAC_FORTRAN_NATIVE_DOUBLE_KIND = @PAC_FORTRAN_NATIVE_DOUBLE_KIND@ PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF = @PAC_FORTRAN_NATIVE_DOUBLE_SIZEOF@ PAC_FORTRAN_NATIVE_INTEGER_KIND = @PAC_FORTRAN_NATIVE_INTEGER_KIND@