25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

352 Array Processing<br />

• <strong>Il</strong> valore di SHIFT determina l’entità e la direzione dello shift. Un valore positivo di SHIFT<br />

provoca uno spostamento a sinistra (nelle righe) o verso l’alto (nelle colonne). Un valore<br />

negativo di SHIFT, al contrario, provoca uno spostamento a destra (nelle righe) o verso<br />

il basso (nelle colonne). Un valore nullo di SHIFT, chiaramente, non determina alcuna<br />

variazione.<br />

Esempi:<br />

Sia v l’array monodimensionale (/1,2,3,4,5,6/). Si ha quanto segue:<br />

EOSHIFT(v,SHIFT=2) trasla gli elementi di v verso sinistra di due posizioni, producendo<br />

il vettore: (/3,4,5,6,0,0/). Come si può notare, gli elementi 1 e 2 sono<br />

strappati dalle loro posizioni di testa e sostituiti, in coda al vettore, dal valore di<br />

default 0.<br />

EOSHIFT(v,SHIFT=-3,BOUNDARY=99) trasla gli elementi di v verso destra di tre<br />

posizioni, producendo il vettore: (/99,99,99,2,3,4/). Ancora, si noti come gli<br />

elementi 4, 5 e 6 siano stati strappati dalla coda dell’array e rimpiazzati, in testa<br />

all’array, dal valore di BOUNDARY.<br />

Sia, ora, m il seguente array bidimensionale:<br />

1 2 3<br />

4 5 6<br />

7 8 9<br />

L’istruzione:<br />

EOSHIFT(m,SHIFT=1,BOUNDARY=’9’,DIM=2))<br />

shifta a sinistra, di una posizione, ciascun elemento nelle tre righe, rimpiazzando<br />

con il valore 9 gli elementi che rimangono ”scoperti”, producendo, così, il seguente<br />

risultato:<br />

2 3 9<br />

5 6 9<br />

8 9 9<br />

Invece, l’istruzione:<br />

EOSHIFT(EOSHIFT (m,SHIFT=-1,DIM=1)<br />

shifta verso il basso, di una sola posizione, ciascun elemento nelle tre colonne, e<br />

inserisce l’elemento0(corrispondente al valore di default diBOUNDARY) negli elementi<br />

della terza riga, producendo, pertanto, il seguente risultato:

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

Saved successfully!

Ooh no, something went wrong!