Você está na página 1de 8

RELATORIO PARCIAL 2012-2013 T ITULO DO PROJETO

Bariognesis via Leptognesis no contexto dos modelos 3-3-1 e e

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

Cronograma de Atividades do Projeto Original


i) O estudante dever ter um primeiro contato com as tcnicas de resoluo de problemas a e ca aritmticos utilizando fortran 77, tomando conhecimento de como construir algoritmos e utilizando comandos estruturados. Tambm, dever compreender algumas tcnicas para e a e leituras de arquivos de entrada e sa da, bem como sua formatao. Esta primeira fase ca dever ocupar os primeiros trs meses de estudo do estudante (agosto, setembro e outua e bro/2012); ii) Nesta segunda etapa o estudante, dever aprender a lidar com declarao e utilizao a ca ca de vetores e matrizes. Tambm dever lidar com funes e subrotinas, aplicando seu e a co aprendizado em problemas simples. Esta segunda etapa dever ser realizada durante cerca a de trs meses. (novembro e dezembro/2012 e janeiro/2013); e iii) Nesta fase, o estudante dever ser capaz de aplicar seus conhecimentos a alguns problea mas numricos de natureza algbrica, como alguns exemplos envolvendo operaes com e e co matrizes, sistemas lineares e mesmo alguma integrao numrica. Esta etapa dever ser ca e a cumprida em quatro meses. (fevereiro, maro, abril e maio/2013); c iv) Finalmente, ser dado ao estudante um problema no-linear (por exemplo o pndulo) cuja a a e soluo numrica conhecida, a m de que ele construa o algoritmo numrico para sua ca e e e soluo utilizando a linguagem fortran 77. Esta etapa tomar os ultimos dois meses do ca a estudante. (junho e julho/2013). 1

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.

Resultados e/ou Discusses o


A linguagem de programao importante em vrias reas da f ca e a a sica, em especial em F sica de Part culas. A linguagem FORTRAN (FORmula TRANslation) foi desenvolvida nos anos 50 e tornou-se bastante popular no meio acadmico por permitir elaborar cdigos sostie o cados para resolver problemas nmericos utilizando uma terminologia simples. u Para desenvolver um programa em FORTRAN devemos obedecer os seguintes critrios: e colunas 1 a 5: so usadas escrever os rtulos (label) ou nmeros de comando. Estes a o u nmeros devem ser inteiros e estar totalmente contido nestas colunas. No podem se u a repetir e no precisam estar em ordem crescente. Sero usados para que outros comandos a a possam identicar aquela linha; coluna 6: qualquer caractere diferente de 0 (zero) nesta coluna indica que o que vem a seguir continuao da linha anterior ou da ultima linha que no seja um comentrio e ca a a (prximo item); podem existir at 19 linhas de continuao; o e ca colunas 7 a 72: comandos; colunas 73 a 80: ignoradas pelo compilador; Um exemplo de programa simples (soma1) mostrado abaixo: e C23456789 program soma integer k,n,m n=1 m=3 k=m+n print*,k stop end !linha de comentrio a !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 !soma n e m, e o resultado armazenado em k e !escreve na tela a varivel k a !para a execuo do programa ca !m do programa soma

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

!escreve na tela o valor de r !l o valor de r e !calcula a rea e atribui o valor em area 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 * / + **

Signicado Multiplicao ca Diviso a Adio ca Subtrao ca Potenciao ca

Operadores Relacionais: comparam variveis, constantes ou expresses e retornam: TRUE a o ou 1 ou FALSE ou 0. Podem ser representados como segue:

FORTRAN .LT. .LE. .EQ. .NE. .GT. .GE.

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

!inicia o programa equao ca !declara que as variveis a,b,c so inteiras a a

!calcula a equao e resultado atribu a delta ca e do !escreve na tela o valor de delta

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

ll !se valor de x maior que y, o valor de x atribu a y e do

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

!inicia o programa equao ca !declara que as variveis so inteiras a a

!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

!a execuo desviada para o comando stop ca e

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

!inicia o programa equao ca !declara que as variveis a,b,c so inteiras a a

!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

!testa a terceira condio ca

!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

Diculdades Encontradas no Desenvolvimento das Atividades


As principais diculdades foram encontradas durante o desenvolvimento da prpria o linguagem de programao. Mas, ` medida que as dvidas apareceram foram solucionadas pelos ca a u 7

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.

Você também pode gostar