xLA_xxRFSX_EXTENDED; parameter comments: pull various dimension specifications contai...
[platform/upstream/lapack.git] / INSTALL / secondtst.f
1 *> \brief \b SECONDTST
2 *
3 *  =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 *            http://www.netlib.org/lapack/explore-html/
7 *
8 *
9 *  Authors:
10 *  ========
11 *
12 *> \author Univ. of Tennessee
13 *> \author Univ. of California Berkeley
14 *> \author Univ. of Colorado Denver
15 *> \author NAG Ltd.
16 *
17 *> \date December 2016
18 *
19 *> \ingroup auxOTHERcomputational
20 *
21 *  =====================================================================      PROGRAM SECONDTST
22 *
23 *  -- LAPACK test routine (version 3.7.0) --
24 *
25 *  -- LAPACK computational routine (version 3.7.0) --
26 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
27 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
28 *     December 2016
29 *
30 * =====================================================================
31 *
32 *     .. Parameters ..
33       INTEGER            NMAX, ITS
34       PARAMETER          ( NMAX = 1000, ITS = 50000 )
35 *     ..
36 *     .. Local Scalars ..
37       INTEGER            I, J
38       REAL               ALPHA, AVG, T1, T2, TNOSEC, TOTAL
39 *     ..
40 *     .. Local Arrays ..
41       REAL               X( NMAX ), Y( NMAX )
42 *     ..
43 *     .. External Functions ..
44       REAL               SECOND
45       EXTERNAL           SECOND
46 *     ..
47 *     .. Intrinsic Functions ..
48       INTRINSIC          REAL
49 *     ..
50 *     .. Executable Statements ..
51 *
52 *    .. Figure TOTAL flops ..
53       TOTAL = REAL(NMAX) * REAL(ITS) * 2.0
54 *
55 *     Initialize X and Y
56 *
57       DO 10 I = 1, NMAX
58          X( I ) = REAL( 1 ) / REAL( I )
59          Y( I ) = REAL( NMAX-I ) / REAL( NMAX )
60    10 CONTINUE
61       ALPHA = 0.315
62 *
63 *     Time TOTAL SAXPY operations
64 *
65       T1 = SECOND( )
66       DO 30 J = 1, ITS
67          DO 20 I = 1, NMAX
68             Y( I ) = Y( I ) + ALPHA*X( I )
69    20    CONTINUE
70          ALPHA = -ALPHA
71    30 CONTINUE
72       T2 = SECOND( )
73       TNOSEC = T2 - T1
74       WRITE( 6, 9999 )TOTAL, TNOSEC
75       IF( TNOSEC.GT.0.0 ) THEN
76          WRITE( 6, 9998 )(TOTAL/1.0E6)/TNOSEC
77       ELSE
78          WRITE( 6, 9994 )
79       END IF
80 *
81 *     Time TOTAL SAXPY operations with SECOND in the outer loop
82 *
83       T1 = SECOND( )
84       DO 50 J = 1, ITS
85          DO 40 I = 1, NMAX
86             Y( I ) = Y( I ) + ALPHA*X( I )
87    40    CONTINUE
88          ALPHA = -ALPHA
89          T2 = SECOND( )
90    50 CONTINUE
91 *
92 *     Compute the time used in milliseconds used by an average call
93 *     to SECOND.
94 *
95       WRITE( 6, 9997 )T2 - T1
96       AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0E+00/REAL( ITS )
97       IF( AVG.GT.0.0)
98      $   WRITE( 6, 9996 )AVG
99 *
100 *     Compute the equivalent number of floating point operations used
101 *     by an average call to SECOND.
102 *
103       IF(( AVG.GT.0.0 ).AND.( TNOSEC.GT.0.0 ))
104      $   WRITE( 6, 9995 )(AVG/1000) * TOTAL / TNOSEC
105 *
106  9999 FORMAT( ' Time for ', G10.3,' SAXPY ops = ', G10.3, ' seconds' )
107  9998 FORMAT( ' SAXPY performance rate        = ', G10.3, ' mflops ' )
108  9997 FORMAT( ' Including SECOND, time        = ', G10.3, ' seconds' )
109  9996 FORMAT( ' Average time for SECOND       = ', G10.3,
110      $      ' milliseconds' )
111  9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
112  9994 FORMAT( ' *** Warning:  Time for operations was less or equal',
113      $        ' than zero => timing in TESTING might be dubious' )
114       CALL MYSUB(NMAX,X,Y)
115       END
116       SUBROUTINE MYSUB(N,X,Y)
117       INTEGER N
118       REAL X(N), Y(N)
119       RETURN
120       END