! ! File: ~/numerical/nfact.f90 ! ! Quick and dirty test program to test recursive f90 function ! to evaluate n! ! ! E.C.G. (12-98) ! PROGRAM test_nfact IMPLICIT NONE INTEGER :: n DO PRINT *, 'n = ?' READ *, n PRINT *, 'n! = ', fact(n) END DO CONTAINS RECURSIVE FUNCTION fact( n ) RESULT( nfact ) IMPLICIT NONE INTEGER, INTENT(IN) :: n INTEGER :: nfact IF ( n < 0 ) THEN nfact = 0 ELSE IF ( ( n == 0 ) .OR. ( n == 1 ) ) THEN nfact = 1 ELSE nfact = n * fact( n - 1 ) END IF END FUNCTION fact END PROGRAM test_nfact