This works just fine:
program main
integer,parameter,dimension(3) :: x = [1,2,3]
print*,x
end program main
As does this:
program main
integer,parameter,dimension(3) :: x = (/1,2,3/)
print*,x
end program main
Is there a reason to think that one form should be preferred over the other (e.g. backward compatibility)?