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