1 ! Check that lbound() and ubound() work correctly for assumed shapes.
4 integer, dimension (40, 80) :: a = 1
8 integer, dimension (11:, -8:), target :: b
9 integer, dimension (:, :), pointer :: ptr
11 if (lbound (b, 1) .ne. 11) call abort
12 if (ubound (b, 1) .ne. 50) call abort
13 if (lbound (b, 2) .ne. -8) call abort
14 if (ubound (b, 2) .ne. 71) call abort
16 if (lbound (b (:, :), 1) .ne. 1) call abort
17 if (ubound (b (:, :), 1) .ne. 40) call abort
18 if (lbound (b (:, :), 2) .ne. 1) call abort
19 if (ubound (b (:, :), 2) .ne. 80) call abort
21 if (lbound (b (20:30:3, 40), 1) .ne. 1) call abort
22 if (ubound (b (20:30:3, 40), 1) .ne. 4) call abort
25 if (lbound (ptr, 1) .ne. 1) call abort
26 if (ubound (ptr, 1) .ne. 40) call abort
27 if (lbound (ptr, 2) .ne. 1) call abort
28 if (ubound (ptr, 2) .ne. 80) call abort