]>
Commit | Line | Data |
---|---|---|
a8e12e4d | 1 | ! { dg-do run } |
29405f94 TS |
2 | ! tests FORALL statements with a mask |
3 | dimension i2(15,10), i1(15) | |
4 | type a | |
5 | sequence | |
6 | integer k | |
7 | end type a | |
8 | type(a) :: a1(10), a2(5,5) | |
9 | ||
adac7e92 | 10 | i1 = (/ 0, 1, 2, 3, 4, 0, 6, 7, 8, 9, 10, 0, 0, 13, 14 /) |
29405f94 TS |
11 | forall (i=1:15, i1(i) /= 0) |
12 | i1(i) = 0 | |
13 | end forall | |
14 | if (any(i1 /= 0)) call abort | |
15 | ||
16 | a1(:)%k = i1(1:10) | |
17 | forall (i=1:10, a1(i)%k == 0) | |
18 | a1(i)%k = i | |
19 | end forall | |
20 | if (any (a1(:)%k /= (/ (i, i=1,10) /))) call abort | |
21 | ||
22 | forall (i=1:15, j=1:10, a1(j)%k <= j) | |
23 | i2(i,j) = j + i*11 | |
24 | end forall | |
25 | do i=1,15 | |
26 | if (any (i2(i,:) /= (/ (i*11 + j, j=1,10) /))) call abort | |
27 | end do | |
28 | end |