Tag Archives: fortran real format

Il tipo REAL nel Fortran


FORTRANIl tipo REAL nel Fortran rappresenta gli elementi di un sottinsieme dei numeri reali utilizzando due metodi di approssimazione: singola precisione e doppia precisione.

I numeri del tipo real vengono anche detti numeri in virgola mobile (floating-point). L’istruzione REAL è utilizzata per dichiarare una variabile/costante del tipo reale.

La sintassi dell’istruzione di dichiarazione di un ipo REAL è la seguente:

REAL [[([KIND=]parametro_di_kind )][, attributi ] ::] variabili

dove REAL è una parola chiave del Fortran e variabili è una lista di nomi di variabili, costanti o funzioni (separati da virgole) atte a contenere dati di tipo reale.

L’indicazione dei parametri è opzionale, ad esempio se il parametro_di_kind non è specificato allora è impiegato il valore del parametro di kind di default.

Facciamo un esempio:

REAL :: x, y, z

dichiara tre variabili, x, y e z, di tipo reale. Dichiarazioni più complesse sono:

REAL(KIND=high), OPTIONAL :: var1

REAL, SAVE, DIMENSION(10) :: var2

Oppure nella forma:

REAL(KIND=high) :: var3

REAL :: var4

DIMENSION var5(10)

SAVE var6

OPTIONAL var7

Quando risulta necessario definire una costante reale che rappresenta quindi il valore di un numero appartenente al sottoinsieme dei numeri reali, che la macchina che stiamo utilizzando è in grado di rappresentare, sono possibili due metodologie di rappresentazioni che si differenziano per la parte esponenziale.

Una costante del tipo REAL è immagazzinata in memoria con due informazioni: la mantissa e l’esponente. Il numero di bit allocati per la mantissa determina la precisione della costante, mentre il numero di bit allocati per l’esponente determina il range della costante.

Caratteristiche del tipo REAL nel Fortran

-valore reale minimo: –1.70141183E+38 circa
-valore reale massimo: +1.70141183E+38 circa
-precisione: 1.40129846E–45 circa

Operazioni ammesse dal tipo REAL nel Fortran

-assegnazione =
-somma +
-sottrazione –
-moltiplicazione *
-divisione /
-potenza **

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: