https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113165
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P5 CC| |kargl at gcc dot gnu.org Severity|normal |enhancement --- Comment #1 from kargl at gcc dot gnu.org --- You are hitting a run-on error caused by the first reported error. If you are compiling old code or code you are currently writing or code with a questionable pedigree, use the -fmax-errors=1 option. For the record, your bug report is confusing ;-) Because it includes error messages associated with your attached example: program multDecls double precision a,b,c,d,f,g integer i,j,k,l double precision d,q,r ! 'd' was already declared as double prec. d = 65536.0d0 r = sqrt(d) print *,' r = ',r,' p = ',p end program but you refer to netlib code with a duplicate 't' declaration. Due to the first error about 'd', the rest of the declaration is discarded. The result is that 'q,r' have not been declared and so have implicit types. The option '-fimplicit-none' is telling you about this problem. Fix the first error and the run-on errors go away. Note, "Error: Symbol 'd' at (1) already has basic type of REAL" simply means that 'd' has been typed as a REAL entity irrespective of the kind. It does not mean that 'd' has been given a single precision type of REAL(4). I suppose someone could change the error message to a more generic "Error: Symbol 'd' at (1) has already been declared." or some such wording.