F90: O uso do COMMON
From AdonaiMedrado.Pro.Br
PROGRAM aula !Este é um programa didático, com o objetivo de mostrar o uso de COMMON. !Acredito que a forma mais recomendada de ser resolvido este problema é através de !um parâmetro passado para as funções RetornarArea e RetornarVolume e não !através do uso do COMMON IMPLICIT NONE REAL, PARAMETER :: pi = 3.14159265 CALL ObterRaio() WRITE (*,"(A,F10.2)") "A área da superfície da esfera é ",RetornarArea() WRITE (*,"(A,F10.2)") "O volume da esfera é ",RetornarVolume() CONTAINS SUBROUTINE ObterRaio() IMPLICIT NONE INTEGER :: E REAL :: raio COMMON raio WRITE (*,*) "Digite o valor do raio da esfera:" DO READ (*,*,IOstat=E) raio IF (E>0) THEN WRITE (*,*) "Valor inválido. O raio deve ser um valor real." ELSE EXIT END IF END DO END SUBROUTINE REAL FUNCTION RetornarArea() IMPLICIT NONE REAL :: raio COMMON raio RetornarArea = 4*pi*(raio**2) END FUNCTION REAL FUNCTION RetornarVolume() IMPLICIT NONE REAL :: raio COMMON raio RetornarVolume = (4/REAL(3))*pi*(raio**3) END FUNCTION END PROGRAM