The different uses for implicit typing and no implicit typing are described here.
The IMPLICIT statement can also indicate that no implicit typing rules apply in a program unit.
An IMPLICIT statement specifies a type and size for all user-defined names that begin with any letter, either a single letter or in a range of letters, appearing in the specification.
An IMPLICIT statement does not change the type of the intrinsic functions.
An IMPLICIT statement applies only to the program unit that contains it.
A program unit can contain more than one IMPLICIT statement.
IMPLICIT types for particular user names are overridden by a type statement.
Compiling with any of the options -dbl, -i2, -r8, or -xtypemap can alter the assumed size of names typed with an IMPLICIT statement that does not specify a size: IMPLICIT REAL (A-Z). See Chapter 2 and the Fortran User's Guide for details.
The second form of IMPLICIT specifies that no implicit typing should be done for user-defined names, and all user-defined names shall have their types declared explicitly.
If either IMPLICIT NONE or IMPLICIT UNDEFINED (A-Z) is specified, there cannot be any other IMPLICIT statement in the program unit.