Why two dimensional array hold only 10K bytes?

Dear all,
I am using Dynamic C 9.62. If I am declaring a two dimensional array, If it exceeds more than 10000 bytes(ex: array[40][550]], the compiler will show the error message “Out of variable data space”. But if i declare the single dimensional array it allows updo 32767 elements. Please can anyone give me the suggestion to increase the two dimensional array index range.

Thanks in advance.