gfortran 4.4 allows 15 instead of 7 dimensions, however, it has some problems with that:
gfortran -std=f95 -Wall -pedantic should print a message for:
integer,parameter :: N=10
complex,dimension(-N:N,-N:N,0:1,0:1,-N:N,-N:N,0:1,0:1) :: P
end
But it does not. This seems to be an off-by-one error as for 9 dimensions an error is printed:
Error: Fortran 2008: Array specification at (1) with more than 7 dimensions
* * *
More seriously, adding a PRINT causes an IDE:
a.f90:1: internal compiler error: in gfc_get_dtype, at fortran/trans-types.c:1254
integer,parameter :: N=10
complex,dimension(-N:N,-N:N,0:1,0:1,-N:N,-N:N,0:1,0:1) :: P
print *, p
end

Jerry, you know libgfortran better than me. Can one simply change in libgfortran.h:
#define GFC_DTYPE_RANK_MASK 0x07
to 0x0F (= 15) or does this cause some problems with the gcc 4.3 compatibility or ... ? Actually, why is this defined as "0x07" and not as "7"?

Tobias, I just caught up with your question to me today. I think you have answered it. :) Thanks for patch. One thing we should do is check internal unit array I/O with higher dimensions to see if the loop spec code holds up. I will do that.