summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5match_types.c
diff options
context:
space:
mode:
authorScot Breitenfeld <brtnfld@hdfgroup.org>2015-06-10 19:15:08 (GMT)
committerScot Breitenfeld <brtnfld@hdfgroup.org>2015-06-10 19:15:08 (GMT)
commitf2d14c76b8a8e7c09285fff9db25b101a84354b0 (patch)
tree3140de51fe2de7881be06500a426f51e8b288dea /fortran/src/H5match_types.c
parent202ea3747ebc1bca71c455ca083492960f032ec5 (diff)
downloadhdf5-f2d14c76b8a8e7c09285fff9db25b101a84354b0.zip
hdf5-f2d14c76b8a8e7c09285fff9db25b101a84354b0.tar.gz
hdf5-f2d14c76b8a8e7c09285fff9db25b101a84354b0.tar.bz2
[svn-r27186] added fix for jam with promoted reals and integers
Diffstat (limited to 'fortran/src/H5match_types.c')
-rw-r--r--fortran/src/H5match_types.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index cac50ab..b0e682d 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -488,6 +488,16 @@ int main(void)
writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_DOUBLE");
else if(H5_FORTRAN_NATIVE_DOUBLE_SIZEOF == sizeof(float))
writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT");
+#ifdef H5_HAVE_FLOAT128
+ /* Don't select a higher precision than Fortran can support */
+ else if(sizeof(__float128) == H5_FORTRAN_NATIVE_DOUBLE_SIZEOF && H5_PAC_FC_MAX_REAL_PRECISION > 28) {
+ writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT128");
+ }
+#else
+ else if(sizeof(long double) == H5_FORTRAN_NATIVE_DOUBLE_SIZEOF && H5_PAC_FC_MAX_REAL_PRECISION > 28) {
+ writeToFilesChr("float","Fortran_DOUBLE", "double_f", H5_FORTRAN_NATIVE_DOUBLE_KIND, "C_FLOAT128");
+ }
+#endif
else {
/* /\* No exact match, choose the next highest *\/ */
/* if(H5_FORTRAN_NATIVE_DOUBLE_SIZEOF > sizeof(long double)) */