! Imp needs some perm code to determine upper and lower bounds of arrays
! which might look something like this...
permintegerfnspec LB(integerarray(2)name A, integer index)
permintegerfnspec UB(integerarray(2)name A, integer index)

begin
  
  routine printarray(integerarray(2)name A)
    integer A0, A1
    ! Imp needs some perm code to determine upper and lower bounds of arrays
    for A0 = LB(A,0), 1, UB(A,0) cycle
      for A1 = LB(A,1), 1, UB(A,1) cycle
        write(A(A0, A1), 3); print string(", ")
      repeat
      newline
    repeat
    newline
  end

  integername element
  integer i

  ! imp77 doesn't allow initialised multi-dimensional arrays.  (Imp80 would!)
  ! So I'll initialise these explicitly:
  integerarray fred(0:1, 0:2)       { simple case }
  integerarray jim(11:13, 100:103)  { non-zero lower bounds }
  element == fred(0,0); element = i and element == element++1 for i = 0, 1, 5
  element == jim(11,100); element = i and element == element++1 for i = 0, 1, 11

  printarray(fred)
  printarray(jim)
  
endofprogram