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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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 2011
  18. *
  19. *> \ingroup auxOTHERcomputational
  20. *
  21. * ===================================================================== PROGRAM SECONDTST
  22. *
  23. * -- LAPACK test routine (version 3.4.0) --
  24. *
  25. * -- LAPACK computational routine (version 3.4.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 2011
  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