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.
116 <strong>8.</strong>3. Módulos<br />
Outra maneira de se estabelecer o controle de acesso é através de declarações, as quais listam os nomes dos<br />
objetos que são públicos ou privados:<br />
PUBLIC :: X, Y, Z<br />
PRIVATE :: U, V, W<br />
A forma geral da declaração é:<br />
PUBLIC [[::] ]<br />
PRIVATE [[::] ]<br />
Caso nenhum controle é estabelecido em um módulo, seja através de um atributo ou de uma declaração, todas<br />
as entidades têm o atributo PUBLIC.<br />
Se uma declaração PUBLIC ou PRIVATE não possui uma lista de entidades, esta confirma ou altera o acesso<br />
padrão. Assim, a declaração<br />
PUBLIC<br />
confirma o acesso padrão, ao passo que a declaração<br />
PRIVATE<br />
altera o acesso padrão. Desta forma, uma seqüência de declarações como as abaixo:<br />
...<br />
PRIVATE<br />
PUBLIC <br />
...<br />
confere aos nomes na o atributo PUBLIC enquanto que todas as entidades restantes no módulo<br />
são privadas, podendo ser acessadas somente dentro do âmbito do módulo.<br />
<strong>8.</strong>3.4 Interfaces e rotinas genéricas<br />
Outro recurso poderoso introduzido pelo Fortran 90 é a habilidade do programador definir suas próprias<br />
rotinas genéricas, de tal forma que um único nome é suficiente para invocar uma determinada rotina, enquanto<br />
que a ação que realmente é executada quando este nome é usado depende do tipo de seus argumentos. Embora<br />
possam ser declaradas em quaisquer unidades de programa, rotinas genéricas são usualmente definidas em<br />
módulos.<br />
Uma rotina genérica é definido usando-se um bloco interfaces e um nome genérico é usado para todas as<br />
rotinas definidas dentro deste bloco de interfaces. Assim, a forma geral é:<br />
INTERFACE <br />
<br />
<br />
...<br />
END INTERFACE <br />
onde , etc, são os blocos das interfaces das rotinas específicas, isto<br />
é, que se referem a um dado conjunto de tipos de variáveis, e que são acessadas através do .<br />
As rotinas per se podem se encontrar em outras unidades; por exemplo, elas podem ser rotinas externas. O uso<br />
do no final do bloco somente é permitido a partir do Fortran 95.<br />
Como um módulo é a unidade de programa ideal para armazenar todas estas rotinas específicas relacionadas<br />
entre si e como as interfaces das rotinas de módulo são sempre explícitas, estas rotinas genéricas são, em geral,<br />
definidas dentro de módulos. Neste caso, a declaração<br />
MODULE PROCEDURE <br />
é incluída no bloco de interface para nomear as rotinas de módulo que são referidas através do nome genérico.<br />
Assim, a declaração geral é:<br />
Autor: Rudi Gaelzer – IFM/UFPel Impresso: 23 de abril de 2008