1 ! tests FORALL statements with a mask
3 real, dimension (5, 5, 5, 5) :: a
, b
, c
, d
10 a (i
, 6 - i
, i
, i
) = 7
13 a (6 - i
, i
, i
, i
) = 7
23 forall (i
= 1:5, j
= 1:5, k
= 1:5, ((a (i
, j
, k
, i
) .gt
. 6) .or
. (a (i
, j
, k
, j
) .gt
. 6)))
24 forall (l
= 1:5, a (1, 2, 3, l
) .lt
. 2)
25 a (i
, j
, k
, l
) = i
- j
+ k
- l
+ 0.5
29 forall (l
= 1:5, b (1, 2, 3, l
) .lt
. 2)
30 forall (i
= 1:5, j
= 1:5, k
= 1:5, ((b (i
, j
, k
, i
) .gt
. 6) .or
. (b (i
, j
, k
, j
) .gt
. 6)))
31 b (i
, j
, k
, l
) = i
- j
+ k
- l
+ 0.5
35 forall (i
= 1:5, j
= 1:5, k
= 1:5, ((c (i
, j
, k
, i
) .gt
. 6) .or
. (c (i
, j
, k
, j
) .gt
. 6)))
36 forall (l
= 1:5, c (1, 2, 3, l
) .lt
. 2)
37 c (i
, j
, k
, l
) = i
- j
+ k
- l
+ 0.5 + c (l
, k
, j
, i
)
41 forall (l
= 1:5, d (1, 2, 3, l
) .lt
. 2)
42 forall (i
= 1:5, j
= 1:5, k
= 1:5, ((d (i
, j
, k
, i
) .gt
. 6) .or
. (d (i
, j
, k
, j
) .gt
. 6)))
43 d (i
, j
, k
, l
) = i
- j
+ k
- l
+ 0.5 + d (l
, k
, j
, i
)
52 if ((i
== j
.and
. k
== 6 - i
) .or
. (i
== k
.and
. j
== 6 - i
)) then
53 if (l
/= 2 .and
. l
/= 4) then
58 elseif (j
== k
.and
. i
== 6 - j
) then
59 if (l
/= 2 .and
. l
/= 4) then
64 elseif (i
== 1 .and
. j
== 2 .and
. k
== 3 .and
. l
/= 2 .and
. l
/= 4) then
69 r
= i
- j
+ k
- l
+ 0.5
70 if (((l
== k
.and
. j
== 6 - l
) .or
. (l
== j
.and
. k
== 6 - l
)) .and
. (i
== l
)) then
72 elseif (k
== j
.and
. l
== 6 - k
.and
. i
== k
) then
74 elseif (l
/= 1 .or
. k
/= 2 .or
. j
/= 3 .or
. i
== 2 .or
. i
== 4) then
80 if (a (i
, j
, k
, l
) /= r
) call abort ()
81 if (c (i
, j
, k
, l
) /= s
) call abort ()
87 if (any (a
/= b
.or
. c
/= d
)) call abort ()