The diagnostic of the code below is rather "generic". A more verbose message would be preferable. Without RECURSIVE, gfortran gives "Error: Syntax error in data declaration".
$> cat foo.f90 RECURSIVE LOGICAL SUBROUTINE foo() END SUBROUTINE $> gfortran-svn -c -Wall -g foo.f90 foo.f90:1: RECURSIVE LOGICAL SUBROUTINE foo() 1 Error: Unclassifiable statement at (1) $> gfortran-svn -v gcc version 4.3.0 20061206 (experimental) -- Summary: improve diagnostic of RECURSIVE LOGICAL SUBROUTINE Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30107