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 337<br />

invece, un assumed-size array se il parametro DIM è presente con un valore minore del rango di<br />

ARRAY.<br />

L’argomento opzionale DIM deve essere uno scalare di tipo INTEGER con valore compreso tra<br />

1 ed n , essendo n il rango di ARRAY.<br />

<strong>Il</strong> risultato è sempre uno scalare di tipo INTEGER. In particolare, esso è pari al numero totale<br />

di elementi di ARRAY nel caso in cui il parametro DIM non sia specificato; se, invece, DIM è<br />

presente, il risultato rappresenta l’estensione di ARRAY nella dimensione DIM.<br />

A titolo di esempio, se l’array b è dichiarato come:<br />

REAL, DIMENSION(2:4,-3:1) :: b<br />

le istruzioni:<br />

SIZE(b,DIM=2)<br />

SIZE(b)<br />

forniscono i valori 5 e 15, rispettivamente.<br />

UBOUND(ARRAY[,DIM])<br />

Restituisce un array monodimensionale formato dai limiti superiori di tutte le dimensioni di<br />

ARRAY, oppure, se DIM è presente, uno scalare avente come valore il limite superiore relativo<br />

alla dimensione specificata. <strong>Il</strong> risultato è, in ogni caso, di tipo INTEGER.<br />

L’argomento ARRAY è un array di tipo e rango qualsiasi con l’unica restrizione che non può<br />

essere né un allocatable array non correntemente allocato né un puntatore deassociato. Può,<br />

invece, essere un assumed-size array se il parametro DIM è presente con un valore minore del<br />

rango di ARRAY.<br />

L’argomento opzionale DIM deve essere uno scalare di tipo INTEGER con valore compreso tra<br />

1 ed n , essendo n il rango di ARRAY.<br />

Se DIM è presente, il risultato è uno scalare. In caso contrario, esso sarà un array di rango<br />

unitario con ogni elemento riferito alla corrispondente dimensione di ARRAY.<br />

Se ARRAY è una sezione di array o una espressione array che non coincida con l’intero array,<br />

allora UBOUND(ARRAY,DIM) avrà un valore pari al numero di elementi nella dimensione specificata.<br />

Allo stesso modo, se ARRAY(DIM) ha dimensione nulla, il corrispondente elemento del<br />

risultato avrà valore nullo.<br />

Le seguenti istruzioni serviranno a chiarire l’utilizzo della funzione UBOUND:<br />

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

INTEGER, DIMENSION(2:8,-3:20) :: b<br />

...<br />

UBOUND(a) ! ris.: (/3,8/)<br />

UBOUND(a,DIM=2) ! ris.: (/8/)<br />

UBOUND(b) ! ris.: (/8,20/)<br />

UBOUND(b(5:8,:)) ! ris.: (/7,24/)

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

Saved successfully!

Ooh no, something went wrong!