F90: O uso do MODULE/USE

From AdonaiMedrado.Pro.Br
Jump to: navigation, search

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