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.

6.6 Procedure intrinseche per gli array 347<br />

L’argomento ARRAY è un array di tipo intero o reale.<br />

L’argomento opzionale DIM è uno scalare di tipo intero con valore compreso nell’intervallo<br />

1÷n , essendo n il rango di ARRAY. Si noti che questo parametro non è previsto dal <strong>Fortran</strong> <strong>90</strong><br />

ma soltanto dal <strong>Fortran</strong> <strong>95</strong>.<br />

L’argomento opzionale MASK è un array logico compatibile con ARRAY.<br />

<strong>Il</strong> risultato della funzione è un array di tipo intero.<br />

Nel caso in cui il parametro DIM sia omesso (come è sempre nel <strong>Fortran</strong> <strong>90</strong>) valgono le<br />

seguenti regole:<br />

• Se MASK è assente, gli elementi dell’array risultante rappresentano gli indici della locazione<br />

dell’elemento di ARRAY avente valore massimo.<br />

• SeMASK è presente, gli elementi dell’array risultante rappresentano gli indici della locazione<br />

dell’elemento di ARRAY avente valore massimo fra quelli compatibili con la condizione<br />

specificata da MASK.<br />

Nel caso in cui il parametro DIM sia presente (e, quindi, solo nel <strong>Fortran</strong> <strong>95</strong>) valgono le<br />

seguenti regole:<br />

• L’array risultante ha rango pari a quello di ARRAY diminuito di un’unità.<br />

• Se ARRAY ha rango unitario, allora il valore di MAXLOC(ARRAY,DIM[,MASK]) sarà pari a<br />

quello di MAXLOC(ARRAY[,MASK]).<br />

• Se più elementi hanno valore pari al valore massimo, è l’indice del primo di tali elementi<br />

(secondo l’ordine degli elementi di array) quello che viene restituito.<br />

• Se ARRAY ha ampiezza nulla, oppure se tutti gli elementi di MASK hanno valore .FALSE.,<br />

il valore del risultato è indefinito.<br />

Esempi:<br />

<strong>Il</strong> valore di MAXLOC((/3,7,4,7/)) è 2, essendo questo l’indice della posizione della<br />

prima occorrenza del valore massimo (7) nell’array monodimensionale specificato<br />

come argomento.<br />

Sia mat l’array:<br />

4 0 -3 2<br />

3 1 -2 6<br />

-1 -4 5 -5<br />

MAXLOC(mat,MASK=mat

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

Saved successfully!

Ooh no, something went wrong!