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 )
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
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 )