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

De WikiLICC
Ir para: navegação, pesquisa
(Compiladores)
m (Compiladores)
 
(14 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 12: Linha 12:
 
;Visual Fortran : versão comercializada primeiramente pela Digital e depois pela Compaq. Uma evolução da versão da Microsoft.
 
;Visual Fortran : versão comercializada primeiramente pela Digital e depois pela Compaq. Uma evolução da versão da Microsoft.
  
;[http://www.g95.org/ g95] Free, open source Fortran 95 compiler and runtime libraries
+
;[http://www.g95.org/ g95] : Grátis, código aberto, compilador Fortran 95 para Linux.
 +
 
 +
;[[Fortran em Linux]]: Veja como rodar programa em Linux.
 
   
 
   
;[http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.aspx Fortran 95 Silverfrost]: um compilador '''grátis''' que pode ser obtido na internet:
+
;[[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==
 
==Código Teste==
Alguns compiladores possuem um ambiente gráfico e um bloco de notas para digitar os programas. No compilador Silverfrost:
+
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.
 
* Crie um arquivo novo clicando em New. Escolha ''Free Format''. Uma janela de texto deve abrir.
Linha 24: Linha 31:
 
   print *,"Ola mundo"
 
   print *,"Ola mundo"
 
   end
 
   end
* No menu 'Build', clique em ''Start Run'' para rodar o programa. Salve o programa com o nome ''teste.f90''.
+
* 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  
Deverá abrir uma janela de comando e aparecer a mensagem  
 
 
   Ola mundo
 
   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