Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Fortran - Fisica - UEC
Apostila de Fortran - Fisica - UEC
APOSTILA DE FORTRAN
Sumrio
Captulo 1: Noes Preliminares ................................................................................................... 4
1.1. Introduo .......................................................................................................................... 4
1.2. Computadores .................................................................................................................... 4
1.3. Algoritmos .......................................................................................................................... 4
1.4. Diagramas de Fluxo ............................................................................................................ 5
1.5. Linguagens de Programao............................................................................................... 6
1.5.1 Linguagem de Mquina ................................................................................................ 6
1.5.2. Linguagem Simblica Montadora ................................................................................ 7
1.5.3. Linguagens de Compiladores ....................................................................................... 7
1.6.Passos no Desenvolvimento de Programas ......................................................................... 8
Capitulo 2 - A Linguagem Fortran: Conceitos Bsicos ................................................................... 9
2.1 Introduo ........................................................................................................................... 9
2.2. Definies da Linguagem .................................................................................................... 9
2.3. Itens sintticos do Fortran .................................................................................................. 9
2.4. Caracteres usados no Fortran........................................................................................... 10
2.5. Uma viso geral do Fortran .............................................................................................. 10
2.6. Codificao de programas em Fortran ............................................................................. 16
2.6.1. Formato Livre (Fortran90 e posteriores) ................................................................... 16
2.6.2. Formato Fixo (Fortran77 e anteriores) ...................................................................... 17
Captulo 3: Constantes, Variveis e Conjuntos ............................................................................ 18
3.1 Introduo ......................................................................................................................... 18
3.2. Constantes ........................................................................................................................ 19
3.2.1. Constantes Inteiras .................................................................................................... 19
3.2.2. Constantes Reais........................................................................................................ 19
3.2.3. Constantes Caracteres ............................................................................................... 19
3.3. Variveis ........................................................................................................................... 19
3.3.1. Variveis Inteiras ....................................................................................................... 20
3.3.2 Variveis Reais ............................................................................................................ 20
3.3.3. Variveis Caractere .................................................................................................... 20
3.4. Conjuntos .......................................................................................................................... 20
3.4.1 Declaradores de Conjuntos ........................................................................................ 21
Pgina 2 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Captulo 4: Expresses ................................................................................................................. 23
4.1. Introduo ........................................................................................................................ 23
4.2. Expresses Aritmticas ..................................................................................................... 23
4.3. Expresses Relacionais ..................................................................................................... 24
4.4. Expresses Lgicas............................................................................................................ 25
Captulo 5: Comandos de Atribuio ........................................................................................... 26
5.1. Introduo ........................................................................................................................ 26
Captulo 6: Comandos de Especificao: Declarao de Tipos de Variveis ............................... 27
6.1. Introduo ........................................................................................................................ 27
6.2. Comando IMPLICIT ........................................................................................................... 27
6.3. Comandos de Especificao Explcita ............................................................................... 27
6.3.1. Comando Integer ....................................................................................................... 27
6.3.2. Comando REAL........................................................................................................... 28
6.3.3. Comando DOUBLE PRECISION ................................................................................... 28
6.3.4. Comando COMPLEX ................................................................................................... 29
6.3.5. Comando LOGICAL ..................................................................................................... 29
6.3.6. Comando CHARACTER ............................................................................................... 29
Captulo 7: Comandos de Especificao: Designao de reas de Memria .............................. 30
7.1. Introduo ........................................................................................................................ 30
7.2. Comando DIMENSION ...................................................................................................... 30
7.3. Comando COMMON ......................................................................................................... 30
7.4. Unidades de programas do tipo MODULE........................................................................ 31
7.5. Comando USE ................................................................................................................... 31
7.6. Comando PARAMETER ..................................................................................................... 32
7.7. Comando PROGRAM ........................................................................................................ 33
7.8. Comandos ALLOCATE, DEALLOCATE E ALLOCATABLE ...................................................... 33
Captulo 8: Comandos de Controle de Fluxo e Programao Estruturada .................................. 34
8.1. Introduo ........................................................................................................................ 34
8.2. Estruturas de Controle...................................................................................................... 35
8.3. Comandos GO TO ............................................................................................................. 35
8.4. Comandos IF ..................................................................................................................... 36
8.4.1. Comando IF lgico ..................................................................................................... 36
8.4.2. Comandos IF bloco .................................................................................................... 37
Pgina 3 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
8.4.3. Estruturas de IF bloco encaixados ............................................................................. 38
8.5. Comando DO .................................................................................................................... 39
8.5.1. Laos de DO encaixados ............................................................................................ 40
8.6. Comando EXIT................................................................................................................... 40
8.7. Comando CYCLE ................................................................................................................ 40
8.8. Comando CONTINUE ........................................................................................................ 40
8.9. Comando STOP ................................................................................................................. 40
8.10. Comando END................................................................................................................. 41
8.11. Comando SELECT CASE ................................................................................................... 41
Captulo 9: Comandos de Entrada/Sada ..................................................................................... 41
9.1. Introduo ........................................................................................................................ 41
9.2. Registros, Arquivos e Unidades ........................................................................................ 42
9.3. Componentes dos Comandos de E/S................................................................................ 43
9.3.2. Lista de E/S................................................................................................................. 44
9.4. Comandos READ ............................................................................................................... 45
9.4.1. Comandos READ seqenciais .................................................................................... 45
9.5. Comandos WRITE (PRINT) ................................................................................................ 46
9.5.1. Comandos WRITE (PRINT) seqenciais...................................................................... 46
9.6. Comandos de Condio de Arquivos de E/S ..................................................................... 47
9.6.1. Comando OPEN ......................................................................................................... 47
9.6.2. Comando CLOSE ........................................................................................................ 48
Captulo 10: Comando FORMAT e Especificaes de Formato ................................................... 48
10.1. Introduo ...................................................................................................................... 48
10.2. Comando FORMAT ......................................................................................................... 48
10.3. Especificaes de Formato (EF) de Converso ............................................................... 49
10.4. Especificaes de Formato de Edio............................................................................. 49
10.5. Especificaes de Formato em Grupos Repetidos ......................................................... 50
Referncias .................................................................................................................................. 50
Pgina 4 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
1.1. Introduo
- "O que todo computador pode realmente fazer seguir ordens muito simples, as quais foram
cuidadosamente consideradas e refletidas por um programador e escritas em uma linguagem
de programao, como o Fortran."
1.2. Computadores
- H somente 4 tipos de instrues que um computador pode realizar:
1.
2.
3.
4.
- Esquema de um computador:
1.3. Algoritmos
- Um "algoritmo" um conjunto de instrues passo-a-passo para resolver um problema.
Pgina 5 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Um algoritmo correto deve possuir 3 qualidades:
1. Cada passo no algoritmo deve ser uma instruo que possa ser realizada.
2. A ordem dos passos deve ser precisamente determinada.
3. O algoritmo deve ter fim.
- Elaborao em grupos de 3 de um algoritmo para que um dos elementos do grupo
desempenhe a seguinte tarefa:
Sair de uma posio na sala de aula, que ser determinada pelo professor, at o
interruptor das luzes e providenciar o desligamento destas.
Pgina 6 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
1.5. Linguagens de Programao
- Um "programa de computador" um algoritmo escrito numa linguagem de programao,
como o Fortran.
operando(s)
- O "cdigo de operao" instrui o computador para realizar uma funo especfica: adio,
subtrao, leitura, escrita, comparao, movimento de dados, etc...
- O(s) operando(s) especifica(m) o endereo do dado a ser operado, endereo do dispositivo de
entrada/sada, etc...
- Exemplo do trecho principal de um programa em linguagem de mquina para calcular
5A+16B
R = ---------- - D
C
onde os valores de A, B, C, D e R esto armazenados nos endereos 1000, 1004, 1012, 1020 e
2050 da memria.
Cdigo da Operao
14
12
15
14
12
10
13
11
15
Operando
1000
=5
3000
1004
=16
3000
1012
1020
2050
Comentrio
carrega A no acumulador
multiplica o acumulador por 5
armazena contedo acumulado no endereo 3000
carrega B no acumulador
multiplica acumulador por 16
adiciona acumulador com contedo de 3000
divide acumulador pelo contedo de 1012
subtrai do acumulador o contedo de 1020
armazena acumulador em 2050
- Na realidade, um programa real em linguagem de mquina, para ser compreendido por ela,
geralmente escrito no sistema binrio.
Pgina 7 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
1.5.2. Linguagem Simblica Montadora
- As linguagens simblicas procuram facilitar a tarefa do programador, criando mnemnicos
para as operaes.
Operao
CAR
MUL
ARM
CAR
MUL
ADI
DIV
SUB
ARM
Operando
A
5
TMP
B
16
TMP
C
D
R
Comentrio
carrega A
multiplica por 5
armazena o resultado em TMP
carrega B
multiplica por 16
adiciona o resultado com o contedo de TMP
divide o resultado por C
subtrai o resultado de D
armazena o resultado em R
Pgina 8 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Pgina 9 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Capitulo 2 - A Linguagem Fortran: Conceitos Bsicos
2.1 Introduo
- FORTRAN = FORmula TRANslation (em portugus: traduo de frmulas).
- O Fortran uma linguagem simples cujo vocabulrio consiste de um conjunto de palavras,
conhecidas como "palavras-chave" (para se ter uma idia, no Fortran77 eram cerca de 450;
atualmente o nmero bem maior).
- Um "comando" Fortran uma sentena escrita nesta linguagem. Um programa consiste
numa seqncia de comandos, cada um escrito numa linha.
2.2. Definies da Linguagem
- Programa Principal uma unidade que pode chamar outras unidades de programa, mas que
no pode ser chamado por estas. O programa principal quem recebe o controle da execuo
no incio da fase de execuo.
- Subprograma uma unidade de programa que chamada por outra unidade de programa.
Pode ser de dois tipos: subrotina ou funo. Usualmente um subprograma recebe parmetros
de entrada e retorna parmetros de sada.
- Funo Intrnseca uma funo suprida pelo compilador e que realiza operaes sobre
nmeros ou caracteres.
- Programa Executvel um programa j em linguagem de mquina que pode ser executado
pelo computador. Consiste de um programa principal e subprogramas.
- Comando Executvel aquele que efetua clculos, testes, providencia entrada ou sada de
dados, altera o fluxo de execuo ou atribui valores a variveis.
- Comando No-Executvel aquele que descreve as caractersticas de uma unidade de
programa, dos dados ou de informaes de edio.
- Unidade de Programa uma seqncia de comandos terminando com um comando END.
- Arquivos de Dados so unidades de entrada e sada de dados, passveis de serem
lidos/escritos por um programa.
2.3. Itens sintticos do Fortran
- Sintaxe a parte da gramtica que estuda a disposio das palavras na frase e a das frases no
discurso.
- Constantes so valores ou nmeros que ocorrem num programa.
- Nome simblico uma seqncia de uma ou mais letras ou dgitos, o primeiro dos quais deve
ser uma letra.
Pgina 10 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Variveis so valores ou nmeros ou conjuntos de caracteres que ocorrem num programa e
que podem sofrer variaes durante a execuo do programa. Na realidade uma varivel o
nome de uma localizao da memria.
- Nmero de comando um nmero de um a cinco dgitos, um dos quais deve ser diferente de
zero e usado para identificar um comando. Deve estar localizado no incio da linha.
- Palavra chave uma seqncia de letras que identificam exclusivamente comandos Fortran.
- Operador um ente similar a um operador matemtico.
- Valores so obtidos da memria quando eles so usados no lado direito do sinal de igual.
- Observe que o sinal de "=" no indica uma igualdade e sim uma atribuio.
- O Fortran permite que voc defina diferentes tipos de variveis. Usa-se variveis inteiras para
armazenar nmeros inteiros, variveis reais para nmeros reais, variveis complexas para
nmeros complexos, variveis caracter para palavras e frases, etc.
- Voc pode definir os tipos de variveis no seu programa atravs de "comandos de definio
de tipo".
- Existem vrios comandos Fortran para a definio de tipo de varivel, entre os quais
"CHARACTER", "INTEGER" e "REAL".
- Os clculos podem ser feitos atravs de comandos de atribuio, escrevendo-se uma
"expresso" no lado direito do sinal de igual.
- Smbolos de operaes matemticas (tambm conhecidos como "operadores aritmticos"):
adio, "+"; subtrao, "-"; multiplicao, "*"; diviso, "/"; potenciao, "**".
- Pode-se usar parnteses para agrupar termos em expresses Fortran, como feito em
lgebra.
2.4. Caracteres usados no Fortran
- O conjunto de caracteres Fortran constitudo de: letras (ou caracteres alfabticos), dgitos
(ou caracteres numricos) e smbolos especiais como =, +, -, /, *, etc.
- preciso tomar cuidado em relao aos smbolos especiais, pois estes podem variar de
funo dependendo do fabricante do compilador.
2.5. Uma viso geral do Fortran
- Exemplo de um programa para calcular a mdia das notas de uma prova de uma turma e
determinar o nmero de notas acima e abaixo de 5,0. Vamos usar a equao abaixo para
calcular a mdia da turma:
Pgina 11 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
,
sendo que:
MT = mdia da turma,
nota(i) = nota do aluno i,
NT = nmero total de alunos.
Pgina 12 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Uma "varivel" Fortran um nome para uma localizao de memria. Variveis no exemplo
acima: nt, ns5, ni5, mt, nota, soma, i.
- O "valor" de uma varivel a informao armazenada na localizao de memria que
representada pela varivel.
- Um "comando de atribuio" o tipo de comando que permite armazenar um valor em uma
varivel. Comandos de atribuio no exemplo acima:
soma=0.0
ns5=0
ni5=0
soma=soma+nota
ns5=ns5+1
ni5=ni5+1
mt=soma/nt
Pgina 13 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Quando voc atribui um valor a uma varivel, o valor anteriormente armazenado destrudo.
- Os comandos num programa Fortran so, normalmente, executados na ordem em que so
escritos. Entretanto, pode-se alterar esta ordem de execuo atravs dos "comandos de
controle de fluxo".
- Um comando de controle que representa uma deciso a construo "IF-THEN-ELSE", que
sempre terminado por um comando ENDIF.
- Veja figura a seguir para uma tomada de deciso e desvio do fluxo de execuo.
Tal coisa
verdade?
Comandos
executaveis
Comando
executaveis
- Veja figura a seguir para o fluxograma para o algoritmo que decide aprovar ou reprovar um
aluno, baseado na sua mdia final.
Pgina 14 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
endif
I =vi
I > vf?
Comandos executaveis
I = i + incr
- Veja a seguir o fluxograma para o algoritmo para somar todos os nmeros naturais de 1 a 10.
Pgina 15 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Pgina 16 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Pgina 17 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Para a codificao de arquivos de dados de entrada e sada, estes seguem a estrutura que
porventura seja definida no prprio programa que vai ler/escrever neste arquivo.
- Campo de identificao, colunas [73,80]: este campo usado somente para identificao do
programa. Isto uma herana muito velha, pouco usada hoje. Geralmente o compilador que
ainda se importa com a identificao do programa, escreve os primeiros 8 caracteres do nome
do programa nestas colunas.
- Linhas de comentrio, coluna [1]: qualquer linha que contenha uma letra "c" ou um asterisco
"*" na coluna 1 so ignoradas em Fortran. So usadas para inserir comentrios dentro de um
programa Fortran.
- Para a codificao de arquivos de dados de entrada e sada, estes seguem a estrutura que
porventura seja definida no prprio programa que vai ler/escrever neste arquivo.
Pgina 18 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Captulo 3: Constantes, Variveis e Conjuntos
3.1 Introduo
- Este captulo trata de definir corretamente os componentes bsicos dos comandos Fortran.
Alguns j vimos no captulo anterior, como "itens de sintaxe".
- "Constantes" so valores fixos, tais como nmeros. Estes valores no podem ser alterados
pelos comandos do programa. Exemplos: 3.0, 3, 'palavra'.
- "Variveis" so nomes simblicos que representam valores armazenados na memria do
computador. Estes valores podem ser alterados pelos comandos do programa.
- "Conjuntos" so grupos de variveis, cujos valores so armazenados adjacentemente e
podem ser referenciados individualmente atravs de um nome simblico com um ndice. So
conhecidos tambm como "variveis indexadas" (VI).
- Um "operador" um smbolo especfico para uma determinada operao. Exemplo: + (soma).
- "Expresses" so combinaes de constantes, variveis, elementos de conjuntos e
operadores. Exemplo: 3.0*var1+var2.
- No "comando de atribuio" abaixo:
fat = a(3) * 4 * (B + 2.5)
temos a "expresso" a(3)*4*(B+2.5). Nesta expresso temos duas "constantes" (4 e 2.5), uma
"varivel" (B), uma varivel indexada (a(3)), dois "operadores" (* e +) e parnteses. Vemos
tambm que temos uma constante inteira (4) e uma real (2.5); as variveis a(3) e B dependem
de como tenham sido definidas.
- No trecho de programa abaixo:
print *, 'digite a velocidade inicial:'
read *, v0y
g=9.8
dt=0.1
do i =1,np
t(i)=i*dt
y(i)=v0y*t(i)-0.5*g*t(i)**2
enddo
...
do i=1,np
print *,t(i),y(i)
enddo
vemos o uso das "variveis indexadas" t(i) e y(i).
Pgina 19 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
3.2. Constantes
- Uma "constante" uma quantidade fixa e invarivel.
- O Fortran distingue trs classes de constantes: numricas, lgicas e cadeias de caracteres.
Pgina 20 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Regras para nomes de variveis:
1. Os nomes devem comear com uma letra.
2. Os nomes podem conter letras e dgitos.
- Tipos de variveis: inteiras, reais, dupla preciso, complexas, lgicas e caracteres, que
possuem caractersticas similares s constantes.
3.3.1. Variveis Inteiras
- Se no for usado o comando IMPLICIT NONE, por conveno, toda varivel numrica cujo
nome inicia por uma das letras i, j, k, l, m ou n, uma varivel inteira.
- As variveis inteiras podem assumir valores na mesma faixa das constantes inteiras.
3.4. Conjuntos
- Nesta seo nos ocuparemos dos conjuntos de variveis, ou variveis indexadas (VI), j
definidos no incio deste captulo.
- Uma VI possui um nome, um tipo e um conjunto de ndices (ou um nico ndice).
Pgina 21 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- "Vetor" uma VI que possui um nico ndice, e por isto dito uma VI unidimensional.
- A varivel t no trecho de programa abaixo um vetor:
dimension t(10)
t(1)=0.1
t(2)=0.2
t(3)=0.3
...
t(10)=1.0
- "Matriz" uma VI que possui dois conjuntos de ndices e por isto dita bidimensional.
a11
a21
a31
a12
a22
a32
a13
a23
a33
...
- Dizemos que uma VI uma matriz n-dimensional quando esta possui um conjunto de n
ndices.
- No Fortran 77, uma VI no podia possuir mais do que 7 ndices.
3.4.1 Declaradores de Conjuntos
- Comando DIMENSION: permite especificar uma determinada varivel como sendo uma
varivel indexada.
Pgina 22 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
1) dimension a(8)
onde 8 nmero mximo de diferentes a's.
2) dimension a(8),b(5,6)
sendo que 5 e 6 so os valores mximos do primeiro e segundo ndices (que resultam em 30
diferentes b's).
3) integer a
real b
dimension a(8),b(5,6)
sendo que o vetor a um vetor de nmeros inteiros e b uma matriz de nmeros reais.
4) dimension c(0:10),d(1:4,1:3,1:5)
sendo que: c = vetor de 11 elementos, sendo o primeiro c(0) e o ltimo c(10);
d = matriz tridimensional de 60 elementos, sendo que o primeiro elemento
d(1,1,1) e o ltimo d(4,3,5)
Pgina 23 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
Captulo 4: Expresses
4.1. Introduo
- Uma "expresso" Fortran definida como uma combinao de itens sintticos, isto : uma
expresso pode consistir de uma nica constante, de uma nica varivel, de um nico
elemento de conjunto, ou uma combinao de constantes, variveis, elementos de conjuntos,
unidos com um ou mais operadores e, possivelmente, agrupados com parnteses.
- "Operadores" especificam as computaes a serem realizadas sobre os valores dos
elementos bsicos.
- Em expresses com mais de um tipo de operando, o tipo da expresso depende dos tipos dos
operandos e dos operadores.
Pgina 24 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
2. Se os operandos forem de tipos diferentes, o tipo da expresso ser o tipo do
operando de maior precedncia, dada pela tabela abaixo:
Tipo
Precedncia
------------------------------------------inteiro
1
real
2
dupla preciso 3
complexo
4
- A comparao entre duas expresses aritmticas feita atravs dos "operadores relacionais".
- O clculo de uma expresso relacional produz um resultado lgico, com um valor "verdade"
ou "falso". A expresso interpretada como "verdade" se os valores dos operandos satisfazem
a relao matemtica especificada pelo operador, e "falso" se eles no satisfazem a relao.
- "Operadores Relacionais" so aqueles definidos na tabela abaixo:
Operador
Definio
somente Fortran90 e posteriores
==
igual a
/=
diferente de
Uso
A==B
A/=B
Significado
A igual a B ?
A diferente de B?
Pgina 25 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
<
<=
>
>=
todos
.eq.
.ne.
.lt.
.le.
.gt.
.ge.
menor que
menor ou igual
maior que
maior ou igual
A<B
A<=B
A>B
A>=B
A menor a B?
A menor ou igual a B?
A maior que B ?
A maior ou igual a B?
igual a (equal)
diferente de (not equal)
menor que (less than)
menor ou igual (less or equal)
maior que (greater than)
maior ou igual (greater or equal)
A.eq.B
A.ne.B
A.lt.B
A.le.B
A.gt.B
A.ge.B
A igual a B ?
A diferente de B?
A menor a B?
A menor ou igual a B?
A maior que B ?
A maior ou igual a B?
- Exemplos:
1) if(x1.eq.x.and.x2.eq.x1) then
2) fim=.false.
do while(.not.fim)
bloco de comandos
enddo
Operador
Precedncia
-----------------------------------------------------------------.not.
mais alta
Pgina 26 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
.and.
.or.
intermediria
mais baixa
aritmtico;
caractere;
lgico.
- Exemplos:
aritmtico: varnum=3.0*a/b
caractere: varcar='digite o valor de x:'
lgico: varlog=.true. ou varlog=a<b.and.b==c
Pgina 27 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- O comando IMPLICIT permite que se defina o tipo de todas as variveis que comeam por
uma determinada letra.
- Exemplos:
1) implicit real(i)
- faz com que todas as variveis que comecem pela letra i sejam reais.
2) implicit real(i,j,k,l)
- faz com que as variveis com iniciais de i a l sejam reais.
3) implicit real(i-l)
- idem.
4) implicit real(i-l),integer(a,b)
- faz a mesma coisa que o comando anterior mais a definio que as variveis com iniciais a ou
b sejam inteiras.
5) implicit none
- faz com que todas as variveis do programa tenham que ter o seu tipo obrigatoriamente prdefinidas.
Pgina 28 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- A forma geral do comando INTEGER :
INTEGER nome [,nome]...
ou
INTEGER nomevi[(d[,d]...)]
sendo que nomevi o nome de uma varivel indexada inteira.
- Exemplos:
integer soma,cont
integer a(0:10,0:8)
- Exemplos:
real a,b,c
real d(1:10,1:8)
Pgina 29 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
ou
DOUBLE PRECISION nomevi[(d[,d]...)]
sendo que nomevi o nome de uma varivel indexada de dupla preciso.
- Exemplos:
character*12 a,b,c
character d*5,e*4,f*10
Pgina 30 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Exemplos:
dimension a(0:10),b(3,3),c(3,4,5)
Pgina 31 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- A forma geral do comando COMMON :
COMMON[/r/] lista
sendo que:
- "r" um rtulo do bloco de variveis que tero suas reas de memria especificadas.
- "lista" uma lista com nomes de variveis que tero suas reas de memria especificadas.
- Exemplos:
1) common m,a,x
2) dimension a(10),b(5,20)
common/bloco1/a,b
- O mesmo comando COMMON, escrito do mesmo jeito, deve aparecer em cada unidade de
programa que pretende ter acesso s variveis definidas num dado bloco.
7.4. Unidades de programas do tipo MODULE
- As unidades de programa do tipo MODULE existem a partir do Fortran 90 e podem substituir
todas as ocorrncias do comando COMMON, do comando INCLUDE (no apresentado nesta
apostila) e funes de comando (Captulo 11).
- Numa unidade de programa do tipo MODULE podem se definir tipos e valores de constantes
e variveis. Ainda possvel incluir subprogramas, mas este tpico no ser abordado.
7.5. Comando USE
- O comando USE utilizado para definir uma unidade de programa do tipo MODULE que deve
ser includa no programa.
- Exemplo de utilizao das unidades de programa do tipo MODULE e do comando USE:
module modulo01
integer:: a=2,b=3
end module modulo01
module modulo02
integer:: a=4,b=5
end module modulo02
program exmodls
! Objetivo: exemplifica o uso dos subprogramas do tipo MODULE
use modulo01
implicit none
Pgina 32 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
integer c,d
! Nas duas linhas a seguir, sero usados os valores de a e b declarados
! no mdulo modulo01:
c=a+b
d=a*b
print *,a,b,c,d
! Na subrotina abaixo, ainda sero usados os valores de a e b declarados
! no mdulo modulo01, demonstrando a compartilhao de dados entre o
! programa principal e um subprograma:
call subrotina01
! A subrotina abaixo idntica anterior, com a nica diferena que
! utiliza novos valores para a e b declarados no mdulo modulo02:
call subrotina02
stop
end
subroutine subrotina01
use modulo01
implicit none
integer c,d
c=a+b
d=a*b
print *,a,b,c,d
return
end
subroutine subrotina02
use modulo02
implicit none
integer c,d
c=a+b
d=a*b
print *,a,b,c,d
return
end
7.6. Comando PARAMETER
- O comando PARAMETER fornece um meio de se representar uma constante por um smbolo,
como na Matemtica, em vez de represent-la por um valor.
- A forma geral do comando PARAMETER :
PARAMETER(ns=e[,ns=e]...)
sendo que:
Pgina 33 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- "ns" um nome simblico.
- "e" uma constante ou uma expresso constante.
- O valor de uma constante definida em PARAMETER jamais ou pode ser alterado durante a
execuo do programa.
- Exemplo:
?
real pi
parameter(pi=3.1415927)
?
7.7. Comando PROGRAM
- O comando PROGRAM usado para identificar o programa principal.
- ALLOCATABLE: indica que a matriz vai ter os valores mnimos e mximos para o seu(s)
ndice(s) determinados em algum ponto do programa. A rea de memria para esta varivel
Pgina 34 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
ainda no est reservada.
- ALLOCATE: dimensiona a varivel indexada e reserva (aloca) um espao de memria para ela.
- No exemplo a seguir temos vrios trechos de um programa sendo que as variveis indexadas
A, B, C e D esto sendo
dimensionadas, alocadas e desalocadas usando os comandos ALLOCATE, DEALLOCATE E
ALLOCATABLE:
...
integer i,j,k,l,m,n
integer,dimension(:,:),allocatable :: a
real,dimension(:),allocatable :: b,c
real,dimension(:,:,:),allocatable :: d
...
print *,'Digite os minimos e maximos das 2 dimensoes de A:'
read *,i,j,k,l
allocate(a(i:j,k:l))
...
print *,'Digite o minimo e o maximo da unica dimensao de B:'
read *,i,j
print *,'Digite o minimo e o maximo da unica dimensao de C:'
read *,k,l
allocate(b(i:j),c(k:l))
...
print *,'Digite os minimos e maximos das 3 dimensoes de D:'
read *,i,j,k,l,m,n
allocate(d(i:j,k:l,m:n))
...
deallocate(a,d)
...
deallocate(b)
...
deallocate(c)
...
Captulo 8: Comandos de Controle de Fluxo e Programao Estruturada
8.1. Introduo
- Normalmente, a execuo dos comandos num programa feita na ordem em que os
comandos so escritos: de cima para baixo, linha por linha, de acordo com a estrutura
seqencial. Entretanto voc pode usar comandos para transferir o controle de fluxo para outra
Pgina 35 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
parte da mesma unidade de programa ou para outra unidade de programa.
controle
pode
ser
transferido
somente
para
um
comando
executvel.
- Por vezes, um comando pode ser identificado por um "nmero de comando", consistindo de
um nmero inteiro, escrito antes do comando, no incio da linha. Cada nmero de comando
deve ser nico dentro da unidade de programa. Eles servem principalmente para a
especificao de formatos de entrada e/ou sada de dados. Evita-se hoje o uso antigo do
nmero de comando, que servia de referncia para uma transferncia de controle de fluxo.
Isto favorece a criao de cdigos de programa "espaguete", sendo que o controle de fluxo
pode ser mudado de maneira absurda, dificultando e inviabilizando a manuteno dos
programas.
8.3. Comandos GO TO
- Os comandos GO TO transferem o controle de fluxo para um comando executvel na mesma
unidade de programa. Os trs tipos de GO TO so:
1. GO TO incondicional.
2. GO TO computado.
3. GO TO assinalado.
Pgina 36 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
8.4. Comandos IF
- Os comandos IF transferem o controle do fluxo ou executam outro comando (ou um bloco de
comandos) dependendo do resultado verdadeiro ou falso de uma expresso lgica contida no
particular comando IF. Os trs tipos de comandos IF so:
1. IF aritmtico.
2. IF lgico.
3. IF bloco.
- Os comandos ELSE, ELSE IF e END IF so tambm apresentados nesta seo, pois eles so
usados somente em conjunto com um comando IF bloco.
8.4.1. Comando IF lgico
- O comando IF lgico calcula uma expresso lgica/relacional e executa ou ignora um
comando executvel contido no prprio IF, dependendo do valor (falso ou verdadeiro) dessa
expresso.
- A forma geral do comando IF lgico :
if (e) c
sendo que:
- "e" uma expresso lgica ou relacional.
- "c" o comando que ser executado caso a expresso seja verdade; "c" no pode ser um
comando DO.
- Vejamos como fica o fluxo do programa quando este chega a estas trs linhas:
x=a-b
if(a.eq.b) x=a+b
y=x**2
Observe que nas ltimas 2 linhas temos trs comandos:
1) if(a.eq.b)
2) x=a+b
3) y=x**2
Ento:
a) Se de fato a=b, teremos a seguinte ordem de execuo: 1 >> 2 >> 3.
b) Se, por outro lado, a diferente de b, teremos a ordem de execuo: 1 >> 3.
Pgina 37 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
8.4.2. Comandos IF bloco
- O comando IF bloco permite a execuo de um determinado bloco de comandos,
dependendo do valor da(s) expresses lgica(s)/relacional(is) nele contido.
- A forma geral do comando IF bloco :
if (e1) then
bloco1
else if (e2) then
bloco2
else if (e3) then
bloco3
...
else
bloco n
endif
sendo que e1, e2,e3, ... so expresses lgicas/relacionais. Deve ficar claro que somente um
dos blocos de comandos ser executado.
- O menor IF bloco a estrutura:
if (e) then
bloco
endif
Vemos que os comandos ELSE IF e ELSE so opcionais.
Pgina 38 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- O comando ELSE IF THEN combina as funes dos comandos ELSE e IF THEN, pois fornece
uma rota alternativa e torna possvel uma estrutura IF bloco com mais de uma alternativa.
- A forma geral do comando ELSE IF THEN :
else if (e) then
sendo que "e" uma expresso lgica/relacional.
- Se a expresso for verdadeira, o controle passa para o prximo comando executvel e da
para o comando ENDIF. Se for falsa, passa para o prximo comando ELSE IF THEN, ELSE ou
ENDIF.
- O comando ENDIF ou END IF finaliza uma estrutura IF bloco. Sua forma geral simplesmente:
end if
- Exemplo:
...
print *,'Digite a nota do aluno: '
read *,nota
if(nota>=5.0) then
print *,'O aluno foi aprovado.'
elseif(nota>=3.5) then
print *,'O aluno foi reprovado mas podera cursar o RE.'
else
print *,'O aluno foi reprovado e nao podera cursar o RE.'
endif
?
8.4.3. Estruturas de IF bloco encaixados
- Um bloco de comandos executveis dentro de um comando IF bloco pode conter outra
estrutura IF bloco. E isto pode se repetir indefinidamente.
...
print *,'Digite a nota do aluno: '
read *,nota
if(nota>=5.0) then
if(nota>=9.5) then
print *,'O aluno foi aprovado com louvor.'
elseif(nota>=8.0) then
print *,'O aluno foi aprovado com distincao.'
else
print *,'O aluno foi aprovado.'
endif
elseif(nota>=3.5) then
print *,'O aluno foi reprovado mas podera cursar o RE.'
else
Pgina 39 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
print *,'O aluno foi reprovado e nao podera cursar o RE.'
endif
?
8.5. Comando DO
- O comando DO um comando de controle que permite que um bloco de comandos seja
repetitivamente executado. O nmero de execues depende da varivel de controle.
Pgina 40 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- O comando DO implcito uma terceira forma do comando DO e somente pode ser usando
em comandos de entrada ou sada de dados.
- Exemplos de uso do comando DO implcito:
print *,(var(i),i=1,10,1)
print *,(var(i,j),j=10,20,2)
read(1,100)(var(i),i=2,8,2)
write((3,200)(var(i,j),j=1,5,1)
8.5.1. Laos de DO encaixados
- possvel encaixar dois ou mais comandos DO.
- Para as estruturas DO encaixadas, o primeiro comando END DO aps o comando DO, fecha o
lao.
Pgina 41 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
8.10. Comando END
- O comando END indica o final de uma unidade de programa para o compilador. Sua forma
geral :
end
e deve obrigatoriamente ser colocado na ltima linha do programa.
8.11. Comando SELECT CASE
- A estrutura SELECT CASE permite a execuo de apenas uma entre muitas opes possveis.
- A estrutura SELECT CASE possui a seguinte forma:
select case (var)
case (um_valor_de_var)
bloco de comandos 1
case (outro_valor_de_var)
bloco de comandos 2
case (outro_ainda_valor_de_var)
bloco de comandos 3
...
end select
- Exemplo:
...
print *,'Digite um numero de 1 a 10: '
read *,nu
select case (nu)
case (1:4)
print *,'A opcao foi um numero no intervalo [1,4]'
case (5)
print *,'A opcao foi pelo numero 5'
case (6:10)
print *,'A opcao foi um numero no intervalo [6,10]'
end select
...
Captulo 9: Comandos de Entrada/Sada
9.1. Introduo
- Os "Comandos de Entrada" fornecem um mtodo de transferir dados de um dispositivo
perifrico (como um teclado) ou de um arquivo interno para a memria principal. Este
processo chamado de "leitura de dados".
Pgina 42 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Os "Comandos de Sada" fornecem um meio de transferir dados da memria principal para
um dispositivo perifrico (como um monitor de vdeo ou impressora) ou um arquivo interno.
Este processo chamado de "escrita" ou "gravao" de dados.
- Alguns comandos de E/S permitem que se edite os dados durante a sua transferncia.
- Neste captulo somente sero apresentados os comandos de E/S que transferem dados
(READ, PRINT, WRITE). Comandos auxiliares no sero discutidos.
9.2. Registros, Arquivos e Unidades
- Um "caractere" um nico smbolo, tal como a letra z, o dgito 4 ou um asterisco *.
- Um "campo" uma sucesso de caracteres, que representa alguma informao, tal como
ANTONIO ou 128.47.
- Um "registro" um grupo de campos que rene informaes sobre um nico item, tal como:
ANTONIO
(nome)
26-01-1937 6543.21
(data nasc.) (salrio)
A N T
O N I
2 6 -
0 1 -
1 9 3 7 6 5 4 3 .
2 1
A R N A L
D O
2 2 -
1 0 -
1 9 4 5
9 8 7 .
6 5
M .
N A 0 7 -
0 9 -
1 9 4 2 1 2 3 4 .
5 6
C R I
Temos acima um arquivo, com trs registros, cada registro com trs campos e comprimento
total de 27 caracteres.
- Certos nmeros de unidades podem ser pr-definidos. Assim, por exemplo, o nmero 5 pode
indicar o teclado e 6 pode indicar o monitor de vdeo.
Pgina 43 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
9.3. Componentes dos Comandos de E/S
- Os comandos de E/S so constitudos de 3 partes:
comando (especificadores) [lista]
sendo que:
- UNIT: o especificador de unidade designa a unidade externa de E/S ou o arquivo interno a ser
usado para o comando de E/S no qual ele aparece. Seu uso :
[unit=]u ou [unit=]*
sendo que:
- "u" uma expresso inteira que designa o nmero de E/S.
- "*" designa a unidade de entrada padro em READ e sada padro em PRINT ou WRITE.
- Os caracteres "unit=" somente podem ser omitidos no caso do especificador de unidade ser o
primeiro na lista de especificadores.
- FMT: o especificador de formato designa o formato a ser usado para o comando de E/S
formatado ou o comando de E/S com lista direta. Seu uso
[fmt=]f ou [fmt=]*
sendo que:
- "f" um identificador de formato;
- "*" designa uma formatao em lista direta.
Pgina 44 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- O identificador de formato "f" pode ser um nmero de um comando FORMAT. Ou uma
expresso inteira (que acaba por indicar um comando FORMAT). Ou especificaes de formato
(em forma de varivel caractere).
- Exemplos. Todos eles fazem a mesma coisa e ainda o comando READ poderia ser substitudo
pelo comando WRITE.
Exemplo 1:
read(unit=1,fmt=100) a,b
100 format(i5,f10.3)
Exemplo 2:
read(1,100) a,b
100 format(i5,f10.3)
Exemplo 3:
read(1,*) a,b
60
read(5,60) L,M,N
format(I3,I2,I7)
Pgina 45 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
apresentar os seguintes valores:
L=100
M=22
N=3456789 .
- Ao invs de usar:
print *, A(1),A(2),A(3),A(4),A(5),A(6),A(7),A(8),A(9)
use
print *, (A(i), i = 1,9) .
- IMPORTANTE: cada novo comando READ passa a ler dados em uma nova linha.
Pgina 46 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
- Exemplos:
read(unit=3,fmt=100) a,b,c
100 format(3f5.2)
igual a:
read(3,100) a,b,c
100 format(3f5.2)
que ainda podem ser simplificados para:
read(3,*) a,b,c
(lista direta)
ou
read(*,*) a,b,c
(aqui a leitura passa a ser feita a partir da entrada padro)
- IMPORTANTE: cada novo comando WRITE (PRINT) passa a escrever dados em uma nova
linha.
- Exemplos:
write(unit=7,fmt=200) a,b,c
200 format(3f5.2)
ou
write(7,200) a,b,c
200 format(3f5.2)
(igual ao comando anterior)
Pgina 47 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
ou
write(7,200) a,b,c
200 format(3f5.2)
(praticamente igual aos comandos anteriores)
ou
write(*,*) a,b,c
(escreve na sada padro)
- A diferena entre WRITE e PRINT que este ltimo somente escreve na sada padro (o
vdeo, no nosso caso). Por isso PRINT dispensa o especificador de unidade.
- A forma aceita do comando PRINT :
print f [, lista]
sendo que "f" pode ser substitudo por "*" para lista direta.
- Exemplos:
print 200, a,b,c
200 format(3f5.2)
ou
print *, a,b,c
(lista direta)
9.6. Comandos de Condio de Arquivos de E/S
9.6.1. Comando OPEN
- O comando OPEN serve para inicializar um arquivo.
Pgina 48 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
da execuo deste.
- 'UNKNOWN', para arquivos para os quais no se aplica nenhuma das condies acima.
9.6.2. Comando CLOSE
- O comando CLOSE serve para finalizar um arquivo. o oposto de OPEN.
- A forma geral simplificada do comando CLOSE :
close([unit=]u)
sendo que "u" o nmero da unidade.
Captulo 10: Comando FORMAT e Especificaes de Formato
10.1. Introduo
- FORMAT o comando que contm uma lista de especificaes de formato que permite ao
programador ter controle sobre os dados de entrada e sada.
- Exemplo do uso de um comando de formatao:
PRINT 10 , N, X, Y
10 FORMAT ( I3, F8.3, F5.1)
sendo que:
- PRINT e FORMAT so comandos (ou palavras-chave);
- "10" nmero de comando;
- "N,X,Y" lista de sada;
- "I3,F8.3,F5.1" so especificaes de formato.
Pgina 49 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
10.3. Especificaes de Formato (EF) de Converso
- As EF de converso mais usadas so:
Especificao
Converte dados
--------------------------------------------------------------------------Iw
inteiros decimais
- F w.d
reais decimais, sem expoente
- E w.d
reais decimais, com expoente
- D w.d
reais decimais dupla preciso, com expoente
- G w.d
reais decimais, com ou sem expoente
-Lw
lgicos
-Aw
caracteres
sendo que:
- "a" uma constante inteira, sem sinal e no-nula, usada para indicar o nmero de vezes que
a mesma EF seguidamente usada.
- "w" uma constante inteira, sem sinal e no-nula, usada para indicar a largura total do
campo externo (incluindo dgitos, espaos, sinais algbricos + ou - , ponto decimal e expoente).
- "d" uma constante inteira, sem sinal e que indica a quantidade de dgitos direita do ponto
decimal dentro do campo de largura w. Na sada, todos os valores so arredondados.
- Exemplos:
Exemplo 1. Para escrever na tela do monitor as variveis numricas
var1=111 var2=2222.22 var3=3 var4=44.44
pode-se usar a seguinte combinao de comandos:
print 5,var1,var2,var3,var4
5 format(i3,f7.2,i1,f5.2)
Exemplo 2: para escrever na tela do monitor a seguinte lista de variveis
var1=.true. var2='america' var3=111 var4=2222.22 var5=333.33e+05
pode-se usar a seguinte combinao de comandos:
print 6,var1,var2,var3,var4,var5
6 format(l1,a7,i3,f7.2,e10.2)
Pgina 50 de 50
UNIVERSIDADE ESTADUAL DO CEAR UECE - CURSO DE FSICA
INTRODUO A CINCIA DOS COMPUTADORES
PROFESSOR DR. CARLOS SANTANA dr.acss@gmail.com
APOSTILA DE FORTRAN
sendo que "w" representa o nmero de espaos desejados.