1! { dg-do run } 2! { dg-options "" } 3 implicit none 4 real :: f(10,10,10,3,4) 5 integer, parameter :: upper(5) = ubound(f), lower(5) = lbound (f) 6 integer :: varu(5), varl(5) 7 8 varu(:) = ubound(f) 9 varl(:) = lbound(f) 10 if (any (varu /= upper)) call abort 11 if (any (varl /= lower)) call abort 12 13 call check (f, upper, lower) 14 call check (f, ubound(f), lbound(f)) 15 16contains 17 18 subroutine check (f, upper, lower) 19 implicit none 20 integer :: upper(5), lower(5) 21 real :: f(:,:,:,:,:) 22 23 if (any (ubound(f) /= upper)) call abort 24 if (any (lbound(f) /= lower)) call abort 25 end subroutine check 26 27end 28