	program v1
	integer, parameter :: nproc0 = 4
	integer, parameter :: N = 16
	integer, dimension(N) :: ia
 	integer :: i,j,k

	real, dimension(N) :: a
	real :: b

C       Block decomposition, no communication, test local assignment, boundary

C$	DECOMPOSITION d(16)
C$      DISTRIBUTE d(BLOCK)
C$      align a with d

C        a = [1:N]
        forall(i=1:N)
     &    a(i) = a(i+1)

C	print *,'a=', a        
        do i=1, N
	b = a(i)
        call ksingl(6)
        write(6,1) i, b
1       format(1x, 'a',i2, '=', f10.3)
        call kflush(6)
        end do

        stop
	end
