diff options
author | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-06-10 19:15:08 (GMT) |
---|---|---|
committer | Scot Breitenfeld <brtnfld@hdfgroup.org> | 2015-06-10 19:15:08 (GMT) |
commit | f2d14c76b8a8e7c09285fff9db25b101a84354b0 (patch) | |
tree | 3140de51fe2de7881be06500a426f51e8b288dea /fortran/src/H5match_types.c | |
parent | 202ea3747ebc1bca71c455ca083492960f032ec5 (diff) | |
download | hdf5-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.c | 10 |
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)) */ |