Mudanças entre as edições de "Fortran"
m (→Código Teste) |
m (→Subrotinas) |
||
Linha 32: | Linha 32: | ||
− | program principal | + | program principal |
− | real*8 :: x,y,m,S | + | real*8 :: x,y,m,S |
− | real*8,dimension(50) :: u | + | real*8,dimension(50) :: u |
− | real*8 :: norm | + | real*8 :: norm |
− | + | ||
− | x=10.D0 | + | x=10.D0 |
− | y=20.D0 | + | y=20.D0 |
− | + | ||
− | call norma2( u, norm ) | + | call norma2( u, norm ) |
− | + | ||
− | call media( x,y, m ) | + | call media( x,y, m ) |
− | print *," Media ",m | + | print *," Media ",m |
− | + | ||
− | S=soma(x,y) | + | S=soma(x,y) |
− | + | ||
− | end program | + | end program |
− | !------------------------------ | + | !------------------------------ |
− | subroutine norma2( v, saida ) | + | subroutine norma2( v, saida ) |
− | real*8,dimension(5) :: u | + | real*8,dimension(5) :: u |
− | real*8 :: saida | + | real*8 :: saida |
− | + | ||
− | saida=...... | + | saida=...... |
− | + | ||
− | end subroutine | + | end subroutine |
− | !------------------------------ | + | !------------------------------ |
− | + | ||
− | subroutine media( a,b,m ) | + | subroutine media( a,b,m ) |
− | real*8 :: a,b | + | real*8 :: a,b |
− | real*8 :: m | + | real*8 :: m |
− | + | ||
− | m=(a+b)/2.D0 | + | m=(a+b)/2.D0 |
− | + | ||
− | end subroutine | + | end subroutine |
− | !------------------------------ | + | !------------------------------ |
− | function soma( x, y)result( s ) | + | function soma( x, y)result( s ) |
− | real*8 :: x,y | + | real*8 :: x,y |
− | real*8 :: s | + | real*8 :: s |
− | + | ||
− | s=x+y | + | s=x+y |
− | + | ||
− | end function | + | end function |
==Medindo o tempo== | ==Medindo o tempo== |
Edição das 15h29min de 25 de agosto de 2010
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:
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