#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     2
  //     3    %longreal x, r

  double X;
  double R;

  //     4
  //     5    %integer i

  int I;

  //     6    %longrealname rn

  double *RN;

  //     7    %longrealarray rra(0:9)

  double RRA[10];

  //     8    %longrealnamearray rna(0:9)

  double *RNA[10];

  //     9    %longrealnamearrayname rnan

  double **RNAN;

  //    10    %longrealmap rm(%integer i); %result == r; %end

  double *RM(int I)
  {

    return /*?*/ &R;
  } /* end of RM */

  // ?I unused
  //    11    %longrealmap rm2(%integer i); %result == rn; %end

  double *RM2(int I)
  {

    return RN;
  } /* end of RM2 */

  // ?I unused
  //    12    %longrealmap rm3(%integer i); %result == rra(i); %end

  double *RM3(int I)
  {

    return /*?*/ &RRA[I];
  } /* end of RM3 */

  //    13    %longrealmap rm4(%integer i); %result == rna(i); %end

  double *RM4(int I)
  {

    return RNA[I];
  } /* end of RM4 */

  //    14    %longrealmap rm5(%integer i); %result == rnan(i); %end

  double *RM5(int I)
  {

    return [/*BUG*/ 0];
  } /* end of RM5 */

  //    15    rn == r

  RN = (double *)/*?*/ &R;

  //    16    x = r

  X = R;

  //    17    x = rn

  X = *RN;

  //    18    rn = x

  *RN = X;

  //    19    x = rra(i)

  X = RRA[I];

  //    20    rn == rra(i)

  RN = (double *)/*?*/ &RRA[I];

  //    21    x = rra(i)

  X = RRA[I];

  //    22    rra(i) = x

  RRA[I] = X;

  //    23    rn == rna(i)

  RN = (double *)RNA[I];

  //    24    x = rna(i)

  X = *RNA[I];

  //    25    rnan == rna

  RNAN = (double *)RNA;

  //    26    rn == rnan(i)

  RN = (double *)[/*BUG*/ 0];

  //    27    x = rnan(i)

  X = *[/*BUG*/ 0];

  //    28    rnan(i) = x

  *[/*BUG*/ 0] = X;

  //    29    rn == rm(i)

  RN = (double *)RM(I);

  //    30    x = rm(i)

  X = *RM(I);

  //    31    rm(i) = x

  *RM(I) = X;

  //    32  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}