1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
      PROGRAM TEST4
*
*  -- LAPACK test routine (version 3.3.1) --
*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
*  -- April 2011                                                      --
*
*     .. Parameters ..
      INTEGER            NMAXITS
      PARAMETER          ( NMAX = 1000ITS = 50000 )
*     ..
*     .. Local Scalars ..
      INTEGER            IJ
      REAL               ALPHAAVGT1T2TNOSECTOTAL
*     ..
*     .. Local Arrays ..
      REAL               XNMAX ), YNMAX )
*     ..
*     .. External Functions ..
      REAL               SECOND
      EXTERNAL           SECOND
*     ..
*     .. Intrinsic Functions ..
      INTRINSIC          REAL
*     ..
*     .. Executable Statements ..
*
*    .. Figure TOTAL flops ..
      TOTAL = REAL(NMAX* REAL(ITS* 2.0
*
*     Initialize X and Y
*
      DO 10 I = 1NMAX
         XI ) = REAL1 ) / REALI )
         YI ) = REALNMAX-I ) / REALNMAX )
   10 CONTINUE
      ALPHA = 0.315
*
*     Time TOTAL SAXPY operations
*
      T1 = SECOND( )
      DO 30 J = 1ITS
         DO 20 I = 1NMAX
            YI ) = YI ) + ALPHA*XI )
   20    CONTINUE
         ALPHA = -ALPHA
   30 CONTINUE
      T2 = SECOND( )
      TNOSEC = T2 - T1
      WRITE69999 )TOTALTNOSEC
      IFTNOSEC.GT.0.0 ) THEN
         WRITE69998 )(TOTAL/1.0E6)/TNOSEC
      ELSE
         WRITE69994 )
      END IF
*
*     Time TOTAL SAXPY operations with SECOND in the outer loop
*
      T1 = SECOND( )
      DO 50 J = 1ITS
         DO 40 I = 1NMAX
            YI ) = YI ) + ALPHA*XI )
   40    CONTINUE
         ALPHA = -ALPHA
         T2 = SECOND( )
   50 CONTINUE
*
*     Compute the time used in milliseconds used by an average call
*     to SECOND.
*
      WRITE69997 )T2 - T1
      AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0E+00/REALITS )
      IFAVG.GT.0.0)
     $   WRITE69996 )AVG
*
*     Compute the equivalent number of floating point operations used
*     by an average call to SECOND.
*
      IF(( AVG.GT.0.0 ).AND.TNOSEC.GT.0.0 ))
     $   WRITE69995 )(AVG/1000* TOTAL / TNOSEC
*
 9999 FORMAT( ' Time for ', G10.3,' SAXPY ops = ', G10.3, ' seconds' )
 9998 FORMAT( ' SAXPY performance rate        = ', G10.3, ' mflops ' )
 9997 FORMAT( ' Including SECOND, time        = ', G10.3, ' seconds' )
 9996 FORMAT( ' Average time for SECOND       = ', G10.3,
     $      ' milliseconds' )
 9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
 9994 FORMAT( ' *** Warning:  Time for operations was less or equal',
     $        ' than zero => timing in TESTING might be dubious' )
      CALL MYSUB(NMAX,X,Y)
      END
      SUBROUTINE MYSUB(N,X,Y)
      INTEGER N
      REAL X(N), Y(N)
      RETURN
      END