Hi, 
I have found another interesting thing compilers can do to your
new test code and a simple workaround for it.
For some reason (I need to figure out what the compiler did) our
(FPS) compiler interchanged the 60 loop and invalidated the 
timings generated.  I saw megabytes beyond what the machine is
capable of achieving.  So I modified the code  to look like this
      DO 60 k = 1,ntimes
          call dummy2(a,b,c)
          t = second(t0)
          DO 20 j = 1,n
              c(j) = a(j)
   20     CONTINUE
          t = second(t0) - t
          times(1,k) = t
          call dummy2(a,b,c)
          t = second(t0)
          DO 30 j = 1,n
              c(j) = 3.0D0*a(j)
   30     CONTINUE
          t = second(t0) - t
          times(2,k) = t
          call dummy2(a,b,c)
          t = second(t0)
          DO 40 j = 1,n
              c(j) = a(j) + b(j)
   40     CONTINUE
          t = second(t0) - t
          times(3,k) = t
          call dummy2(a,b,c)
          t = second(t0)
          DO 50 j = 1,n
              c(j) = a(j) + 3.0D0*b(j)
   50     CONTINUE
          t = second(t0) - t
          times(4,k) = t
   60 CONTINUE
where dummy2 is
      SUBROUTINE dummy2(q,r,s)
C     .. Scalar Arguments ..
      DOUBLE PRECISION q,r,s
C     .. 
      RETURN
      END
This caused the compiler to assume I messed with a, b, c before each
call and allowed proper execution.
I am still gather data.  I am running on about 10 different types of 
machines, so I want to make sure the data is reasonable.  (And I am
doing this "on my own", while waiting for compiles.)
Brian Whitney
FPS Computing
This archive was generated by hypermail 2b29 : Tue Apr 18 2000 - 05:23:01 CDT