Fortran - Constantes

Las constantes se refieren a los valores fijos que el programa no puede alterar durante su ejecución. Estos valores fijos también se denominanliterals.

Las constantes pueden ser de cualquiera de los tipos de datos básicos como una constante entera, una constante flotante, una constante de carácter, una constante compleja o una cadena literal. Solo hay dos constantes lógicas:.true. y .false.

Las constantes se tratan como variables regulares, excepto que sus valores no se pueden modificar después de su definición.

Constantes y literales con nombre

Hay dos tipos de constantes:

  • Constantes literales
  • Constantes nombradas

Una constante literal tiene un valor, pero no un nombre.

Por ejemplo, las siguientes son las constantes literales:

Tipo Ejemplo
Constantes enteras 0 1-1 300 123456789
Constantes reales 0,0 1,0 -1,0 123,456 7,1E + 10 -52,715E-30
Constantes complejas (0.0, 0.0) (-123.456E + 30, 987.654E-29)
Constantes lógicas .cierto. .falso.
Constantes de caracteres

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

" una cita "" "

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

'un apóstrofe' ''

Una constante nombrada tiene un valor además de un nombre.

Las constantes con nombre deben declararse al comienzo de un programa o procedimiento, al igual que una declaración de tipo de variable, indicando su nombre y tipo. Las constantes con nombre se declaran con el atributo de parámetro. Por ejemplo,

real, parameter :: pi = 3.1415927

Ejemplo

El siguiente programa calcula el desplazamiento debido al movimiento vertical por gravedad.

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

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:

Time = 5.00000000    
Displacement = 127.374992