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 serrrfp(NUNIT)
SERRRFP
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 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 sdrvrf1(NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK)
SDRVRF1
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
real function second()
SECOND Using ETIME
real function slamch(CMACH)
SLAMCH