I don’t think it is illegal to use exponentiation in this context when everything is an integer, but PGF disagrees. I haven’t had a chance to see if it works with the latest version.
% cat badac.f90
module a
implicit none
integer :: ii
integer, parameter :: m = 1000, n = 3
integer, parameter :: p(n) = [ (m/(10**(ii-1)), ii = n, 1, -1) ]
end module a
% pgf95 -c badac.f90
PGF90-S-0069-Illegal implied DO expression (badac.f90: 6)
PGF90-S-0069-Illegal implied DO expression (badac.f90: 6)
PGF90-S-0069-Illegal implied DO expression (badac.f90: 6)
PGF90-S-0000-Internal compiler error. get_ac_op: unexpected operator in initialization expr 5 (badac.f90: 6)
0 inform, 0 warnings, 4 severes, 0 fatal for a
% pgf95 -V
pgf95 8.0-5 64-bit target on x86-64 Linux -tp core2-64
Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
Copyright 2000-2009, STMicroelectronics, Inc. All Rights Reserved.