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.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 2017
  22. *
  23. *> \ingroup auxOTHERauxiliary
  24. *
  25. * ===================================================================== PROGRAM DSECNDTST
  26. *
  27. * -- LAPACK test routine (version 3.8.0) --
  28. *
  29. * -- LAPACK computational routine (version 3.8.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 2017
  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. * .. External Subroutines ..
  52. EXTERNAL MYSUB
  53. * ..
  54. * .. Intrinsic Functions ..
  55. INTRINSIC DBLE
  56. * ..
  57. * .. Executable Statements ..
  58. *
  59. * .. Figure TOTAL flops ..
  60. TOTAL = DBLE(NMAX) * DBLE(ITS) * 2.0
  61. *
  62. * Initialize X and Y
  63. *
  64. DO 10 I = 1, NMAX
  65. X( I ) = DBLE( 1 ) / DBLE( I )
  66. Y( I ) = DBLE( NMAX-I ) / DBLE( NMAX )
  67. 10 CONTINUE
  68. ALPHA = 0.315D0
  69. *
  70. * Time TOTAL SAXPY operations
  71. *
  72. T1 = DSECND( )
  73. DO 30 J = 1, ITS
  74. DO 20 I = 1, NMAX
  75. Y( I ) = Y( I ) + ALPHA*X( I )
  76. 20 CONTINUE
  77. ALPHA = -ALPHA
  78. 30 CONTINUE
  79. T2 = DSECND( )
  80. TNOSEC = T2 - T1
  81. WRITE( 6, 9999 )TOTAL, TNOSEC
  82. IF( TNOSEC.GT.0.0 ) THEN
  83. WRITE( 6, 9998 )(TOTAL/1.0D6)/TNOSEC
  84. ELSE
  85. WRITE( 6, 9994 )
  86. END IF
  87. *
  88. * Time TOTAL DAXPY operations with DSECND in the outer loop
  89. *
  90. T1 = DSECND( )
  91. DO 50 J = 1, ITS
  92. DO 40 I = 1, NMAX
  93. Y( I ) = Y( I ) + ALPHA*X( I )
  94. 40 CONTINUE
  95. ALPHA = -ALPHA
  96. T2 = DSECND( )
  97. 50 CONTINUE
  98. *
  99. * Compute the time used in milliseconds used by an average call
  100. * to DSECND.
  101. *
  102. WRITE( 6, 9997 )T2 - T1
  103. AVG = ( ( T2-T1 ) - TNOSEC ) * 1000.0D+00/DBLE( ITS )
  104. IF( AVG.GT.0.0)
  105. $ WRITE( 6, 9996 )AVG
  106. *
  107. * Compute the equivalent number of floating point operations used
  108. * by an average call to DSECND.
  109. *
  110. IF(( AVG.GT.0.0 ).AND.( TNOSEC.GT.0.0 ))
  111. $ WRITE( 6, 9995 )(AVG/1000) * TOTAL / TNOSEC
  112. *
  113. 9999 FORMAT( ' Time for ', G10.3,' DAXPY ops = ', G10.3, ' seconds' )
  114. 9998 FORMAT( ' DAXPY performance rate = ', G10.3, ' mflops ' )
  115. 9997 FORMAT( ' Including DSECND, time = ', G10.3, ' seconds' )
  116. 9996 FORMAT( ' Average time for DSECND = ', G10.3,
  117. $ ' milliseconds' )
  118. 9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
  119. 9994 FORMAT( ' *** Warning: Time for operations was less or equal',
  120. $ ' than zero => timing in TESTING might be dubious' )
  121. CALL MYSUB(NMAX,X,Y)
  122. END
  123. SUBROUTINE MYSUB(N,X,Y)
  124. INTEGER N
  125. DOUBLE PRECISION X(N), Y(N)
  126. RETURN
  127. END