Another option is to use a memblock, and have the array dimensions be controled by values in the memblock.
For example, if your array is meant to store information regarding each individual tile on a matrix, a memblock could store the values representing how the matrix is prepared, and then the array created by assigning a variable to equal the value in each repspective memblock position, and then use the variables to specify array size.
Xsegment = MEMBLOCK BYTE 1,1
Zsegment = MEMBLOCK BYTE 1,2
DIM Segments(Xsegment, Zsegment)
In this way, the array dimensions will always be equal to whatever the matrix X and Z segements were stored as.
Hope I help some, but I'm sort of an advanced newbie myself, when it comes to DBPro... I am writing some extensive code, but have a long ways to go before I will be testing it... Variables CAN be used to specify array dimensions in DBPro, right? I hope they can anyway lol