	PROGRAM main
	 IMPLICIT NONE

	 REAL, DIMENSION(:), ALLOCATABLE :: A
	 INTEGER :: i
	 INTEGER :: N = 5

	 ALLOCATE(A(4))		!! allocate A(4)
	 DO i = 1, 4
	    A(i) = i + 10
	 END DO

	 print *, "A:"
	 DO i = 1, 4
	    print *, A(i)
	 END DO

	 DEALLOCATE(A)		!! De-allocate space of dynamic array


	 ALLOCATE(A(N))		!! Allocate A(N)
	 DO i = 1, N
	    A(i) = i + 10
	 END DO

	 print *, "A:"
	 DO i = 1, N
	    print *, A(i)
	 END DO

	 DEALLOCATE(A)		!! De-allocate space of dynamic array



	 ALLOCATE(A(-3:6))		!! Allocate space for dynamic array
	 DO i = -3, 6
	    A(i) = i + 1000
	 END DO

	 print *, "A:"
	 DO i = -3, 6
	    print *, A(i)
	 END DO

	 DEALLOCATE(A)		!! De-allocate space of dynamic array

	END
