You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

dsecndtst.f 3.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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 November 2011
  22. *
  23. *> \ingroup auxOTHERauxiliary
  24. *
  25. * ===================================================================== PROGRAM DSECNDTST
  26. *
  27. * -- LAPACK test routine (version 3.4.0) --
  28. *
  29. * -- LAPACK computational routine (version 3.4.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. * November 2011
  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