PROGRAM CAPITULO_12D

USE MSIMSLMS
INTEGER DIA, MES, ANO

CALL OUTRAS
CALL TDATE ( DIA, MES, ANO )

WRITE(*,1) DIA, MES, ANO
1 FORMAT (/, 5X, "Data de hoje eh ", I2, "/", I2, "/", I4)

CONTAINS
! -------------------------------------------------------------------
SUBROUTINE OUTRAS

	INTEGER INTEIRO
	REAL A, B, C

	WRITE(*,*) "Entre com o valor de A"
	READ(*,*) A

	WRITE(*,*) "Entre com o valor de B"
	READ(*,*) B

	CALL SOMA ( A, B, C )
	
	WRITE(*,*) "A + B = ", C

	WRITE(*,*) "Entre com um valor inteiro para calcular seu fatorial"
	READ(*,*) INTEIRO

	CALL FATORIAL ( INTEIRO )

END SUBROUTINE OUTRAS
! -------------------------------------------------------------------
SUBROUTINE SOMA ( X, Y, Z )

	REAL X, Y, Z
	
	Z = X + Y
	
END SUBROUTINE SOMA
! -------------------------------------------------------------------
SUBROUTINE FATORIAL ( N )

	INTEGER I, N, FAT
	
	FAT = 1
	IF ( N < 0 ) THEN
	
		WRITE(*,*) "Nao existe fatorial de ", N
		
	ELSE
		DO I = 2, N
		
			FAT = FAT * I
			
		END DO
		
	END IF
	
	WRITE(*,*) "O fatorial de", N, " eh = ", FAT
	
END SUBROUTINE FATORIAL
! -------------------------------------------------------------------
END PROGRAM CAPITULO_12D
