! second test
begin
  routine test(name param)         ;  ! ia1          ia2
    write(addr(param),0)  ; newline  ;! 2145833816   2145833816     same address again!
    write(sizeof(param),0); newline  ;! 4            4              sizeof  %integer
    write(typeof(param),0); newline  ;! 1            1              typeof  %integer
  end

  integerarray ia1(3:5)
  integerarray ia2(2:4,3:6)

  write(addr(ia1),0); newline     ;! 2145833816     Note it is the same address as written in test(ia1) and test (ia2)!
  write(addr(ia1(3)),0); newline  ;! 2145833744
  write(sizeof(ia1),0); newline   ;! 4
  write(typeof(ia1),0); newline   ;! 1

  test(ia1)


  write(addr(ia2),0); newline       ;! 2145833816   Same address as ia1 above!!!  that was unexpected.
  write(addr(ia2(2,3)),0); newline  ;! 2145833756   This is 12 bytes after address of first element of ia1, i.e. ia1(3)
                                     !              (Note ia1 is 3 elements of 4 bytes per element)
  write(sizeof(ia2),0); newline     ;! 4
  write(typeof(ia2),0); newline     ;! 1

  test(ia2)

endofprogram