Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Programação Fortran para Engenharia: Fluxograma, Compiladores Fortran, Variáveis e Funções, Notas de estudo de Linguagem de Programação

Este documento fornece informações sobre programação fortran para engenharia, incluindo um fluxograma para gerar 100 pontos para construir um gráfico da velocidade superficial em função do diâmetro de partícula, compiladores fortran como intel fortran, compaq fortran, gcc e profortran, tipos de variáveis no fortran, como integer, real e real*8, e como chamar funções no fortran. Além disso, é fornecida uma amostra de código fortran para leitura de dados e cálculo da média e do desvio padrão.

Tipologia: Notas de estudo

2022

Compartilhado em 07/11/2022

Jorginho86
Jorginho86 🇧🇷

4.6

(97)

230 documentos

1 / 68

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
i
PROGRAMAÇÃO
FORTRAN
PARA ENGENHARIA
Fabiano A.N. Fernandes
1a Edição
2003
Programação Fortran para Engenharia
Fabiano A.N. Fernandes
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44

Pré-visualização parcial do texto

Baixe Programação Fortran para Engenharia: Fluxograma, Compiladores Fortran, Variáveis e Funções e outras Notas de estudo em PDF para Linguagem de Programação, somente na Docsity!

i

PROGRAMAÇÃO

FORTRAN

PARA ENGENHARIA

Fabiano A.N. Fernandes

1 a^ Edição 2003

ii

1

1. INTRODUÇÃO

O Fortran tem sido usado por cientistas e engenheiros por muitos anos, sendo uma das principais linguagens de programação científica especialmente devido a sua capacidade em fazer cálculos. Taxada de linguagem obsoleta pelas pessoas que desconhecem as novas atualizações na sua estrutura de programação, o Fortran hoje possui todos os elementos de linguagem que tornaram o C++ famoso. O Fortran, abreviação de FORmula TRANslation (ou originalmente IBM Mathematical FORmula Translation System), é a mais velha das linguagens de alto nível e foi desenvolvida pelo grupo IBM no final da década de 1950. A linguagem ganhou popularidade na década de 1960 e ganhou sua primeira versão padronizada: Fortran 66. Em meados da década de 1970, todo grande computador vinha com a linguagem Fortran embutida e era a linguagem mais robusta da época e tinha um processamento muito eficiente. Além disso o código podia ser compilado (transformado em um programa executável) em qualquer tipo de sistema de computador e portanto se tornou a linguagem mais usada no meio científico. O domínio do Fortran levou a uma nova atualização que ganhou o nome de Fortran 77 (pelo qual o Fortran é conhecido até hoje). Infelizmente a revisão para o Fortran 77 foi muito conservadora mantendo uma estrutura de programação antiga. Com a popularização dos computadores pessoais, os jovens programadores da década de 1980 preferiam aprender Basic, Pascal e no final dos anos 80, o C; que eram linguagens que tinham uma estrutura de programação mais bem estruturada e moderna. Essa preferência dos jovens programadores levou no início da década de 1990 a uma mobilização para implantar o C++ como linguagem de programação preferencial no meio científico, aliando capacidade de cálculo com uma estrutura moderna de programação. A migração para o C++ só não foi maior porque muitas rotinas de métodos numéricos estavam em Fortran e daria muito trabalho e levaria muito tempo para traduzi-las para o C++. Na mesma época (1991) o Fortran recebeu sua maior atualização, com a introdução do Fortran 90 que permitia o uso de muitos comandos e estrutura das linguagens mais modernas.

2

1.1. O Curso

Este curso, irá apresentar os principais comandos do Fortran 90 usados para fazer projetos de engenharia. Os exemplos e exercícios focam em problemas tradicionais e de utilização prática. Ao final do curso, alguns métodos numéricos mais utilizados são abordados, mostrando como criar programas usando bibliotecas numéricas.

3

2. LÓGICA DE PROGRAMAÇÃO

Programar em Fortran, assim como em qualquer outra linguagem de programação é simples, o complicado é organizar o pensamento lógico e estruturar a resolução do problema para se atingir o objetivo que se deseja. É um erro comum e grave para o iniciante em programação, escrever um programa sem ao menos esquematizar as ações que devem ser executadas pelo programa (algoritmo) de modo a solucionar o problema. Nos primeiros programas, o algoritmo ajuda a organizar o pensamento lógico, principalmente quando decisões devem ser tomadas ou operações com vetores e matrizes são necessários. Após algum tempo de experiência, o processo de organização da estrutura do programa passa de a ser lógico e fácil, não sendo necessário fazer um algoritmo muito detalhado. Porém se o programa for utilizado por mais de uma pessoa, o algoritmo ainda é necessário para facilitar o entendimento do programa por outras pessoas, uma vez que ler um algoritmo é bem mais fácil do que ler o código de um programa.

2.1. Algoritmo

Um algoritmo é uma sequência finita de passos que levam a execução de uma tarefa, ou seja, é a receita que deve ser seguida para se chegar a uma meta específica. O programa por sua vez, é nada mais do que um algoritmo escrito numa linguagem de computador.

Regras Básicas para Construção de um Algoritmo

Para escrever um algoritmo deve-se descrever a sequência de instruções de maneira simples e objetiva, podendo-se utilizar algumas técnicas básicas:

v usar somente um verbo por frase v usar frases curtas e simples v ser objetivo v usar palavras que não tenham sentido dúbio

4

Fases de um Algoritmo

O algoritmo deve conter as três fases fundamentais da resolução de um problema. Estas fases são a leitura de dados, cálculos (ou processo) e impressão dos resultados.

Entrada de Dados

Impressão dos Processo Resultados

EXEMPLO 1

Um algoritmo para calcular a média de três números tomaria a forma:

  1. Ler N1, N2 e N
  2. Calcular Média pela equação:

N 1 N 2 N 3

Media

  1. Imprimir Média

2.2. Fluxograma

O fluxograma é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processo. Sua principal função é a de facilitar a visualização dos passos de um processo. O fluxograma é constituído por diversos símbolos que representam estes elementos de programação (Tabela 2.1). No interior dos símbolos sempre existirá algo escrito denotando a ação a ser executada.

Tabela 2.1. Elementos do fluxograma início e fim leitura de dados impressão de dados ação decisão conexão

7

EQ2 : 0 ,^14

0 , 33 0 , 33 Pr

0 , 33

10 , 56 Re  ⋅ φ

L

d

NNu N N

para NRe > 2100

d diâmetro do tubo L comprimento do tubo NNu número de Nusselt NPr número de Prandtl NRe número de Reynolds φ razão de viscosidade do fluido no centro e na parede do tubo

O fluxograma do programa para cálculo do coeficiente de transferência de calor será:

Início

NRe, NPr, d, L,

NRe < 2100 Calcula NNu pelaequação EQ

Não

Sim

φ

Calcula NNu pela equação EQ

Fim

Imprime NNu

Figura 2.4. Fluxograma para cálculo do coeficiente de transferência de calor.

No fluxograma acima, após a leitura das variáveis necessárias, o programa deve decidir qual das duas equações será usada para o cálculo do número de Nusselt,. Esta decisão é feita comparando o número de Reynolds lido com o limite superior para a aplicação da equação EQ1. Dependendo do valor do número de Reynolds, o número de Nusselt será calculado pela EQ1 ou pela EQ2.

8

EXEMPLO 4 É muito comum em engenharia, termos que gerar dados para montar um gráfico de uma determinada função. A velocidade terminal de uma partícula é função do tamanho da partícula e das propriedades do fluido e do sólido e pode ser calculada pela equação:

( )

p ρ^ s ρf

t

D

u

Se quisermos gerar 100 pontos para construir um gráfico da velocidade superficial em função do diâmetro de partícula, para partículas variando de 50 a 1000 μm poderemos usar o seguinte fluxograma:

Início

s, f, μ

DeltaDP = (1000 - 50)/

I = 1

DP = 50 + (I-1)*DeltaDP

Calcula Ut

Dp, Ut

I = I +

I <= 100

Fim

Sim

Não

ρ ρ

Figura 2.5. Fluxograma para cálculo do coeficiente de transferência de calor.

9

No fluxograma acima, um contador ( I ) é utilizado para fazer a iteração de 1 até 100 que é o número de pontos desejado para o gráfico. Um valor de incremento é definido para o diâmetro das partículas ( DeltaDP ) e este é usado no cálculo do diâmetro da partícula ( DP ). Após a velocidade terminal ( UT ) ser calculada, os valores de DP e UT são impressos. O contador é incrementado em uma unidade e o processo continua até que 100 pontos sejam impressos.

EXEMPLO 5

A tecnologia Pinch, usada para otimizar a troca de energia entre as diversas correntes de um processo, requer a organização das temperatura das diversas correntes em ordem decrescente, em uma de suas etapas. As temperaturas das correntes são armazenadas em um vetor que deve ser organizado do maior valor para o menor valor. Se a temperatura de 10 correntes tiverem de ser organizadas, o fluxograma a ser seguido será dado por:

Início

Ler Vetor A contendo as Temperaturas das Correntes

I = 0

I = I + 1

J = I

A(I) < A(J) B = A(I) A(I) = A(J) A(J) = B

J < 10

I = 9

Fim

J = J + 1

Não

Sim

Não

Não

Sim

Sim

Figura 2.6. Fluxograma para organização de um vetor em ordem decrescente.

10

Neste fluxograma usamos o conceito de contadores (variáveis I e J ), que servem para contar o número de iterações realizadas, ou simplesmente para marcar uma posição. Neste caso os contadores servem para indicar qual a posição no vetor A que contém as temperaturas. Para organizar o vetor é necessário procurar pelo maior valor e colocá-lo na primeira posição do vetor, buscar pelo segundo maior valor e colocá-lo na segunda posição do vetor e assim por diante. Se inicialmente o vetor estiver totalmente desorganizado o maior valor pode estar em qualquer posição no interior do vetor, como por exemplo:

1 2 3 4 5 6 7 8 9 10 12 9 25 11 2212 15 3 7 18

Posição Valor

Para achar o maior valor e colocá-lo na primeira posição do vetor, podemos usar o contador I e dar a ele o valor 1 referente à primeira posição no vetor A. Portanto a variável A(I) conterá o valor do primeiro valor do vetor, ou seja, A(1). Para colocar o maior valor do vetor nesta posição, devemos comparar o valor desta posição com os valores contidos nas outras posições do vetor, ou seja com as posições 2 até 10. Para controlar qual a posição que será comparada com a posição I , podemos usar o controlador J , fazendo este variar de 2 até 10. Se o valor de A(J)^ for maior que o valor de A(I) , então trocamos estes valores de posição de forma que o maior valor fique na primeira posição:

1 2 3 4 5 6 7 8 9 10 12 9 25 11 2212 15 3 7 18

Posição Valor

Uma vez que a primeira posição do vetor foi preenchida corretamente com o maior valor do vetor, podemos repetir a mesma operação para achar o segundo maior valor e colocá-lo na segunda posição do vetor. Para tanto, o contador I é incrementado recebendo o valor 2 referente à segunda posição no vetor A. Para colocar o segundo maior valor do vetor nesta posição, devemos comparar o valor desta posição com os valores contidos nas posições restantes do vetor, ou seja com as posições, 3 até 10. Novamente, se o valor de A(J) for maior que o valor de A(I) , então trocamos estes valores de posição de forma que o maior valor fique na segunda posição:

1 2 3 4 5 6 7 8 9 10 25 9 12 11 2212 15 3 7 18

Posição Valor

13

3. COMPILADOR FORTRAN

Compilador é o nome que se dá ao programa que irá transformar o seu código Fortran em um programa executável. Existem vários compiladores Fortran, como o Intel Fortran, Compaq Fortran, GCC, ProFortran, entre outros. Atualmente os compiladores mais usados são:

v INTEL e COMPAQ FORTRAN Devido a facilidade de sua interface, modernidade do código que compila, capacidade de gerar aplicativos com interface gráfica em Windows (QuickWin) e grande variedade de métodos já codificados em sua biblioteca numérica.

v GNU FORTRAN (GCC) Devido a ser um programa livre (grátis). É um compilador para Fortran 77 mas contém a maioria dos comandos do Fortran 90 além da possibilidade de formatação livre do código. Não cria aplicativos com interface gráfica e não contém módulo de bibliotecas numéricas.

Os programas a serem feitos neste curso poderão ser executados em qualquer compilador Fortran com capacidade de compilar Fortran 90. Somente alguns exemplos de capítulo 12 sobre métodos matemáticos irão requerer a biblioteca numérica IMSL. As seções seguintes irão apresentar como iniciar um projeto no COMPAQ Fortran, que é a versão atual do antigo mas ainda popular MS Fortran PowerStation. O INTEL Fortran é a nova denominação do agora antigo COMPAQ Fortran (a diferença é a possibilidade de integração com a plataforma .NET da Microsoft)

3.1. Criando um Projeto

No COMPAQ Fortran, todo programa em Fortran está ligado a um projeto que irá conter o código fonte do programa que está sendo escrito. Para criar um projeto no Fortran, selecione File no menu principal e depois selecione New (Figura 3.1).

14

Figura 3.1. Abertura de um novo projeto no Fortran

Este compilador é capaz de criar vários tipos de programas (programa executável, subrotina DLL, programas com interface Windows, etc.). Neste curso abordaremos os programas executáveis, portanto escolha a opção Fortran Console Application (Figura 3.2).

Figura 3.2. Abertura de um novo projeto no Fortran

15

Dê um nome para o projeto que estará sendo criado. Um novo diretório será criado com o nome deste projeto. Será neste diretório que os arquivos com o código do programa em Fortran deverão ser gravados (Figura 3.2). Escolha para criar um projeto vazio (Figura 3.3). Finalize a abertura do projeto pressionando o botão Finish.

Figura 3.3. Abertura de um novo projeto no Fortran

Após criado o projeto, o arquivo que conterá o código em Fortran deverá ser criado. Este arquivo é um arquivo texto comum que posteriormente será gravado com a extenção .f90. Para criar o arquivo do código, pressione o botão New Text File (Figura 3.4).

Figura 3.4. Abertura de um novo arquivo de código.

16

Este arquivo texto poderá ser editado e o código do programa poderá ser digitado nele. Após editado, este arquivo deve ser gravado com a extensão .f. Para salvar o arquivo selecione File no menu principal e depois selecione a opção Save , ou simplesmente pressione o botão Save (Figura 3.5). O nome deste arquivo poderá ser igual ao nome do projeto (recomendável para não causar muita confusão).

Figura 3.5. Gravação de um novo arquivo de código.

Não esqueça de gravar o arquivo com a extensão .f90 (Figura 3.6).

Figura 3.6. Gravação de um novo arquivo de código.

19

O programa começa com o comando PROGRAM e termina com o comando END.

PROGRAM : código : END

onde é o nome dado ao programa

O comando PROGRAM é na verdade opcional, mas pode vir a ser importante para diferenciar o programa principal dos outros módulos, subrotinas e funções (veremos estas estruturas no Capítulo 11). É possível inserir comentários ao longo do programa de forma a identificar as diversas partes do programa e descrever o que está sendo realizado em cada parte. O comentário começa com o caracter!

PROGRAMA EXEMPLO ! PROGRAMA PARA CALCULO DE 2 + 2 A = 2 + 2! EQUAÇÃO END

Muitas vezes as equações são muito longa para caberem na tela, de forma que a linha do programa sairia do campo visual. Neste caso o caracter & pode ser usado para indicar que esta linha de código continua na linha seguinte. O & deve vir no final da linha.

PROGRAMA EXEMPLO ! CALCULO DE UM BALANÇO POPULACIONAL A = (TAU + BETA)(TAU + BETA/2.0(TAU + BETA)(R – 1.0))R/ & (1.0 + TAU + BETA)**R END

2.3. Código em FORTRAN 77

O Fortran 77 é a versão antiga da linguagem Fortran. Ainda hoje ela é bastante popular pois alguns programadores aprenderam a programar em Fortran 77 e escolheram não se atualizar para o usar o Fortran 90. Portanto é muito comum ver programas novos sendo escritos em Fortran 77. As desvantagens do Fortran 77 em relação ao Fortran 90 são: não poder usar alguns comandos novos que foram criados com o Fortran 90; maior

20

dificuldade em fazer alguns tipos de operações com vetores e matrizes; impossibilidade de criar DLLs; e ter que conviver com regras mais rígidas para escrever o programa. O Fortran 77 tem várias regras de escrita do código, sendo que as linhas de código são divididas por seções:

colunas 1 5 6 7 72 A B C

Zona A – contém comentários e números de linha de código (linhas 1 a 5). Zona B – contém o caracter que indica a continuação da linha anterior (linha 6). Zona C – código do programa (linhas 7 a 72).

Um programa em Fortran 77 teria a forma:

1 5 6 7 72 PROGRAM : código : END

A inserção de comentários deve ser feita colocando a letra C na primeira coluna da linha:

1 5 6 7 72

C

PROGRAM EXEMPLO PROGRAMA PARA CÁLCULO DE 2 + 2 A = 2 + 2 END

Qualquer linha de código deve ser escrito até a coluna 72. Após a coluna 72, nenhum código é lido pelo compilador. Se o texto do código chegar até a coluna 72, o restante da linha de código deverá continuar na coluna 7 da linha de baixo. Um caracter qualquer deve ser colocado na coluna 6 para identificar que aquela linha se trata da continuação da linha anterior.

1 5 6 7 72

C

PROGRAM EXEMPLO CALCULO DE BALANÇO POPULACIONAL A = (TAU + BETA)(TAU + BETA/2.0(TAU + BETA)(R – 1.0)R /(1.0 + TAU + BETA)**R END

21

4. TIPOS E DECLARAÇÃO DE VARIÁVEIS

As variáveis podem ser basicamente de quatro tipos: numéricas, caracteres ou lógicas. Os tipos de variáveis do Fortran são:

v INTEGER números inteiros

v REAL número real suporta valores entre 1.0 x 10-45^ até 1.0 x 10^45

v REAL* número real em dupla precisão suporta valores entre 1.0 x 10-300^ até 1.0 x 10^300 este tipo de variável é o tipo mais usado em engenharia e seu uso deve ser preferido dentre as duas formas de número reais programas mais antigos usavam a declaração: DOUBLE PRECISION para este tipo de variável

v CHARACTERi* sequência alfanumérica com um máximo de i caracteres não pode ser utilizada em operações matemáticas

v COMPLEX número complexo

v LOGICAL variável lógica possui dois valores: .FALSE. (falso) e .TRUE. (verdadeiro) este tipo de variável tem sido gradativamente substituído por número inteiros onde 0 se refere a falso e 1 a verdadeiro.

4.1. Declaração de Variáveis

As variáveis podem ser declaradas em grupo ou individualmente. Esta declaração deve vir logo no início do programa.

22

Individualmente, as variáveis são declaradas listando seus nomes após o tipo da variável, como por exemplo:

INTEGER A, B, C REAL D, E REAL8 F, G, H CHARACTER10 I COMPLEX J

É importante dar nomes representativos para as variáveis, de forma que se possa identificar facilmente sua função no programa.

EXEMPLO

REAL*8 DENS, VISC para densidade e viscosidade INTEGER IDX para índice

É comum esquecermos de declarar variáveis no início do programa quando usamos a declaração individual das variáveis. Para evitar este problema, podemos usar a função IMPLICIT para declarar um grupo de variáveis baseados em sua letra inicial:

IMPLICIT REAL*8 (A-H,O-Z)

esta declaração irá fazer com que todas as variáveis iniciadas em A até H e em O até Z sejam número reais em dupla precisão. Como consequência, as variáveis iniciadas em I até N serão número inteiros. Em geral, as letras I a N são utilizadas para denotar números inteiros e as demais são usadas para números reais (convenção estabelecida), porém isto não impede que se use as letras I a N para números reais e as outras para inteiros. Utilizar o comando IMPLICIT não impede a declaração individual de outras variáveis, sendo que declarações individuais se sobrepõe à declaração feita pelo comando IMPLICIT.

EXEMPLO IMPLICIT REAL8 (A-H,O-Z) REAL8 NSA INTEGER P CHARACTER*20 ARQUIVO

25

5. CÁLCULOS MATEMÁTICOS

5.1. Operações Matemáticas Básicas

As operações básicas de adição, subtração, multiplicação, divisão e exponenciação são feitas usando os símbolos da Tabela 5.1.

Tabela 5.1. Símbolos usados para as operações matemáticas Símbolo Operação

/ **

adição subtração multiplicação divisão exponenciação

Uma hierarquia é imposta a estas operações:

  1. parênteses
  2. exponenciação
  3. multiplicação e divisão (o que aparecer primeiro)
  4. adição e subtração (o que aparecer primeiro)

EXEMPLO

As equações: A = B + CD

A = BD^ + E

F

BC D

A

⋅ +^ E

seriam programadas como: A = B + C*D

A = B**D + E

A = (BC + D*E)/F

26

Deve-se sempre ter o cuidado com a hierarquia entre as diferentes operações matemáticas, para se evitar erros de calculo.

EXEMPLO 1

A equação:

( ) E G

F

B C A B

Z

deve ser programada como: Z = (((B-C)E + AB)/F)*G

Se esta mesma equação fosse programada como: Z = (B-C)E + AB/F*G

a equação que estaria sendo calculada seria:

G

E

F

A B

Z B C

que por sua vez resultaria num valor muito diferente do que o valor desejado inicialmente.

5.2. Funções Matemáticas

O Fortran possui um conjunto de funções matemáticas para cálculo de logaritmo, seno, tangente, e muitas outras. As principais funções estão listadas abaixo.

ABS (A) calcula o número absoluto de A A pode ser um inteiro, real ou complexo

ACOS (A) calcula o arco coseno de A (resultado em radianos) A pode ser somente real

ACOSD (A) calcula o arco coseno de A (resultado em graus) A pode ser somente real

ASIN (A) calcula o arco seno de A (resultado em radianos) A pode ser somente real

27

ASIND (A) calcula o arco seno de A (resultado em graus) A pode ser somente real Alguns compiladores podem não aceitar este comando

ATAN (A) calcula o arco tangente de A (resultado em radianos) A pode ser somente real

ATAND (A) calcula o arco tangente de A (resultado em graus) A pode ser somente real Alguns compiladores podem não aceitar este comando

CEILING (A) retorna o menor número inteiro maior ou igual à A A pode ser somente real CEILING(4.8) retorna 5. CEILING(-2.5) retorna –2.

COS (A) calcula o coseno de A ( A em radianos) A pode ser somente real

COSD (A) calcula o coseno de A ( A em graus) A pode ser somente real Alguns compiladores podem não aceitar este comando

COSH (A) calcula o coseno hiperbólico de A A pode ser somente real

COTAN (A) calcula a cotangente de A (resultado em radianos) A pode ser somente real

COTAND (A) calcula a cotangente de A (resultado em graus) A pode ser somente real Alguns compiladores podem não aceitar este comando

EXP (A) calcula a exponencial de A A pode ser somente real

INT (A) converte o valor de A em um número inteiro A pode ser real ou complexo INT(7.8) retorna o valor 7

LEN (S) retorna o número de caracteres de um texto S pode ser somente um campo alfanumérico

28

LOG (A) calcula o logaritmo natural de A A pode ser real ou complexo

LOG10 (A) calcula o logaritmo de A A pode ser real ou complexo

SIN (A) calcula o seno de A ( A em radianos) A pode ser real ou complexo

SIND (A) calcula o seno de A ( A em graus) A pode ser real ou complexo Alguns compiladores podem não aceitar este comando

SINH (A) calcula o seno hiperbólico de A A pode ser somente real

TAN (A) calcula a tangente de A ( A em radianos) A pode ser real ou complexo

TAND (A) calcula a tangente de A ( A em graus) A pode ser real ou complexo Alguns compiladores podem não aceitar este comando

TANH (A) calcula a tangente hiperbólica de A A pode ser somente real

Quando o resultado desejado é um numero real em dupla precisão (REAL*8), as funções acima devem ser precedidas por um D, ou seja, a função tangente será DTAN (A), a exponencial será DEXP (A) e assim por diante.

EXEMPLO 2

A distribuição granulométrica pode ser representada pela equação:

N

D

D

X

1 exp

A programação desta equação é dada por:

X = 1.0D0 – DEXP(-(D/DSTAR)**N)

31

F5.2 número real com 2 casas decimais e 2 algarismos antes da virgula F10.4 número real com 4 casas decimais e 5 algarismos antes da virgula F5.5 forma não válida, pois não há espaço para as 5 casas decimais mais a virgula

Ex.y número real escrito em notação científica com x caracteres, sendo y algarismos reservados para as casas decimais. A parte exponencial terá a forma E±00, ocupando 4 caracteres x deve ser pelo menos igual à y+5 , uma vez que o ponto decimal e a parte exponencial também contam como um caracteres E9.2 número real escrito na forma: aa.bbE±cc E10.1 número real escrito na forma: aaaa.bE±cc

Ax campo alfanumérico com x caracteres A5 campo alfanumérico com 5 caracteres

yX y espaços

Forma de Uso

Incorporado ao comando WRITE :

WRITE(*,’(I2,3X,F5.2,3X,F5.2)’) N, A, B

neste exemplo, o formato 3X,F5.2 ocorre duas vezes na sequência, e portanto um parênteses pode ser usado para suprimir a repetição do texto:

WRITE(*,’(I2,2(3X,F5.2))’) N, A, B

Usando o comando FORMAT :

WRITE(*,100) N, A, B 100 FORMAT(I2,3X,F5.2,3X,F5.2)

EXEMPLO Sendo: I = 100 N = 5 A = 1030. B = 5. C = 12. S = ‘MEDIA’

32

WRITE(*,’(I3,2X,F5.2,2X,E8.2)’) I,C,A Imprimiria: 100__12.56__1.03E+03 (onde _ se refere a um espaço)

WRITE(*,’(A8,F10.3,F10.1)’) S,A,B Imprimiria: MEDIA_____1030.560_______5.

WRITE(*,’(I2,3F5.2)’) N,A,B,C Imprimiria: _5XXXXX_5.5612.56 (a variável A não será impressa pois o tamanho de sua parte inteira é maior do que o reservado para ela)

EXERCÍCIOS

EXERCÍCIO 1

No controle de qualidade, alguns gráficos de controle se baseiam na média de três valores. Escreva um programa para ler três valores números reais, calcular sua média e imprimir o resultado com duas casas decimais.

EXERCÍCIO 2 Escreva um programa para ler dois números reais, calcular o logaritmo do primeiro número, o coseno do segundo e imprimir o resultado destas duas operações e o produto dos dois resultados.

33

7. PROCESSOS DECISÓRIOS

7.1. Operadores Relacionais

Toda decisão no Fortran depende de uma comparação entre dois valores ou de um conjunto de comparações. Os operadores que podem ser usados para comparar duas variáveis são mostradas na Tabela 7.1.

Tabela 7.1. Operadores Relacionais Símbolo Operador ==

= < <= /=

igual maior que maior ou igual que menor que menor ou igual que diferente

Estes operadores servem para decidir o que será feito dependendo do resultado da comparação. O comando mais utilizado para o processo decisório é o IF..THEN e o IF..THEN..ELSE.

7.2. IF..THEN

O comando IF..THEN tem a seguinte estrutura lógica:

Início

comparação PROCESSO

Falso

Verdadeiro

Fim

Figura 7.1. Fluxograma lógico do comando IF..THEN

34

No comando IF..THEN uma comparação é feita entre dois valores. Se a comparação for verdadeira, um determinado processo é executado, caso contrário o processo não é executado. Em termos de programação, a estrutura é:

IF (<comparação>) THEN : PROCESSO : END IF

onde <comparação> é a expressão usada para testar a condição a ser verificada.

Caso o PROCESSO consista somente de uma linha de comando, o comando IF..THEN pode ser escrito como:

IF (<comparação>) PROCESSO

EXEMPLO 1

O coeficiente de arraste (CD) de partículas sólidas pode ser calculado pela equação:

Re

CD = válida para Re < 0,

Para valores maiores do número de Reynolds (Re), a equação para cálculo do coeficiente de arraste é dado pela equação:

( 1 0 , 14 Re^0 ,^7 )

Re

CD = ⋅ + ⋅ válido para Re > 0,

CD coeficiente de arraste Re número de Reynolds

O fluxograma de deve ser seguido para este processo é: