динамический размер массива, определенный во время выполнения в ADA

Можно ли иметь массив с размером, который определяется во время выполнения, например,

Procedure prog is
   type myArray is array(Integer range <>) of Float;
   arraySize : Integer := 0;
   theArray : myArray(0..arraySize);
Begin
   -- Get Array size from user.
   put_line("How big would you like the array?");
   get(arraySize);

   For I in 0..arraySize Loop
      theArray(I) := 1.2 * I;
   End Loop;
End prog;

Есть ли способ достичь этого результата, кроме использования динамически связанных списков или другой подобной структуры? Или есть простая встроенная структура данных, которая была бы проще, чем использование динамически связанных списков?