program INTEGERCOUNT
implicit none
INTEGER :: n
PRINT *, "Enter a positive integer n"
READ *, n
PRINT *, n, " contains ", IntCount(n), " digits."
CONTAINS
RECURSIVE FUNCTION IntCount(n) Result (IC)
INTEGER :: IC, k
INTEGER, INTENT(IN) :: n
k=n/10
IF (k==0) THEN
IC=1
ELSE
IC=1+IntCount(k)
END IF
END FUNCTION IntCount
end program INTEGERCOUNT