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.

8.2 Le specifiche di I/O 421<br />

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

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 in input<br />

devono essere interpretati. 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 lettura (formato<br />

contestuale);<br />

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

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

presente), ridotto 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 lettura al fine di consentire la gestione di eventuali condizioni di errore.<br />

In particolare, al termine dell’operazione di lettura può presentarsi uno dei seguenti casi:<br />

– La variabile ios vale zero: ciò indica che l’operazione di lettura è avvenuta con<br />

successo.<br />

– La variabile ios ha un valore positivo (dipendente dal processore): l’operazione di<br />

lettura è fallita.<br />

– La variabile ios vale -1: è stata incontrata una condizione di fine file.<br />

– La variabile ios vale -2: è stata incontrata una condizione di fine record in una<br />

operazione di I/O non-advancing.<br />

• La clausola REC=rn , in cui rn rappresenta una variabile (o una espressione) di tipo intero,<br />

specifica il numero rappresentativo del record che deve essere letto in un file connesso ad<br />

accesso diretto. L’utilizzo di questo specificatore in operazioni di lettura su file connessi<br />

con la clausola ACCESS=’SEQUENTIAL’ risulta, chiaramente, in un errore.<br />

• La clausola NML=lista specifica la lista con nome che deve essere letta. Si noti che<br />

questo specificatore è incompatibile con la clausola FMT=fmt . Le operazioni di lettura con<br />

meccanismo namelist sono state già descritte nel capitolo 4 relativamente a dispositivi<br />

standard di ingresso per cui nel seguito ci si limiterà a descrivere le peculiarità di questo<br />

tipo di lettura relativamente ad operazioni su file. Si noti che la parola chiave NNL= può<br />

essere omessa nel qual caso lo specificatore (quando presente), ridotto alla sola espressione<br />

lista , deve essere il secondo della lista.<br />

• La clausola ADVANCE=adv specifica se la lettura di un record debba essere o meno seguita<br />

dall’avanzamento al record successivo, ossia se il buffer di input debba essere o meno<br />

scartato al termine dell’operazione READ. I possibili valori per la variabile stringa adv<br />

sono ’YES’ (che è anche il valore di default) e ’NO’. Nel primo caso gli eventuali dati<br />

presenti nel buffer di input che non sono stati letti vengono eliminati; nel secondo caso,

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

Saved successfully!

Ooh no, something went wrong!