1! Program to test initialization expressions involving subobjects
2program parameter_2
3  implicit none
4  type :: SS
5     integer :: I
6     integer :: J
7  end type SS
8  type :: TT
9    integer :: N
10    type (SS), dimension(2) :: o
11  end type
12
13  type (SS), parameter :: s =  SS (1, 2)
14  type (TT), parameter :: t = TT(42, (/ SS(3, 4), SS(8, 9) /))
15
16  integer, parameter :: a(2) = (/5, 10/)
17  integer, parameter :: d1 = s%i
18  integer, parameter :: d2 = a(2)
19  integer, parameter :: d4 = t%o(2)%j
20
21  integer q1, q2, q3, q4
22  common /c1/q1(d1), q2(d2), q3(a(1)), q4(d4) ! legal
23end
24