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.

336 Array Processing<br />

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

può essere né un allocatable array non correntemente allocato né un puntatore deassociato.<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 (diversa, però, dall’intero array),<br />

ciascun elemento del risultato avrà valore pari ad uno. Allo stesso modo, se ARRAY(DIM) ha<br />

dimensione nulla il corrispondente elemento del risultato avrà valore unitario.<br />

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

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

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

...<br />

LBOUND(a) ! ris.: (/1,5/)<br />

LBOUND(a,DIM=2) ! ris.: (/5/)<br />

LBOUND(b) ! ris.: (/2,-3/)<br />

LBOUND(b(5:8,:)) ! ris.: (/1,1/) N.B.: l’argomento è una sezione di array<br />

SHAPE(SOURCE)<br />

Restituisce la forma di un array o di un argomento scalare.<br />

L’argomentoSOURCE può essere uno scalare o un array di tipo qualsiasi con l’unica restrizione<br />

che non può essere un assumed-size array, un allocatable array non correntemente allocato o<br />

un puntatore deassociato.<br />

<strong>Il</strong> risultato è un array di tipo INTEGER di rango unitario e di ampiezza pari al rango di<br />

SOURCE. <strong>Il</strong> valore del risultato coincide con la forma di SOURCE.<br />

Ad esempio, SHAPE(2) fornisce come risultato un array monodimensionale di ampiezza nulla.<br />

Dato, invece, l’array b così definito:<br />

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

l’istruzione:<br />

SHAPE(SOURCE=b)<br />

fornirà il valore (/3,5/).<br />

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

Restituisce il numero totale degli elementi in un array, oppure l’estensione di un array lungo<br />

una dimensione specificata.<br />

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

essere un puntatore deassociato o un allocatable array non correntemente associato. Può essere,

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

Saved successfully!

Ooh no, something went wrong!