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.

200 Operazioni di I/O interattive<br />

al dispositivo di uscita [risp: di ingresso] e ”riutilizzerà” la lista degli specificatori di formato a<br />

partire dalla parentesi aperta più a destra nell’istruzione FORMAT incluso, eventualmente, il suo<br />

fattore di ripetizione. Per esempio, data la seguente istruzione di uscita:<br />

INTEGER :: i=1, j=2, k=4, l=8 REAL :: x=1.1,<br />

y=2.2, z=3.3, s=4.4 LOGICAL :: cond1,cond2<br />

CHARACTER(LEN=20) :: FMT = "(1X,2(I3,F5.2),L1)" ... WRITE(*,FMT)<br />

i,x,j,y,cond1,k,z,l,s,cond2<br />

il suo output sarebbe:<br />

1 1.10 2 2.20 T<br />

4 3.30 8 4.40 F<br />

in quanto, una volta terminata la lista dei descrittori, dal momento che la lista di uscita è<br />

stata processata soltanto in parte, il programma deve riutilizzare la lista di FORMAT a partire<br />

dal punto di riscansione che, come sempre, coincide con la parentesi aperta che si trova più a<br />

destra nella lista di formato. Pertanto, una volta che il buffer contenete i valori dell variabili<br />

della lista parziale:<br />

i,x,j,y,cond1<br />

viene inviato al dispositivo di uscita per essere rappresentato secondo il formato specificato<br />

dalla lista:<br />

(1X,I3,F5.2,I3,F5.2,L1)<br />

il gruppo di descrittori 2(I3,F5.2),L1 dovrà essere riutilizzato per il processamento della<br />

restante parte della lista di output:<br />

k,z,l,s,cond2<br />

Pertanto la lista di descrittori di formato:<br />

(1X,2(I3,F5.2),L1)<br />

è, nel caso in esame, del tutto equivalente a:<br />

(1X,I3,F5.2,I3,F5.2,A /<br />

I3,F5.2,I3,F5.2,A)<br />

mentre, in generale, equivale a:<br />

(1X,I3,F5.2,I3,F5.2,A /<br />

I3,F5.2,I3,F5.2,A /<br />

I3,F5.2,I3,F5.2,A /<br />

...)

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

Saved successfully!

Ooh no, something went wrong!