25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.7 Tipi di dati parametrizzati 61<br />

avrà parametro di kind pari a 3 se il processore fornisce una precisione decimale maggiore<br />

per le costanti reali aventi kind uguale a 3 rispetto alle costanti reali con kind uguale a 4;<br />

avrà parametro di kind pari a 4 se il processore fornisce una precisione decimale maggiore<br />

per le costanti reali aventi kind uguale a 3 rispetto alle costanti reali con kind uguale a<br />

4; avrà parametro di kind pari, indifferentemente, a 3 o a 4 se il processore fornisce la<br />

stessa precisione decimale per le costanti reali con kind uguale a 3 e per quelle con kind<br />

uguale a 4.<br />

In ogni caso, per evitare queste complicazioni è sempre preferibile utilizzare, per formare una<br />

costante complessa, due componenti reali aventi il medesimo parametro di kind.<br />

Parametri di kind per il tipo LOGICAL<br />

Anche per il tipo LOGICAL un compilatore può prevedere più di un valore per il parametro<br />

di kind. Ad esempio, alcuni compilatori prevedono, oltre al tipo di default (che, tipicamente,<br />

occupa 4 byte) almeno un altro tipo logico che permette di lavorare con valori ”compressi” ad<br />

un byte soltanto.<br />

Così come per i tipi numerici, anche per il tipo LOGICAL il valore del parametro di kind<br />

segue la costante letterale ed è separata da essa da un underscore, come nel seguente esempio:<br />

.TRUE. ! parametro di kind di default<br />

.FALSE._5 ! parametro di kind pari a 5<br />

Parametri di kind per il tipo CHARACTER<br />

Su molte installazioni, oltre al tipo di caratteri di default (che, tipicamente, è l’insieme ASCII)<br />

sono previsti altri kind che consentono di supportare, ad esempio, i caratteri degli alfabeti<br />

stranieri. Un esempio di dichiarazione di variabile di tipo carattere parametrizzato è il seguente:<br />

CHARACTER(LEN=5) :: str1<br />

CHARACTER(LEN=5, KIND=1) :: str2<br />

in cui la stringa str1 ha tipo di default mentre str2 ha parametro di kind pari a 1, il cui<br />

significato dipende dal particolare compilatore.<br />

Contrariamente a quanto avviene per tutti gli altri tipi di dati, per le costanti di tipo<br />

carattere, il valore del parametro di kind precede il valore della costante, separato da esso da<br />

un carattere underscore:<br />

1_’aeiou’<br />

La spiegazione di ciò risiede nel fatto che il processore necessita di sapere quale ”tipo” di caratteri<br />

deve utilizzare prima di ”scrivere” la stringa. Ancora, la seguente espressione:<br />

greek_αβγ

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

Saved successfully!

Ooh no, something went wrong!