introdução ao fortran agosto/2013. introdução formula translation system elaborado...

51
Introdução ao Fortran Introdução ao Fortran Agosto/2013 Agosto/2013

Upload: malu-valverde-canto

Post on 07-Apr-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Introdução ao FortranIntrodução ao Fortran

Agosto/2013Agosto/2013

Page 2: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Introdução

• FORmula TRANslation System

• Elaborado especificamente para aplicações científicas e matemáticas

• Grande número de bibliotecas numéricas construído para Fortran.

• Compiladores (especialmente os livres) são fáceis de encontrar em diferentes ambientes.

Page 3: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Introdução

• O Fortran77 está muito obsoleto em relação às linguagens atuais e aos recursos existentes

Formato fixo: Linhas da posição 7 a 72;

Somente letras maiúsculas;Nomes de variáveis,até 6 caracteres.

• O Fortran 90 possui novos recursos na definição de um “array”, alocação de memória dinâmica, estruturas de controle, etc.

Formato livre: 132 caracteres por linha; Maiúsculas e minúsculas; Nomes de variáveis ,até 31 caracteres;

Mais de um comando por linha.

Page 4: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Introdução

• Compiladores

– Programa que traduz de uma linguagem de compilação para outra linguagem equivalente: código objeto.

Compiladores mais utilizados:• gfortran (gnu)• ifort (Intel Fortran)• pgf90 (pgi – Portland Group)

• Os compiladores disponíveis distinguem entre esses dois formatos através da extensão do nome do arquivo .f e .F para formato fixo .f90 e .F90 formato livre.

Page 5: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Instalação

tar -xvf pgroup64.tarcd pgroup ./installPasse o texto (com enter) e digite: acceptEscolha a opção: 1Escolha a opção: yPasse o texto e aceite, digitando: acceptEscolha o diretório: /home/{user}/pgiEscolha a opção para criação da licença: yPasse o texto e aceite, digitando: acceptnome: curso usuário: curso e-mail: cursoOs arquivos instalados devem ser somente de leitura: no

Page 6: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Criar um diretório do curso de Fortran

cd ~mkdir curso_fortrancd curso_fortran

gedit ~/.bashrcexport PGI=/home/curso/pgiexport PATH=$PGI/linux86-64/7.0/bin:$PATHexport MANPATH=$PGI/linux86/7.0/manexport LM_LICENSE_FILE=$PGI/license.dat

Instalação

Page 7: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Conceitos básicos

• Caracteres válidos

– Caracteres alfabéticos: sem distinção entre maiúscula e minúscula

– Caracteres numéricos: todos os dígitos de 0 até 9

Page 8: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Conceitos básicos

• Caracteres válidos– Caracteres especiais

<branco>

< ! > Caractere de inicio de comentários z

Page 9: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Conceitos básicos

• Caracteres válidos– Caracteres especiais

< & >

< ; > Caractere de separação de comandos

Page 10: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Conceitos básicos

• A estrutura básica de um programa FORTRAN pode ser descrita como:

PROGRAM <nome do programa>< declarações >< comandos >END PROGRAM <nome do programa>

declarações - conjunto de comandos que definem os dados a serem usados.

comandos - conjunto de comandos que serão executados, na ordem em que aparecem listados e atendendo a quaisquer desvios em seu fluxo de execução.

Page 11: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Conceitos básicos

• Exemplo:

PROGRAM primeiro

implicit none

print*, “Buenas tardes”

END PROGRAM primeiro

Page 12: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Variáveis

• Uma variável FORTRAN é um nome para uma localização de memória.

– Devem iniciar por uma letra– Podem conter letras e números

– Não faz distinção entre letras maiúsculas e minúsculas

VAR = var = Var

– Tamanho máximo de uma variável é até 31 caracteres

Page 13: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Tipo implícito

– Variáveis iniciadas com I, J, K, L, M, ou N - variáveis inteiras– Variáveis iniciadas com outras letras - variáveis reais

• Tipo explícito– INTEGER - varáveis inteiras– REAL - variáveis reais– DOUBLE PRECISION - varáveis de dupla precisão– COMPLEX - variáveis complexas– LOGICAL - variáveis lógicas– CHARACTER - variáveis caracteres

* Recomenda-se definir todas as variáveis

implicit none - obriga a declaração de variáveis no bloco

Page 14: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Variáveis do tipo INTEGER

Este tipo de variável armazena apenas a parte inteira de um número, exemplos de números inteiros válidos ,também denominados literais são:

123, 89312, 5Ex: INTEGER :: idade

As declarações básicas de variáveis de tipo inteiro são:

Fortran 77: INTEGER <lista de variáveis>

Fortran 90/95: INTEGER :: <lista de variáveis>

Page 15: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Variáveis do tipo REAL

O tipo de variável real é usado para declarar variáveis de valores numéricos com casas decimais.

3.141592653, 1., -0.1Ex: REAL :: pi

As declarações básicas de variáveis de tipo real são:

Fortran 77: REAL <lista de variáveis>

Fortran 90/95: REAL :: <lista de variáveis>

Page 16: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Variáveis do tipo COMPLEX

Este tipo complex é usado para declarar valores numéricos com parte real e parte imaginária.

(1. , .99E-2) (representando 1 + 0,99×10−2i)Ex: COMPLEX :: a(5, -5)

As declarações básicas de variáveis de tipo complex são:

Fortran 77: COMPLEX <lista de variáveis>

Fortran 90/95: COMPLEX :: <lista de variáveis>

Page 17: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Variáveis do tipo CHARACTER

É usado para declarar variáveis do tipo caracter.Exemplos:

Character :: sexoCharacter(LEN=12) :: nome

As declarações básicas de variáveis de tipo caracter são:

Fortran 77: CHARACTER *<comprimento> <lista de variáveis>

CHARACTER <nome 1>*<comp. 1>, [<nome 2>*<comp. 2>, ...]

Fortran 90: CHARACTER (len=<comprimento>):: <lista de variáveis>

Page 18: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Variáveis do tipo LOGICAL

Uma variável lógica só pode assumir os valores, verdadeiro ou falso. A representação dos dois estado possíveis de uma variável lógica são:ˆ

.TRUE. Verdadeiro⇒ˆ .FALSE. Falso ⇒

As declarações básicas de variáveis de tipo inteiro são:

Fortran 77: LOGICAL <lista de variáveis>

Fortran 90/95: LOGICAL :: <lista de variáveis>

Page 19: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Declaração de uma matriz ou vetor (array)

DIMENSION Específica o número de dimensões e o número de elementos em cada dimensão davariável.

Exemplos:

INTEGER, DIMENSION(10) :: A 1 dimensão e 10 elementos

REAL, DIMENSION(2:4,2) :: B 2 dimensões e o tamanho do conjunto é 6

Page 20: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Declaração de um parâmetro

PARAMETER A variável não poderá ter seu valor alterado

Exemplos:

INTEGER, PARAMETER :: M=10, N=20, NZ=M*N-M

REAL :: PIPARAMETER (PI=3.1415926)

Page 21: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Alocação dinâmica de conjunto de dados

Para isso será necessário utilizar os comandos ALLOCATABLE, ALLOCATE, ALLOCATED e DEALLOCATE.

Na declaração das matrizes - ALLOCATABLE INTEGER, DIMENSION( : ), ALLOCATABLE :: A ! 1DREAL, DIMENSION( : , : ), ALLOCATABLE :: B ! 2D

Alocação de memória - ALLOCATE READ*, isizeALLOCATE(A(isize), STAT=err)ALLOCATE(B(0:isize-1,10), STAT=err)

Page 22: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Declaração de variáveis

• Alocação dinâmica de conjunto de dados

Verificação de memória – ALLOCATED

ALLOCATED(A)

Liberação de memória – DEALLOCATE

IF (ALLOCATED(A)) DEALLOCATE(A, STAT=err)

Page 23: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Compilar e excutar

gfortran <nome do programa> -o <nome do executável>Exemplo: (nedit soma.f90)

PROGRAM soma !inicia o programa chamado somaimplicit noneINTEGER :: k, n, m !declara que k,n,m são variáveis inteirasn=1 !atribui o valor 1 à variável nm=3 !atribui o valor 3 à variável mk=m+n !soma n e m, e o resultado é armazenado em kPRINT*, k !escreve na tela a variável kSTOP !para a execução do programaEND !fim do programa soma

compilar gfortran soma.f 90 -o soma.xexecutar soma.x

Page 24: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Precedência de operadores aritméticos

+ (adição)

- (subtração)

/ (divisão)

* (multiplicação)

** (exponenciação)( ) (parenteses)

- Toda expressão que vier entres parênteses, será avaliada primeiro;

Page 25: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Operador caractere

Utilizado para efetuar a concatenação “//”, somente de variáveis caracteres.

CHARACTER(LEN=*),PARAMETER :: string=‘abcdefgh’

string(1:1) ‘a’string(2:4) ‘bcd’a=string(1:1)//string(2:4) ‘abcd’ b=string//string(3:5) ‘abcdefghcde’

endereco=cidade//”-”//”Colombia” ‘Cali-Colombia’

Page 26: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Funções intrínsecas

INT(x) converte a variável x INT(14.8) = 14para inteiro

REAL(x) converte a variável x REAL(4) = 4.0para real

DBLE(x) converte a variável x DBLE(1) = 1.0para dupla precisão

NINT(x) converte a variável x NINT(3.8) = 4para o inteiro mais próximo

CHAR(x) converte a variável x CHAR(65) = Ainteira para caractere

ICHAR(x) converte a variável x ICHAR(‘A’) = 65 caractere para inteiro

LOG(x) calcula o logaritmo LOG(2.0) = 4.605170...natural

Page 27: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Funções intrínsecas

ABS(x) retorna o valor absoluto ABS(-14.8) = 14.8de uma variável real/inteira

MOD(a,b) mostra o resto da divisão MOD(5.3,2.0) = 1.3entre a e b

MAX(args) retorna o maior valor de MAX(1,2,-7,4) = 4um conjunto de variáveis inteiras

MIN(args) retorna o menor valor de MIN(1,2,-7,4) = -7um conjunto de variáveis inteiras

AMAX(args) retorna o maior valor de AMAX(1.0,2.3,5.8) = 5.8um conjunto de variáveis reais

AMIN(args) retorna o menor valor de AMIN(1.0,2.3,5.8) = 1.0um conjunto de variáveis reais

Page 28: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Funções intrínsecas

SQRT(x) retorna a raiz quadrada SQRT(9.0) = 3.0EXP(x) calcula o exponencial ex EXP(1.0) = 2.718281746LOG10(x) calcula o log na base 10 LOG10(100.0) = 2SIN(x) retorna o valor do seno SIN(3,14/2) = 1.0COS(x) retorna o valor do coseno COS(3,14/2) = 0.0TAN(x) retorna o valor da tangente TAN(3,14/2) = 1.0ASIN(x) retorna o arcoseno ASIN(1.0) = 0.0ACOS(x) retorna o arcocoseno ACOS(1.0) = ¶/2ATAN(x) retorna o arcotangente ATAN(1.0) = ¶/4 LEN(x) retorna o tamanho da LEN(‘ABCD’) = 4

variável

Page 29: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Expressões e operadores

• Operadores relacionais

== ou .EQ. (igual )/= ou .NE. (diferente)< ou .LT. (menor)> ou .GT. (maior)<= ou .LE. (menor ou igual)>= ou .GE. (maior ou igual)

• Operadores lógicos

.NOT. (negação lógica)

.AND. (conjunção)

.OR. (disjunção)

.EQV. (equivalência)

.NEQV. (nedgação da equivalência)

Page 30: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• GO TO– Transfere o fluxo da execução para o comando que estiver

referenciado pelo rótulo n .

GO TO <n>

Exemplo:

INTEGER in 10 PRINT*, 'Entre com um numero de 1 a 10'

READ*,inPRINT*,'Numero errado ! Tente de novo.'GO TO 10

Rótulo Número inteiro colocado a frente do comando e separado do mesmo por pelo menos um espaço em branco (código em formato livre) ou nas colunas 1 a 6 de uma linha

(formato fixo)

Page 31: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• IF – O valor de uma expressão lógica é testado e um único comando

é executado se e somente se o valor for verdadeiro.

IF (<expressão lógica>) <comando>

IF (x > 20) y=10

IF (M .NE. 0 .and. G .NE. 0 ) K=1/(M*G)

Page 32: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• IF ... THEN ... ENDIF– Permite o desvio no fluxo de execução de um programa de

forma condicional.

IF (<expressão lógica 1>) THEN<comando 1>... comandos executados se a expr. lógica for verdade<comando n>ELSE IF (<expressão lógica 2>) THEN <comando 1>... comandos executados se a expr. lógica 1 for falsa<comando n> e a expr. lógica 2 for verdadeiraELSE<comando 1>... comandos executados se as expr lógicas 1 e 2 forem <comando n> falsasENDIF

Page 33: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• DO ... END DO– Permite que um bloco de comandos seja repetitivamente

executado.

DO <variável> = <valor inicial>, <valor final>, <incremento><comando 1>...<comando n> END DO

Exemplo:

DO i=1,10,2 … ! i1 será: 1,3,5,7 … … ! 50 interações END DO

DO i=1,10 DO j=1,5 PRINT*, i,j END DO END DO

Page 34: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• DO WHILE ... END DO– Permite que um bloco de comandos seja executado repetidas

vezes enquanto a condição for verdadeira.

DO WHILE (<condição>)<comando 1>...<comando n> END DO

Exemplo:

i=1DO WHILE (i <= 10) PRINT*, i

i=i+1END DO

Page 35: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

• STOP– Provoca o término imediato do programa (parada incondicional)

STOP [“texto”] • EXIT

– Provoca uma interrupção na execução dos comandos do bloco do DO

isto é, nenhum comando existente entre EXIT e END DO é executado.

• CYCLE– Faz com que o fluxo de execução do programa dentro do bloco do

DO seja desviado para o comando END DO e uma nova iteração será executada.

Page 36: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos para controle de fluxo

Exemplo:

Page 37: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• FORMAT– Permite formatar um conjunto de caracteres.

<rótulo> FORMAT (<lista de caracteres de edição>)

Caracteres de edição - Descreve dados do tipo: rI w      inteiro

rF w.d              real rE w.d              real, com expoente  rD w.d             real com dupla precisão, com expoente  rG w.d             rel, com ou sem expoente  rL w                 lógico rA w                caractere

rX Pula r espaços em branco

r indica o número de dados que serão lidos ou escritos com aquele formato. w representa o tamanho do campo a ser impresso d  indica a quantidade de dígitos à direita do ponto decimal dentro do campo de

largura

Page 38: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

Exemplo: PROGRAM formata_dados        REAL    :: var1, var2        INTEGER :: var3        LOGICAL :: var4        CHARACTER (len=7) :: var5        REAL   :: var6

    var1=2222.22        var2=44.44        var3=111        var4=.true.        var5='america'        var6=33333000

        PRINT 10,var1,var2,var3,var4,var5,var6 10     FORMAT(F7.2,x,F5.2,x,I3,x,L1,x,A7,x,E11.5)

        PRINT 20,var1,var2,var3,var4,var5,var6 20     FORMAT(F7.1,x,F4.2,x,I2,x,L4,x,A4,x,E8.2)

END

Page 39: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• PRINT– Permite escrever um conjunto de caracteres no dispositivo de

saída padrão (tela).

Exemplos: N=5340 PRINT 15, ‘O valor de n e ’,N

15 FORMAT (2x,I5)

Page 40: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• OPEN– Permite que se associe um arquivo externo a uma unidade de

entrada, saída ou ambos.

OPEN (unit=<no unid>,file=<nome do arq>,status=<status>)

<no unid> número inteiro não associado a outro arquivo

<status>

Page 41: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• READ– Permite a leitura de um conjunto de valores de um dispositivo

de entrada.

READ (<unidade>,<formato>) <var>

<unidade> número inteiro (arquivo)/ * (entrada via teclado) <formato> número inteiro (rótulo)/ * (livre)

READ (5,*) dispositivo de entrada padrão (teclado)

READ (*,501) A,B,C 501 FORMAT(3I5)

Page 42: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

Exemplo: PROGRAM le_dados_teclado

REAL :: x,y,zREAL :: med

PRINT*, ’Entre com 3 valores...’READ(*,*) xREAD(*,*) yREAD(*,*) z

! Calculo da mediamed = (x+y+z)/3.

! Impressao do resultado no monitorPRINT*, ‘resultado: ‘,med

END PROGRAM le_dados_teclado

Page 43: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• WRITE– Permite que se escreva um conjunto de valores em um

dispositivo de saída.

WRITE (<unidade>,<formato>) <var>

<unidade> número inteiro (arquivo)/ * (monitor) <formato> número inteiro (rótulo)/ * (livre)

WRITE (6,*) dispositivo de saída padrão (monitor) WRITE (12,FMT=‘(I4)’) A

Page 44: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

Exemplo: PROGRAM le_dados_tecladoREAL :: x,y,zREAL :: med

PRINT*, ’Entre com 3 valores...’READ(*,*) x

READ(*,*) yREAD(*,*) z

! Calculo da mediaMED = (x+y+z)/3.

! Impressao do resultado no monitorWRITE(*,*) ‘resultado: ‘, med

Acrescentarno programa ! Impressao do resultado no arquivo anterior OPEN(unit=12,file=‘media.txt’,status=‘new’)

WRITE(12,10) ‘resultado: ‘,med10 FORMAT(a11,f10.2)

END PROGRAM le_dados_teclado

Page 45: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• WRITE/READ + DO Implícito– DO implícito é usado em comandos de entrada ou saída de dados.

Exemplo: PROGRAM le_dados_teclado

REAL, DIMENSION(4) :: XINTEGER :: i

! Lendo os valores de x no arquivo fort.10READ(10,*) (X(i),i=1,4)

! Impressao de X no monitorWRITE(*,*) ‘X: ‘, (X(i),i=1,4) WRITE(*,20) (X(i),i=1,4) 20 FORMAT(2f10.3)

END PROGRAM le_dados_teclado

OBS: Criar antes o arquivo txt com 4 valores (um em cada linha)

Page 46: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Transforma binário em ascii

PROGRAM BITEME

PARAMETER (jm=3264)

real temp(jm), undef

integer i

real UR(jm)

character*6 hora(jm)

character*250 linha

undef=999.000

OPEN (unit=25,file='fort.15',status='old', form='unformatted')

i=1,jm

read(25)(hora(i),temp(i),UR(i))

enddo

do i=1,jm

write(15,*) (hora(i),temp(i),UR(i))

enddo

end

Page 47: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Tranforma ascii em binário: Program read90m

parameter(jm=3264)

real temp(jm), undef

integer i

character*6 hora(jm)

character*250 linha

undef=999.000

open(12,file='2001011512_202_PUNO_15.txt',status='old',form='formatted')

read(12,*) linha

do i=1,jm

read(12,*) (hora(i),temp(i)) ! arq ascii

print*,hora(i)

print*,temp(i)

enddo

do i=1,jm write(15) (hora(i),temp(i),UR(i)) ! arq bin p/ grads

enddo

end

Page 48: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• REWIND

– De forma semelhante a uma releitura, re-escritura ou verificação por leitura de um registro. O comando REWIND pode ser usado para reposicionar um arquivo, cujo número de unidade é especificado pela expressão escalar inteira <u>. Se o arquivo já estiver no seu início, ou o arquivo não exista, nada ocorre .

REWIND ([UNIT=]<u>)

REWIND 12

Page 49: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Comandos e formatos de entrada e saída

• BACKSPACE

– Pode acontecer em um programa que uma série de registros sejam escritos e que, por alguma razão, o último registro escrito deve ser substituído por um novo; isto é, o último registro deve ser sobrescrito. De forma similar, durante a leitura dos registros, pode ser necessário reler o último registro, ou verificar por leitura o último registro escrito.

– Se o comando for tentado quando o registro estiver no início do arquivo, nada ocorre. Se o arquivo estiver posicionado após um registro de final de arquivo, este resulta posicionado antes deste registro.

– Uma serie de comandos BACKSPACE resultará no retrocesso no número correspondente de registros.

BACKSPACE ([UNIT=]<u>)BACKSPACE 14

Page 50: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

As subbrotinas podem conter quaisquer tipos de comandos como imprimir resultados,

abrir arquivos ou executar cálculos. As subrotinas podem ‘chamar’ outras subrotinas

ou funções.

• ChamadaCALL <nome da sub-rotina> (lista_de_parâmetros)

• EstruturaSUBROUTINE <nome_da_su-brotina> (lista de parâmetros)<definição e declaração das variáveis e constantes locais><seqüência de comandos>RETURNEND

Sub-rotinas

Page 51: Introdução ao Fortran Agosto/2013. Introdução FORmula TRANslation System Elaborado especificamente para aplicações científicas e matemáticas Grande número

Sub-rotinas

Exemplo: