(Parte 1 de 10)

Guia básico de programação em linguagem Fortran 7 e 90

Helder Pereira Cristo

Belo Horizonte Junho//203

Programação em LLiinngguuaaggem FORTRAN

1. INTRODUÇÃO1
2. FORMATAÇÃO1
3. CONCEITOS BÁSICOS2
4. DECLARAÇÃO DE VARIÁVEIS3

CAPÍTULO 1: CONCEITOS DA LINGUAGEM 1

5. OPERADORES6

Tipos de Variáveis 4 Inteiras (INTEGER) 4 Reais (REAL) 5 Complexas (COMPLEX) 5 Alfanuméricas (CHARACTER) 5 Lógicas (LOGICAL) 6

6. FUNÇÕES INTRÍNSECAS8

Atribuição 6 Operadores Literais 6 Operadores Aritméticos 7 Operadores Relacionais 7 Operadores Lógicos 7 Prioridade 8

7. FUNÇÕES E SUBROTINAS9

Funções Trigonométricas 8 Funções Diversas 9

8. LEITURA E IMPRESSÃO1
9. FORMATOS (LEITURA OU IMPRESSÃO)12

Funções 9 Subrotinas 10

10. ARQUIVOS16

Outros Recursos Para Formatos 15 Outros Recursos 17

1. ESTRUTURA SEQÜENCIAL18
2. COMANDO ‘GO TO’ OU ‘GOTO’19
3. ESTRUTURA CONDICIONAL19

CAPÍTULO 2: ESTRUTURAS DE PROGRAMAÇÃO 18

4. ESTRUTURAS DE REPETIÇÃO21

Estrutura Condicional Simples 19 Estrutura Condicional Composta 19 Estrutura Condicional Composta Simplificada 20

Estruturas de Repetição Simples 21 DO WHILE (F90) 2 DO Implícito (WIN) 23

1. DESLOCAMENTO24

CAPÍTULO 3: RECURSOS DE PROGRAMAÇÃO 24

2. DECLARAÇÕES E ATRIBUIÇÕES AVANÇADAS25
3. DESIGNAÇÃO DE MEMÓRIA28
4. MODULARIZAÇÃO29

GOTO Implícito 24 IF Com Deslocamento 24 DIMENSION 25 PARAMETER 26 TYPE (F90) 26 DATA 27 COMMON 28 BLOCK DATA 29 INCLUDE 29

1. FUNÇÕES TRIGONOMÉTRICAS31
2. FUNÇÕES GENÉRICAS32
3. EXPONENCIAIS3
4. LOGARITMOS3
5. MÁXIMOS3
6. MÍNIMOS3
7. RESTOS3
8. RAIZ QUADRADA DE X34
9. TRUNCAMENTO DE X34
10. ARREDONDAMENTO DE X34
1. DIFERENÇA POSITIVA ENTRE X E Y34
12. TIPO DE DADO34
13. TRANSFORMAÇÃO DO TIPO DE X35
14. COMPLEXOS35
15. CARACTERES35
16. VALORES ABSOLUTOS DE X36

ANEXO A: FUNÇÕES INTRÍNSECAS 31

1. ABERTURA DE ARQUIVOS (OPEN)37
2. FECHAMENTO DE ARQUIVOS (CLOSE)38
3. ESCRITA (WRITE)38
4. LEITURA (READ)39
5. RECUO TOTAL (REWIND)39
6. RECUO DE UM CAMPO (BACKSPACE)40

ANEXO B: OPÇÕES DE ARQUIVOS, LEITURA E ESCRITA 37 ANEXO C: TABELA DE VALORES ASCII 41

1. Introdução

Em FORTRAN existem basicamente duas formas de se escrever um programa: com formulário fixo (‘fixed form’) ou com formulário livre (‘free form’). Sendo este segundo disponível apenas para os compiladores mais novos que suportam a programação em FORTRAN 90. Outro ponto importante é que existem comandos válidos somente para estes novos compiladores (por exemplo Microsoft Developer Studio) que aceitam programas em FORTRAN 90. Algumas versões dos compliladores baseados em FORTRAN 7 aceitam funções ou comandos criados posteriormente a essa versão, mas não aceitam todas as inovações dos compiladores de FORTRAN 90. Para as explicações ficarem mais claras a seguinte nomenclatura será utilizada:

· tópicos precedidos da identificação N77 só são validos para compiladores novos, mas que não aceitam a programação em FORTRAN 90;

• tópicos precedidos de F90 são válidos apenas para os compiladores que aceitam comandos FORTRAN 90.

Deve ficar claro que compiladores para FORTRAN 90 aceitam também os outros dois tipos, e os baseados em FORTRAN N77 aceitam todos os comandos dos compiladores mais antigos (FORTRAN 7), e que a recíproca não é verdadeira.

Os programas podem ser escritos em qualquer editor de texto, desde que sejam salvos com as extensões .for ou .f90. Esta segunda forma somente para F90. Os compiladores em N77 e F90 possuem um editor próprio; que deve ser usado, pois possui muitos recursos adicionais, como por exemplo o destaque das palavras chaves e identificações mais claras dos erros de compilação, o que facilita muita a detecção de falhas na criação dos programas.

2. Formatação

A formatação dos códigos em FORTRAN, principalmente em formato fixo deve seguir um estilo diferente dos usados na maioria das linguagens de programação. Estes conceitos iniciais podem não ficar claro para os iniciantes na linguagem, estes leitores podem observar o exemplo no final do item 8 (Leitura e impressão) para ter maior clareza da disposição dos comandos em FORTRAN.

Os seguintes critérios devem ser seguidos para se escrever um programa em FORTRAN no modo de formulário fixo:

· colunas 1 a 5: são usadas para escrever os rótulos ‘label’ ou números de comando. Estes números devem ser inteiros e estar totalmente contido nestas colunas. Não podem se repetir e não precisam estar em ordem crescente. Serão usados para que outros comandos possam identificar aquela linha;

• coluna 6: qualquer caractere diferente de 0 “zero” nesta coluna indica que o que vem a seguir é continuação da linha anterior ou da ultima linha que não seja um comentário (próximo item, conceitos básicos). Um mesmo comando pode estar dividido em até 19 linhas de código. Entre as linhas do comando pode haver linhas em branco ou comentários;

• colunas 73 a 80: campos de identificação, são usados pelo compilador, portanto não se deve escrever nestas colunas.

F90 – O programa pode ser escrito em qualquer posição, desde que o modo formulário livre esteja ativado. Alguns pontos devem ser observados para este formato:

• as linhas de continuação são indicadas pelo símbolo ‘&’ no fim da sentença, e a próxima linha abaixo que não seja um comentário será tomada como continuação. Deixe sempre um espaço entre os comandos e o símbolo de continuação. É permitida a inserção de comentários após o ‘&’;

• os rótulos devem ser os primeiros caracteres da linha, e podem estar em qualquer coluna.

3. Conceitos Básicos

Nesta seção serão apresentados outros conceitos importantes para a construção de programas em FORTRAN.

• Comentários: não são interpretados pelo computador, um bom programa deve conter muitos para que fique o mais claro possível principalmente para quem vai analisá-lo. Em FORTRAN a letra ‘c’ ou o caractere ‘*’ na primeira coluna indica que toda a linha é um comentário. Alguns compiladores aceitam o uso de qualquer caractere diferente de números para iniciar a linha de comentário. Na linha de comentário é permitido o uso de qualquer caractere, especial ou não.

N77 – o ponto de exclamação ‘!’ indica que o que vem após ele é comentário, ele pode vir em qualquer posição, inclusive após os comandos.

· Variáveis e Nomes de Blocos: devem ter no máximo seis letras, não é permitido o uso de caracteres especiais e não podem começar com um número.

N77 – podem ter 31 caracteres, inclusive o caractere ‘underscore’ ‘_’

Constantes

• Numéricas: podem conter quaisquer valores reais, inteiros ou complexos. A parte decimal é separada da inteira por um ponto ’.’. Os zeros antes e depois do ponto decimal podem ser omitidos, se não forem significantes. O expoente decimal é indicado pela letra ‘e’ ou ‘E’, deve vir entre o número e seu expoente sem o uso de espaços entre eles. Números negativos assim como a parte exponencial quando for negativa deve vir precedida do sinal menos ‘-‘. O sinal ‘+’ é opcional em ambas as partes. Os números imaginários devem vir entre parênteses e a parte real deve ser separada por uma vírgula da parte imaginária.

• Alfanuméricas: (são as ‘strings’, seqüências de letras e/ou números) podem conter qualquer seqüência de caracteres não especiais. Devem vir entre aspas “ “ ou apóstrofos ‘ ‘. As aspas têm preferência sobre os apóstrofos, portanto um valor literal pode conter apóstrofos, desde que seu valor venha entre aspas. Não é permitido o uso de caracteres especiais e letras acentuadas. Uma forma de se indicar ao compilador que usará um valor alfanumérico é o uso de wHvalorliteral, onde w é o número de caracteres do valor alfanumérico. Apresar de válido este formato praticamente não é usado nos programas atuais.

• Maiúsculas e Minúsculas: FORTRAN não é ‘case sensitive’, isto é não faz qualquer distinção entre letras maiúsculas e minúsculas. É permitido inclusive o uso do nome da variável escrita de formas diferentes num mesmo programa. EX.: VAR = var = Var.

• Nomes de programa: os programas podem conter no início o seu nome (program nome_do _programa), e devem terminar com a palavra ‘end’ indicando que o que vem a seguir não precisa ser executado.

4. Declaração de Variáveis

As variáveis podem ser inteiras, reais ou literais. A declaração de uma variável deve vir antes que ela seja usada, se isto não ocorrer o compilador assumirá que as variáveis que começam com as letras I até N como inteiras (INTEGER*4) e todas as outras como reais (REAL*4).

Esta forma de declaração implícita pode ser modificada usando o comando ‘implicit tipo (a1-a2,b1-b2,...)’ sendo a1, a2, b1, b2 quaisquer letras do alfabeto. A vírgula separa os intervalos de letras e o sinal – determina o intervalo. As letras que não estiverem em nenhum dos intervalos terá o seu tipo dado pela declaração implícita. O comando seguinte indica que as variáveis que começam com as letras a, b, c e de r até z são do tipo TIPO1.

implicit TIPO1 (a, b, c, r-z) os espaços são usados para dar clareza e são ignorados pelo compilador. Quando não se deseja que nenhuma variável seja declarada implicitamente usa-se o comando ‘implicit none’. Se este comando for usado e uma variável citada no programa não estiver em nenhuma outra declaração o complilador acusará um erro.

Para se declarar variáveis que sejam matrizes e vetores deve-se indicar suas dimensões logo após o nome da variável; entre parênteses, e separadas umas das outras por vírgula. Ex.: a(4,3) indica uma matriz ‘a’ de 4 linhas por 3 colunas.

As variáveis podem receber valores iniciais usando ‘/valor/’, logo após sua declaração. No caso de vetores e matrizes devem ser dados os valores para todos os elementos de cada linha em seqüência.

Tipos de Variáveis

(Parte 1 de 10)

Comentários