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.

secondtst.f 3.4 kB

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