F90: O uso do MODULE/USE
From AdonaiMedrado.Pro.Br
Para compilar com o g95 utilizar:
g95 modulomatematico.f90 aula.f90 -o aula
Arquivo aula.f90
PROGRAM aula USE ModuloMatematico IMPLICIT NONE CALL ObterRaio() WRITE (*,"(A,F10.2)") "A área da superfície da esfera é ",RetornarArea() WRITE (*,"(A,F10.2)") "O volume da esfera é ",RetornarVolume() END PROGRAM
Arquivo modulomatematico.f90
MODULE ModuloMatematico SAVE REAL, PARAMETER :: pi = 3.14159265 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 MODULE ModuloMatematico