La dichiarazione degli array in Fortran

La dichiarazione di un array

Per dichiarare un array in Fortran devo indicare tra parentesi tonde la dimensione dell'array, ossia il numero massimo n di elementi che può contenere.

INTEGER nome(n)

L'assegnazione dei dati in un array

Per assegnare un valore a un elemento dell'array, nell'assegnazione indico l'indice dell'elemento.

nome(1)=dato
nome(2)=dato
...

Ogni elemento dell'array è associato a un numero indice.

L'indice del primo elemento dell'array è uguale a 1.

Nota. Va fatta attenzione perché in altri linguaggi di programmazione l'indice di un array comincia con il numero 0. Nel linguaggio Fortran, invece, l'indice 0 restituisce un errore warning. Allo stesso modo se cerco di assegnare un elemento oltre la dimensione dichiarata dell'array il compilatore va in errore.

Un esempio pratico

Esempio 1 ( vettore numerico )

In questo programma creo un array numerico di tipo intero con 10 elementi.

Per semplicità lo chiamo vettore.

PROGRAM nome
INTEGER vettore(10)
vettore(1)=10
vettore(2)=20
WRITE(*,*) "v1 = ", vettore(1)
WRITE(*,*) "v2 = ", vettore(2)
END

Al primo elemento dell'array assegno il valore 10 mentre al secondo il valore 20.

L'output del programma è il seguente

v1 = 10
v2 = 20

Esempio 2 ( vettore stringa )

Per dichiarare un vettore stringa devo indicare sia la dimensione dell'array e sia la lunghezza massima ( numero di caratteri) della stringa in ogni elemento.

PROGRAM nome
CHARACTER(25) vettore(10)
vettore(1)='Roma'
vettore(2)='Milano'
WRITE(*,*) "v1 = ", vettore(1)
WRITE(*,*) "v2 = ", vettore(2)
END

In questo programma creo una variabile stringa ( vettore ) con 10 elementi.

Ogni elemento può contenere al massimo 25 caratteri.

Il risultato in output è il seguente.

v1 = Roma
v2 = Milano

Se la stringa da assegnare è più lunga della lunghezza massima dell'elemento, nell'operazione di assegnazione la stringa viene tagliata.

E così via.

L'istruzione DIMENSION

La dichiarazione di un array multidimensionale può essere effettuata anche tramite l'istruzione o l'attributo DIMENSION

Esempio

Questa istruzione crea una matrice quadrata con 20 righe e 20 colonne.

DIMENSION a(20,20)

Nella stessa istruzione posso elencare anche più variabili da dimensionare separandole con una virgola.

Per ciascuna variabile indico la dimensione nella parentesi tonda.

DIMENSION a(20,20), b(10,5)

Posso ottenere lo stesso risultato usando DIMENSION come attributo della dichiarazione di una variabile.

INTEGER, DIMENSION(20,20) :: a,b,c

In quest'ultimo caso ho definito tre matrici con la stessa dimensione.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Fortran