It declares a one-dimensional integer array that is allocatable (you can allocated whatever number of elements or amount of memory is needed) and is also saved between allocations of the function or subroutine (the array will not be deallocated when the subroutine or function returns).