OSDN Git Service

ab9044ceca53f003be777523d5c9872aabfe4eb9
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g77.f-torture / execute / auto1.f
1 * Test automatic arrays.
2       program auto1
3       implicit none
4       integer i
5       integer j0(40)
6       integer j1(40)
7       integer jc0(40)
8       integer jc1(40)
9       common /jc0/ jc0
10       common /jc1/ jc1
11
12       data j0/40*3/
13       data j1/40*4/
14
15       i = 40
16       call a1 (j0, j1, i)
17
18       do i = 1, 40
19          if (j0(i) .ne. 4) call abort
20          if (j1(i) .ne. 3) call abort
21          if (jc0(i) .ne. 6) call abort
22          if (jc1(i) .ne. 5) call abort
23       end do
24
25       end
26
27       block data jc
28       implicit none
29       integer jc0(40)
30       integer jc1(40)
31       common /jc0/ jc0
32       common /jc1/ jc1
33
34       data jc0/40*5/
35       data jc1/40*6/
36
37       end
38
39       subroutine a1 (j0, j1, n)
40       implicit none
41       integer j0(40), j1(40), n
42       integer k0(n,3,2), k1(n,3,2)
43       integer i,j,k
44       integer jc0(40)
45       integer jc1(40)
46       common /jc0/ jc0
47       common /jc1/ jc1
48
49       do i = 1, 40
50          j0(i) = j1(i) - j0(i)
51          jc0(i) = jc1(i) - jc0(i)
52       end do
53
54       n = -1
55
56       do k = 1, 2
57          do j = 1, 3
58             do i = 1, 40
59                k0(i, j, k) = n
60                k1(i, j, k) = n
61             end do
62          end do
63       end do
64
65       do i = 1, 40
66          j1(i) = j1(i) + k0(i, 3, 2) * j0(i)
67          jc1(i) = jc1(i) + k1(i, 1, 1) * jc0(i)
68       end do
69
70       n = 500
71
72       do k = 1, 2
73          do j = 1, 3
74             do i = 1, 40
75                if (k0(i, j, k) .ne. -1) call abort
76                k0(i, j, k) = n
77                if (k1(i, j, k) .ne. -1) call abort
78                k1(i, j, k) = n
79             end do
80          end do
81       end do
82
83       do i = 1, 40
84          j0(i) = j1(i) + j0(i)
85          jc0(i) = jc1(i) + jc0(i)
86       end do
87
88       end