! Code to test %string
! Would be interesting to try %string(30) to test alignment
! Also similar test for %record (say 21 bytes per record?)
begin

  routine test(name param)         ;  ! ia1          ia2
    write(addr(param),0)  ; newline  ;! 2145833816   2145833816
    write(sizeof(param),0); newline  ;! 32           8
    write(typeof(param),0); newline  ;! 3            3
  end

  string(31)array ia1(3:5)
  string(7)array ia2(2:4,3:6)

  printstring( "Testing ia1"); newline
  write(addr(ia1),0); newline     ;! 2145833816
  write(addr(ia1(3)),0); newline  ;! 2145833612
  write(sizeof(ia1),0); newline   ;! 32
  write(typeof(ia1),0); newline   ;! 3
  test(ia1)

  printstring( "Testing ia2"); newline
  write(addr(ia2),0); newline      ;! 2145833816   again same as ia1
  write(addr(ia2(2,3)),0); newline ;! 2145833708   96 bytes past address of first element of ia1, i.e. ia1(3)
                                    !              i.e. 3 elements of 32 bytes (%string(31)), ie complete contents of array ia1
  write(sizeof(ia2),0); newline    ;! 8
  write(typeof(ia2),0); newline    ;! 3
  test(ia2)

endofprogram