Вы находитесь на странице: 1из 8

Introduc

ao ao Fortran 90/95

Apostila preparada para a disciplina de Modelos Computacionais da Fsica I, ministrada para o Curso de Licenciatura em Fsica do Departamento de Fsica, Instituto de Fsica e Matematica, Fundacao Universidade
Federal de Pelotas, Pelotas - RS.

Incio: Janeiro de 2005.

Versao: 24 de fevereiro de 2009

Sum
ario
Refer
encias Bibliogr
aficas

1 Introdu
c
ao
1.1 As origens da Linguagem Fortran . . . . . . . . . .
1.2 O padr
ao Fortran 90 . . . . . . . . . . . . . . . . .
1.2.1 Recursos novos do Fortran 90 . . . . . . . .
1.2.2 Recursos em obsolescencia do Fortran 90 .
1.2.3 Recursos removidos do Fortran 90 . . . . .
1.3 Uma revis
ao menor: Fortran 95 . . . . . . . . . . .
1.3.1 Recursos novos do Fortran 95 . . . . . . . .
1.3.2 Recursos em obsolescencia do Fortran 95 .
1.3.3 Recursos removidos do Fortran 95 . . . . .
1.4 O Fortran no Seculo XXI: Fortran 2003 . . . . . .
1.4.1 Recursos novos do Fortran 2003 . . . . . . .
1.4.2 Recursos em obsolescencia do Fortran 2003
1.4.3 Recursos removidos do Fortran 2003 . . . .
1.5 O novo padr
ao: Fortran 2008 . . . . . . . . . . . .
1.5.1 Recursos novos do Fortran 2008 . . . . . . .
1.6 Coment
arios sobre a bibliografia . . . . . . . . . .
1.7 Agradecimentos . . . . . . . . . . . . . . . . . . . .
2 Formato do C
odigo-Fonte
2.1 Formato do programa-fonte . .
2.2 Nomes em Fortran 90/95 . . .
2.3 Entrada e sada padr
oes . . . .
2.4 Conjunto de caracteres aceitos

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
2
3
3
4
4
4
5
5
6
6
6
7
7
7
8
8

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

9
9
11
11
12

3 Tipos de Vari
aveis
3.1 Declarac
ao de tipo de vari
avel . . . . . . . . . .
3.2 Vari
aveis do tipo INTEGER . . . . . . . . . . . .
3.3 Vari
aveis do tipo REAL . . . . . . . . . . . . . .
3.4 Vari
aveis do tipo COMPLEX . . . . . . . . . . . .
3.5 Vari
aveis do tipo CHARACTER . . . . . . . . . . .
3.6 Vari
aveis do tipo LOGICAL . . . . . . . . . . . .
3.7 O conceito de especie (kind) . . . . . . . . . . .
3.7.1 Fortran 77 . . . . . . . . . . . . . . . . .
3.7.2 Fortran 90/95 . . . . . . . . . . . . . . .
3.7.2.1 Compilador Intel Fortran
3.7.2.2 Compilador gfortran . . . . .
3.7.2.3 Compilador F . . . . . . . . . .
3.7.2.4 Literais de diferentes especies .
3.7.3 Func
oes intrnsecas associadas `a especie
3.7.3.1 KIND(X) . . . . . . . . . . . .
3.7.3.2 SELECTED_REAL_KIND(P,R) . .
3.7.3.3 SELECTED_INT_KIND(R) . . . .
3.8 Tipos derivados . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

13
13
14
14
15
15
17
17
17
17
18
18
19
21
22
22
22
23
23

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

ii

SUMARIO

4 Express
oes e Atribui
c
oes Escalares
4.1 Regras basicas . . . . . . . . . . . . . . . . . .
4.2 Expressoes numericas escalares . . . . . . . . .
4.3 Atribuicoes numericas escalares . . . . . . . . .
4.4 Operadores relacionais . . . . . . . . . . . . . .
4.5 Expressoes e atribuic
oes l
ogicas escalares . . . .
4.6 Expressoes e atribuic
oes de caracteres escalares

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

27
27
28
29
30
30
32

5 Comandos e Construtos de Controle de Fluxo


5.1 Comandos obsoletos do Fortran 77 . . . . . . .
5.1.1 Rotulos (statement labels) . . . . . . . .
5.1.2 Comando GO TO incondicional . . . . . .
5.1.3 Comando GO TO computado . . . . . . .
5.1.4 Comando IF aritmetico . . . . . . . . .
5.1.5 Comandos ASSIGN e GO TO atribudo . .
5.1.6 Lacos DO rotulados . . . . . . . . . . . .
5.2 Comando e construto IF . . . . . . . . . . . . .
5.2.1 Comando IF . . . . . . . . . . . . . . .
5.2.2 Construto IF . . . . . . . . . . . . . . .
5.3 Construto CASE . . . . . . . . . . . . . . . . . .
5.4 Construto DO . . . . . . . . . . . . . . . . . . .
5.4.1 Construto DO ilimitado . . . . . . . . . .
5.4.2 Instruc
ao EXIT . . . . . . . . . . . . . .
5.4.3 Instruc
ao CYCLE . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

35
35
35
36
36
36
37
37
38
38
38
39
41
43
43
44

6 Processamento de Matrizes
6.1 Terminologia e especificac
oes de matrizes . . . . .
6.2 Expressoes e atribuic
oes envolvendo matrizes . . .
6.3 Secoes de matrizes . . . . . . . . . . . . . . . . . .
6.3.1 Subscritos simples . . . . . . . . . . . . . .
6.3.2 Tripleto de subscritos . . . . . . . . . . . .
6.3.3 Vetores de subscritos . . . . . . . . . . . . .
6.4 Atribuicoes de matrizes e sub-matrizes . . . . . . .
6.5 Matrizes de tamanho zero . . . . . . . . . . . . . .
6.6 Construtores de matrizes . . . . . . . . . . . . . . .
6.6.1 A func
ao intrnseca RESHAPE. . . . . . . . .
6.6.2 A ordem dos elementos de matrizes . . . . .
6.7 Rotinas intrnsecas elementais aplic
aveis a matrizes
6.8 Comando e construto WHERE . . . . . . . . . . . . .
6.8.1 Comando WHERE . . . . . . . . . . . . . . .
6.8.2 Construto WHERE . . . . . . . . . . . . . . .
6.9 Matrizes alocaveis . . . . . . . . . . . . . . . . . .
6.10 Comando e construto FORALL . . . . . . . . . . . .
6.10.1 Comando FORALL . . . . . . . . . . . . . . .
6.10.2 Construto FORALL . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

47
47
51
53
54
54
54
55
55
57
58
58
59
59
59
60
61
64
64
64

7 Rotinas Intrnsecas
7.1 Categorias de rotinas intrnsecas . . . . . . . . . . . . .
7.2 Declaracao e atributo INTRINSIC . . . . . . . . . . . . .
7.3 Funcoes inquisidoras de qualquer tipo . . . . . . . . . .
7.4 Funcoes elementais numericas . . . . . . . . . . . . . . .
7.4.1 Func
oes elementais que podem converter . . . . .
7.4.2 Func
oes elementais que nao convertem . . . . . .
7.5 Funcoes elementais matem
aticas . . . . . . . . . . . . .
7.6 Funcoes elementais logicas e de caracteres . . . . . . . .
7.6.1 Convers
oes caractere-inteiro . . . . . . . . . . . .
7.6.2 Func
oes de comparac
ao lexica . . . . . . . . . . .
7.6.3 Func
oes elementais para manipulacoes de strings
7.6.4 Convers
ao l
ogica . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

67
67
67
68
68
68
69
69
70
70
70
71
71

Autor: Rudi Gaelzer IFM/UFPel

Impresso: 24 de fevereiro de 2009


SUMARIO
7.7

7.8

7.9

7.10
7.11
7.12

7.13

7.14

7.15
7.16
7.17

iii

Funcoes nao-elementais para manipulacao de strings . . . . . .


7.7.1 Func
ao inquisidora para manipulacao de strings . . . . .
7.7.2 Func
oes transformacionais para manipulacao de strings
Funcoes inquisidoras e de manipulacoes numericas . . . . . . .
7.8.1 Modelos para dados inteiros e reais . . . . . . . . . . . .
7.8.2 Func
oes numericas inquisidoras . . . . . . . . . . . . . .
7.8.3 Func
oes elementais que manipulam quantidades reais . .
7.8.4 Func
oes transformacionais para valores de especie (kind)
Rotinas de manipulac
ao de bits . . . . . . . . . . . . . . . . . .
7.9.1 Func
ao inquisidora . . . . . . . . . . . . . . . . . . . . .
7.9.2 Func
oes elementais . . . . . . . . . . . . . . . . . . . . .
7.9.3 Subrotina elemental . . . . . . . . . . . . . . . . . . . .
Funcao de transferencia . . . . . . . . . . . . . . . . . . . . . .
Funcoes de multiplicacao vetorial ou matricial . . . . . . . . . .
Funcoes transformacionais que reduzem matrizes . . . . . . . .
7.12.1 Caso de argumento u
nico . . . . . . . . . . . . . . . . .
7.12.2 Argumento opcional DIM . . . . . . . . . . . . . . . . . .
7.12.3 Argumento opcional MASK . . . . . . . . . . . . . . . . .
Funcoes inquisidoras de matrizes . . . . . . . . . . . . . . . . .
7.13.1 Status de alocac
ao . . . . . . . . . . . . . . . . . . . . .
7.13.2 Limites, forma e tamanho . . . . . . . . . . . . . . . . .
Funcoes de construc
ao e manipulacao de matrizes . . . . . . . .
7.14.1 Func
ao elemental MERGE . . . . . . . . . . . . . . . . . .
7.14.2 Agrupando e desagrupando matrizes . . . . . . . . . . .
7.14.3 Alterando a forma de uma matriz . . . . . . . . . . . .
7.14.4 Func
ao transformacional para duplicacao . . . . . . . .
7.14.5 Func
oes de deslocamento matricial . . . . . . . . . . . .
7.14.6 Transposta de uma matriz . . . . . . . . . . . . . . . . .
Funcoes transformacionais para localizacao geometrica . . . . .
Funcao transformacional para dissociacao de ponteiro . . . . .
Subrotinas intrnsecas n
ao-elementais . . . . . . . . . . . . . . .
7.17.1 Rel
ogio de tempo real . . . . . . . . . . . . . . . . . . .
7.17.2 Tempo da CPU . . . . . . . . . . . . . . . . . . . . . . .
7.17.3 N
umeros aleat
orios . . . . . . . . . . . . . . . . . . . . .

8 Sub-Programas e M
odulos
8.1 Unidades de programa . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Programa principal . . . . . . . . . . . . . . . . . . . .
8.1.2 Rotinas externas . . . . . . . . . . . . . . . . . . . . .
8.1.3 M
odulos . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 sub-programas . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1 Func
oes e subrotinas . . . . . . . . . . . . . . . . . . .
8.2.2 Rotinas internas . . . . . . . . . . . . . . . . . . . . .
8.2.3 Argumentos de sub-programas . . . . . . . . . . . . .
8.2.4 Comando RETURN . . . . . . . . . . . . . . . . . . . . .
8.2.5 Atributo e declarac
ao INTENT . . . . . . . . . . . . . .
8.2.6 Rotinas externas e bibliotecas . . . . . . . . . . . . . .
8.2.7 Interfaces implcitas e explcitas . . . . . . . . . . . . .
8.2.8 Argumentos com palavras-chave . . . . . . . . . . . .
8.2.9 Argumentos opcionais . . . . . . . . . . . . . . . . . .
8.2.10 Tipos derivados como argumentos de rotinas . . . . .
8.2.11 Matrizes como argumentos de rotinas . . . . . . . . .
8.2.11.1 Matrizes como argumentos em Fortran 77 . .
8.2.11.2 Matrizes como argumentos em Fortran 90/95
8.2.12 sub-programas como argumentos de rotinas . . . . . .
8.2.13 Func
oes de valor matricial . . . . . . . . . . . . . . . .
8.2.14 Recursividade e rotinas recursivas . . . . . . . . . . .
8.2.15 Atributo e declarac
ao SAVE . . . . . . . . . . . . . . .
Autor: Rudi Gaelzer IFM/UFPel

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

71
71
71
72
72
72
73
73
73
74
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
78
78
78
78
78
79
79
79
79

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

81
. 81
. 81
. 83
. 83
. 83
. 83
. 85
. 85
. 86
. 86
. 88
. 88
. 90
. 93
. 94
. 94
. 94
. 96
. 99
. 100
. 103
. 105

Impresso: 24 de fevereiro de 2009


SUMARIO

iv

8.3

8.4

8.2.16 Func
oes de efeito lateral e rotinas puras . . . . . . . . . . . . .
8.2.17 Rotinas elementais . . . . . . . . . . . . . . . . . . . . . . . . .
Modulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1 Dados globais . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.2 Rotinas de modulos . . . . . . . . . . . . . . . . . . . . . . . .
8.3.3 Atributos e declarac
oes PUBLIC e PRIVATE . . . . . . . . . . . .
8.3.4 Interfaces e rotinas genericas . . . . . . . . . . . . . . . . . . .
8.3.5 Estendendo rotinas intrnsecas via blocos de interface genericos

Ambito
(Scope) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.4.1 Ambito
dos r
otulos . . . . . . . . . . . . . . . . . . . . . . . . .

8.4.2 Ambito
dos nomes . . . . . . . . . . . . . . . . . . . . . . . . .

9 Comandos de Entrada/Sada de Dados


9.1 Comandos de Entrada/Sada: introduc
ao rapida
9.2 Declaracao NAMELIST . . . . . . . . . . . . . . . .
9.3 Unidades logicas . . . . . . . . . . . . . . . . . .
9.4 Comando OPEN . . . . . . . . . . . . . . . . . . .
9.5 Comando READ . . . . . . . . . . . . . . . . . . .
9.6 Comandos PRINT e WRITE . . . . . . . . . . . . .
9.7 Comando FORMAT e especificador FMT= . . . . . .
9.8 Descritores de edic
ao . . . . . . . . . . . . . . . .
9.8.1 Contadores de repetic
ao . . . . . . . . . .
9.8.2 Descritores de edic
ao de dados . . . . . .
9.8.3 Descritores de controle de edic
ao . . . . .
9.8.4 Descritores de edic
ao de strings . . . . . .
9.9 Comando CLOSE . . . . . . . . . . . . . . . . . .
9.10 Comando INQUIRE . . . . . . . . . . . . . . . . .
9.11 Outros comandos de posicionamento . . . . . . .
9.11.1 Comando BACKSPACE . . . . . . . . . . . .
9.11.2 Comando REWIND . . . . . . . . . . . . . .
9.11.3 Comando ENDFILE . . . . . . . . . . . . .

Autor: Rudi Gaelzer IFM/UFPel

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

106
108
109
110
113
115
116
120
120
120
121

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

123
123
127
131
131
134
135
136
137
137
138
141
147
148
148
151
151
151
151

Impresso: 24 de fevereiro de 2009

Refer
encias Bibliogr
aficas
[1] Intel Fortran Compiler for Linux. http://www.intel.com/software/products/compilers/flin/docs/manuals.htm.
Acesso em: 01 jun. 2005.
[2] MARSHALL, A. C. Fortran 90 Course Notes. http://www.liv.ac.uk/HPC/HTMLFrontPageF90.html, 1996.
Acesso em: 01 jun. 2005.
[3] METCALF, MICHAEL, REID, JOHN. Fortran 90/95 Explained. New York : Oxford University Press,
1996, 345 + xv pp.
[4] PAGE, CLIVE G. Professional Programers Guide to Fortran77. http://www.star.le.ac.uk/ cgp/prof77.pdf,
Leicester, 2001. Acesso em: 01 jun. 2005.
[5] RAMSDEN,
S.,
LIN,
F.,
PETTIPHER,
M.
A.,
NOLAND,
G.
S.,
BROOKE, J. M.
Fortran 90. A Conversion Course for Fortran 77 Programmers.
http://www.hpctec.mcc.ac.uk/hpctec/courses/Fortran90/F90course.html, 1995.
Acesso em: 01 jun.
2005.
[6] REID, JOHN.
The New Features of Fortran 2003.
tran/john reid new 2003.pdf, 2004. Acesso em: 03 Jun. 2006.

http://www.kcl.ac.uk/kis/support/cit/for-

vi

Autor: Rudi Gaelzer IFM/UFPel

REFERENCIAS
BIBLIOGRAFICAS

Impresso: 24 de fevereiro de 2009

Вам также может понравиться