69 parameter( zero = 0.0d+0 )
72 INTEGER I, IHI, IHIIN, ILO, ILOIN, INFO, J, KNT, N,
74 DOUBLE PRECISION ANORM, MEPS, RMAX, SFMIN, TEMP, VMAX
78 DOUBLE PRECISION A( , LDA ), AIN( LDA, LDA ), DUMMY( 1 ),
79 $ ( LDA ), SCALIN( LDA )
82 DOUBLE PRECISION DLAMCH, DLANGE
83 EXTERNAL dlamch, dlange
100 sfmin = dlamch(
'S' )
105 READ( nin, fmt = * )n
109 READ( nin, fmt = * )( a( i, j ), j
114 READ( nin, fmt = * )( ain( i, j ), j = 1, n )
116 READ( nin, fmt = * )( scalin( i ), i = 1, n )
118 anorm = dlange(
'M', n, n, a, lda, dummy )
121 CALL dgebal( 'b
', N, A, LDA, ILO, IHI, SCALE, INFO )
128.NE..OR..NE.
IF( ILOILOIN IHIIHIIN ) THEN
135 TEMP = MAX( A( I, J ), AIN( I, J ) )
136 TEMP = MAX( TEMP, SFMIN )
137 VMAX = MAX( VMAX, ABS( A( I, J )-AIN( I, J ) ) / TEMP )
142 TEMP = MAX( SCALE( I ), SCALIN( I ) )
143 TEMP = MAX( TEMP, SFMIN )
144 VMAX = MAX( VMAX, ABS( SCALE( I )-SCALIN( I ) ) / TEMP )
148.GT.
IF( VMAXRMAX ) THEN
157 WRITE( NOUT, FMT = 9999 )
158 9999 FORMAT( 1X, '.. test output of
dgebal ..
' )
160 WRITE( NOUT, FMT = 9998 )RMAX
161 9998 FORMAT( 1X, 'value of largest test error = ', d12.3 )
162 WRITE( nout, fmt = 9997 )lmax( 1 )
163 9997
FORMAT( 1x,
'example number where info is not zero = ', i4 )
164 WRITE( nout, fmt = 9996 )lmax( 2 )
165 9996
FORMAT( 1x,
'example number where ILO or IHI wrong = ', i4 )
166 WRITE( nout, fmt = 9995 )lmax( 3 )
167 9995
FORMAT( 1x,
'example number having largest error = ', i4 )
168 WRITE( nout, fmt = 9994 )ninfo
169 9994
FORMAT( 1x,
'number of examples where info is not 0 = ', i4 )
170 WRITE( nout, fmt = 9993 )knt
171 9993
FORMAT( 1x,
'total number of examples tested = ', i4 )
subroutine dgebal(job, n, a, lda, ilo, ihi, scale, info)
DGEBAL