Fortran - Constantes

As constantes referem-se aos valores fixos que o programa não pode alterar durante sua execução. Esses valores fixos também são chamadosliterals.

As constantes podem ser de qualquer um dos tipos de dados básicos, como uma constante inteira, uma constante flutuante, uma constante de caractere, uma constante complexa ou um literal de string. Existem apenas duas constantes lógicas:.true. e .false.

As constantes são tratadas como variáveis ​​regulares, exceto que seus valores não podem ser modificados após sua definição.

Constantes e literais nomeados

Existem dois tipos de constantes -

  • Constantes literais
  • Constantes nomeadas

Uma constante literal tem um valor, mas nenhum nome.

Por exemplo, a seguir estão as constantes literais -

Tipo Exemplo
Constantes inteiras 0 1 -1 300 123456789
Constantes reais 0,0 1,0 -1,0 123,456 7,1E + 10 -52,715E-30
Constantes complexas (0,0, 0,0) (-123,456E + 30, 987,654E-29)
Constantes lógicas .verdadeiro. .falso.
Constantes de personagem

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

" uma citação "" "

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

'um apóstrofo' ''

Uma constante nomeada tem um valor e também um nome.

As constantes nomeadas devem ser declaradas no início de um programa ou procedimento, assim como uma declaração de tipo de variável, indicando seu nome e tipo. As constantes nomeadas são declaradas com o atributo de parâmetro. Por exemplo,

real, parameter :: pi = 3.1415927

Exemplo

O programa a seguir calcula o deslocamento devido ao movimento vertical sob a gravidade.

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 o código acima é compilado e executado, ele produz o seguinte resultado -

Time = 5.00000000    
Displacement = 127.374992