これは問題なく機能します。
program main
integer,parameter,dimension(3) :: x = [1,2,3]
print*,x
end program main
これがそうであるように:
program main
integer,parameter,dimension(3) :: x = (/1,2,3/)
print*,x
end program main
一方の形式がもう一方の形式よりも優先されるべきであると考える理由はありますか(下位互換性など)?