Program Output
Array: iaaA
-----------
    0     1     2     3     4 
    1     2     3     4     5 

No of rows = 2
Length of row 1 = 5
Length of row 2 = 5
Array: iaaA
-----------
    0     1     2     3     4 
    1     2     3     4     5 
Array: daaA
-----------
  0.0000e+00   1.0000e+00   2.0000e+00   3.0000e+00   4.0000e+00   5.0000e+00 
  1.0000e+00   2.0000e+00   3.0000e+00   4.0000e+00   5.0000e+00   6.0000e+00 
  2.0000e+00   3.0000e+00   4.0000e+00   5.0000e+00   6.0000e+00   7.0000e+00 
  3.0000e+00   4.0000e+00   5.0000e+00   6.0000e+00   7.0000e+00   8.0000e+00 
  4.0000e+00   5.0000e+00   6.0000e+00   7.0000e+00   8.0000e+00   9.0000e+00 
  5.0000e+00   6.0000e+00   7.0000e+00   8.0000e+00   9.0000e+00   1.0000e+01 

No of skiResorts = 6
Length of first row  = 2
Length of second row = 2

Array: skiResorts 
  Coronet Peak is in New Zealand
  Heavenly is in California
  Grouse Mtn is in Vancouver
  Mt Baker is in Washington
  Vail is in Colorado
  Whistler/Blackcomb is in British Columbia

Test ragged arrays with variable row length
-------------------------------------------
Method 1: Compiler determines details

No of rows      = 4
Length of row 1 = 2
Length of row 2 = 3
Length of row 3 = 4
Length of row 4 = 1
Array: iaaB
-----------
   1    2 
   3    4    5 
   6    7    8    9 
  10 

Method 2: Explicit assembly of the array structure
Array: iaaC
-----------
   1    2 
   3    4    5 
   6    7    8    9 
  10