1! Check to ensure only the first true clause in WHERE is
2! executed.
3program where_17
4   integer :: a(3)
5
6   a = (/1, 2, 3/)
7   where (a .eq. 1)
8     a = 2
9   elsewhere (a .le. 2)
10     a = 3
11   elsewhere (a .le. 3)
12     a = 4
13   endwhere
14   if (any (a .ne. (/2, 3, 4/))) call abort
15end program
16