Open naromero77 opened 4 years ago
DFLOAT
is not a standard intrinsic procedure of Fortran. DBLE(n)
and REAL(n,KIND=KIND(0.0d0))
are standard equivalents for integer n
; so is (0.0d0+(n))
. We'll probably support DFLOAT
in f18 for better portability, but new code should avoid it.
Thanks for clarifying the correct way to do this. So far, I have only encountered this construct in one DOE code -- a rather old one at that.
If we are prioritizing non-standard extensions, it would be more important to get this one implemented sizeof
:
https://github.com/flang-compiler/f18/issues/1020
As now I have found several DOE codes that make use of it.
This
dfloat
intrinsic function appears frequently in a DOE code. Here is a reduced test case that shows a canonical example of how it is used:Is this part of the Fortran standard or an extension? https://gcc.gnu.org/onlinedocs/gcc-4.4.1/gfortran/DFLOAT.html https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-dfloat
Is this really even necessary to have such an intrinsic? Wouldn't a compiler's type promotion heuristics automatically handle this?