secondtst(l) - Linux man page
Name
Synopsis
- PROGRAM TEST4
INTEGER
NMAX, ITS
PARAMETER
( NMAX = 100, ITS = 5000 )
INTEGER
I, J
REAL
ALPHA, AVG, T1, T2, TNOSEC
REAL
X( NMAX ), Y( NMAX )
REAL
SECOND
EXTERNAL
SECOND
INTRINSIC
REAL
DO
10 I = 1, NMAX
X(
I ) = REAL( 1 ) / REAL( I )
Y(
I ) = REAL( NMAX-I ) / REAL( NMAX )
10
CONTINUE
ALPHA
= 0.315
T1
= SECOND( )
DO
30 J = 1, ITS
DO
20 I = 1, NMAX
Y(
I ) = Y( I ) + ALPHA*X( I )
20
CONTINUE
ALPHA
= -ALPHA
30
CONTINUE
T2
= SECOND( )
WRITE(
6, 9999 )T2 - T1
IF(
T2-T1.GT.0.0 ) THEN
WRITE(
6, 9998 )1.0 / ( T2-T1 )
ELSE
WRITE(
6, 9994 )
END
IF
TNOSEC
= T2 - T1
T1
= SECOND( )
DO
50 J = 1, ITS
DO
40 I = 1, NMAX
Y(
I ) = Y( I ) + ALPHA*X( I )
40
CONTINUE
ALPHA
= -ALPHA
T2
= SECOND( )
50
CONTINUE
WRITE(
6, 9997 )T2 - T1
AVG
= ( ( T2-T1 ) - TNOSEC ) * 1000./REAL( ITS )
WRITE(
6, 9996 )AVG
IF(
TNOSEC.GT.0.0 ) WRITE( 6, 9995 )1000.*AVG / TNOSEC
9999
FORMAT( ' Time for 1,000,000 SAXPY ops = ', G10.3, ' seconds' )
9998
FORMAT( ' SAXPY performance rate = ', G10.3, ' mflops ' )
9997
FORMAT( ' Including SECOND, time = ', G10.3, ' seconds' )
9996
FORMAT( ' Average time for SECOND = ', G10.3, ' milliseconds' )
9995
FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
9994
FORMAT( ' *** Error: Time for operations was zero' )
CALL
MYSUB(NMAX,X,Y)
END
SUBROUTINE
MYSUB(N,X,Y)
-
INTEGER
N
REAL
X(N), Y(N)
RETURN
END