Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
FUNCTION INTEGRA(F, LIMITES)<br />
! Integra F(x) de LIMITES(1) a LIMITES(2).<br />
implicit none<br />
REAL, DIMENSION(2), INTENT(IN) :: LIMITES<br />
INTERFACE<br />
FUNCTION F(X)<br />
REAL :: F<br />
REAL, INTENT(IN) :: X<br />
END FUNCTION F<br />
END INTERFACE<br />
...<br />
INTEGRA= <br />
RETURN<br />
END FUNCTION INTEGRA<br />
--------------------------------------------<br />
MODULE FUNC<br />
IMPLICIT NONE<br />
REAL :: YVAL<br />
REAL, DIMENSION(2) :: LIMX, LIMY<br />
CONTAINS<br />
FUNCTION F(XVAL)<br />
REAL :: F<br />
REAL, INTENT(IN) :: XVAL<br />
F= <br />
RETURN<br />
END FUNCTION F<br />
END MODULE FUNC<br />
------------------------------------------<br />
FUNCTION FY(Y)<br />
! Integra em X, para um valor fixo de Y.<br />
USE FUNC<br />
REAL :: FY<br />
REAL, INTENT(IN) :: Y<br />
YVAL= Y<br />
FY= INTEGRA(F, LIMX)<br />
RETURN<br />
END FUNCTION FY<br />
<strong>Capítulo</strong> <strong>8.</strong> Sub-Programas e Módulos 105<br />
Com base nestas três unidades de programa, um programa pode calcular a integral sobre o retângulo no plano<br />
(x, y) através da chamada:<br />
AREA= INTEGRA(FY, LIMY)<br />
<strong>8.</strong>2.15 Atributo e declaração SAVE<br />
A declaração ou o atributo SAVE são utilizados quando se deseja manter o valor de uma variável local em um<br />
sub-programa após a saída. Desta forma, o valor anterior desta variável está acessível quando o sub-programa<br />
é invocado novamente.<br />
Como exemplo, a subrotina abaixo contém as variáveis locais CONTA, a qual conta o número de chamadas da<br />
subrotina e é inicializada a zero e a variável A, que é somada ao valor do argumento.<br />
SUBROUTINE CONTA_SOMA(X)<br />
IMPICIT NONE<br />
REAL, INTENT(IN) :: X<br />
REAL, SAVE :: A<br />
INTEGER :: CONTA= 0 !Inicializa o contador. Mantém o valor da variável.<br />
...<br />
CONTA= CONTA + 1<br />
IF(CONTA == 1)THEN<br />
Autor: Rudi Gaelzer – IFM/UFPel Impresso: 23 de abril de 2008