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.

26 Tipi ed espressioni<br />

Se una costante di caratteri eccede la lunghezza utile per una riga di comando (132 colonne),<br />

il suo valore deve essere spezzato su più linee, come nel seguente esempio:<br />

stringa = "Questa è una delle stringhe più lunghe che &<br />

&mi viene in mente in questo momento ma ne &<br />

&esisteranno sicuramente di molto più lunghe!"<br />

C’è un aspetto importante che riuguarda le costanti con nome di tipo CHARACTER, ossia il<br />

fatto che la sua lunghezza può essere specificata da un asterisco (”*”), essendo in tal modo<br />

mutuata direttamente dal suo valore. In tal modo si ovvia alla necessità di dover contare<br />

i caratteri della stringa il che rende più semplice modificarne successivamente la definizione.<br />

L’istruzione che segue sfrutta proprio questa caratteristica:<br />

CHARACTER(LEN=*), PARAMETER :: str="Nessun bisogno di contare i caratteri"<br />

Tuttavia questa caratteristica non può essere sfruttata quando un array di caratteri è definito<br />

a mezzo di un costruttore di array, dal momento che gli elementi devono essere della stessa<br />

lunghezza:<br />

CHARACTER(LEN=7), DIMENSION(2), PARAMETER :: aaa=(/"Antonio","Auletta"/)<br />

1.3.7 Oggetti di tipo LOGICAL<br />

L’istruzione LOGICAL specifica che il nome di una data variabile o di una data funzione verrà<br />

utilizzato per riferirsi ad un oggetto di tipo ”booleano”. La sua sintassi è la seguente:<br />

LOGICAL [[([KIND=]parametro di kind)][, attributi] ::] lista_di_oggetti<br />

Esempi di dichiarazioni (entity-oriented) di variabili logiche sono:<br />

LOGICAL, ALLOCATABLE, DIMENSION(:) :: flag1, flag2<br />

LOGICAL(KIND=byte), SAVE :: doit, dont<br />

Le stesse dichiarazioni, in una forma orientata agli attributi, appaiono invece nel seguente modo:<br />

LOGICAL :: flag1, flag2<br />

LOGICAL(KIND=byte) :: doit, dont<br />

ALLOCATABLE flag1(:), flag2(:)<br />

SAVE doit, dont<br />

Una costante di tipo LOGICAL può rappresentare unicamente i valori logici ”vero” e ”falso” e<br />

assume una delle seguenti forme:<br />

.TRUE.[_k]<br />

.FALSE.[_k]<br />

in cui k è il parametro di kind opzionale. Nel caso in cui il parametro di kind non è esplicitamente<br />

dichiarato per esso viene assunto un valore di default.<br />

Le variabili logiche rappresentano raramente il risultato di un programma <strong>Fortran</strong>. Tuttavia,<br />

esse svolgono un ruolo essenziale per il corretto funzionamento di molti programmi. La maggior<br />

parte delle strutture di controllo dei programmi, infatti, sono governate dai valori assunti da<br />

variabili o da espressioni logiche.

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

Saved successfully!

Ooh no, something went wrong!