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.

346 Array Processing<br />

L’argomento opzionale ORDER è un array della stessa forma di SHAPE. I suoi elementi rappresentano<br />

una permutazione della n_pla (/1,2,...,n/), essendo n l’ampiezza di SHAPE. Se<br />

ORDER è omesso, esso è assunto per default pari a (/1,2,...,n/).<br />

<strong>Il</strong> risultato è un array di forma SHAPE avente stesso tipo e parametri di kind di SOURCE e<br />

ampiezza pari al prodotto dei valori degli elementi di SHAPE. All’interno dell’array risultante gli<br />

elementi di SOURCE sono disposti nell’ordine per dimensione così come specificato da ORDER. Se<br />

ORDER è omesso, gli elementi sono disposti secondo l’ordinamento standard.<br />

Gli elementi diSOURCE sono seguiti (laddove necessario) dagli elementi diPAD (eventualmente<br />

in forma ripetuta) nell’ordine degli elementi di array.<br />

Un semplice esempio di utilizzo della funzione RESHAPE è fornito dalla seguente istruzione:<br />

RESHAPE((/3,4,5,6,7,8/),(/2,3/))<br />

la quale fornisce come risultato la matrice:<br />

3 5 7<br />

4 6 8<br />

mentre l’istruzione:<br />

RESHAPE((/3,4,5,6,7,8/),(/2,4/),(/1,1/),(/2,1/))<br />

fornisce il seguente risultato:<br />

3 4 5 6<br />

7 8 1 1<br />

<strong>Il</strong> prossimo frammento di programma costituisce un ulteriore esempio di utilizzo della funzione<br />

RESHAPE:<br />

INTEGER, DIMENSION(2,5) :: arr1<br />

REAL, DIMENSION(5,3,8) :: f<br />

REAL, DIMENSION(8,3,5) :: c<br />

...<br />

arr1 = RESHAPE((/1,2,3,4,5,6/),(/2,5/),(/0,0/),(/2,1/))<br />

! questa istruzione fornisce:<br />

! [1 2 3 4 5]<br />

! [6 0 0 0 0]<br />

c = RESHAPE(f,(/8,3,5/),ORDER=(/3,2,1/))<br />

! questa istruzione assegna a c l’array f mutandone l’ordine degli elementi<br />

END<br />

6.6.5 Procedure topologiche<br />

MAXLOC(ARRAY[,DIM][,MASK])<br />

Restituisce la posizione dell’elemento di valore massimo di un array, di una sezione di array o<br />

lungo una specificata dimensione dell’array.

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

Saved successfully!

Ooh no, something went wrong!