Implicit none
Il Fortran 90 possiede una ulteriore istruzione di dichiarazione di tipo, la seguente: IMPLICIT NONE.
Il risultato dell'applicazione di questa istruzione è di disabilitare tutti gli elementi impliciti di digitazione
che sono previsti nel linguaggio Fortran.
Quando l'istruzione IMPLICIT NONE viene inclusa in un programma, qualsiasi variabile che non compare in una
dichiarazione esplicita di tipo è considerata un errore. L'istruzione IMPLICIT NONE va posta dopo l'istruzione
PROGRAM e prima di qualsiasi istruzione di dichiarazione di tipo.
Quando l'istruzione IMPLICIT NONE viene inclusa in un programma, il programmatore deve dichiarare esplicitamente
il tipo di ogni variabile del programma. A prima vista, questo potrebbe sembrare uno svantaggio in quanto
il programmatore deve svolgere più lavoro durante la stesura di un programma. Questa impressione iniziale risulta
fuorviante; l'uso di IMPLICIT NONE, infatti, offre parecchi vantaggi.
La maggior parte degli errori di programmazione sono rappresentati da semplici errori ortografici.
L'istruzione IMPLICIT NONE è in grado di catturare questi errori in fase di compilazione prima che possano
causare degli errori dificili da scoprire durante l'esecuzione.
Ad esempio consideriamo il seguente programma per il calcolo dell'area di un triangolo:
Program Triangolo
!Programma che valuta l'area del triangolo di lati a, b, c
implicit none
real ::a, b, c
print*, 'digita la lunghezza dei tre lati'
read*,a, b, c
print*, 'Area del triangolo=',trianglearea( a, b, c)
contains
function trianglearea( a, b, c)
real :: trianglearea
real, intent( in) :: a, b, c
real :: theta
real :: height
theta = acos( ( a**2 + b**2 - c**2 ) / ( 2.0 * a *b ) )
height= a * sin ( theta )
trianglearea = 0.5 * b * height
end function trianglearea
end program Triangolo
Avendo utilizzato l'istruzione implicit none se avessimo dimenticato di dichiarare la variabile a, in fase di
compilazione avremmo ottenuto il seguente messaggio di errore:
F90 -g -c -nowdir -o "D:\FORTRAN 90\triangolo\objs\triangolo.obj" -noconsole "D:\FORTRAN 90\triangolo\triangolo.f90"
cf90-113 error on line 9 of D:\FORTRAN 90\triangolo\triangolo.f90: IMPLICIT NONE is specified in the local scope,
therefore an explicit type must be specified for data object "A".
Il quale messaggio di errore ci dice immediatamente dove risiede il problema e per noi sarà più semplice
la correzione.
Il file .f90 relativo al programma suindicato è disponibile, se vi interessa cliccate.