From gfortran manual:
Set the default real type to an 8 byte wide type. This option also affects the kind of non-double real constants like 1.0. This option promotes the default width of “DOUBLE PRECISION” and double real constants like “1.d0” to 16 bytes if possible. If “-fdefault-double-8” is given along with “fdefault-real-8”, “DOUBLE PRECISION” and double real constants are not promoted. Unlike -freal-4-real-8, “fdefault-real-8” does not promote variables with explicit kind declarations.
REAL function seems to output KIND=8 result as well.
Well, this is not quite true. You’d need it to call an external subprogram which expects double precision argument if the actual parameter is not a double. Unless you mean using
REAL(x,KIND=KIND(1d0)) instead of