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.

422 Operazioni di I/O su file<br />

invece, il buffer di input viene conservato e i restanti dati vengono utilizzati in lettura<br />

dalla successiva istruzione READ. Si noti che questa clausola ha significato soltanto se la<br />

lettura coinvolge un file formattato connesso per operazioni ad accesso sequenziale.<br />

• La clausolaSIZE=size specifica il numero di caratteri letti dal buffer di input durante una<br />

istruzione READ non advancing. Lo specificatore in esame, dunque, assume un significato<br />

esclusivamente in presenza di una clausola ADVANCE=’NO’.<br />

8.2.5 Operazioni di scrittura su file<br />

L’istruzione WRITE ha lo scopo di produrre sul dispositivo di output associato ad una data unità<br />

logica il valore delle espressioni indicate in una lista di output con un formato regolato da un<br />

eventuale descrittore.<br />

L’istruzione si caratterizza per la seguente sintassi:<br />

WRITE([UNIT=]u[,[FMT=]fmt][,IOSTAT=ios][,REC=rn] &<br />

[,[NML=]lista][,ADVANCE=adv]) lista_di_output<br />

dove, però, non tutti gli specificatori possono essere usati insieme, come si avrà modo di capire<br />

tra breve. <strong>Il</strong> significato degli specificatori validi per l’istruzione WRITE è riassunto di seguito.<br />

• La clausola UNIT=u specifica l’unità logica associata al file i cui record devono essere<br />

sottoposti a scrittura; u è il numero identificativo dell’unità logica e rappresenta una<br />

espressione intera non negativa. Questo specificatore deve essere obbligatoriamente presente,<br />

tuttavia la parola chiave UNIT= può essere omessa nel qual caso lo specificatore,<br />

ridotto alla sola espressione u , deve essere il primo della lista.<br />

• La clausola FMT=fmt ha il compito di specificare il formato con cui i dati letti devono<br />

essere prodotti in output. Pertanto fmt può assumere uno dei seguenti valori:<br />

– l’etichetta di una istruzione FORMAT;<br />

– una stringa di caratteri specificante informazioni sul formato di scrittura (formato<br />

contestuale);<br />

– un asterisco (*), ad indicare una operazione di scrittura diretta da lista.<br />

Si noti che la parola chiave FMT= può essere omessa nel qual caso lo specificatore, ridotto<br />

alla sola espressione fmt , deve essere il secondo della lista.<br />

• La clausola IOSTAT=ios ha il compito di ”registrare”, nella variabile intera ios , lo stato<br />

dell’operazione di scrittura al fine di consentire la gestione di eventuali condizioni di<br />

errore. Contrariamente a quanto avviene per l’istruzione READ, non potendosi presentare<br />

condizioni di errore di fine record o di fine file, a seguito dell’operazione di scrittura la<br />

variabile ios può assumere soltanto il valore zero (rappresentativo di un’operazione di<br />

scrittura avvenuta con successo) oppure un valore positivo dipendente dal processore (ad<br />

indicare una operazione di scrittura abortita).

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

Saved successfully!

Ooh no, something went wrong!