Ackermann Function

        !Program for Ackermann Function A (m, n)

!=============================================================

     implicit none

     integer :: a, m, n

   !  write (*,*) ' Please enter "m" '

   !  read (*,*) m

    ! write (*,*) ' Please enter "n" '

    ! read (*,*) n

     do m = 1, 3

     do n = 1, 11

    

    

     call ackermann (a, m, n)

    ! write (*,*) 'The value of the Ackermann function A (m, n) is'

     write (*,*) m, n, a

     enddo

     enddo

    

   contains

!=============================recursive subroutine ackermann====================

     recursive subroutine ackermann (b, m, n)

  

     implicit none

    

     integer, intent (in) ::  m, n

     integer, intent (out) :: b

   

     if (m==0) then

     b = n+1

     else if (m>0.and.n==0) then

     call ackermann (b, m-1, 1)

     else

     call ackermann (b, m, n-1)

     call ackermann (b, m-1, b)

     endif

     end subroutine ackermann

!===============================================================

                              end