1program foo
2   integer, dimension (2, 3) :: a
3   integer, dimension (2, 2, 3) :: b
4   character (len=80) line1, line2, line3
5
6   a = reshape ((/1, 2, 3, 4, 5, 6/), (/2, 3/))
7   b = spread (a, 1, 2)
8   if (any (b .ne. reshape ((/1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6/), &
9                            (/2, 2, 3/)))) &
10      call abort
11   write(line1, 9000) b
12   write(line2, 9000) spread (a, 1, 2)
13   if (line1 /= line2) call abort
14   write(line3, 9000) spread (a, 1, 2) + 0
15   if (line1 /= line3) call abort
169000 format(12I3)
17end program
18