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 419<br />

• ACTION=act assegna alla variabile stringaact uno dei valori’READ’,’WRITE’ o’READWRITE’<br />

a seconda di quanto specificato nella corrispondente istruzione OPEN, oppure ’UNDEFINED’<br />

se non esiste una connessione.<br />

• READ=rd [risp. WRITE=wr ] assegna alla variabile stringa rd [risp. wr ] il valore ’YES’ o<br />

’NO’ a seconda che il file interrogato possa essere o meno usato per operazioni di lettura<br />

[risp. di scrittura], oppure ’UNDEFINED’ se questa informazione non è disponibile.<br />

• READWRITE=rw assegna alla variabile stringa rw il valore ’YES’ o ’NO’ a seconda che<br />

il file interrogato possa essere o meno usato per operazioni di lettura/scrittura, oppure<br />

’UNDEFINED’ se questa informazione non è disponibile.<br />

• DELIM=del assegna alla variabile stringa del uno dei valori ’QUOTE’, ’APOSTROPHE’<br />

o ’NONE’ a seconda di quanto specificato nella corrispondente istruzione OPEN (o dalla<br />

condizione di default), oppure ’UNDEFINED’ se non esiste una connessione oppure se il file<br />

in oggetto non è connesso per operazioni di I/O formattate.<br />

• PAD=pad assegna alla variabile stringa pad il valore YES o NO a seconda a seconda di<br />

quanto specificato nella corrispondente istruzione OPEN (o dalla condizione di default).<br />

Si noti che una stessa variabile può essere associata ad un solo specificatore nell’ambito<br />

della medesima istruzione INQUIRE.<br />

Un esempio di utilizzo di istruzione INQUIRE è il seguente:<br />

LOGICAL :: ex, op<br />

CHARACTER(LEN=11) :: nam, acc, seq, frm<br />

INTEGER :: ios, irec, nr<br />

...<br />

OPEN(UNIT=2,IOSTAT=ios,FILE=’database’,STATUS=’NEW’, &<br />

ACCESS=’DIRECT’,RECL=100)<br />

...<br />

INQUIRE(UNIT=2,EXIST=ex,OPENED=op,NAME=nam,ACCESS=acc, &<br />

SEQUENTIAL=seq,FORM=frm,RECL=irec,NEXTREC=nr)<br />

WRITE(*,100) ex,op,nam,acc,seq,frm,irec,nr<br />

100 FORMAT(2(1X,L1,/),4(1X,A11,/),2(1X,I3,/))<br />

Supponendo, ad esempio, che fra le istruzioni OPEN e INQUIRE non abbiano avuto luogo<br />

istruzioni di lettura o scrittura, l’output del precedente frammento di programma sarebbe:<br />

T<br />

T<br />

database<br />

DIRECT<br />

NO<br />

UNFORMATTED<br />

100

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

Saved successfully!

Ooh no, something went wrong!