Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
92 <strong>8.</strong>2. sub-programas<br />
! Calcula as r a í z e s r e a i s de um polinômio de grau 2 .<br />
program bascara3<br />
implicit none<br />
l o g i c a l : : c o n t r o l e<br />
real : : a , b , c<br />
real : : x1 , x2 ! Raízes r e a i s .<br />
INTERFACE<br />
subroutine bascara ( a2 , a1 , a0 , r a i z e s r e a i s , r1 , r2 )<br />
real , intent ( in ) : : a0 , a1 , a2<br />
logical , intent ( out ) : : r a i z e s r e a i s<br />
real , intent ( out ) : : r1 , r2<br />
end subroutine bascara<br />
END INTERFACE<br />
!<br />
do<br />
print , ”Entre com os v a l o r e s dos c o e f i c i e n t e s ( a , b , c ) , ”<br />
print , ”onde ax2 + bx + c . ”<br />
read , a , b , c<br />
c a l l bascara ( a , b , c , c o n t r o l e , x1 , x2 )<br />
i f ( c o n t r o l e ) then<br />
print , ”As r a í z e s ( r e a i s ) são : ”<br />
print , ”x1=” , x1<br />
print , ”x2=” , x2<br />
exit<br />
else<br />
print , ”As r a í z e s são complexas . Tente novamente . ”<br />
end i f<br />
end do<br />
end program bascara3<br />
para evitar confusão entre os mesmos. A grande vantagem no uso de palavras-chave está em que não é necessário<br />
lembrar a ordem dos argumentos. Contudo, é necessário conhecer os nomes dos argumentos mudos definidos no<br />
campo de declarações da rotina.<br />
Por exemplo, dada a seguinte função interna:<br />
...<br />
CONTAINS<br />
FUNCTION AREA(INICIO, FINAL, TOL)<br />
REAL :: AREA<br />
REAL, INTENT(IN) :: INICIO, FINAL, TOL<br />
...<br />
END FUNCTION AREA<br />
esta pode ser chamada por quaisquer uma das três seguintes atribuições:<br />
A= AREA(0.0, 100.0, 1.0E-5)<br />
B= AREA(INICIO= 0.0, TOL= 1.0E-5, FINAL= 100.0)<br />
C= AREA(0.0, TOL= 1.0E-5, FINAL= 100.0)<br />
VALOR= 100.0<br />
ERRO= 1.0E-5<br />
D= AREA(0.0, TOL= ERRO, FINAL= VALOR)<br />
onde A, B, C e D são variáveis declaradas previamente como reais. Todos os argumentos antes da primeira palavrachave<br />
devem estar ordenados na ordem definida pela função. Contudo, se uma palavra-chave é utilizada, esta<br />
não necessita estar na ordem da definição. Além disso, o valor atribuído ao argumento mudo pode ser uma<br />
constante, uma variável ou uma expressão, desde que a interface seja obedecida. Depois que uma palavrachave<br />
é utilizada pela primeira vez, todos os argumentos restantes também devem ser transferidos através de<br />
palavras-chave. Conseqüentemente, a seguinte chamada não é válida:<br />
Autor: Rudi Gaelzer – IFM/UFPel Impresso: 23 de abril de 2008