25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

136 Array<br />

e tre variabili intere m, n e k aventi valori 3, 7 e 2 rispettivamente, le seguenti espressioni<br />

rappresentano tutte sezioni di array valide:<br />

a(:) ! l’intero array<br />

a(3:9) ! il sottoinsieme (/a(3),a(4),...,a(9)/)<br />

a(m:n+2:) ! identico al precedente<br />

a(8:3:-1) ! il sottoinsieme (/a(3),a(4),...,a(8)/)<br />

a(m+2:) ! il sottoinsieme (/a(5),a(6),...,a(10)/)<br />

a(:n:k) ! il sottoinsieme (/a(1),a(3),...,a(7)/)<br />

a(::3) ! il sottoinsieme (/a(1),a(4),a(7),a(10)/)<br />

a(5::) ! il sottoinsieme (/a(5),a(6),...,a(10)/)<br />

a(m:m) ! il solo elemento a(3)<br />

Allo stesso modo degli array monodimensionali, è possibile definire sezioni anche per array<br />

di rango maggiore di uno. Ad esempio, data la matrice array_2 dichiarata come:<br />

INTEGER, DIMENSION(2:9,-2:1) :: array_2<br />

la sua sezione:<br />

array_2(4:5,-1:0)<br />

rappresenta la seguente ”estratta”:<br />

| array_2(4,-1) array_2(4,0) |<br />

| array_2(5,-1) array_2(5,0) |<br />

Anche per le sezioni di array di rango non unitario non è necessario specificare i valori di tutti<br />

gli indici. Considerata, ad esempio, la matrice array_3 così definita:<br />

INTEGER, DIMENSION(3,4) :: array_3<br />

le seguenti espressioni sono tutte validi esempi di sezioni:<br />

array_3(:,:) ! l’intera matrice<br />

array_3(2,:) ! la seconda riga di array_3<br />

array_3(:,3) ! la terza colonna di array_3<br />

array_3(2,3:4) ! il vettore (/array_3(2,3),array_3(2,4)/)<br />

a(2:2,3:3) ! il solo elemento array_3(2,3)<br />

Come visto finora, le triplette selezionano sezioni ordinate degli elementi di array che devono<br />

essere inclusi nei calcoli aritmetici. Gli indici vettoriali, invece, consentono delle combinazioni<br />

arbitrarie degli elementi di array. Un indice vettoriale è un array monodimensionale (ossia un<br />

vettore) che specifica gli elementi dell’array che devono essere utilizzati nei calcoli aritmetici. Gli<br />

elementi dell’array possono essere specificati in qualsiasi ordine ed inoltre uno stesso elemento<br />

può essere specificato più volte (nel qual caso si parla di sezione di array con elementi ripetuti).<br />

L’array risultante contiene un elemento per ogni indice specificato nel vettore. A titolo di<br />

esempio, si considerino le seguenti istruzioni di dichiarazione di tipo:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!