https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79430
--- Comment #11 from Jürgen Reuter <juergen.reuter at desy dot de> --- (In reply to Steve Kargl from comment #10) > On Wed, Feb 08, 2017 at 07:32:53PM +0000, juergen.reuter at desy dot de > which may lead to conforming code suddening becoming nonconforming > due to violation of storage association. Interesting. Actually, we are not setting any flags using configure options, except for those that libtool sets for us as default (-g -O2). In our code, we use everywhere variables defined as real(kind=default) :: foo complex(kind=default) :: foo, and then we use a module kinds.f90 with the definitions: !!! available REAL kinds ! prec. ! ISO ! C integer, parameter :: single = 4 ! 1.. 6 ! real32 ! c_float integer, parameter :: double = 8 ! 7..15 ! real64 ! c_double integer, parameter :: extended = 10 ! 16..18 ! real128 ! c_long_double integer, parameter :: quadruple = 16 ! 19..33 ! -1 ! c_float128 When configuring with no flag or --with-precision=double, then in this file kind.f90 we set integer, parameter :: default = double configuring with --with-precision=extended sets integer, parameter :: default = extended and configuring with --with-precision=quadruple sets integer, parameter :: default = quadruple The integers above are determined during configure, depending on the compiler, and are always the same, only default is set depending on the configure option. Indeed, it looks as if kind=10 would be real128, but as you said this is wrong and was fixed by you (I guess it is not yet in the trunk, as of r245197 at least). For ifort we get !!! available REAL kinds ! prec. ! ISO ! C integer, parameter :: single = 4 ! 1.. 6 ! real32 ! c_float integer, parameter :: double = 8 ! 7..15 ! real64 ! c_double integer, parameter :: quadruple = 16 ! 16..33 ! real128 ! c_long_double and for NAG: !!! available REAL kinds ! prec. ! ISO ! C integer, parameter :: single = 1 ! 1.. 6 ! real32 ! c_float integer, parameter :: double = 2 ! 7..15 ! real64 ! c_double integer, parameter :: quadruple = 3 ! 16..31 ! real128 ! -1 (with a different range then gfortran and ifort) and for PGF !!! available REAL kinds ! prec. ! ISO ! C integer, parameter :: single = 4 ! 1.. 6 ! real32 ! c_float integer, parameter :: double = 8 ! 7..15 ! real64 ! c_double