Fortran

De WikiLICC
Ir para: navegação, pesquisa

A família de linguagens de programação conhecida globalmente como Fortran foi desenvolvida a partir da década de 1950 e continua a ser usada hoje em dia. O nome tem como origens a expressão "FORmula TRANslation" (ou "Translator").

As versões iniciais da linguagem eram conhecidas como FORTRAN, mas a capitalização foi ignorada em versões recentes da linguagem começando a partir do Fortran 90. Os padrões oficiais da linguagem referem-se a ela atualmente como "Fortran".

A linguagem Fortran é principalmente usada em Ciência da Computação e Análise Numérica. Apesar de ter sido inicialmente uma linguagem de programação procedural, versões recentes de Fortran possuem características que permitem suportar programação orientada por objetos.

Compiladores

WATFOR 
a versão do FORTRAN IV desenvolvida na Universidade de Waterloo, Canadá, foi universalmente preferida pois o compilador produzia melhores relatórios dos erros de compilação.
Fortran Powerstation 4.0 
comercializado pela Microsoft.
Visual Fortran 
versão comercializada primeiramente pela Digital e depois pela Compaq. Uma evolução da versão da Microsoft.
g95 
Grátis, código aberto, compilador Fortran 95 para Linux.
Fortran em Linux
Veja como rodar programa em Linux.
Fortran 95 Silverfrost
um compilador grátis que pode ser obtido na internet:

Fortran 2003

Veja quais características do Fortran 2003 são implementadas pelos principais compiladores em http://fortranwiki.org/fortran/show/Fortran+2003+status

Em particular note a TR 15581 (Technical Report 15581: permite alocação dinâmica de arrays em tipos definidos pelo usuário).

Código Teste

Alguns compiladores possuem um ambiente gráfico e um editor de textos para digitar os programas. No compilador Silverfrost:

  • Crie um arquivo novo clicando em New. Escolha Free Format. Uma janela de texto deve abrir.
  • Digite o código fonte abaixo.
  program ola
  print *,"Ola mundo"
  end
  • No menu Build, clique em Start Run para rodar o programa. Salve o programa com o nome teste.f90. Deverá abrir uma janela de comando e aparecer a mensagem
 Ola mundo

Subrotinas

program principal
real*8                :: x,y,m,S
real*8,dimension(50)  :: u
real*8                :: norm

x=10.D0
y=20.D0

call norma2( u, norm )

call media( x,y, m )
print *," Media ",m

S=soma(x,y)

end program
!------------------------------
subroutine norma2( v, saida )
real*8,dimension(5)  ::  u
real*8               :: saida
 
saida=......

end subroutine
!------------------------------

subroutine media( a,b,m )
real*8  ::  a,b 
real*8  ::  m

m=(a+b)/2.D0

end subroutine
!------------------------------
function soma( x, y)result( s )
real*8  ::  x,y 
real*8  ::  s

s=x+y

end function

Medindo o tempo

Um exemplo de como medir o tempo em Fortran.

program teste
use portlib
real*8, dimension(10000) ::  x,y,s
real*4                   ::  tempo
integer                  ::  k,i

do i=1,100
   x(i)=i
   y(i)=0.d0
end do

print *,"Comecei..."

tempo = SECNDS(0.0)
do k=1,100000
   do i=1,10000
       s(i)=x(i)+y(i)
   end do
end do

tempo = SECNDS(tempo)
print *,"Tempo (s): ",tempo

end

Ver também