Mudanças entre as edições de "Fortran"

De WikiLICC
Ir para: navegação, pesquisa
(Nova página: 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 ...)
 
m (Compiladores)
 
(22 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 6: Linha 6:
  
 
==Compiladores==
 
==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.
  
Os compiladores da IBM nunca foram muito populares comparando com outros compiladores e esse aspecto foi especialmente notado no FORTRAN IV. 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. O software para a geração automática de flow charts a partir de programas em FORTRAN também foi desenvolvido fora da IBM.
+
;Fortran Powerstation 4.0 : comercializado pela Microsoft.
  
Compiladores Fortran para processamento paralelo e/ou distribuído em Cluster of Workstations (COW) ou Clustes of PCs (agrupamentos de PCs):
+
;Visual Fortran : versão comercializada primeiramente pela Digital e depois pela Compaq. Uma evolução da versão da Microsoft.
  
    * Fortran 90
+
;[http://www.g95.org/ g95] : Grátis, código aberto, compilador Fortran 95 para Linux.
    * Fortran 95
 
    * Fortran 2003
 
    * Fortran 2008
 
    * HPF - High Performance Fortran
 
    * Fortran M
 
    * Visual Fortran
 
  
 +
;[[Fortran em Linux]]: Veja como rodar programa em Linux.
 +
 +
;[[Fortran 95 Silverfrost]]: um compilador '''grátis''' que pode ser obtido na internet:
  
;Software grátis
+
==Fortran 2003==
*[http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.aspx Fortran 95 Silverfrost]
+
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==
 
==Ver também==
 
*[http://en.wikipedia.org/wiki/Fortran]
 
*[http://en.wikipedia.org/wiki/Fortran]
 
*[http://pt.wikipedia.org/wiki/Fortran]
 
*[http://pt.wikipedia.org/wiki/Fortran]
 +
* Manual do Fortran interessante, inclusive com Ponto Flutuante em http://www.ibiblio.org/pub/languages/fortran/unfp.html#section-4

Edição atual tal como às 16h32min de 9 de maio de 2012

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