Eu queria saber qual é a melhor maneira de aprender a programar no Fortran?
Estive procurando livros, os exemplos que me pareciam bem foram "Fortran 95/2003 Explained" e "Fortran For Scientists And Engineers" .
Não sei o que vocês acham disso?
Outra coisa que eu estou pensando é sobre qual compilador devo usar? Eu trabalho em uma máquina Windows 7 (64 bits).
Espero que vocês possam me ajudar nessa!
Então, para a minha experiência com programação:
- Matlab e maple foram tipo minhas primeiras introduções no mundo da programação. O Matlab é um programa no qual sou realmente muito bom, aprendi a trabalhar com loops e como combiná-los para criar programas mais eficientes. O Maple está mais na fase básica (eu sei como pesquisar a solução para integrais simples etc.).
- Um ano depois disso, tivemos uma introdução ao C ++ no visual basic. O professor realmente foi rápido nisso, depois de 2 meses já estávamos discutindo indicadores e herança. Sou capaz de escrever programas simples nessa linguagem, apenas o trabalho com as aulas é algo que continua sendo uma dificuldade, mas acredito que é apenas uma questão de prática.
- E um ano depois eu precisava aprender o Mathematica 8, o qual também estou me aperfeiçoando atualmente.
Então, eu tenho um pouco de experiência em programação, mas não vou dizer que é uma quantidade incrível!
A razão pela qual quero aprender o Fortran é principalmente porque você não pode fazer física teórica por si só, precisa testar suas teorias e, por isso, precisará escrever programas que possam testar numericamente essas teorias. Ouvi dizer que o Fortran prefere o idioma a ser usado quando se trata de matemática numérica, então acho que seria útil conhecer esse idioma.
ps: qual é a diferença entre Fortran95 e Fortran 2003?
Respostas:
Vou seguir a segunda recomendação de stali do livro de Chapman. Aprendi com o livro Fortran 90 de Chapman, e foi muito útil. Ele ensinará a língua Fortran. Ele não ensinará sobre bons fluxos de trabalho para programação e, para isso, você deve procurar outro lugar depois de aprender algum Fortran e programar um pouco.
A maioria dos recursos on-line para ajudá-lo com a programação do Fortran será baseada em Linux. Da mesma forma, na ciência da computação, a maioria dos materiais escritos será voltada para usuários do Linux. Por esse motivo, eu recomendo fortemente que você instale o VirtualBox (ou algum tipo de software que permita executar sistemas operacionais virtuais) e instale alguma distribuição Linux lá. Se você nunca usou o Linux antes, uma distribuição amigável como Ubuntu, Mint ou Fedora provavelmente será sua melhor aposta. Essas distribuições requerem uma quantidade mínima de configuração se executadas em um ambiente virtual e possuem uma boa interface gráfica para ajudá-lo a navegar no sistema operacional. Cada uma dessas distribuições possui um gerenciador de pacotes que você pode usar para instalar algum software adicional. Usando o gerenciador de pacotes, você pode instalar o gfortran.
Você deseja desenvolver software em um editor de texto (ou em um IDE), por isso provavelmente vale a pena aprender o básico da linha de comando. Carpintaria de software possui bons recursos para esta tarefa. (Isenção de responsabilidade: ensinei parte de um workshop sobre Carpintaria de software.) Então você deve seguir em frente aprendendo a escrever programas simples e compilá-los na linha de comando e aprender a usar o Makefile.
O problema de fazer qualquer coisa com base no Windows é que a maioria dos materiais on-line que você verá ao fazer ciência da computação presumirá que você está usando Linux, e o conselho (se for bom para começar) será interrompido para baixo e custar-lhe tempo. Cygwin é uma camada de API que adiciona mais funcionalidades semelhantes ao Linux, mas a correspondência com o Linux não é perfeita e o software compilado para Linux não funciona na sua máquina; você ainda precisará obter versões nativas do Windows ou recompilar o software para Windows. Um compilador Fortran nativo do Windows, como o Visual Fortran, vai custar dinheiro, e você ainda terá o problema de que a maioria dos usuários e cientistas computacionais do Fortran usa Linux para o desenvolvimento de software, o que significa que você terá que seguir adiante. próprio. No entanto, se você realmente precisardistribuir software baseado no Windows por algum motivo, faz sentido fazer todo o esforço para descobrir como usar algo como o Visual Fortran.
fonte
Penso que o livro Metcalfe é um bom guia anotado para os recursos modernos do Fortran, muito útil se você já conhece uma versão anterior da linguagem, mas não é uma boa introdução à programação na linguagem.
Pelo meu dinheiro, o livro de Chiver e Sleightholme e o livro de Brainerd são bons o suficiente, embora eu não ache que seja tão bom quanto o livro de Ellis et al. Que, infelizmente, não foi atualizado para o Fortran 2003 ou posterior.
Tenho uma forte aversão ao livro de Chapman. Não me lembro por que detestava tanto a edição 90/95, que não pode mais justificar essa aversão; você pode descartá-la como preconceito.
Mas o único livro que recomendo sem hesitação é o livro de Arjen Markus . Provavelmente não é uma introdução ideal para alguém que ainda está tentando descobrir os recursos básicos da linguagem, mas depois que você os domina, vale a pena pesar alguma substância valiosa.
Quanto a qual compilador usar, eu uso o compilador Intel e geralmente estou feliz com ele. Ele se integra ao Visual Studio, o que pode ser importante para você. O compilador NAG possui melhores mensagens de erro e aviso, mas produz executáveis mais lentos (geralmente e sua experiência pode ser diferente). O compilador gfortran é gratuito e recebe boas críticas, mas não é o que eu uso. Se você quiser saber mais, o Poliedro lhe dirá.
fonte
Para livros, eu recomendo "Modern Fortran Explained", de Metcalf / Reid / Cohen. É mais uma referência do que um livro, mas será útil se você já teve alguma exposição à programação em geral (digamos, C).
Além desse livro, recomendo fortemente o site de Ondřej Čertík http://fortran90.org/ . Ele não ensinará o Fortran em primeiro lugar, mas fornecerá um conjunto de práticas recomendadas. O Fortran permite várias formas de programação - afinal, é compatível com versões anteriores. As práticas recomendadas fornecidas ajudarão a desenvolver um estilo Fortran consistente e moderno. Além disso, as perguntas frequentes encontradas serão do seu interesse.
fonte
Acho que o livro de Chapmans é mais amigável para iniciantes e uma boa referência. Os autores do segundo são todos especialistas, mas acho que o livro será uma boa adição à sua biblioteca posteriormente.
Para começar, sugiro que você siga o Fortran 95 e depois (se necessário) mude para o Fortran 2003. O Fortran 95 é fácil de aprender (quase como o Matlab) e você será produtivo rapidamente.
No Linux, você tem vários compiladores Fortran gratuitos (GNU, Solaris Studio, Open64 etc.), além de um conjunto mais rico de ferramentas, como valgrind, gdb, gnuplot (para visualização rápida), svn / hg etc. pacotes pré-compilados, incluindo bibliotecas numéricas (blas / lapack / netcdf / fftw etc.) estão a um comando de distância (pelo menos no Debian com o apt-get).
No Windows, você pode ser melhor com o cygwin, pois fornece acesso fácil e rápido a algumas das ferramentas / bibliotecas acima, além do compilador GNU Fortran. Então, sim, vá para cygwin.com e instale o pacote principal, juntamente com o gfortran e um editor de sua escolha (o vim é bom). Isso deve ser um bom começo. Mais tarde, se você tiver mais alguma coisa, sugiro usar o pacote apt-cyg para instalar coisas.
fonte