      PROGRAM livermore
      REAL u (106), x (100), y (100), z (111), q, r, t
      INTEGER l, k, j
      PARAMETER (nproc0 = 10)
C     DECOMPOSITION d (1000)
C     DISTRIBUTE d (BLOCK)
C     ALIGN u, x, y, z WITH d
      INTEGER Ti1
      INTEGER proclist(8)
      CALL EXP_initialize_1 (10)
      q = 10.0
      r = 1.5
      t = 3.77
      DO Ti1 = 1, 100
      u (Ti1) = 7.0
      END DO
      DO Ti1 = 1, 100
      x (Ti1) = 8.0
      END DO
      DO Ti1 = 1, 100
      y (Ti1) = 9.0
      END DO
      DO Ti1 = 1, 100
      z (Ti1) = 10.0
      END DO
      DO 7000 l = 1, 1000
      parameter_for_comm(u_comm, 1, 1, 11, 111)
      shift(u, 1, u_comm, 1)
      adjust_loop_boundary(1,994, Ti2, Ti3)
      DO Ti1 = Ti2, Ti3
      x (Ti1) = q + y (Ti1) * (r * z (10 + Ti1) + t * z (11 + Ti1))
      END DO
7000  CONTINUE
      DO 7002 l = 1, 1000
      parameter_for_comm(u_comm, 1, 1, 6, 106)
      shift(u, 1, u_comm, 1)
      adjust_loop_boundary(1,994, Ti2, Ti3)
      DO Ti1 = Ti2, Ti3
      x (Ti1) = u (Ti1) + r * (z (Ti1) + r * y (Ti1)) + t * (u (3 + Ti1)
     & + r * (u (2 + Ti1) + r * u (1 + Ti1)) + t * (u (6 + Ti1) + r * (u
     & (5 + Ti1) + r * u (4 + Ti1))))
      END DO
7002  CONTINUE
      END


