68 parameter( maxin = 12 )
70 parameter( nmax = 50 )
72 parameter( maxrhs = 16 )
74 parameter( ntypes = 9 )
76 parameter( nin = 5, nout = 6 )
80 INTEGER vers_major, vers_minor, vers_patch
81 INTEGER i, nn, nns, nnt
82 REAL eps, s1, s2, thresh
85 INTEGER nval( maxin ), nsval( maxin ), ntval( ntypes )
86 REAL worka( nmax, nmax )
87 REAL workasav( nmax, nmax )
88 REAL workb( nmax, maxrhs )
89 REAL workxact( nmax, maxrhs )
90 REAL workbsav( nmax, maxrhs )
91 REAL workx( nmax, maxrhs )
92 REAL workafac( nmax, nmax )
93 REAL workainv( nmax, nmax )
94 REAL workarf( (nmax*(nmax+1))/2 )
95 REAL workap( (nmax*(nmax+1))/2 )
96 REAL workarfinv( (nmax*(nmax+1))/2 )
97 REAL s_work_slatms( 3 * nmax )
98 REAL s_work_spot01( nmax )
99 REAL s_temp_spot02( nmax, maxrhs )
100 REAL s_temp_spot03( nmax, nmax )
101 REAL s_work_slansy( nmax )
102 REAL s_work_spot02( nmax )
103 REAL s_work_spot03( nmax )
124 CALL ilaver( vers_major, vers_minor, vers_patch )
125 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
129 READ( nin, fmt = * )nn
131 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
134 ELSE IF( nn.GT.maxin )
THEN
135 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
139 READ( nin, fmt = * )( nval( i ), i = 1, nn )
141 IF( nval( i ).LT.0 )
THEN
142 WRITE( nout, fmt = 9996 )
' M ', nval( i ), 0
144 ELSE IF( nval( i ).GT.nmax )
THEN
145 WRITE( nout, fmt = 9995 )
' M ', nval( i ), nmax
150 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
154 READ( nin, fmt = * )nns
156 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
159 ELSE IF( nns.GT.maxin )
THEN
160 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
164 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
166 IF( nsval( i ).LT.0 )
THEN
167 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
169 ELSE IF( nsval( i ).GT.maxrhs )
THEN
170 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
175 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
179 READ( nin, fmt = * )nnt
181 WRITE( nout, fmt = 9996 )
' NMA', nnt, 1
184 ELSE IF( nnt.GT.ntypes )
THEN
185 WRITE( nout, fmt = 9995 )
' NMA', nnt, ntypes
189 READ( nin, fmt = * )( ntval( i ), i = 1, nnt )
191 IF( ntval( i ).LT.0 )
THEN
192 WRITE( nout, fmt = 9996 )
'TYPE', ntval( i ), 0
194 ELSE IF( ntval( i ).GT.ntypes )
THEN
195 WRITE( nout, fmt = 9995 )
'TYPE', ntval( i ), ntypes
200 $
WRITE( nout, fmt = 9993 )
'TYPE', ( ntval( i ), i = 1, nnt )
204 READ( nin, fmt = * )thresh
205 WRITE( nout, fmt = 9992 )thresh
209 READ( nin, fmt = * )tsterr
212 WRITE( nout, fmt = 9999 )
218 eps =
slamch(
'Underflow threshold' )
219 WRITE( nout, fmt = 9991 )
'underflow', eps
220 eps =
slamch(
'Overflow threshold' )
221 WRITE( nout, fmt = 9991 )
'overflow ', eps
223 WRITE( nout, fmt = 9991 )
'precision', eps
224 WRITE( nout, fmt = * )
234 CALL sdrvrfp( nout, nn, nval, nns, nsval, nnt, ntval, thresh,
235 $ worka, workasav, workafac, workainv, workb,
236 $ workbsav, workxact, workx, workarf, workarfinv,
237 $ s_work_slatms, s_work_spot01, s_temp_spot02,
238 $ s_temp_spot03, s_work_slansy, s_work_spot02,
243 CALL sdrvrf1( nout, nn, nval, thresh, worka, nmax, workarf,
249 CALL sdrvrf2( nout, nn, nval, worka, nmax, workarf,
254 CALL sdrvrf3( nout, nn, nval, thresh, worka, nmax, workarf,
255 + workainv, workafac, s_work_slansy,
256 + s_work_spot03, s_work_spot01 )
261 CALL sdrvrf4( nout, nn, nval, thresh, worka, workafac, nmax,
262 + workarf, workainv, nmax, s_work_slansy)
266 WRITE( nout, fmt = 9998 )
267 WRITE( nout, fmt = 9997 )s2 - s1
269 9999
FORMAT( /
' Execution not attempted due to input errors' )
270 9998
FORMAT( /
' End of tests' )
271 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
272 9996
FORMAT(
' !! Invalid input value: ', a4,
'=', i6,
'; must be >=',
274 9995
FORMAT(
' !! Invalid input value: ', a4,
'=', i6,
'; must be <=',
276 9994
FORMAT( /
' Tests of the REAL LAPACK RFP routines ',
277 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
278 $ / /
' The following parameter values will be used:' )
279 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
280 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
281 $
'less than', f8.2, / )
282 9991
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
real function slamch(cmach)
SLAMCH
real function second()
SECOND Using ETIME
subroutine sdrvrf1(nout, nn, nval, thresh, a, lda, arf, work)
SDRVRF1
subroutine sdrvrf2(nout, nn, nval, a, lda, arf, ap, asav)
SDRVRF2
subroutine sdrvrf3(nout, nn, nval, thresh, a, lda, arf, b1, b2, s_work_slange, s_work_sgeqrf, tau)
SDRVRF3
subroutine sdrvrf4(nout, nn, nval, thresh, c1, c2, ldc, crf, a, lda, s_work_slange)
SDRVRF4
subroutine sdrvrfp(nout, nn, nval, nns, nsval, nnt, ntval, thresh, a, asav, afac, ainv, b, bsav, xact, x, arf, arfinv, s_work_slatms, s_work_spot01, s_temp_spot02, s_temp_spot03, s_work_slansy, s_work_spot02, s_work_spot03)
SDRVRFP
subroutine serrrfp(nunit)
SERRRFP