Fortran

A programação imperativa é um paradigma que descreve a computação como ações (ou comandos) que mudam o estado e/ou variáveis de um programa. Recebe esse nome por ser parecido com o comportamento imperativo das linguagens naturais que expressam ordens, através de verbos conjugados no modo imperativo. A primeira linguagem de programação imperativa e de alto nível a ganhar ampla aceitação foi o FORTRAN.

Folhas para inserção de códigos em FORTRAN; livro sobre programação Fortran IV. Foto: ViniRoger

O nome deriva de FORmula TRANslation, pois a ideia inicial da linguagem era traduzir equações científicas para códigos de computador. O primeiro compilador de FORTRAN foi desenvolvido para o IBM 704 em 1954-57. Desde então, vieram outras versões: Fortran II, Fortran IV – Fortran 66, Fortran 77, Fortran 90/95, Fortran2003/2008.

O Fortran77 acabou fiando muito obsoleto em relação às linguagens atuais e aos recursos existentes. Por exemplo, as linhas dos programas tem formato fixo (somente é possível escrever na posição 7 a 72), somente aceita letras maiúsculas e os nomes de variáveis só aceitam até 6 caracteres.

O Fortran 90 possui novos recursos na definição de um “array”, alocação de memória dinâmica, estruturas de controle, etc. O formato das linhas está mais livres: recebe até 132 caracteres por linha, contendo letras maiúsculas e/ou minúsculas (sem diferenciação), os nomes de variáveis podem receber até 31 caracteres e também é possível ter mais de um comando por linha.

Compilador

Um compilador é o programa que traduz de uma linguagem de compilação (código fonte) para outra linguagem equivalente (código objeto ou de máquina).

O gfortran (do GNU) é um dos mais populares. Ele costuma distinguir os arquivos .f/.F como os de tamanho fixo e os .f90/.F90 como formato livre. Geralmente já vem com o Linux, mas pode ser instalado através do repositório: comando “sudo apt-get install gfortran”.

A partir do momento que tiver um código fonte, pode ser executado o seguinte código para gerar um arquivo binário (ou executável), legível somente pela máquina em que foi compilado (ou uma equivalente):

gfortran nomes_do_programa -o nome_do_executavel

Para rodar o programa, basta indicar o local onde está o programa junto com o seu nome. No caso de estar no mesmo diretório de trabalho, basta executar “./nome_do_executavel”.

Código fonte

O exemplo abaixo começa com um comentário (usando ponto de exclamação como primeiro caractere de uma linha) e o nome do programa. Depois, vem a parte de declaração de variáveis, que podem ser INTEGER (inteiro), REAL (ponto flutuante, que pode ter precisão dupla, como DOUBLE PRECISION), COMPLEX (complexo), LOGICAL (lógico) e CHARACTER (texto). O READ permite entrar dados antes ou durante a execução do programa. Com o WRITE (ou PRINT), podemos ver os resultados da execução do código.

! Programa de teste Fortran

PROGRAM teste

! Declaracao das variaveis (sem variaveis implicitas)
implicit none
INTEGER :: i
REAL :: x,y

! Inicio do programa
PRINT*, "Monolito Nimbus"
DO i = 1, 10
	x = I*0.1; y=x**2
	IF (y < 0.5) THEN
		WRITE(*,*), 'resultados:',x,y
	ELSE
		WRITE(*,*), 'potencia maior do que 0.5'
	ENDIF
END DO

END PROGRAM teste

O código também conta com um exemplo do uso de condicional IF/ELSE dentro de um loop DO.

IFORT

O compilador Intel Fortran, também conhecido como IFORT, é um grupo de compiladores Fortran da Intel para Windows, OS X e Linux. O programa deve ser baixado mediante um cadastro no site, que permitirá o envio de uma licença para o seu e-mail. Para realizar o download e instalação no seu computador, execute os seguintes passos (como exemplo, usando a versão 2019.5.075):

$ curl -LO http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15809/parallel_studio_xe_2019_update5_cluster_edition.tgz
$ tar xzf parallel_studio_xe_2019_update5_cluster_edition.tgz
$ cd parallel_studio_xe_2019_update5_cluster_edition
$ sudo ./install.sh

Talvez seja necessário instalar alguns pacotes pelo repositório. Além disso, é preciso inserir a variáveis de ambiente, o que pode ser feito acrescentando as seguintes linhas no arquivo “~/.bashrc” do seu usuário:

source /opt/intel/parallel_studio_xe_2019.5.075/bin/psxevars.sh
source /opt/intel/bin/compilervars.sh intel64
source /opt/intel/mkl/bin/mklvars.sh intel64
export PATH="$PATH:/opt/intel/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/libraries/intel/lib"

Não esqueça de atualizar seu terminal usando “source ~/.bashrc” ou abrindo um novo. A compilação de um programa em fortan usando o ifort e algumas flags seria assim:

$ ifort -o nome_do_executavel.exe nome_do_programa.f90 -I/opt/libraries/intel/include -L/opt/libraries/intel/lib -lnetcdff -lnetcdf

Os diretórios definidos com “includes” (-I) e “libraries” (-L) foram definidos nas respectivas flags, assim como o uso de bibliotecas para NetCDF. Para executar o binário gerado, basta usar “./nome_do_executavel.exe”.

Fontes

Compartilhe :)

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.