Escolar Documentos
Profissional Documentos
Cultura Documentos
As mesmas regras continuaram em vigor , mesmo depois dos cartões perfurados terem caído em desuso e os
programas em FORTRAN 77 passarem a ser escritos diretamente em editores de texto.
Na mesma época que o FORTRAN 77 surgiu, já existiam outras linguagens de programação como o C,
Pascal, Ada e Modula, que haviam introduzido novos conceitos em programação ou fundamentado outros
como a tipagem explícita de variáveis e a definição de novos tipos de dados, o que permitia ao programador
definir estruturas de dados mais adequadas para resolver problemas; alocação dinâmica de dados;
subprogramas recursivos; controle de exceção (uma das principais características da linguagem Ada); e
estabelecimento de módulos.
O FORTRAN 77 não oferecia nenhum desses recursos e começou a ser pouco a pouco abandonado pela
comunidade científica que passou a recorrer a outras linguagens de programação.
1980. Fortran 8X. Durante a década de 1980, foi lançada uma nova revisão do 8x que
incorporava todos os conceitos acima citados (exceto a tipagem explícita e o controle de
exceção).
1990. Fortran 90 (ANSI X3.198-1992)[9] : O processo de definição do novo padrão foi longo e
demorado, mas permitiu o amadurecimento de muitos dos novos conceitos que a linguagem
apresentaria. A versão final desta revisão foi apresentada com o nome de FORTRAN 90.
FORTRAN 90 é tão eficiente quanto o C e o Pascal para os fins a que ela se destina.
FORTRAN 90 trouxe uma novidade para o mundo das linguagens de programação:
mecanismos para manipulação de arranjos, que não são oferecidos por nenhuma outra
linguagem.[10]
1995. Fortran 95 (ISO/IEC 1539-1:1997)[11] O padrão formal da linguagem mais recente,
publicado em 1996, é conhecido como Fortran 95[12]. Esta revisão do FORTRAN acrescentou
pequenas alterações ao FORTRAN 90, motivada pela necessidade de aproximar o padrão à
linguagem High Performance Fortran ou HPF a qual é voltada para o uso de computadores
com arquiteturas avançadas. A linguagem HPF é uma espécie de extensão do FORTRAN 90
e, atualmente, muitos fabricantes oferecem compiladores HPF baseados na linguagem
FORTRAN 90.
2003. Fortran 2003 (ISO/IEC 1539-1:2004)[13] : Desde 1997, o FORTRAN vem passando por
um novo processo de revisão. O FORTRAN 2003 irá incorporar um conjunto de novos
comandos que permitirão, entre outras coisas, o controle de exceções e programação
orientada a objetos.
2008. Fortran 2008 (ISO/IEC 1539-1:2010)[14]. O padrão mais recente, a ISO/IEC 1539-
1:2010, conhecido informalmente como Fortran 2008, foi aprovado em Setembro de 2010.[15]
Tal como o Fortran 95, sofreu pequenos melhoramentos, incorporando clarificações e
correções ao Fortran 2003, assim como algumas novas funcionalidades, tais como:
Submódulos – facilidades estruturais adicionais para os módulos; substitui ISO/IEC TR
19767:2005
Co-array Fortran – um modelo de execução paralela
A construção Scalable parallelism – para iterações sem interdependências.
O atributo CONTIGUOUS – especifica restrições na definição da estrutura lógica
A construção Block ou Dynamic scoping – pode obter declarações de objetos com uso do
escopo da construção
Tipo de dados ou componentes recursivos – como alternativa a indicadores recursivos em
páginas derivadas.
O padrão Final Draft international Standard (FDIS) está disponível como o documento N1830.[16] Outro
importante suplemento ao Fortran 2008 é a especificação técnica (TS) 29113 da ISO em Inglês Further
Interoperability of Fortran with C,[17][18] que foi submetida para aprovação do ISO em Maio de 2012. A
especificação adiciona suporte para acesso a descritores de array ou ve(c)tores da linguagem de
programação C e permite ignorar o tipo e importância dos argumentos.
Compiladores
O compilador livre gcc permite a compilação com o Fortran 77
(compilador g77[19], até ao 3.4.6) e depois o 90 e 95 (a partir de gcc
4.0.0, que substitui g77 para gfortran[20] · [21]), para as novas
plataformas, o compilador g95[22] é também baseado no gcc, mas já
não era mantido depois de 2011. O compilador g77, agora
distribuído separadamente do gcc, pode ser incluído no gcc para
compilar[23], e os seus binários são ainda disponibilizados para Código FORTRAN num Cartão
certos modelos de computadores[24] · [25] · [26]. Outros perfurado, mostrando as colunas de
compiladores, como o da empresa IBM, nunca foram muito texto especializadas 1-5, 6 e 73-80.
populares 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 fluxogramas a partir de programas em FORTRAN
também foi desenvolvido fora da IBM.
Compiladores Fortran para processamento paralelo e/ou distribuído em Cluster of Workstations (COW) ou
Cluster of PCs (agrupamentos de PCs):
gFortran -- g95 -- GNU Compiler Collection -- F2c -- Intel Fortran Compiler -- IBM VisualAge --
Open64
Características e extensões
O Fortran permite a criação de programas que primam pela velocidade de execução. Daí reside seu uso em
aplicações científicas computacionalmente intensivas como meteorologia, oceanografia, física, astronomia,
geofísica, engenharia, economia etc.
Padrões
Os dois padrões abaixo refletem as implementações actuais de Fortran:
Exemplos de código
em FORTRAN 77
C 1 2 3 4
C234567890123456789012345678901234567890
PROGRAM HELLO
PRINT *, "HELLO WORLD!" ! ← USANDO COMANDO PRINT
END
C 1 2 3 4 5 6
C2345678901234567890123456789012345678901234567890123456789012345
PROGRAM BASKHARA
C
REAL :: A,B,C, DELTA, X1,X2, RE, IM
C
PRINT *, "Este programa resolve uma equação de 2o.grau"
PRINT *, "no formato: a*x**2 + b*x + c = 0"
C
PRINT 10, "Digite a, b, c: "
10 FORMAT( A, 1X, $)
20 READ(*, *, ERR=20)A, B, C
C
DELTA= B**2-4.0*A*C
C
IF( DELTA.GT.0 )THEN ! (DUAS RAÍZES REAIS)
X1= ( -B-SQRT(DELTA) ) / ( 2.0*A )
X2= ( -B+SQRT(DELTA) ) / ( 2.0*A )
PRINT *, "RAIZES: X1= ", X1
PRINT *, "X2= ", X2
ELSE
IF( DELTA.EQ.0 ) THEN ! (DUAS RAÍZES REAIS IGUAIS)
X1= -B / ( 2.0*A )
X2= X1
PRINT *, "RAIZES: X1=X2= ", X1
ELSE ! (DUAS RAÍZES COMPLEXAS)
RE= -B / ( 2.0*A )
IM= SQRT( -DELTA ) / ( 2.0*A )
PRINT *, "RAIZES COMPLEXAS: X1= ", RE,"- ", IM, "i"
PRINT *, "X2= ", RE, "+ ",IM, "i"
END IF
END IF
C
END PROGRAM BASKHARA
em Fortran 90
PROGRAM DEGRAD
! Declaracao das variaveis
INTEGER DEG
REAL RAD, COEFF
! Inicio do programa
WRITE ( *, 10)
10 FORMAT (' ',20('*') / &
& '* Degres * Radians *' / &
& ' ', 20('*') )
! Corpo do programa
COEFF = (2.0 * 3.1416) / 360.0
DO DEG = 0, 90
RAD = DEG * COEFF
WRITE ( *, 20) DEG, RAD
20 FORMAT (' * ',I4,' * ',F7.5,' *')
END DO
! Fim da tabela
WRITE ( *, 30)
30 FORMAT (' ',20('*') )
! Fim do programa
STOP
END PROGRAM DEGRAD
em FORTRAN 95
program ola
print*,"Olá Mundo!"
end program ola
program cilindro
! Calcula a área de um cilindro.
!
! Declara as variáveis e constantes.
implicit none ! Requer que todas as variáveis sejam declaradas
integer :: ierr
real :: raio,altura,area
real , parameter :: pi = 3.14159
do
! Pergunta ao usuário o raio e a altura e lê os valores.
write (*,*) "Entre com o raio e a altura, 'q' para sair."
read (*,*,iostat=ierr) raio,altura
!
! Se o raio e a altura não puderam ser lidos da entrada, termina o programa.
if (ierr /= 0) stop "finalizando o programa"
!
! Calcula a área. O sinal ** significa "eleva a uma potência".
area = 2*pi*(raio**2 + raio*altura)
!
! Escreve as variáveis de entrada (raio, altura) e a saida (área) na tela.
write (*,"(1x,'raio=',f6.2,5x,'altura=',f6.2,5x,'area=',f6.2)") raio,altura,area
end do
end program cilindro
Referências
Editora da UFRGS, Porto Alegre, 2005.
1. «Overall Options - Using the GNU Compiler ISBN 85-7025-829-1.
Collection (GCC)» (https://gcc.gnu.org/onlin
edocs/gcc-4.4.1/gcc/Overall-Options.html). 11. «Standard Fortran 95» (https://web.archive.o
rg/web/20101122174901/http://fortran.com/f
gcc.gnu.org (em inglês). Consultado em 13
95_std.pdf) (PDF). Consultado em 25 de
de dezembro de 2017
setembro 2012. Arquivado do original (http://
2. Veja aqui o site de Working Group 5 (http://w www.fortran.com/f95_std.pdf) (PDF) em 22
ww.nag.co.uk/sc22wg5/) e de comité J3 (htt de novembro de 2010
p://www.j3-fortran.org/) para mais
12. da Cunha, Rudnei Dias, "Programação
informações sobre a evolução atual do
Científica em Fortran 95", Clube de Autores,
Acordo
Porto Alegre, 2010. ISBN 978-85-910277-0-
3. Feio, Rui Alberto Lopes (1986). Curso de 5.
Programação Fortran. Lisboa: Fundação
Calouste Gulbenkian. 191 páginas. Depósito 13. «Standard Fortran 2003» (https://web.archiv
e.org/web/20101122174733/http://fortran.co
Legal nº 13449/86
m/f03_std.pdf) (PDF). Consultado em 25 de
4. «Standard ECMA Fortran» (http://www.ecma setembro 2012. Arquivado do original (http://
-international.org/publications/files/ECMA-ST www.fortran.com/f03_std.pdf) (PDF) em 22
-WITHDRAWN/ECMA-9,%201st%20Editio de novembro de 2010
n,%20April%201965.pdf) (PDF). Consultado
14. «Standard Fortran 2008» (https://web.archiv
em 25 de setembro 2012
e.org/web/20101122174545/http://fortran.co
5. «Standard Fortran 66» (http://www.fh-jena.d m/f08_std.pdf) (PDF). Consultado em 25 de
e/~kleine/history/languages/ansi-x3dot9-196 setembro 2012. Arquivado do original (http://
6-Fortran66.pdf) (PDF). Consultado em 25 www.fortran.com/f08_std.pdf) (PDF) em 22
de setembro 2012 de novembro de 2010
6. Setzer, Valdemar Waingort; Simon, Imre; 15. N1836, Summary of Voting/Table of Replies
Kowaltowski, Tomasz (1972). Curso de on ISO/IEC FDIS 1539-1, Information
Fortran IV Básico. São Paulo: Edgard technology - Programming languages -
Blücher. p. 5. CDD 651.8 Fortran - Part 1: Base language
7. «Standard Fortran 77» (http://www.fh-jena.d ftp://ftp.nag.co.uk/sc22wg5/N1801-
e/~kleine/history/languages/ansi-x3dot9-197 N1850/N1836.pdf PDF ( 101 KiB)
8-Fortran77.pdf) (PDF). Consultado em 25 16. N1830, Information technology —
de setembro 2012 Programming languages — Fortran — Part
8. «MIL-STD-1753, Military Standard: Fortran, 1: Base language
DOD Supplement to American National ftp://ftp.nag.co.uk/sc22wg5/N1801-
Standard X3.9-1978» (http://www.everyspec. N1850/N1830.pdf PDF ( 7.9 MiB)
com/MIL-STD/MIL-STD+(1700+-+1799)/dow 17. ISO page to ISO/IEC DTS 29113, Further
nload.php?spec=MIL-STD-1753.011044.PD Interoperability of Fortran with C (http://www.
F) (PDF). Consultado em 25 de setembro iso.org/iso/iso_catalogue/catalogue_tc/catal
2012 ogue_detail.htm?csnumber=45136)
9. «Standard Fortran 90» (https://web.archive.o 18. Draft of the Technical Specification (TS)
rg/web/20101122175141/http://fortran.com/f 29113 ftp://ftp.nag.co.uk/sc22wg5/N1901-
90_std.pdf) (PDF). Consultado em 25 de N1950/N1917.pdf PDF ( 312 kiB)
setembro 2012. Arquivado do original (http://
19. Copia arquivo de site sobre g77 (http://www.
www.fortran.com/f90_std.pdf) (PDF) em 22
de novembro de 2010 kilmnj.com/g77/)
20. GCC Wiki - GFortran (http://gcc.gnu.org/wiki/
10. da Cunha, Rudnei Dias, "Introdução à
Linguagem de Programação Fortran 90", GFortran)
21. gfortran.org (http://www.gfortran.org/)
22. Sitio oficial de g95 (http://www.g95.org/) wrc.usgs.gov/software/g77.html).
23. «Como compilar g77 com uma versão Consultado em 25 de julho de 2012.
recente de gcc ?» (https://web.archive.org/w Arquivado do original (http://www.mbr-pwrc.
eb/20090923194920/http://www.gfortran.org/ usgs.gov/software/g77.html) em 2 de
build-g77.shtml). Consultado em 25 de julho setembro de 2011 site oficial USGS
de 2012. Arquivado do original (http://www.g 25. g77 para MacOS X (http://hpc.sourceforge.n
fortran.org/build-g77.shtml) em 23 de et/)
setembro de 2009 26. g77 para MS-DOS (ftp://ftp.delorie.com/pub/
24. «g77 para o Windows» (https://web.archive. djgpp/current/v2gnu/) no site da DJGPP
org/web/20110902133303/http://www.mbr-p
Ligações externas
Programação em Fortran no Linux (http://vivaolinux.com.br/artigo/Introducao-ao-Fortran-%28p
arte-1%29/)
Curso de Fortran 77 e 90 em português (https://web.archive.org/web/20050731100127/http://w
ww.geocities.com/helder_pc/fortran/)
Early Fortran Manuals (http://www.fh-jena.de/~kleine/history/)
The Fortran Company: compilers, books, tutorials, consulting (http://www.fortran.com)
Fortran Open Directory category (http://dmoz.org/Computers/Programming/Languages/Fortra
n/)
Usenet forum: comp.lang.fortran (http://groups-beta.google.com/group/comp.lang.fortran)
Fortran 90, 95 and 2003 information (http://www.fortranplus.co.uk)
USER NOTES ON FORTRAN PROGRAMMING (UNFP) (http://www.ibiblio.org/pub/language
s/fortran/unfp.html)
Unit 7.1 FORTRAN 77 (https://web.archive.org/web/20040623125758/http://www.aspire.cs.ua
h.edu/textbook/index_f77.html)–; Part of ASPIRE (https://web.archive.org/web/200507230035
11/http://www.aspire.cs.uah.edu/)'s textbook in Computational Science
Unit 7.2 FORTRAN 90 (https://web.archive.org/web/20040626043840/http://www.aspire.cs.ua
h.edu/textbook/index_f90.html)–; Ditto
How Not to Write FORTRAN in Any Language (https://web.archive.org/web/20050713085047/
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=271)There are
characteristics of good coding that transcend all programming languages.
Debugging tool for FORTRAN and its derivatives. (http://www.allinea.com/?page=48)
Professional Programmer's Guide to Fortran77 (http://rsusu1.rnd.runnet.ru/develop/fortran/prof
77/prof77.html)
Obtida de "https://pt.wikipedia.org/w/index.php?title=Fortran&oldid=57592797"
Esta página foi editada pela última vez às 04h47min de 28 de fevereiro de 2020.
Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da
Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de utilização.