      Program what
      Implicit none
      Real F(4,1000,10),E(4,10000,10)
      Real start,end,iter
      Integer i,j,k

!HPF$ PROCESSORS PROC(NUMBER_OF_PROCESSORS())
!HPF$ DISTRIBUTE (*,BLOCK,*) onot PROC :: F,E

      call timer(start,0.0)
      Do While (iter .le. 25)
         Forall(k=1:4,i=2:1000,j=1:10) F(k,i,j)=cos(E(k,i-1,j)) 
     $  + real(k+j)

         iter=iter+1

      End do

      call timer(end,start)
      write(6,*) 'Total time:',end,'seconds'
      end program 


         subroutine timer(return_time, initial_time)
         real, intent(in)  :: initial_time
        real,  intent(out) :: return_time
        integer finish,rate
        CALL system_clock( COUNT=finish,COUNT_RATE=rate)
        return_time = FLOAT(finish) / FLOAT(rate) - initial_time
        end subroutine

