dsecndtst(l) - Linux man page

Name

Synopsis

PROGRAM TEST5

INTEGER

NMAX, ITS

PARAMETER

( NMAX = 100, ITS = 5000 )

INTEGER

I, J

DOUBLE

PRECISION ALPHA, AVG, T1, T2, TNOSEC

DOUBLE

PRECISION X( NMAX ), Y( NMAX )

DOUBLE

PRECISION DSECND

EXTERNAL

DSECND

INTRINSIC

DBLE

DO

10 I = 1, NMAX

X(

I ) = DBLE( 1 ) / DBLE( I )

Y(

I ) = DBLE( NMAX-I ) / DBLE( NMAX )

10

CONTINUE

ALPHA

= 0.315D0

T1

= DSECND( )

DO

30 J = 1, ITS

DO

20 I = 1, NMAX

Y(

I ) = Y( I ) + ALPHA*X( I )

20

CONTINUE

ALPHA

= -ALPHA

30

CONTINUE

T2

= DSECND( )

WRITE(

6, 9999 )T2 - T1

IF(

T2-T1.GT.0.0D0 ) THEN

WRITE(

6, 9998 )1.0D0 / ( T2-T1 )

ELSE

WRITE(

6, 9994 )

END

IF

TNOSEC

= T2 - T1

T1

= DSECND( )

DO

50 J = 1, ITS

DO

40 I = 1, NMAX

Y(

I ) = Y( I ) + ALPHA*X( I )

40

CONTINUE

ALPHA

= -ALPHA

T2

= DSECND( )

50

CONTINUE

WRITE(

6, 9997 )T2 - T1

AVG

= ( ( T2-T1 )-TNOSEC )*1000.D0 / DBLE( ITS )

WRITE(

6, 9996 )AVG

IF(

TNOSEC.GT.0.0D0 ) WRITE( 6, 9995 )1000.D0*AVG / TNOSEC

9999

FORMAT( ' Time for 1,000,000 DAXPY ops = ', G10.3, ' seconds' )

9998

FORMAT( ' DAXPY performance rate = ', G10.3, ' mflops ' )

9997

FORMAT( ' Including DSECND, time = ', G10.3, ' seconds' )

9996

FORMAT( ' Average time for DSECND = ', 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

DOUBLE

PRECISION X(N), Y(N)

RETURN

END

Purpose