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.

202 Operazioni di I/O interattive<br />

ha come punto di riscansione il descrittore I2 e, pertanto, è equivalente alla seguente specificazione:<br />

(1X,I1,I2,I3 /<br />

I2,I3 /<br />

I2,I3 /<br />

...)<br />

mentre la stessa specificazione, in assenza di parentesi:<br />

(1X,I1,I2,I3)<br />

sarebbe equivalente a:<br />

(1X,I1,I2,I3 /<br />

1X,I1,I2,I3 /<br />

...)<br />

e avrebbe, pertanto, un significato totalmente diverso.<br />

4.6.4 Sovrapposizione fra campi di input ed interpretazione dei blank<br />

E’ molto importante, in presenza di istruzioni di input formattate, rispettare il vincolo dell’ampiezza<br />

w dei vari campi di ingresso nella preparazione del record di input. Nel caso, infatti, in<br />

cui esistesse un overlap i campi della lista ingresso e i valori del record di input, l’operazione<br />

di lettura potrebbe dar luogo a risultati davvero inaspettati (se non a condizioni di errore allorquando<br />

si perdesse la corrispondenza fra specificatore di formato e tipo della variabile). Ad<br />

esempio, il seguente record di input:<br />

1234 56 78 <strong>90</strong><br />

verrebbe interpretato in maniera completamente diversa dalle istruzioni:<br />

READ(*,100) a,b,c,d READ(*,200) a,b,c,d 100 FORMAT(I6,I5,I4,I3) 200<br />

FORMAT(I3,I4,I5,I6)<br />

producendo, nel primo caso, le assegnazioni:<br />

a=1234; b=56; c=78; d=<strong>90</strong><br />

e nel secondo caso le assegnazioni:<br />

a=123; b=4; c=567; d=8<strong>90</strong><br />

Si noti che, generalmente, tutti gli eventuali spazi bianchi presenti nel campo di ampiezza<br />

w vengono ignorati, per cui essi vengono del tutto rimossi dalla stringa di cifre introdotta.<br />

Pertanto, data la seguente istruzione di ingresso:<br />

INTEGER :: a, b, c, d ... READ(*,"(4I7)") a, b, c, d<br />

ed il seguente record di input:<br />

1 3 5 1 35 135 13 5 <br />

l’effetto che si ottiene equivale ad assegnare il valore 135 a tutte e quattro le variabili della lista<br />

di ingresso.

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

Saved successfully!

Ooh no, something went wrong!