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