Escolar Documentos
Profissional Documentos
Cultura Documentos
T ITULO DO PLANO
Princ pios de programao em fortran para clculo numrico ca a e
BOLSISTA
Clarissa Martins Siqueira Curso de F sica Universidade Federal da Para ba Caixa Postal 5008 CEP: 58059-900 Joo Pessoa PB Brasil a clarissalua@hotmail.com
ORIENTADOR
Carlos Antnio de Sousa Pires o Universidade Federal da Para ba Departamento de F sica Caixa Postal 5008 CEP: 58059-900 Joo Pessoa PB Brasil a cpires@fisica.ufpb.br
Atividades Realizadas
Durante o per odo compreendido entre agosto/2012 e janeiro/2013 foi desenvolvido o trabalho correspondente ` primeira e segunda etapas do projeto original. Esse trabalho foi a baseado em livros e artigos indicados pelo orientador. Dentre as atividades tambm se inclui a e participao nas reunies semanais do Grupo de Pesquisa de F ca o sica de Part culas Elementares e Campos e apresentao de um seminrio. ca a Durante a primeira etapa, durante o per odo compreendido entre agosto/2012 e janeiro/2013 foi feito um estudo bsico sobre programao em FORTRAN, foram constru a ca dos algum problemas simples, mostrados a seguir.
Compilao e Execuo ca ca
Para compilar e executar o programa zemos o seguinte: Foi utilizado o editor de texto Emacs, o arquivo com o programa acima foi salvo como .f; No terminal entramos no diretrio do programa e em seguida foi dado o seguinte comando: o gfortran soma1.exe -o soma1 (gera o executvel); a Em seguida, executamos o programa: ./soma1 2
Vale salientar que necessrio ter instalado os programas gfortran e emacs, alm disso e a e o sistema operacional utilizado foi o Ubunto 12.04.
Conceitos Bsicos a
Comentrios: frases iniciadas por !, * ou C no so compiladas pelo programa, alm disso a a a e comentrios so importantes para tornar o programa claro. A primeira linha que dene a a a coluna deve ser iniciada com a letra c; Constantes: Nmericas: podem assumir valores reais (0, 2.5, 5.0e-5), inteiros (1, -1, 3) ou comu plexos ((2,5)). Como mostrado, exponenciais decimais so representadas por e, a a parte decimal separada da inteira por um ponto e nmeros complexos so represene u a tados entre parenteses, sendo a parte real e imaginria separadas por v a rgula, nessa ordem. Alfanumricos (strings, sequncias de letras ou nmeros): devem aparecer entre aspas, e e u vale ressaltar que o programa no l acento ou cedilha. a e Maisculas e Minsculas: o FORTRAN no faz distino entre letras maisculas e minsculas; u u a ca u u Comandos: Program: o programa inicia, devemos nome-lo; a End: naliza o programa; Stop: pra a execuo do programa; a ca Parameter: dene um parmetro xo, ou seja, que no pode ser alterado no programa. a a A seguir, um exemplo simples, com todos os parmetros mencionados, que calcula a rea a a de um c rculo de raio r: C23456789 program circle real r, area, pi parameter (pi = 3.14159) write (*,*) Give radius r: read (*,*) r area = pi*r*r write (*,*) Area = , area stop end !linha de comentrio a
Declarao de variveis ca a
As variveis podem ser de quatro tipos: inteiras (INTEGER), reais (REAL), alfaa numricas (CHARACTER) e lgicas (LOGICAL). E devem ser declaradas antes de serem usae o das no programa, caso contrrio, o programa considera variveis que comecem com I at N como a a e inteiras e o restante como reais, que conhecida como declarao impl e ca cita. INTEGER: declara nmeros inteiros; u REAL: declara nmeros reais; u CHARACTER: declara palavras ou expresses; o LOGICAL: declara nomes associados a variveis lgicas. Ex.: TRUE ou FALSE a o 3
Operadores
Operadores de Atribuio: usados para atribuir valores `s constantes ou variveis situadas ca a a a ` esquerda do mesmo. Representado pelo s mbolo =. Operadores Literais: so de concatenao ou juno de palavras, representados por //. a ca ca Operadores Aritmticos: Realizam operaes aritmticas simples e so representados como e co e a segue:
FORTRAN * / + **
Operadores Relacionais: comparam variveis, constantes ou expresses e retornam: TRUE a o ou 1 ou FALSE ou 0. Podem ser representados como segue:
Signicado menor que menor ou igual que igual que diferente de maior que maior ou igual que
Operadores lgicos: so usados quando h mais de uma condio relacional ou quando o a a ca e necessrio inverter o resultado. a FORTRAN .AND. .OR. .NOT. Signicado juno ca disjuno ca negao ca
Segue abaixo mais um exemplo simples do clculo do uma equao do segundo grau: a ca C234567 program equacao integer b,a,c real delta a=4 b=5 c=1 delta=b**2-4.0*A*C write(*,*)delta stop end
Comandos de Controle
Uma das caracter sticas do FORTRAN a compilao linha a linha, de cima para baixo. e ca Utilizando alguns comandos poss mudar isso. e vel Comando IF: Esse comando utilizado quando aparecem condies que podem ser ime co postas ao problema. Esse comando pode ser de vrios tipos que sero mostrados com a a exemplos, como segue: IF com uma alternativa C23456789 program soma integer k,n,m n=1 m=3 if(m .ne. 0)then k=m+n endif print*,k stop end
!inicia o programa chamado soma !declara que k,n,m so variveis inteiras a a !atribui o valor 1 ` varivel n a a !atribui o valor 3 ` varivel m a a !se o valor de m for diferente de zero, ento a !soma n e m, e o resultado e armazenado em k !naliza o bloco !escreve na tela a varivel k a !para a execuo do programa ca !m do programa soma
IF com duas alternativas C23456789 program soma integer k,n,m n=1 m=3 if(m .ne. 0)then K=m+n else k=n endif print*,k stop end IF lgico simples: o C234567 program teste real x,y x=5 y=4 if(x .gt. y) y=x print*,x,y stop end
!inicia o programa chamado soma !declara que k,n,m so variveis inteiras a a !atribui o valor 1 ` varivel n a a !atribui o valor 3 ` varivel m a a !se o valor de m for diferente de zero, ento a !soma n e m, e o resultado armazenado em k ll e !se a condio no for verdadeira ca a !o valor de n atribu a k e do !naliza o bloco !escreve na tela a varivel k a !para a execuo do programa ca !m do programa soma
IF aritmtico e C234567 program equacao real b,a,c,x,x1,x2 real delta a=4 b=5 c=1 delta=b**2-4.0*A*C write(*,*)delta if (delta) 10, 20, 30
!calcula a equao; resultado atribu a delta ca e do !escreve na tela o valor de delta !se delta menor que zero executa a linha com label 10, se delta igual a zero executa a linha com label 20, se delta maior que zero executa a linha com label 30 !a execuo desviada para o comando stop ca e ll
10 print*, delta <0 ; no real roots go to 100 20 x=-b/(2.0*a) print*, delta = 0 ; two equal real roots print*, x1=x2= ,x go to 100 30 sd=sqrt(delta) x1=0.5*(-b-sd)/a x2=0.5*(-b+sd)/a print*, delta >0; two dierent real roots print*, x1= ,x1 print*, x2= ,x2 100 stop end IF expandido
C234567 C calculando uma equacao de segundo grau program equacao real b,a,c,x,x1,x2 real delta a=4 b=5 c=1 delta=b**2-4.0*a*c write(*,*)delta if (delta .lt. 0)then print*, delta <0 ; no real roots else if(delta .eq. 0)then
!calcula a equao; resultado atribu a delta ca e do !escreve na tela o valor de delta !se a condio1 for verdadeira, ento executa a ca a !linha abaixo e naliza o bloco if !se a condicao1 for falsa a condio2 ca ! testada; se for verdadeira, executa os e !comandos das linhas seguintes e naliza. !Se for falsa, uma condio3 testada ca e
ll
x=-b/(2.0*a) print*, delta = 0 ; two equal real roots print*, x1=x2= ,x else if (delta .gt. 0)then sd=sqrt(delta) x1=0.5*(-b-sd)/a x2=0.5*(-b+sd)/a print*, delta >0; two dierent real roots print*, x1= ,x1 print*, x2= ,x2 endif stop end
!naliza o bloco if
Comando DO: so estruturas simples que evitam repeties de comandos desnecessrias. a co a Segue exemplo abaixo:
C234567 !somar os nmeros inteiros de 1 a 100 u program add100 ia=0 do ic=1,100,1 ia=ia+ic end do write(*,*) ia stop end
!inicializa um acumulador. !atribui o valor zero para varivel a que ir acumular os valores a !para os valores de 1 a 100 com intervalo de 1, faz !adiciona o valor de ic ` soma (ia) a !encerra o loop
orientadores.
Outras Atividades
Durante a vigncia da bolsa, houve a participao em reunies semanais, seminrios do e ca o a Departamento de F sica. Alm disso, foi cursada a disciplina da ps-graduao Introduo ` e o ca ca a Astrof sica de Part culas como aluna especial.