Skip to content

COR001 implicit-typing ​

warning enabled by default

A module, program or external procedure has no implicit none.

Why ​

Without implicit none an undeclared or misspelled name silently becomes a new variable typed by its first letter (i-n integer, otherwise real). The program compiles and computes with garbage. implicit none in a module or program also covers every procedure they contain. An implicit statement mapping letters to types is reported too: it keeps implicit typing alive.

Reported ​

fortran
module solver
contains
  subroutine step(n)
    integer, intent(in) :: n
    itr = n + 1   ! typo of 'iter': a new implicit integer
  end subroutine step
end module solver

Preferred ​

fortran
module solver
implicit none
...

Suppressing ​

For one occurrence, with the reason on the same line (or alone on the line before the statement):

fortran
! fobis: ignore[COR001] <why this occurrence is fine>

For the whole project, ignore = COR001 in the fobos [lint] section.

References ​

Sections of the shipped knowledge packs behind this rule:

  • fortran-std:ch19-scope-association#key-concepts (fobis kb show fortran-std:ch19-scope-association#key-concepts)

Equivalent ​

Fortitude rule C001 (see Lint Rules).