Você está na página 1de 64

Programacao Cientfica em Fortran

Lucas Crispim
Universidade Federal de Juiz de Fora

20 de Outubro de 2016

Apresentador Lucas Crispim ( PPG-MC UFJF)

1 / 12

Sumario
1

Introducao

Estrutura inicial

Tipos de formato

Tipos de variaveis

Declaracao de variaveis

Tipos derivados

Especificacao de atributos

Introduc
ao

Linguagem
Criacao 1954

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77
Uso de blocos IF .. THEN .. ELSE

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77
Uso de blocos IF .. THEN .. ELSE
C, Pascal, Ada ... introduziram novos conceitos

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77
Uso de blocos IF .. THEN .. ELSE
C, Pascal, Ada ... introduziram novos conceitos
Estrutura de dados, alocac
ao din
amica

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77
Uso de blocos IF .. THEN .. ELSE
C, Pascal, Ada ... introduziram novos conceitos
Estrutura de dados, alocac
ao din
amica

Fortran 90/95

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Introduc
ao

Linguagem
Criacao 1954
Programacao cientfica
Fortran=FORmula TRANslations
Vantagens
Disponibilidade de compiladores
Facilidade de ensino
Eficiencia

1970 Fortran 77
Uso de blocos IF .. THEN .. ELSE
C, Pascal, Ada ... introduziram novos conceitos
Estrutura de dados, alocac
ao din
amica

Fortran 90/95
Incluiu os recursos de todas as linguagens
Programac
ao de alto desempenho

Apresentador Lucas Crispim ( PPG-MC UFJF)

3 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa
c
odigo fonte

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa
c
odigo fonte
Fortran 95

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa
c
odigo fonte
Fortran 95
Blocos

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa
c
odigo fonte
Fortran 95
Blocos
Mnimo

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Estrutura inicial

Estrutura de um programa

Definicao de um programa
c
odigo fonte
Fortran 95
Blocos
Mnimo

PROGRAM m e n o r p r o g r a m a
END PROGRAM m e n o r p r o g r a m a

Apresentador Lucas Crispim ( PPG-MC UFJF)

4 / 12

Tipos de formato

Formato livre e fixo


Formato livre

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres
comandos em linhas separadas

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres
comandos em linhas separadas
comando na mesma linha tem de ser separados por ;

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres
comandos em linhas separadas
comando na mesma linha tem de ser separados por ;
caso n
ao caiba numa linha, o comando deve ser interrompido por

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres
comandos em linhas separadas
comando na mesma linha tem de ser separados por ;
caso n
ao caiba numa linha, o comando deve ser interrompido por
coment
arios devem ser identificados pelo caracter !

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Formato livre
Qualquer comando pode ser iniciado em qualquer caracter da linha
limitac
ao 132 caracteres
comandos em linhas separadas
comando na mesma linha tem de ser separados por ;
caso n
ao caiba numa linha, o comando deve ser interrompido por
coment
arios devem ser identificados pelo caracter !

PROGRAM TESTE
! E s t e e uma p r o g r a m a t e s t e
INTEGER : : I , J
REAL , & ! e s t e e uma c o m e n t a r i o
DIMENSION ( 2 0 0 , 3 0 0 ) : : MATRIZ
MATRIZ=100.0
END PROGRAM TESTE

Apresentador Lucas Crispim ( PPG-MC UFJF)

5 / 12

Tipos de formato

Formato livre e fixo


Fortran 77

Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo


Fortran 77
72 caracteres

Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo


Fortran 77
72 caracteres
Os comandos devem aparecer a partir da coluna 7

Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo


Fortran 77
72 caracteres
Os comandos devem aparecer a partir da coluna 7
1 comando por linha

Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo


Fortran 77
72 caracteres
Os comandos devem aparecer a partir da coluna 7
1 comando por linha
comentarios sao inseridos por C ,

Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo


Fortran 77
72 caracteres
Os comandos devem aparecer a partir da coluna 7
1 comando por linha
comentarios sao inseridos por C ,
C
1
2
3
C23456789012345678901234567890123456789
PROGRAM TESTE
! ESTE E UM PROGRAMA DE TESTE
INTEGER : : I , J
REAL , ! e s t e e um c o m e n t a r i o
+DIMENSION ( 2 0 0 , 3 0 0 ) : : MATRIZ
MATRIZ=100.0
END PROGRAM TESTE
Apresentador Lucas Crispim ( PPG-MC UFJF)

6 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem
Letras: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem
Letras: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ALGARISMOS: 1 2 3 4 5 6 7 8 9 0

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem
Letras: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ALGARISMOS: 1 2 3 4 5 6 7 8 9 0
CARACTERES ESPECIAIS: : ; = + * / (

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem
Letras: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ALGARISMOS: 1 2 3 4 5 6 7 8 9 0
CARACTERES ESPECIAIS: : ; = + * / (

O uso de letras min


usculas num programa Fortran 95 depende do compilador

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de formato

Formato livre e fixo

A distincao entre os formatos acontece na extensao do arquivo


teste.f formato fixo
teste.f90 formato livre
Conjunto de caracteres da linguagem
Letras: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ALGARISMOS: 1 2 3 4 5 6 7 8 9 0
CARACTERES ESPECIAIS: : ; = + * / (

O uso de letras min


usculas num programa Fortran 95 depende do compilador

Apresentador Lucas Crispim ( PPG-MC UFJF)

7 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero
DOUBLE PRECISION Define variaveis do tipo real, isto e, capazes de
armazenar valores reais negativos positivos e zero, com uma precisao duas
vezes superior a armazenada na variavel REAL

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero
DOUBLE PRECISION Define variaveis do tipo real, isto e, capazes de
armazenar valores reais negativos positivos e zero, com uma precisao duas
vezes superior a armazenada na variavel REAL
COMPLEX Define veriaveis do tipo complexo, into e, capazes de armazenar
valores complexos onde cada parte - real e imaginaria - e um dado do tipo
REAL

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero
DOUBLE PRECISION Define variaveis do tipo real, isto e, capazes de
armazenar valores reais negativos positivos e zero, com uma precisao duas
vezes superior a armazenada na variavel REAL
COMPLEX Define veriaveis do tipo complexo, into e, capazes de armazenar
valores complexos onde cada parte - real e imaginaria - e um dado do tipo
REAL
LOGICAL Define variaveis do tipo l
ogico, isto e, capazes de armazenar os
valores .TRUE. (verdadeiro) e .FALSE. (falso)

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero
DOUBLE PRECISION Define variaveis do tipo real, isto e, capazes de
armazenar valores reais negativos positivos e zero, com uma precisao duas
vezes superior a armazenada na variavel REAL
COMPLEX Define veriaveis do tipo complexo, into e, capazes de armazenar
valores complexos onde cada parte - real e imaginaria - e um dado do tipo
REAL
LOGICAL Define variaveis do tipo l
ogico, isto e, capazes de armazenar os
valores .TRUE. (verdadeiro) e .FALSE. (falso)
CHARACTER Define variaveis de tipo caracter, isto e, capazes de
armazenar um caracter ou um conjunto de caracter (uma string)

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Tipos de vari
aveis

Tipos de declaracao de variaveis


INTEGER Variaveis do tipo inteiro, capazes de armazenar valores inteiros
negativos positivos e zero
REAL Define variaveis do tipo real, isto e, capazes de armazenar valores reais
negativos positivos e zero
DOUBLE PRECISION Define variaveis do tipo real, isto e, capazes de
armazenar valores reais negativos positivos e zero, com uma precisao duas
vezes superior a armazenada na variavel REAL
COMPLEX Define veriaveis do tipo complexo, into e, capazes de armazenar
valores complexos onde cada parte - real e imaginaria - e um dado do tipo
REAL
LOGICAL Define variaveis do tipo l
ogico, isto e, capazes de armazenar os
valores .TRUE. (verdadeiro) e .FALSE. (falso)
CHARACTER Define variaveis de tipo caracter, isto e, capazes de
armazenar um caracter ou um conjunto de caracter (uma string)

Apresentador Lucas Crispim ( PPG-MC UFJF)

8 / 12

Declarac
ao de vari
aveis

Declaracao explcita de variaveis

Sintaxe explcita de variaveis

Apresentador Lucas Crispim ( PPG-MC UFJF)

9 / 12

Declarac
ao de vari
aveis

Declaracao explcita de variaveis

Sintaxe explcita de variaveis


REAL : : X , Y , Z=1.0
REAL : : A , B , C
REAL ( KIND=8) : : U=3.0 ! Uma v a r i a v e l r e a l com 8
! b y t e s de tamanho
DOUBLE PRECISION : : M=100.0D0 , N
INTEGER : : I =4 , J , K
INTEGER ( KIND=2) : : DOIS ! 2 B y t e s de tamanho
COMPLEX : : RHO= ( 0 . 0 , 3 . 0 )
CHARACTER : : SIMBOLO =
CHARACTER( LEN=7) : : NOME = DELVANY
LOGICAL : : ACHOU = . FALSE .

Apresentador Lucas Crispim ( PPG-MC UFJF)

9 / 12

Tipos derivados

Tipos derivados de dados


Tipos de dados definidos pelo usuario

Apresentador Lucas Crispim ( PPG-MC UFJF)

10 / 12

Tipos derivados

Tipos derivados de dados


Tipos de dados definidos pelo usuario
TYPE e AND TYPE

TYPE VETOR 3D
REAL : : Y , Y , Z
END TYPE VETOR 3D

TYPE PLANO
TYPE( VETOR 3D )
REAL : : D
END TYPE PLANO

: : NORMAL

TYPE( VETOR 3D ) : : U , V ,W
TYPE(PLANO) : : FACE
Apresentador Lucas Crispim ( PPG-MC UFJF)

10 / 12

Especificac
ao de atributos

Comandos de especificacao de atributos

KIND quantidade de bytes usados para representar uma variavel

Apresentador Lucas Crispim ( PPG-MC UFJF)

11 / 12

Especificac
ao de atributos

Comandos de especificacao de atributos

KIND quantidade de bytes usados para representar uma variavel


INTEGER,REAL,LOGICAL,COMPLEX,DOUBLE PRECISION e
CHARACTER

Por defaut este n


umero depende do compilador

Apresentador Lucas Crispim ( PPG-MC UFJF)

11 / 12

Especificac
ao de atributos

Comandos de especificacao de atributos

KIND quantidade de bytes usados para representar uma variavel


INTEGER,REAL,LOGICAL,COMPLEX,DOUBLE PRECISION e
CHARACTER

Por defaut este n


umero depende do compilador
Fazer os exerccios da pagina 74 do livro [1]

Apresentador Lucas Crispim ( PPG-MC UFJF)

11 / 12

Especificac
ao de atributos

Bibliografia I

[1] Rudnei Dias Da Cunha. Programacao Cientfica Em Fortran 95. Clube de


Autores, 2007.

Apresentador Lucas Crispim ( PPG-MC UFJF)

12 / 12

Você também pode gostar