Innovazioni stilistiche: Dichiarazioni

  • Pur essendo supportate per compatibilità le istruzioni dichiarative del Fortran 77, in Fortran 90 è consigliato dichiarare le variabili usando la nuova sintassi, in cui il nome del tipo è separato dall'elenco delle variabili da ::; in questa maniera è possibile aggiungere al tipo eventuali attributi, alcuni dei quali sono presentati qua, mentre altri saranno introdotti in seguito.
  • Anche le variabili, oltre ovviamente alle costanti PARAMETER, possono essere inizializzate direttamente assieme alla dichiarazione. Le variabili così inizializzate ricevono automaticamente l'attributo SAVE, a differenza del linguaggio C.
  • La possibilità di inizializzare le variabili con l'istruzione DATA è rimasta per compatibilità, ma si consiglia di usare l'inizializzazione integrata nella dichiarazione.
  • Per tipi di variabili INTEGER, REAL e COMPLEX è possibile specificare anche il KIND, cioè la dimensione in memoria di un elemento e quindi la precisione numerica e/o l'estensione dell'intervallo numerico rappresentabile dalla variabile in questione, tramite le opportune funzioni intrinseche e gli attributi relativi. Da notare che il numero che specifica il KIND deve essere una costante nota al momento della compilazione.
IMPLICIT NONE

INTEGER :: i, j, k
INTEGER, PARAMETER :: a=5
INTEGER :: b(2) = (/3,6/)
REAL, SAVE :: x=3.4, z(a)
DOUBLE PRECISION :: xx
CHARACTER(LEN=40) :: nome='Stanislas-Xavier'

INTEGER, PARAMETER :: &
 myint=SELECTED_INT_KIND(3), &      ! INT in grado di rappresentare x
                                    ! -103<x<103
 myreal=SELECTED_REAL_KIND(8,32), & ! REAL in grado di rappresentare x
                                    ! -1032<x<1032
                                    ! con 8 cifre significative
 defint=KIND(1), &                  ! default INT
 defreal=KIND(1.0E0), &             ! default REAL
 defdble=KIND(1.0D0), &             ! default DOUBLE PRECISION
INTEGER(KIND=myint) :: i1
REAL(KIND=myreal) :: r1

i1 = INT(x, KIND=myint)
r1 = 0.7_myreal + REAL(a, KIND=myreal)


La possibilità di parametrizzare il KIND, usata in associazione con i moduli facilita, soprattutto nel caso di grandi progetti software, la gestione di diversi kind contemporaneamente e rende possibile cambiarli al momento della compilazione intervenendo in un solo punto del codice.
Si sconsiglia l'uso non standard dei tipi INTEGER*4 e compagnia, non supportati da tutti i compilatori.
Si consiglia infine l'uso di IMPLICIT NONE che permette un maggior controllo sugli errori e una miglior documentazione del programma a scapito della sua prolissità.