economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

Il Sondaggio

Quale versione del fortran utilizzi?

Guarda i risultati

Fortran 90

L'istruzione implicit none in Fortran 90

A cura di Giuseppe Ciaburro

Pubblicato il 21/04/2001

Come ci aiuta nella realizzazione dei programmi.

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.

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS