BEGIN 
         REAL  X, Y, Z;

         COMMENT  LIBRARY    A6, A30;

         COMMENT  A6, A30 ARE THE STANDARD
                  FUNCTIONS AND INPUT/OUTPUT ROUTINES;


      REALPROCEDURE  CPUTIME; EXTERNAL  REALCPUTIME;
          INTEGER  I, N, K, L, M, CASE;
         INTEGERARRAY  E1[1 : 1], E2[1 : 1,
       1 : 1], E3[1 : 1, 1 : 1, 1 : 1];
         PROCEDURE  P0;
                  ;

         PROCEDURE  P1(X);
                  VALUE  X;
                  REAL  X;
                  ;

         PROCEDURE   P2(X, Y);
                  VALUE  X, Y;
                  REAL  X, Y;
                  ;

          PROCEDURE  P3(X, Y, Z);
                  VALUE  X, Y, Z;
                  REAL  X, Y, Z;
                  ;

          ARRAY  TT[1 : 43];
          PROCEDURE  PRINTTT;
                    BEGIN 
                  INTEGER  I;
                  REAL  X, MIX, LOOP;

                  COMMENT    CALCULATE AND PRINT TIME DIFFERENCES;


                  FOR  I := 1 STEP  1 UNTIL  42 DO 
                           BEGIN 
                           TT[I] := X := TT[I + 1] - TT[I];
                           OUTREAL(99, X)
                           END ;


          COMMENT    CALCULATE ALGOL MIX FIGURE AS FROM CCU11,
                   MAKING ALLOWANCE FOR STATEMENT REPETITIONS;

          LOOP := X;
          MIX := 0.0;
          I := 1;
          FOR  X := 1000,
                   875,
                   769,
                   3337,
                   6242,
                   2750,
                   187.5,
                   125,
                   430,
                   995.6,
                   160.3,
                   384.6,
                   500,
                   166.7,
                   1390,
                   154.5,
                   442,
                   4759,
                   5321,
                   148,
                   4759,
                   0,
                   59,
                   59,
                   39,
                   .73,
                   201,
                   94,
                   1020,
                   1490,
                   278,
                   831,
                   644,
                   1750,
                   591,
                   27.3,
                   454.5,
                   788,
                   2316,
                   2316,
                   6053 DO 
                   BEGIN 
                   MIX := MIX + (TT[I] - LOOP) * X / N;
                   I := I + 1
                   END ;
           MIX := MIX + LOOP * 17800 / N;
           OUTREAL(99, 6524512 / MIX)
           END ;
          X := Y := Z := 1.0;
          L := K := M := 1;
          E1[1] := 1;
          CASE := 1;
          N := 10000;

          COMMENT    N SHOULD BE GIVEN A LARGE ENOUGH VALUE FOR
                   THE RESOLUTION OF THE CLOCK NOT TO BE A LIMITING
                   FACTOR TO THE ACCURACY.  IF N IS MADE TOO LARGE, THEN
                   PROCESSOR TIME WILL BE WASTED;

          TT[CASE] := CPUTIME;
           CASE := CASE + 1;
          FOR  I := 1 STEP  1 UNTIL  N DO 
                   BEGIN 
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   X := 1.0;
                   END ;
          TT[CASE] := CPUTIME;
          CASE := CASE + 1;
          FOR  I := 1 STEP  1 UNTIL  N DO 
                   BEGIN 
                   X := 1;
                   X := 1;
                   X := 1;
                   X := 1;
                   X := 1;
                   X := 1;
                   X := 1;
                   X := 1;
                   END ;
          TT[CASE] := CPUTIME;
          CASE := CASE + 1;
          FOR  I := 1 STEP  1 UNTIL  N DO 
                   BEGIN 
                   X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          X := Y;
          END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             X := Y + Z;
             END ;

    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := Y * Z;
             X := Y * Z;
             X := Y * Z;
             X := Y * Z;
             X := Y * Z;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := Y / Z;
             X := Y / Z;
             X := Y / Z;
             X := Y / Z;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             K := 1;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := 1.0;
             K := 1.0;
             K := 1.0;
             K := 1.0;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             K := L + M;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
     FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := L * M;
             K := L * M;
             K := L * M;
             K := L * M;
             K := L * M;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := L DIV  M;
             K := L DIV  M;
             K := L DIV  M;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := L;
             K := 1;
             K := 1;
             K := L;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := L;
             X := L;
             X := L;
             X := L;
             X := L;
             X := L;
             X := L;
             X := L;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             L := Y;
             L := Y;
             L := Y;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := Y**2;
             X := Y**2;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := Y**3;
             X := Y**3;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
     FOR  I := 1 STEP  1 UNTIL  N DO 
             X := Y**Z;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             E1[1] := 1;
             E1[1] := 1;
             E1[1] := 1;
             E1[1] := 1;
             E1[1] := 1;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             E2[1, 1] := 1;
             E2[1, 1] := 1;
             E2[1, 1] := 1;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             E3[1, 1, 1] := 1;
             E3[1, 1, 1] := 1;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             L := E1[1];
             L := E1[1];
             L := E1[1];
             L := E1[1];
             L := E1[1];
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             BEGIN 
                      REAL  A;

             END ;
             BEGIN 
                      REAL  A;

             END ;
             BEGIN 
                      REAL  A;

             END ;
             BEGIN 
                      REAL  A;

             END ;
             BEGIN 
                      REAL  A;

             END ;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             ARRAY  A[1 : 1];

             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             ARRAY  A[1 : 500];

             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             ARRAY  A[1 : 1, 1 : 1];

             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             ARRAY  A[1 : 1, 1 : 1, 1 : 1];

             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             GOTO  L0;
         L0 :;
             GOTO  L1;
         L1 :;
             GOTO  L2;
         L2 :;
             GOTO  L3;
         L3 :;
             GOTO  L4;
         L4 :;
             GOTO  L5;
         L5 :;
             GOTO  L6;
         L6 :;
             GOTO  L7;
         L7 :;
             GOTO  L8;
         L8 :;
             GOTO  L9;
         L9 :;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             SWITCH  SS := PQ;
             GOTO  SS[1];
         PQ :;
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             X := SIN(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             X := COS(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := ABS(Y);
             X := ABS(Y);
             X := ABS(Y);
             X := ABS(Y);
             X := ABS(Y);
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             X := EXP(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
              X := LN(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
          X :=SQRT(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             X := ARCTAN(Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := SIGN(Y);
             X := SIGN(Y);
             X := SIGN(Y);
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE+1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             BEGIN 
             X := ENTIER(Y);
             X := ENTIER(Y);
             END ;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             P0;
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             P1(X);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             P2(X, Y);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             P3(X, Y, Z);
    TT[CASE] := CPUTIME;
    CASE := CASE + 1;
    FOR  I := 1 STEP  1 UNTIL  N DO 
             ;
    TT[CASE] := CPUTIME;
    PRINTTT;
END