71 parameter ( maxin = 12 )
73 parameter ( nmax = 50 )
75 parameter ( maxrhs = 16 )
77 parameter ( ntypes = 9 )
79 parameter ( nin = 5, nout = 6 )
83 INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH
84 INTEGER I, NN, NNS, NNT
85 REAL EPS, S1, S2, THRESH
89 INTEGER NVAL( maxin ), NSVAL( maxin ), NTVAL( ntypes )
90 COMPLEX WORKA( nmax, nmax )
91 COMPLEX WORKASAV( nmax, nmax )
92 COMPLEX WORKB( nmax, maxrhs )
93 COMPLEX WORKXACT( nmax, maxrhs )
94 COMPLEX WORKBSAV( nmax, maxrhs )
95 COMPLEX WORKX( nmax, maxrhs )
96 COMPLEX WORKAFAC( nmax, nmax )
97 COMPLEX WORKAINV( nmax, nmax )
98 COMPLEX WORKARF( (nmax*(nmax+1))/2 )
99 COMPLEX WORKAP( (nmax*(nmax+1))/2 )
100 COMPLEX WORKARFINV( (nmax*(nmax+1))/2 )
101 COMPLEX C_WORK_CLATMS( 3 * nmax )
102 COMPLEX C_WORK_CPOT02( nmax, maxrhs )
103 COMPLEX C_WORK_CPOT03( nmax, nmax )
104 REAL S_WORK_CLATMS( nmax )
105 REAL S_WORK_CLANHE( nmax )
106 REAL S_WORK_CPOT01( nmax )
107 REAL S_WORK_CPOT02( nmax )
108 REAL S_WORK_CPOT03( nmax )
112 EXTERNAL slamch, second
129 CALL ilaver( vers_major, vers_minor, vers_patch )
130 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
134 READ( nin, fmt = * )nn
136 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
139 ELSE IF( nn.GT.maxin )
THEN
140 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
144 READ( nin, fmt = * )( nval( i ), i = 1, nn )
146 IF( nval( i ).LT.0 )
THEN
147 WRITE( nout, fmt = 9996 )
' M ', nval( i ), 0
149 ELSE IF( nval( i ).GT.nmax )
THEN
150 WRITE( nout, fmt = 9995 )
' M ', nval( i ), nmax
155 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
159 READ( nin, fmt = * )nns
161 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
164 ELSE IF( nns.GT.maxin )
THEN
165 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
169 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
171 IF( nsval( i ).LT.0 )
THEN
172 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
174 ELSE IF( nsval( i ).GT.maxrhs )
THEN
175 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
180 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
184 READ( nin, fmt = * )nnt
186 WRITE( nout, fmt = 9996 )
' NMA', nnt, 1
189 ELSE IF( nnt.GT.ntypes )
THEN
190 WRITE( nout, fmt = 9995 )
' NMA', nnt, ntypes
194 READ( nin, fmt = * )( ntval( i ), i = 1, nnt )
196 IF( ntval( i ).LT.0 )
THEN
197 WRITE( nout, fmt = 9996 )
'TYPE', ntval( i ), 0
199 ELSE IF( ntval( i ).GT.ntypes )
THEN
200 WRITE( nout, fmt = 9995 )
'TYPE', ntval( i ), ntypes
205 $
WRITE( nout, fmt = 9993 )
'TYPE', ( ntval( i ), i = 1, nnt )
209 READ( nin, fmt = * )thresh
210 WRITE( nout, fmt = 9992 )thresh
214 READ( nin, fmt = * )tsterr
217 WRITE( nout, fmt = 9999 )
222 WRITE( nout, fmt = 9999 )
228 eps = slamch(
'Underflow threshold' )
229 WRITE( nout, fmt = 9991 )
'underflow', eps
230 eps = slamch(
'Overflow threshold' )
231 WRITE( nout, fmt = 9991 )
'overflow ', eps
232 eps = slamch(
'Epsilon' )
233 WRITE( nout, fmt = 9991 )
'precision', eps
234 WRITE( nout, fmt = * )
244 CALL cdrvrfp( nout, nn, nval, nns, nsval, nnt, ntval, thresh,
245 $ worka, workasav, workafac, workainv, workb,
246 $ workbsav, workxact, workx, workarf, workarfinv,
247 $ c_work_clatms, c_work_cpot02,
248 $ c_work_cpot03, s_work_clatms, s_work_clanhe,
249 $ s_work_cpot01, s_work_cpot02, s_work_cpot03 )
253 CALL cdrvrf1( nout, nn, nval, thresh, worka, nmax, workarf,
259 CALL cdrvrf2( nout, nn, nval, worka, nmax, workarf,
264 CALL cdrvrf3( nout, nn, nval, thresh, worka, nmax, workarf,
265 + workainv, workafac, s_work_clanhe,
266 + c_work_cpot03, c_work_cpot02 )
271 CALL cdrvrf4( nout, nn, nval, thresh, worka, workafac, nmax,
272 + workarf, workainv, nmax, s_work_clanhe)
276 WRITE( nout, fmt = 9998 )
277 WRITE( nout, fmt = 9997 )s2 - s1
279 9999
FORMAT( /
' Execution not attempted due to input errors' )
280 9998
FORMAT( /
' End of tests' )
281 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
282 9996
FORMAT(
' !! Invalid input value: ', a4,
'=', i6,
'; must be >=',
284 9995
FORMAT(
' !! Invalid input value: ', a4,
'=', i6,
'; must be <=',
286 9994
FORMAT( /
' Tests of the COMPLEX LAPACK RFP routines ',
287 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
288 $ / /
' The following parameter values will be used:' )
289 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
290 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
291 $
'less than', f8.2, / )
292 9991
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
subroutine cdrvrf4(NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A, LDA, S_WORK_CLANGE)
CDRVRF4
subroutine cdrvrf1(NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK)
CDRVRF1
subroutine cdrvrf2(NOUT, NN, NVAL, A, LDA, ARF, AP, ASAV)
CDRVRF2
subroutine cdrvrf3(NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2, S_WORK_CLANGE, C_WORK_CGEQRF, TAU)
CDRVRF3
subroutine cerrrfp(NUNIT)
CERRRFP
subroutine cdrvrfp(NOUT, NN, NVAL, NNS, NSVAL, NNT, NTVAL, THRESH, A, ASAV, AFAC, AINV, B, BSAV, XACT, X, ARF, ARFINV, C_WORK_CLATMS, C_WORK_CPOT02, C_WORK_CPOT03, S_WORK_CLATMS, S_WORK_CLANHE, S_WORK_CPOT01, S_WORK_CPOT02, S_WORK_CPOT03)
CDRVRFP
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.