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.

4.4 Descrittori ripetibili 193<br />

Come ulteriore esempio si può considerare il seguente blocco di istruzioni:<br />

CHARACTER(LEN=7), PARAMETER :: form="(A5,A2)" CHARACTER(LEN=4) ::<br />

parola CHARACTER(LEN=1) :: lettera !... parola = "casa" lettera =<br />

"y" WRITE(*,form) parola, lettera<br />

cui consegue la stampa del record:<br />

bcasaby<br />

dove, come di consueto, il simbolo b rappresenta un blank.<br />

Analogamente a quanto avviene con le istruzioni di uscita, anche nelle operazioni di ingresso<br />

se la larghezzawdel campo è maggiore della lunghezza della variabile di caratteri, nella variabile<br />

vengono registrati soltanto i caratteri più a destra del campo di input. Se, invece, la larghezza<br />

del campo è minore della lunghezza della variabile di caratteri, i caratteri del campo vengono<br />

registrati a partire da sinistra nella variabile e lo spazio restante sarà riempito di spazi bianchi.<br />

Ad esempio, date le seguenti istruzioni:<br />

CHARACTER(LEN=6) :: str1 CHARACTER(LEN=8) :: str2<br />

CHARACTER(LEN=10) :: str3 CHARACTER(LEN=12) :: str4 ...<br />

READ(*,’(A)’) str1 READ(*,’(A10)’) str2 READ(*,’(A10)’) str3<br />

READ(*,’(A10)’) str4<br />

nel caso in cui i rispettivi record di ingresso fossero:<br />

abcdefghij abcdefghij abcdefghij abcdefghij <br />

l’effetto delle frasi di ingresso sarebbe equivalente a quello delle seguenti istruzioni di assegnazione:<br />

str1="abcdef" str2="cdefghij" str3="abcdefghij" str4="abcdefghij "<br />

4.4.10 <strong>Il</strong> descrittore G<br />

<strong>Il</strong> descrittore di formato G è un particolare descrittore (generalizzato) atto ad individuare un<br />

campo destinato alla rappresentazione di un dato di tipo qualsiasi. Per dati di tipo INTEGER,<br />

LOGICAL o CHARACTER, non c’è nessuna differenza fra il descrittore Gw.d e, rispettivamente, i<br />

descrittori Iw, Lw e Aw. Per quanto concerne, invece, la rappresentazione di dati di tipo REAL<br />

(o COMPLEX) le cose appaiono un pò più complicate. Nelle operazioni di ingresso il descrittore<br />

G è del tutto equivalente ai descrittori F ed E; in uscita, invece, esso si comporta in maniera<br />

differente a seconda dell’ordine di grandezza del valore numerico x da rappresentare nel campo<br />

di ampiezza w. In particolare:<br />

• Se risulta 10 d < |x| < 0.1, i descrittori Gw.d e Gw.dEe sono equivalenti a Ew.d ed Ew.dEe,<br />

rispettivamente.

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

Saved successfully!

Ooh no, something went wrong!