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.

4.3 Specificazioni di formato 179<br />

CHARACTER(LEN=12) :: formato ... formato=’(1X,F5.2,1X)’<br />

WRITE(*,’(3X//formato(4:11)//’,I3)’) x,m<br />

il cui risultato è analogo a quello che si avrebbe con l’uso della frase FORMAT:<br />

WRITE(*,250) x,m 250 FORMAT(3X,F5.2,1X,I3)<br />

Se, invece, l’identificatore di formato in una frase di I/O è il nome di un array di caratteri,<br />

allora la specificazione di formato è il risultato della concatenazione dei valori dei singoli elementi<br />

presi secondo l’ordinamento degli array. Un esempio, seppur banale, potrebbe essere il seguente:<br />

CHARACTER(LEN=7), DIMENSION(2) :: a ... a(1)=’(E10.3,’ a(2)=’1X,I5)’<br />

WRITE(*,a) x,m ! identico a WRITE(*,’(E10.3,1X,I5)’)<br />

Si noti, infine, che le costanti intere presenti negli specificatori di formato visti finora possono<br />

anche essere sostituite dal nome simbolico di opportune variabili intere (con valore definito), a<br />

patto che questi nomi siano racchiusi fra i simboli. Così, ad esempio, il seguente frammento<br />

di programma:<br />

INTEGER :: m=7, n=3, val=50 REAL :: x=3.14 WRITE(*,100) val, x 100<br />

FORMAT(1X,I,1X,F.)<br />

risulta perfettamente equivalente a:<br />

INTEGER :: val=50 REAL :: x=3.14 WRITE(*,100) val, x 100<br />

FORMAT(1X,I3,1X,F7.3)<br />

Dagli esempi proposti si evince che il formato contestuale può risultare molto utile limitatamente<br />

a casi di formati semplici oppure in applicazioni sofisticate qualora occorra definire<br />

formati variabili.<br />

4.3 Specificazioni di formato<br />

Le informazioni trasmesse durante una operazione di I/O sono rappresentate su record. La<br />

struttura di tali record può essere determinata mediante una specificazione di formato che, in<br />

particolare, individua una suddivisione di ciascun record in uno o più campi, ossia gruppi di<br />

caratteri ciascuno dei quali contiene un singolo dato; l’ampiezza di un campo rappresenta il<br />

numero di caratteri che lo compongono. La specificazione di formato descrive completamente<br />

il modo in cui ogni dato deve essere scritto (o letto) nel campo che gli è destinato e può inoltre<br />

contenere altre informazioni utili per l’interpretazione dei record.<br />

Una specificazione di formato ha la seguente forma:<br />

(e 1,e 2,...,e n)<br />

in cui ciascun termine e i può essere del tipo:<br />

• [r]d r

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

Saved successfully!

Ooh no, something went wrong!