! Program to test the SIZE intrinsics program testsize implicit none real, dimension(:, :), allocatable :: a integer, dimension(5) :: j integer, dimension(2, 3) :: b integer i if (size (b(2, :), 1) .ne. 3) call abort allocate (a(3:8, 5:7)) ! With one parameter if (size(a) .ne. 18) call abort ! With two parameters, assigning to an array j = size(a, 1) if (any (j .ne. (/6, 6, 6, 6, 6/))) call abort ! With a variable second parameter i = 2 i = size(a, i) if (i .ne. 3) call abort call test(a) contains subroutine test (a) real, dimension (1:, 1:) :: a integer i i = 2 if ((size(a, 1) .ne. 6) .or. (size(a, i) .ne. 3)) call abort if (size (a) .ne. 18 ) call abort end subroutine end program