Split off from PR 39997. While normal variables are always implicitly typed - any variable needs to have a type -, external procedures are special: Either they are subroutines with no implicit type or implicitly typed functions
module m external foo ! real function or subroutine end module m subroutine one() use m implict none y = foo() ! Implicitly typed real function end subroutine one module m2 implicit none external foo ! subroutine due to implicit none end module m2 subroutine one() use m2 implict logical(1)(A-Z) y = foo() ! Invalid: Foo has no type due to implicit none end subroutine one See mail thread in the J3 mail list: http://j3-fortran.org/pipermail/j3/2009-May/002736.html Interpretation request at http://www.j3-fortran.org/doc/year/09/09-236r1.txt And only vaguely related c.l.f: http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/b3a7e94ddf6b8ff3 -- Summary: Implicit typing: Save implicit type for external procedures Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid, accepts-invalid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41083