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.

350 Array Processing<br />

Esempi:<br />

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

CSHIFT(v,SHIFT=2) trasla gli elementi di v in maniera circolare verso sinistra di<br />

due posizioni, producendo il vettore: (/3,4,5,6,1,2/). Come si può notare, gli<br />

elementi 1 e 2 sono strappati dalle loro posizioni di testa e inseriti in coda all’array.<br />

CSHIFT(v,SHIFT=-2) trasla gli elementi di v in maniera circolare verso destra di<br />

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

elementi 5 e 6 siano stati strappati dalla coda dell’array e inseriti alla sua testa.<br />

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

1 2 3<br />

4 5 6<br />

7 8 9<br />

L’istruzione:<br />

CSHIFT(m,SHIFT=1,DIM=2)<br />

shifta a sinistra, di due posizioni, ciascun elemento nelle tre righe, producendo il<br />

seguente risultato:<br />

2 3 1<br />

5 6 4<br />

8 9 7<br />

Invece, l’istruzione:<br />

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

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

producendo il seguente risultato:<br />

7 8 9<br />

1 2 3<br />

4 5 6<br />

Infine, l’istruzione:<br />

CSHIFT(m,SHIFT=(/1,-1,0/),DIM=2)<br />

shifta ogni elemento appartenente alla prima riga di una posizione verso sinistra,<br />

ogni elemento appartenente alla seconda riga di due posizioni verso destra, non<br />

sposta alcun elemento della terza riga. <strong>Il</strong> risultato prodotto sarà, pertanto:

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

Saved successfully!

Ooh no, something went wrong!