Для полной ясности: полагаться на неявную типизацию многие не одобряют. По уважительной причине. Однако есть один случай, когда некоторые могут рассматривать неявную типизацию меньшее из двух зол.
Неявная типизация позволяет иметь объект, который имеет тип, имя которого недоступно в области:
implicit type(badexample) (d)
type badexample
integer :: neverever=4
end type badexample
call sub
contains
subroutine reallybad(badexample)
integer, optional :: badexample
! With the declaration above we can't declare a local variable of explicit
! type badexample:
! type(badexample) dontdothis
print*, dontdothis%neverever
end subroutine reallybad
end
На самом деле, это плохой предлог для использования неявной типизации. Тот, которого можно избежать с помощью других вариантов дизайна.
Конечно, в Fortran 77 нельзя использовать implicit none
.