1C { dg-do compile }
2C
3C Allocation of arrays with a type-spec specification with implicit none.
4C
5       subroutine implicit_none_test1
6
7          implicit none
8
9          real, allocatable :: x(:)
10          real(4), allocatable :: x4(:)
11          real(8), allocatable :: x8(:)
12          double precision, allocatable :: d1(:)
13          doubleprecision, allocatable :: d2(:)
14          character, allocatable :: c1(:)
15          character(len=4), allocatable :: c2(:)
16
17          type a
18             integer mytype
19          end type a
20
21          type(a), allocatable :: b(:)
22
23          allocate(real :: x(1))
24          allocate(real(4) :: x4(1))
25          allocate(real(8) :: x8(1))
26          allocate(double precision :: d1(1))
27          allocate(doubleprecision :: d2(1))
28          allocate(character :: c1(1))
29          allocate(character(len=4) :: c2(1))
30          allocate(a :: b(1))
31
32       end
33C
34C Allocation of a scalar with a type-spec specification with implicit none
35C
36       subroutine implicit_none_test2
37
38          implicit none
39
40          real, allocatable :: x
41          real(4), allocatable :: x4
42          real(8), allocatable :: x8
43          double precision, allocatable :: d1
44          doubleprecision, allocatable :: d2
45          character, allocatable :: c1
46          character(len=4), allocatable :: c2
47
48          type a
49             integer mytype
50          end type a
51
52          type(a), allocatable :: b
53
54          allocate(real :: x)
55          allocate(real(4) :: x4)
56          allocate(real(8) :: x8)
57          allocate(double precision :: d1)
58          allocate(doubleprecision :: d2)
59          allocate(character :: c1)
60          allocate(character(len=4) :: c2)
61          allocate(a :: b)
62
63       end subroutine implicit_none_test2
64C
65C Allocation of arrays with a type-spec specification with implicit none.
66C
67       subroutine implicit_test3
68
69          real, allocatable :: x(:)
70          real(4), allocatable :: x4(:)
71          real(8), allocatable :: x8(:)
72          double precision, allocatable :: d1(:)
73          doubleprecision, allocatable :: d2(:)
74          character, allocatable :: c1(:)
75          character(len=4), allocatable :: c2(:)
76
77          type a
78             integer mytype
79          end type a
80
81          type(a), allocatable :: b(:)
82
83          allocate(real :: x(1))
84          allocate(real(4) :: x4(1))
85          allocate(real(8) :: x8(1))
86          allocate(double precision :: d1(1))
87          allocate(doubleprecision :: d2(1))
88          allocate(character :: c1(1))
89          allocate(character(len=4) :: c2(1))
90          allocate(a :: b(1))
91
92       end
93C
94C Allocation of a scalar with a type-spec specification without implicit none
95C
96       subroutine implicit_test4
97
98          real, allocatable :: x
99          real(4), allocatable :: x4
100          real(8), allocatable :: x8
101          double precision, allocatable :: d1
102          doubleprecision, allocatable :: d2
103          character, allocatable :: c1
104          character(len=4), allocatable :: c2
105
106          type a
107             integer mytype
108          end type a
109
110          type(a), allocatable :: b
111
112          allocate(real :: x)
113          allocate(real(4) :: x4)
114          allocate(real(8) :: x8)
115          allocate(double precision :: d1)
116          allocate(doubleprecision :: d2)
117          allocate(character :: c1)
118          allocate(character(len=4) :: c2)
119          allocate(a :: b)
120
121       end
122