Corso di Fortran 90/95

Il Fortran 90 introduce delle innovazioni radicali rispetto al Fortran 77 rendendo il Fortran un linguaggio ancora moderno e tale da rendere immotivato il disprezzo per esso e per chi lo usa da parte degli informatici puri.

Un punto di partenza per scrivere in F90 può essere prendere un vecchio codice in F77 e convertirlo nella sintassi F90 con uno degli strumenti che abbiamo installato sulle workstation linux del SIM: to_f90, convertf90 o f2f.pl.


Il Fortran 95 è una revisione di F90 che rende fuorilegge alcune caratteristiche F77 già dichiarate obsolescenti in F90 quali:

Caratteristica fuorileggeAlternativa proposta
Cicli DO con numeri realiCiclo con numeri interi + un po' di aritmetica
Istruzione PAUSEREAD*
Istruzione ASSIGN e uso di GOTO assegnatoProcedura interna, introdotta da CONTAINS
Istruzione ASSIGN e uso di FORMAT assegnatoUso di una variabile (anziché di una costante) carattere per il formato
Descrittore di formato H (Hollerith)Costante carattere nel descrittore di formato
Possibilità di saltare ad un ENDIF dall'esterno del blocco IF10 CONTINUE dopo l'ENDIF

Esso definisce inoltre come "obsolescenti":

Caratteristica obsolescenteAlternativa proposta
IF aritmeticoCostrutto CASE
Terminazione di cicli DO senza ENDDO o CONTINUEENDDO
Indicatore di ritorno alternativo da una subroutine Costrutto CASE
GOTO calcolato Costrutto CASE
Statement function FUNCTION interna, introdotta da CONTAINS
Istruzione DATA tra le istruzioni eseguibili Spostarla tra le dichiarative
Funzioni che ritornano un valore di tipo CHARACTER assumed length ?
Codice sorgente in formato "fisso" a 72 colonne Formato free form
Dichiarazioni di variabili carattere nella forma CHARACTER*nCHARACTER (LEN=n)

In realtà la maggior parte dei compilatori F95 commerciali continua a supportare queste caratteristiche segnalandole con un warning in compilazione.

F95 introduce anche alcune novità di carattere secondario, parte delle quali saranno toccate da questo corso.

Visto lo stato dell'arte attuale, il consiglio è di cominciare a utilizzare anche le istruzioni F95 che ormai quasi tutti i compilatori supportano, a meno che non ci siano altre controindicazioni.

Un motivo "morale" in più per sentirsi liberi di usare il Fortran 90/95 è la disponibilità di un compilatore F95 free software all'interno della suite di compilatori GNU (gcc e compagnia) che, seppur non completo, è di buona qualità e già in grado di compilare codici F95 relativamente complessi.


Attualmente è in via di completamento la definizione dello standard Fortran 2003(±2?), che introduce fondamentali innovazioni nel campo della programmazione object oriented, nell'interfacciamento con il C, nella gestione degli errori floating point.

Esso, proabilmente, metterà fuori legge le caratteristiche già dichiarate come "obsolescenti" in F95, per cui è meglio abbandonarle fino da ora.