LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
secondtst.f
Go to the documentation of this file.
00001 *> \brief \b SECONDTST
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *
00009 *  Authors:
00010 *  ========
00011 *
00012 *> \author Univ. of Tennessee 
00013 *> \author Univ. of California Berkeley 
00014 *> \author Univ. of Colorado Denver 
00015 *> \author NAG Ltd. 
00016 *
00017 *> \date November 2011
00018 *
00019 *> \ingroup auxOTHERcomputational
00020 *
00021 *  =====================================================================      PROGRAM SECONDTST
00022 *
00023 *  -- LAPACK test routine (version 3.4.0) --
00024 *
00025 *  -- LAPACK computational routine (version 3.4.0) --
00026 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00027 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00028 *     November 2011
00029 *
00030 * =====================================================================
00031 *
00032 *     .. Parameters ..
00033       INTEGER            NMAX, ITS
00034       PARAMETER          ( NMAX = 1000, ITS = 50000 )
00035 *     ..
00036 *     .. Local Scalars ..
00037       INTEGER            I, J
00038       REAL               ALPHA, AVG, T1, T2, TNOSEC, TOTAL
00039 *     ..
00040 *     .. Local Arrays ..
00041       REAL               X( NMAX ), Y( NMAX )
00042 *     ..
00043 *     .. External Functions ..
00044       REAL               SECOND
00045       EXTERNAL           SECOND
00046 *     ..
00047 *     .. Intrinsic Functions ..
00048       INTRINSIC          REAL
00049 *     ..
00050 *     .. Executable Statements ..
00051 *
00052 *    .. Figure TOTAL flops ..
00053       TOTAL = REAL(NMAX) * REAL(ITS) * 2.0
00054 *
00055 *     Initialize X and Y
00056 *
00057       DO 10 I = 1, NMAX
00058          X( I ) = REAL( 1 ) / REAL( I )
00059          Y( I ) = REAL( NMAX-I ) / REAL( NMAX )
00060    10 CONTINUE
00061       ALPHA = 0.315
00062 *
00063 *     Time TOTAL SAXPY operations
00064 *
00065       T1 = SECOND( )
00066       DO 30 J = 1, ITS
00067          DO 20 I = 1, NMAX
00068             Y( I ) = Y( I ) + ALPHA*X( I )
00069    20    CONTINUE
00070          ALPHA = -ALPHA
00071    30 CONTINUE
00072       T2 = SECOND( )
00073       TNOSEC = T2 - T1
00074       WRITE( 6, 9999 )TOTAL, TNOSEC
00075       IF( TNOSEC.GT.0.0 ) THEN
00076          WRITE( 6, 9998 )(TOTAL/1.0E6)/TNOSEC
00077       ELSE
00078          WRITE( 6, 9994 )
00079       END IF
00080 *
00081 *     Time TOTAL SAXPY operations with SECOND in the outer loop
00082 *
00083       T1 = SECOND( )
00084       DO 50 J = 1, ITS
00085          DO 40 I = 1, NMAX
00086             Y( I ) = Y( I ) + ALPHA*X( I )
00087    40    CONTINUE
00088          ALPHA = -ALPHA
00089          T2 = SECOND( )
00090    50 CONTINUE
00091 *
00092 *     Compute the time used in milliseconds used by an average call
00093 *     to SECOND.
00094 *
00095       WRITE( 6, 9997 )T2 - T1
00096       AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0E+00/REAL( ITS )
00097       IF( AVG.GT.0.0)
00098      $   WRITE( 6, 9996 )AVG
00099 *
00100 *     Compute the equivalent number of floating point operations used
00101 *     by an average call to SECOND.
00102 *
00103       IF(( AVG.GT.0.0 ).AND.( TNOSEC.GT.0.0 ))
00104      $   WRITE( 6, 9995 )(AVG/1000) * TOTAL / TNOSEC
00105 *
00106  9999 FORMAT( ' Time for ', G10.3,' SAXPY ops = ', G10.3, ' seconds' )
00107  9998 FORMAT( ' SAXPY performance rate        = ', G10.3, ' mflops ' )
00108  9997 FORMAT( ' Including SECOND, time        = ', G10.3, ' seconds' )
00109  9996 FORMAT( ' Average time for SECOND       = ', G10.3,
00110      $      ' milliseconds' )
00111  9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
00112  9994 FORMAT( ' *** Warning:  Time for operations was less or equal',
00113      $        ' than zero => timing in TESTING might be dubious' )
00114       CALL MYSUB(NMAX,X,Y)
00115       END
00116       SUBROUTINE MYSUB(N,X,Y)
00117       INTEGER N
00118       REAL X(N), Y(N)
00119       RETURN
00120       END
 All Files Functions