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.2 Istruzioni di lettura e scrittura 177<br />

dove:<br />

• unità_logica rappresenta il ”puntatore” ad una unità di input o di output e può essere:<br />

– un valore intero, nel qual caso le istruzioni READ e WRITE utilizzeranno le unità di<br />

ingresso e di uscita associate a tale numero;<br />

– il simbolo asterisco (”*”), nel qual caso le operazioni di I/O verranno effettuate<br />

utilizzando i dispositivi di I/O standard definiti dal sistema di elaborazione utilizzato.<br />

Si noti che alcuni numeri validi per l’unità logica sono riservati proprio alle unità standard<br />

(tipicamente l’unità 5 è associata al dispositivo standard di input, 6 al dispositivo<br />

standard di output). Ma dal momento che queste associazioni possono variare da un<br />

sistema all’altro è bene utilizzare sempre l’asterisco quando si vuole operare con i dispositivi<br />

standard, in modo da garantire il corretto funzionamento delle istruzioni di I/O<br />

indipendentemente dal sistema di elaborazione adottato.<br />

• formato è un identificatore di formato che può essere:<br />

– un asterisco (”*”), in questo caso si dice che la frase di I/O è guidata da lista;<br />

– l’etichetta di una istruzione FORMAT che sia presente nella stessa unità di programma<br />

in cui compare la frase di I/O;<br />

– una espressione carattere;<br />

– il nome di un array di tipo carattere.<br />

La frase FORMAT è una istruzione non eseguibile che si presenta con la seguente sintassi:<br />

label FORMAT(sf)<br />

• label è l’etichetta, obbligatoria, dell’istruzione;<br />

• sf è una specificazione di formato che risulta associata a tutte le istruzioni di ingresso/uscita<br />

della stessa unità di programma in cui figura label come identificatore di<br />

formato.<br />

Alle regole relative alla creazione e ad un uso ”maturo” delle specificazioni di formato sarà<br />

dedicato il prossimo paragrafo, prima però si anticiperanno alcuni esempi allo scopo di illustrare<br />

come sia possibile associare una istruzione di I/O ad una specificazione di formato.<br />

L’effetto della esecuzione di una istruzione READ è quello di leggere tanti valori quanti sono i<br />

nomi simbolici presenti nella lista_di_ingresso e di assegnare gli stessi, ordinatamente, ciascuno<br />

alla variabile cui corrisponde secondo la modalità imposta dalla specificazione di formato<br />

(quando presente). Così, ad esempio, l’esecuzione del seguente frammento di programma:<br />

REAL :: x, y INTEGER :: m ... READ(*,100) m, x, y 100<br />

FORMAT(I2,2(1X,F4.2))

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

Saved successfully!

Ooh no, something went wrong!