Fortran - Costanti

Le costanti si riferiscono ai valori fissi che il programma non può alterare durante la sua esecuzione. Questi valori fissi vengono anche chiamatiliterals.

Le costanti possono essere di qualsiasi tipo di dati di base come una costante intera, una costante mobile, una costante di carattere, una costante complessa o una stringa letterale. Ci sono solo due costanti logiche:.true. e .false.

Le costanti vengono trattate come variabili regolari, tranne per il fatto che i loro valori non possono essere modificati dopo la loro definizione.

Costanti e valori letterali denominati

Esistono due tipi di costanti:

  • Costanti letterali
  • Costanti denominate

Una costante letterale ha un valore, ma nessun nome.

Ad esempio, di seguito sono riportate le costanti letterali:

genere Esempio
Costanti intere 0 1-1 300 123456789
Costanti reali 0,0 1,0 -1,0 123,456 7,1E + 10 -52,715E-30
Costanti complesse (0,0, 0,0) (-123.456E + 30, 987.654E-29)
Costanti logiche .vero. .false.
Costanti dei caratteri

"PQR" "a" "123'abc $% # @!"

" una citazione "" "

'PQR' 'a' '123 "abc $% # @!'

'un apostrofo' ''

Una costante con nome ha un valore oltre che un nome.

Le costanti denominate dovrebbero essere dichiarate all'inizio di un programma o di una procedura, proprio come una dichiarazione di tipo variabile, indicandone il nome e il tipo. Le costanti denominate vengono dichiarate con l'attributo del parametro. Per esempio,

real, parameter :: pi = 3.1415927

Esempio

Il seguente programma calcola lo spostamento dovuto al movimento verticale sotto gravità.

program gravitationalDisp

! this program calculates vertical motion under gravity 
implicit none  

   ! gravitational acceleration
   real, parameter :: g = 9.81   
   
   ! variable declaration
   real :: s ! displacement   
   real :: t ! time  
   real :: u ! initial speed  
   
   ! assigning values 
   t = 5.0   
   u = 50  
   
   ! displacement   
   s = u * t - g * (t**2) / 2  
   
   ! output 
   print *, "Time = ", t
   print *, 'Displacement = ',s  
   
end program gravitationalDisp

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Time = 5.00000000    
Displacement = 127.374992