Fortran 90 l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

FORTRAN 90 PowerPoint PPT Presentation


  • 243 Views
  • Uploaded on
  • Presentation posted in: General

FORTRAN 90. Denise Yumi Takamura. SUBPROGRAMAS. Um subprograma é uma unidade de programa independente. Sua execução é subordinada ao programa principal ou a uma outra unidade de programa. A linguagem FORTRAN 90 permite dois tipos de subprogramas: FUNÇÕES E SUB-ROTINAS . FUNÇÕES.

Download Presentation

FORTRAN 90

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Fortran 90 l.jpg

FORTRAN 90

Denise Yumi Takamura


Subprogramas l.jpg

SUBPROGRAMAS

Um subprograma é uma unidade de programa independente. Sua execução é subordinada ao programa principal ou a uma outra unidade de programa.

A linguagem FORTRAN 90 permite dois tipos de subprogramas: FUNÇÕESESUB-ROTINAS.


Fun es l.jpg

FUNÇÕES

Uma função é um procedimento que resulta em um número, valor lógico, string ou array.

A função é chamada pelo nome de uma expressão. Sua execução começa no topo da função e termina quando há a declaração RETURN ou um END FUNCTION.

.


Sub rotinas l.jpg

SUB-ROTINAS

Sub-rotina não retorna necessariamente apenas um valor, como no caso das funções; nenhum valor é associado a sub-rotina.

SUBROUTINE nome (lista de parâmetros)


Slide5 l.jpg

Para chamar a sub-rotina, usa-se o comando CALL.

CALL nome (lista de parâmetros)

Para retornar a sub-rotina usa-se a declaração END SUBROUTINE.

Ex: Subroutine hipotenusa


Dummy arguments l.jpg

DUMMY ARGUMENTS

A lista de argumentos pode conter variáveis, arrays ou ambos que são passados pela chamada do programa para a sub- rotina. Estas variáveis são chamadas “dummy arguments” desde que a sub-rotina não aloque nenhuma memória para elas.


Passagem por refer ncia l.jpg

PASSAGEM POR REFERÊNCIA

Nessa implementação, em vez de transmitir valores de dados, ela transmite um caminho de acesso, usualmente apenas um endereço, para o subprograma chamado.

Ex: Program bad_call


Slide8 l.jpg

PROGRAM bad_callIMPLICIT NONEREAL :: x=1CALL bad_argument(x)END PROGRAMSUBROUTINE bad_argument (i)IMPLICIT NONEINTEGER ::i = 0WRITE(*,*),' I= ', iEND SUBROUTINE


Passagem por arrays l.jpg

PASSAGEM POR ARRAYS

Se o parâmetro for um arranjo, então o ponteiro aponta para o 1º valor no array. Porém a sub-rotina precisa saber o local e o tamanho do array para garantir que ele fique dentro do limite do array e da execução das operações.

Ex: Program array


Slide10 l.jpg

PROGRAM arrayIMPLICIT NONEINTEGER :: iREAL, DIMENSION (5) :: a =0CALL sub (a, 5, 6)DO i = 1,6WRITE(*,100) i, a(i)100 FORMAT(1X,'A(',I1,') = ', F6.2)END DOEND PROGRAMSUBROUTINE sub (a, ndim, n)IMPLICIT NONEINTEGER, INTENT(IN) :: ndimREAL, INTENT(OUT), DIMENSION(ndim) :: aINTEGER, INTENT(IN) :: nINTEGER :: i, j = 0DO i = 1, nj = j + (2 * i)a(i) = j j = j +3END DOEND SUBROUTINE sub


Passagem de vari veis l.jpg

PASSAGEM DE VARIÁVEIS

Quando uma variável caracter é usada como “dummy argument” o seu tamanho é declarado com um asterisco.

Ex:

exemplo (string)

CHARACTER (len=*), INTENT (IN):: string

.


M dulos l.jpg

MÓDULOS

A estrutura de um módulo é quase idêntica a estrutura de um programa. São utilizados no caso de existirem parâmetros, variáveis e subprogramas que devem ser divididos por muitas unidades de programas.


M dulos continua o l.jpg

MÓDULOS - continuação

O módulo não contém declarações para serem executadas no programa. Nele só pode conter declarações e funções para serem usados em outros módulos e programas.

Portanto, um módulo não pode existir sozinho, ele deve ser usado com outros módulos e um programa principal.


Slide14 l.jpg

Ex:MODULE SumAverageCONTAINS REAL FUNCTION Sum(a, b, c) IMPLICIT NONE REAL, INTENT(IN) :: a, b, c Sum = a + b + c END FUNCTION Sum REAL FUNCTION Average(a, b, c) IMPLICIT NONE REAL, INTENT(IN) :: a, b, c Average = Sum(a,b,c)/2.0 END FUNCTION AverageEND MODULE SumAverage


Recursividade l.jpg

RECURSIVIDADE

FORTRAN permite que funções e sub-rotinas sejam declaradas recursivamente. A sub-rotina é declarada recursivamente adicionando a palavra RECURSIVE na declaração da SUBROUTINE.


Recursividade continua o l.jpg

RECURSIVIDADE- continuação

Pode-se definir funções recursivas também. FORTRAN permite especificar dois diferentes nomes, um para chamar uma função recursiva e outro para retornar um resultado.

Ex: program fatorial


Slide17 l.jpg

PROGRAM fatorialIMPLICIT NONEINTEGER :: iWRITE(*,*) " Este programa calcula fatorial"WRITE(*,*) "Entre com um numero positivo: "READ(*,*) iWRITE(*,*) " O fatorial e: ", fat(i)containsRECURSIVE INTEGER FUNCTION fat(n) result(F)INTEGER n IF(n==0) THEN F = 1 ELSE F = n*fat(n-1) END IF END function fatend program fatorial


Bibliografia l.jpg

BIBLIOGRAFIA

  • FORTRAN 90/95 for Scientists and Engineers-

    Stephen J. Chapman

  • FORTRAN 90 – Loren P.Meissner

  • Introdução ao FORTRAN 77 para microcomputadores - Ronaldo L.D. Cereda e José Carlos Maldonado


  • Login