Go to the documentation of this file.00001 PROGRAM TEST5
00002
00003
00004
00005
00006
00007
00008 INTEGER NMAX, ITS
00009 PARAMETER ( NMAX = 100, ITS = 5000 )
00010
00011
00012 INTEGER I, J
00013 DOUBLE PRECISION ALPHA, AVG, T1, T2, TNOSEC
00014
00015
00016 DOUBLE PRECISION X( NMAX ), Y( NMAX )
00017
00018
00019 DOUBLE PRECISION DSECND
00020 EXTERNAL DSECND
00021
00022
00023 INTRINSIC DBLE
00024
00025
00026
00027
00028
00029
00030 DO 10 I = 1, NMAX
00031 X( I ) = DBLE( 1 ) / DBLE( I )
00032 Y( I ) = DBLE( NMAX-I ) / DBLE( NMAX )
00033 10 CONTINUE
00034 ALPHA = 0.315D0
00035
00036
00037
00038 T1 = DSECND( )
00039 DO 30 J = 1, ITS
00040 DO 20 I = 1, NMAX
00041 Y( I ) = Y( I ) + ALPHA*X( I )
00042 20 CONTINUE
00043 ALPHA = -ALPHA
00044 30 CONTINUE
00045 T2 = DSECND( )
00046 WRITE( 6, 9999 )T2 - T1
00047 IF( T2-T1.GT.0.0D0 ) THEN
00048 WRITE( 6, 9998 )1.0D0 / ( T2-T1 )
00049 ELSE
00050 WRITE( 6, 9994 )
00051 END IF
00052 TNOSEC = T2 - T1
00053
00054
00055
00056 T1 = DSECND( )
00057 DO 50 J = 1, ITS
00058 DO 40 I = 1, NMAX
00059 Y( I ) = Y( I ) + ALPHA*X( I )
00060 40 CONTINUE
00061 ALPHA = -ALPHA
00062 T2 = DSECND( )
00063 50 CONTINUE
00064
00065
00066
00067
00068 WRITE( 6, 9997 )T2 - T1
00069 AVG = ( ( T2-T1 )-TNOSEC )*1000.D0 / DBLE( ITS )
00070 WRITE( 6, 9996 )AVG
00071
00072
00073
00074
00075 IF( TNOSEC.GT.0.0D0 )
00076 $ WRITE( 6, 9995 )1000.D0*AVG / TNOSEC
00077
00078 9999 FORMAT( ' Time for 1,000,000 DAXPY ops = ', G10.3, ' seconds' )
00079 9998 FORMAT( ' DAXPY performance rate = ', G10.3, ' mflops ' )
00080 9997 FORMAT( ' Including DSECND, time = ', G10.3, ' seconds' )
00081 9996 FORMAT( ' Average time for DSECND = ', G10.3,
00082 $ ' milliseconds' )
00083 9995 FORMAT( ' Equivalent floating point ops = ', G10.3, ' ops' )
00084 9994 FORMAT( ' *** Error: Time for operations was zero' )
00085 CALL MYSUB(NMAX,X,Y)
00086 END
00087 SUBROUTINE MYSUB(N,X,Y)
00088 INTEGER N
00089 DOUBLE PRECISION X(N), Y(N)
00090 RETURN
00091 END