69 parameter( zero = 0.0e+0 )
72 INTEGER I, IHI, IHIIN, ILO, ILOIN, INFO, J, KNT, N,
74 REAL ANORM, MEPS, RMAX, SFMIN, TEMP, VMAX
79 REAL DUMMY( 1 ), SCALE( LDA ), SCALIN( LDA )
80 COMPLEX A( LDA, LDA ), AIN( LDA, LDA )
84 EXTERNAL clange, slamch
90 INTRINSIC abs, aimag,
max, real
96 cabs1( cdum ) = abs( real( cdum ) ) + abs( aimag( cdum ) )
107 sfmin = slamch(
'S' )
112 READ( NIN, FMT = * )N
116 READ( NIN, FMT = * )( A( I, J ), J = 1, N )
119 READ( NIN, FMT = * )ILOIN, IHIIN
121 READ( NIN, FMT = * )( AIN( I, J ), J = 1, N )
123 READ( NIN, FMT = * )( SCALIN( I ), I = 1, N )
125 ANORM = CLANGE( 'm
', N, N, A, LDA, DUMMY )
127 CALL CGEBAL( 'b
', N, A, LDA, ILO, IHI, SCALE, INFO )
134.NE..OR..NE.
IF( ILOILOIN IHIIHIIN ) THEN
141 TEMP = MAX( CABS1( A( I, J ) ), CABS1( AIN( I, J ) ) )
142 TEMP = MAX( TEMP, SFMIN )
143 VMAX = MAX( VMAX, CABS1( A( I, J )-AIN( I, J ) ) / TEMP )
148 TEMP = MAX( SCALE( I ), SCALIN( I ) )
149 TEMP = MAX( TEMP, SFMIN )
150 VMAX = MAX( VMAX, ABS( SCALE( I )-SCALIN( I ) ) / TEMP )
153.GT.
IF( VMAXRMAX ) THEN
162 WRITE( NOUT, FMT = 9999 )
163 9999 FORMAT( 1X, '.. test output of
cgebal ..
' )
165 WRITE( NOUT, FMT = 9998 )RMAX
166 9998 FORMAT( 1X, 'value of largest test error =
', E12.3 )
167 WRITE( NOUT, FMT = 9997 )LMAX( 1 )
168 9997 FORMAT( 1X, 'example number
where info is not zero =
', I4 )
169 WRITE( NOUT, FMT = 9996 )LMAX( 2 )
170 9996 FORMAT( 1X, 'example number
where ilo or ihi wrong =
', I4 )
171 WRITE( NOUT, FMT = 9995 )LMAX( 3 )
172 9995 FORMAT( 1X, 'example number having largest error =
', I4 )
173 WRITE( NOUT, FMT = 9994 )NINFO
174 9994 FORMAT( 1X, 'number of examples
where info is not 0 =
', I4 )
175 WRITE( NOUT, FMT = 9993 )KNT
176 9993 FORMAT( 1X, 'total number of examples tested =
', I4 )
subroutine cgebal(job, n, a, lda, ilo, ihi, scale, info)
CGEBAL