LAPACK  3.6.0
LAPACK: Linear Algebra PACKage
Collaboration diagram for aux:

Functions

subroutine alahdg (IOUNIT, PATH)
 ALAHDG More...
 
subroutine alareq (PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
 ALAREQ More...
 
subroutine alarqg (PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
 ALARQG More...
 
subroutine alasmg (TYPE, NOUT, NFAIL, NRUN, NERRS)
 ALASMG More...
 
subroutine alasum (TYPE, NOUT, NFAIL, NRUN, NERRS)
 ALASUM More...
 
subroutine alasvm (TYPE, NOUT, NFAIL, NRUN, NERRS)
 ALASVM More...
 
integer function ilaenv (ISPEC, NAME, OPTS, N1, N2, N3, N4)
 ILAENV More...
 
subroutine xerbla (SRNAME, INFO)
 XERBLA More...
 
subroutine xlaenv (ISPEC, NVALUE)
 XLAENV More...
 

Detailed Description

This is the group of auxiliary LAPACK TESTING EIG routines.

Function Documentation

subroutine alahdg ( integer  IOUNIT,
character*3  PATH 
)

ALAHDG

Purpose:
 ALAHDG prints header information for the different test paths.
Parameters
[in]IOUNIT
          IOUNIT is INTEGER
          The unit number to which the header information should be
          printed.
[in]PATH
          PATH is CHARACTER*3
          The name of the path for which the header information is to
          be printed.  Current paths are
             GQR:  GQR (general matrices)
             GRQ:  GRQ (general matrices)
             LSE:  LSE Problem
             GLM:  GLM Problem
             GSV:  Generalized Singular Value Decomposition
             CSD:  CS Decomposition
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 64 of file alahdg.f.

64 *
65 * -- LAPACK test routine (version 3.4.0) --
66 * -- LAPACK is a software package provided by Univ. of Tennessee, --
67 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
68 * November 2011
69 *
70 * .. Scalar Arguments ..
71  CHARACTER*3 path
72  INTEGER iounit
73 * ..
74 *
75 * =====================================================================
76 *
77 * .. Local Scalars ..
78  CHARACTER*3 c2
79  INTEGER itype
80 * ..
81 * .. External Functions ..
82  LOGICAL lsamen
83  EXTERNAL lsamen
84 * ..
85 * .. Executable Statements ..
86 *
87  IF( iounit.LE.0 )
88  $ RETURN
89  c2 = path( 1: 3 )
90 *
91 * First line describing matrices in this path
92 *
93  IF( lsamen( 3, c2, 'GQR' ) ) THEN
94  itype = 1
95  WRITE( iounit, fmt = 9991 )path
96  ELSE IF( lsamen( 3, c2, 'GRQ' ) ) THEN
97  itype = 2
98  WRITE( iounit, fmt = 9992 )path
99  ELSE IF( lsamen( 3, c2, 'LSE' ) ) THEN
100  itype = 3
101  WRITE( iounit, fmt = 9993 )path
102  ELSE IF( lsamen( 3, c2, 'GLM' ) ) THEN
103  itype = 4
104  WRITE( iounit, fmt = 9994 )path
105  ELSE IF( lsamen( 3, c2, 'GSV' ) ) THEN
106  itype = 5
107  WRITE( iounit, fmt = 9995 )path
108  ELSE IF( lsamen( 3, c2, 'CSD' ) ) THEN
109  itype = 6
110  WRITE( iounit, fmt = 9996 )path
111  END IF
112 *
113 * Matrix types
114 *
115  WRITE( iounit, fmt = 9999 )'Matrix types: '
116 *
117  IF( itype.EQ.1 )THEN
118  WRITE( iounit, fmt = 9950 )1
119  WRITE( iounit, fmt = 9952 )2
120  WRITE( iounit, fmt = 9954 )3
121  WRITE( iounit, fmt = 9955 )4
122  WRITE( iounit, fmt = 9956 )5
123  WRITE( iounit, fmt = 9957 )6
124  WRITE( iounit, fmt = 9961 )7
125  WRITE( iounit, fmt = 9962 )8
126  ELSE IF( itype.EQ.2 )THEN
127  WRITE( iounit, fmt = 9951 )1
128  WRITE( iounit, fmt = 9953 )2
129  WRITE( iounit, fmt = 9954 )3
130  WRITE( iounit, fmt = 9955 )4
131  WRITE( iounit, fmt = 9956 )5
132  WRITE( iounit, fmt = 9957 )6
133  WRITE( iounit, fmt = 9961 )7
134  WRITE( iounit, fmt = 9962 )8
135  ELSE IF( itype.EQ.3 )THEN
136  WRITE( iounit, fmt = 9950 )1
137  WRITE( iounit, fmt = 9952 )2
138  WRITE( iounit, fmt = 9954 )3
139  WRITE( iounit, fmt = 9955 )4
140  WRITE( iounit, fmt = 9955 )5
141  WRITE( iounit, fmt = 9955 )6
142  WRITE( iounit, fmt = 9955 )7
143  WRITE( iounit, fmt = 9955 )8
144  ELSE IF( itype.EQ.4 )THEN
145  WRITE( iounit, fmt = 9951 )1
146  WRITE( iounit, fmt = 9953 )2
147  WRITE( iounit, fmt = 9954 )3
148  WRITE( iounit, fmt = 9955 )4
149  WRITE( iounit, fmt = 9955 )5
150  WRITE( iounit, fmt = 9955 )6
151  WRITE( iounit, fmt = 9955 )7
152  WRITE( iounit, fmt = 9955 )8
153  ELSE IF( itype.EQ.5 )THEN
154  WRITE( iounit, fmt = 9950 )1
155  WRITE( iounit, fmt = 9952 )2
156  WRITE( iounit, fmt = 9954 )3
157  WRITE( iounit, fmt = 9955 )4
158  WRITE( iounit, fmt = 9956 )5
159  WRITE( iounit, fmt = 9957 )6
160  WRITE( iounit, fmt = 9959 )7
161  WRITE( iounit, fmt = 9960 )8
162  ELSE IF( itype.EQ.6 )THEN
163  WRITE( iounit, fmt = 9963 )1
164  WRITE( iounit, fmt = 9964 )2
165  WRITE( iounit, fmt = 9965 )3
166  END IF
167 *
168 * Tests performed
169 *
170  WRITE( iounit, fmt = 9999 )'Test ratios: '
171 *
172  IF( itype.EQ.1 ) THEN
173 *
174 * GQR decomposition of rectangular matrices
175 *
176  WRITE( iounit, fmt = 9930 )1
177  WRITE( iounit, fmt = 9931 )2
178  WRITE( iounit, fmt = 9932 )3
179  WRITE( iounit, fmt = 9933 )4
180  ELSE IF( itype.EQ.2 ) THEN
181 *
182 * GRQ decomposition of rectangular matrices
183 *
184  WRITE( iounit, fmt = 9934 )1
185  WRITE( iounit, fmt = 9935 )2
186  WRITE( iounit, fmt = 9932 )3
187  WRITE( iounit, fmt = 9933 )4
188  ELSE IF( itype.EQ.3 ) THEN
189 *
190 * LSE Problem
191 *
192  WRITE( iounit, fmt = 9937 )1
193  WRITE( iounit, fmt = 9938 )2
194  ELSE IF( itype.EQ.4 ) THEN
195 *
196 * GLM Problem
197 *
198  WRITE( iounit, fmt = 9939 )1
199  ELSE IF( itype.EQ.5 ) THEN
200 *
201 * GSVD
202 *
203  WRITE( iounit, fmt = 9940 )1
204  WRITE( iounit, fmt = 9941 )2
205  WRITE( iounit, fmt = 9942 )3
206  WRITE( iounit, fmt = 9943 )4
207  WRITE( iounit, fmt = 9944 )5
208  ELSE IF( itype.EQ.6 ) THEN
209 *
210 * CSD
211 *
212  WRITE( iounit, fmt = 9910 )
213  WRITE( iounit, fmt = 9911 )1
214  WRITE( iounit, fmt = 9912 )2
215  WRITE( iounit, fmt = 9913 )3
216  WRITE( iounit, fmt = 9914 )4
217  WRITE( iounit, fmt = 9915 )5
218  WRITE( iounit, fmt = 9916 )6
219  WRITE( iounit, fmt = 9917 )7
220  WRITE( iounit, fmt = 9918 )8
221  WRITE( iounit, fmt = 9919 )9
222  WRITE( iounit, fmt = 9920 )
223  WRITE( iounit, fmt = 9921 )10
224  WRITE( iounit, fmt = 9922 )11
225  WRITE( iounit, fmt = 9923 )12
226  WRITE( iounit, fmt = 9924 )13
227  WRITE( iounit, fmt = 9925 )14
228  WRITE( iounit, fmt = 9926 )15
229  END IF
230 *
231  9999 FORMAT( 1x, a )
232  9991 FORMAT( / 1x, a3, ': GQR factorization of general matrices' )
233  9992 FORMAT( / 1x, a3, ': GRQ factorization of general matrices' )
234  9993 FORMAT( / 1x, a3, ': LSE Problem' )
235  9994 FORMAT( / 1x, a3, ': GLM Problem' )
236  9995 FORMAT( / 1x, a3, ': Generalized Singular Value Decomposition' )
237  9996 FORMAT( / 1x, a3, ': CS Decomposition' )
238 *
239  9950 FORMAT( 3x, i2, ': A-diagonal matrix B-upper triangular' )
240  9951 FORMAT( 3x, i2, ': A-diagonal matrix B-lower triangular' )
241  9952 FORMAT( 3x, i2, ': A-upper triangular B-upper triangular' )
242  9953 FORMAT( 3x, i2, ': A-lower triangular B-diagonal triangular' )
243  9954 FORMAT( 3x, i2, ': A-lower triangular B-upper triangular' )
244 *
245  9955 FORMAT( 3x, i2, ': Random matrices cond(A)=100, cond(B)=10,' )
246 *
247  9956 FORMAT( 3x, i2, ': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
248  $ 'cond(B)= sqrt( 0.1/EPS )' )
249  9957 FORMAT( 3x, i2, ': Random matrices cond(A)= 0.1/EPS ',
250  $ 'cond(B)= 0.1/EPS' )
251  9959 FORMAT( 3x, i2, ': Random matrices cond(A)= sqrt( 0.1/EPS ) ',
252  $ 'cond(B)= 0.1/EPS ' )
253  9960 FORMAT( 3x, i2, ': Random matrices cond(A)= 0.1/EPS ',
254  $ 'cond(B)= sqrt( 0.1/EPS )' )
255 *
256  9961 FORMAT( 3x, i2, ': Matrix scaled near underflow limit' )
257  9962 FORMAT( 3x, i2, ': Matrix scaled near overflow limit' )
258  9963 FORMAT( 3x, i2, ': Random orthogonal matrix (Haar measure)' )
259  9964 FORMAT( 3x, i2, ': Nearly orthogonal matrix with uniformly ',
260  $ 'distributed angles atan2( S, C ) in CS decomposition' )
261  9965 FORMAT( 3x, i2, ': Random orthogonal matrix with clustered ',
262  $ 'angles atan2( S, C ) in CS decomposition' )
263 *
264 *
265 * GQR test ratio
266 *
267  9930 FORMAT( 3x, i2, ': norm( R - Q'' * A ) / ( min( N, M )*norm( A )',
268  $ '* EPS )' )
269  9931 FORMAT( 3x, i2, ': norm( T * Z - Q'' * B ) / ( min(P,N)*norm(B)',
270  $ '* EPS )' )
271  9932 FORMAT( 3x, i2, ': norm( I - Q''*Q ) / ( N * EPS )' )
272  9933 FORMAT( 3x, i2, ': norm( I - Z''*Z ) / ( P * EPS )' )
273 *
274 * GRQ test ratio
275 *
276  9934 FORMAT( 3x, i2, ': norm( R - A * Q'' ) / ( min( N,M )*norm(A) * ',
277  $ 'EPS )' )
278  9935 FORMAT( 3x, i2, ': norm( T * Q - Z'' * B ) / ( min( P,N ) * nor',
279  $ 'm(B)*EPS )' )
280 *
281 * LSE test ratio
282 *
283  9937 FORMAT( 3x, i2, ': norm( A*x - c ) / ( norm(A)*norm(x) * EPS )' )
284  9938 FORMAT( 3x, i2, ': norm( B*x - d ) / ( norm(B)*norm(x) * EPS )' )
285 *
286 * GLM test ratio
287 *
288  9939 FORMAT( 3x, i2, ': norm( d - A*x - B*y ) / ( (norm(A)+norm(B) )*',
289  $ '(norm(x)+norm(y))*EPS )' )
290 *
291 * GSVD test ratio
292 *
293  9940 FORMAT( 3x, i2, ': norm( U'' * A * Q - D1 * R ) / ( min( M, N )*',
294  $ 'norm( A ) * EPS )' )
295  9941 FORMAT( 3x, i2, ': norm( V'' * B * Q - D2 * R ) / ( min( P, N )*',
296  $ 'norm( B ) * EPS )' )
297  9942 FORMAT( 3x, i2, ': norm( I - U''*U ) / ( M * EPS )' )
298  9943 FORMAT( 3x, i2, ': norm( I - V''*V ) / ( P * EPS )' )
299  9944 FORMAT( 3x, i2, ': norm( I - Q''*Q ) / ( N * EPS )' )
300 *
301 * CSD test ratio
302 *
303  9910 FORMAT( 3x, '2-by-2 CSD' )
304  9911 FORMAT( 3x, i2, ': norm( U1'' * X11 * V1 - C ) / ( max( P, Q)',
305  $ ' * max(norm(I-X''*X),EPS) )' )
306  9912 FORMAT( 3x, i2, ': norm( U1'' * X12 * V2-(-S)) / ( max( P,',
307  $ 'M-Q) * max(norm(I-X''*X),EPS) )' )
308  9913 FORMAT( 3x, i2, ': norm( U2'' * X21 * V1 - S ) / ( max(M-P,',
309  $ ' Q) * max(norm(I-X''*X),EPS) )' )
310  9914 FORMAT( 3x, i2, ': norm( U2'' * X22 * V2 - C ) / ( max(M-P,',
311  $ 'M-Q) * max(norm(I-X''*X),EPS) )' )
312  9915 FORMAT( 3x, i2, ': norm( I - U1''*U1 ) / ( P * EPS )' )
313  9916 FORMAT( 3x, i2, ': norm( I - U2''*U2 ) / ( (M-P) * EPS )' )
314  9917 FORMAT( 3x, i2, ': norm( I - V1''*V1 ) / ( Q * EPS )' )
315  9918 FORMAT( 3x, i2, ': norm( I - V2''*V2 ) / ( (M-Q) * EPS )' )
316  9919 FORMAT( 3x, i2, ': principal angle ordering ( 0 or ULP )' )
317  9920 FORMAT( 3x, '2-by-1 CSD' )
318  9921 FORMAT( 3x, i2, ': norm( U1'' * X11 * V1 - C ) / ( max( P, Q)',
319  $ ' * max(norm(I-X''*X),EPS) )' )
320  9922 FORMAT( 3x, i2, ': norm( U2'' * X21 * V1 - S ) / ( max( M-P,',
321  $ 'Q) * max(norm(I-X''*X),EPS) )' )
322  9923 FORMAT( 3x, i2, ': norm( I - U1''*U1 ) / ( P * EPS )' )
323  9924 FORMAT( 3x, i2, ': norm( I - U2''*U2 ) / ( (M-P) * EPS )' )
324  9925 FORMAT( 3x, i2, ': norm( I - V1''*V1 ) / ( Q * EPS )' )
325  9926 FORMAT( 3x, i2, ': principal angle ordering ( 0 or ULP )' )
326  RETURN
327 *
328 * End of ALAHDG
329 *
logical function lsamen(N, CA, CB)
LSAMEN
Definition: lsamen.f:76

Here is the caller graph for this function:

subroutine alareq ( character*3  PATH,
integer  NMATS,
logical, dimension( * )  DOTYPE,
integer  NTYPES,
integer  NIN,
integer  NOUT 
)

ALAREQ

Purpose:
 ALAREQ handles input for the LAPACK test program.  It is called
 to evaluate the input line which requested NMATS matrix types for
 PATH.  The flow of control is as follows:

 If NMATS = NTYPES then
    DOTYPE(1:NTYPES) = .TRUE.
 else
    Read the next input line for NMATS matrix types
    Set DOTYPE(I) = .TRUE. for each valid type I
 endif
Parameters
[in]PATH
          PATH is CHARACTER*3
          An LAPACK path name for testing.
[in]NMATS
          NMATS is INTEGER
          The number of matrix types to be used in testing this path.
[out]DOTYPE
          DOTYPE is LOGICAL array, dimension (NTYPES)
          The vector of flags indicating if each type will be tested.
[in]NTYPES
          NTYPES is INTEGER
          The maximum number of matrix types for this path.
[in]NIN
          NIN is INTEGER
          The unit number for input.  NIN >= 1.
[in]NOUT
          NOUT is INTEGER
          The unit number for output.  NOUT >= 1.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 92 of file alareq.f.

92 *
93 * -- LAPACK test routine (version 3.4.0) --
94 * -- LAPACK is a software package provided by Univ. of Tennessee, --
95 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
96 * November 2011
97 *
98 * .. Scalar Arguments ..
99  CHARACTER*3 path
100  INTEGER nin, nmats, nout, ntypes
101 * ..
102 * .. Array Arguments ..
103  LOGICAL dotype( * )
104 * ..
105 *
106 * =====================================================================
107 *
108 * .. Local Scalars ..
109  LOGICAL firstt
110  CHARACTER c1
111  CHARACTER*10 intstr
112  CHARACTER*80 line
113  INTEGER i, i1, ic, j, k, lenp, nt
114 * ..
115 * .. Local Arrays ..
116  INTEGER nreq( 100 )
117 * ..
118 * .. Intrinsic Functions ..
119  INTRINSIC len
120 * ..
121 * .. Data statements ..
122  DATA intstr / '0123456789' /
123 * ..
124 * .. Executable Statements ..
125 *
126  IF( nmats.GE.ntypes ) THEN
127 *
128 * Test everything if NMATS >= NTYPES.
129 *
130  DO 10 i = 1, ntypes
131  dotype( i ) = .true.
132  10 CONTINUE
133  ELSE
134  DO 20 i = 1, ntypes
135  dotype( i ) = .false.
136  20 CONTINUE
137  firstt = .true.
138 *
139 * Read a line of matrix types if 0 < NMATS < NTYPES.
140 *
141  IF( nmats.GT.0 ) THEN
142  READ( nin, fmt = '(A80)', end = 90 )line
143  lenp = len( line )
144  i = 0
145  DO 60 j = 1, nmats
146  nreq( j ) = 0
147  i1 = 0
148  30 CONTINUE
149  i = i + 1
150  IF( i.GT.lenp ) THEN
151  IF( j.EQ.nmats .AND. i1.GT.0 ) THEN
152  GO TO 60
153  ELSE
154  WRITE( nout, fmt = 9995 )line
155  WRITE( nout, fmt = 9994 )nmats
156  GO TO 80
157  END IF
158  END IF
159  IF( line( i: i ).NE.' ' .AND. line( i: i ).NE.',' ) THEN
160  i1 = i
161  c1 = line( i1: i1 )
162 *
163 * Check that a valid integer was read
164 *
165  DO 40 k = 1, 10
166  IF( c1.EQ.intstr( k: k ) ) THEN
167  ic = k - 1
168  GO TO 50
169  END IF
170  40 CONTINUE
171  WRITE( nout, fmt = 9996 )i, line
172  WRITE( nout, fmt = 9994 )nmats
173  GO TO 80
174  50 CONTINUE
175  nreq( j ) = 10*nreq( j ) + ic
176  GO TO 30
177  ELSE IF( i1.GT.0 ) THEN
178  GO TO 60
179  ELSE
180  GO TO 30
181  END IF
182  60 CONTINUE
183  END IF
184  DO 70 i = 1, nmats
185  nt = nreq( i )
186  IF( nt.GT.0 .AND. nt.LE.ntypes ) THEN
187  IF( dotype( nt ) ) THEN
188  IF( firstt )
189  $ WRITE( nout, fmt = * )
190  firstt = .false.
191  WRITE( nout, fmt = 9997 )nt, path
192  END IF
193  dotype( nt ) = .true.
194  ELSE
195  WRITE( nout, fmt = 9999 )path, nt, ntypes
196  9999 FORMAT( ' *** Invalid type request for ', a3, ', type ',
197  $ i4, ': must satisfy 1 <= type <= ', i2 )
198  END IF
199  70 CONTINUE
200  80 CONTINUE
201  END IF
202  RETURN
203 *
204  90 CONTINUE
205  WRITE( nout, fmt = 9998 )path
206  9998 FORMAT( /' *** End of file reached when trying to read matrix ',
207  $ 'types for ', a3, /' *** Check that you are requesting the',
208  $ ' right number of types for each path', / )
209  9997 FORMAT( ' *** Warning: duplicate request of matrix type ', i2,
210  $ ' for ', a3 )
211  9996 FORMAT( //' *** Invalid integer value in column ', i2,
212  $ ' of input', ' line:', /a79 )
213  9995 FORMAT( //' *** Not enough matrix types on input line', /a79 )
214  9994 FORMAT( ' ==> Specify ', i4, ' matrix types on this line or ',
215  $ 'adjust NTYPES on previous line' )
216  WRITE( nout, fmt = * )
217  stop
218 *
219 * End of ALAREQ
220 *

Here is the caller graph for this function:

subroutine alarqg ( character*3  PATH,
integer  NMATS,
logical, dimension( * )  DOTYPE,
integer  NTYPES,
integer  NIN,
integer  NOUT 
)

ALARQG

Purpose:
 ALARQG handles input for the LAPACK test program.  It is called
 to evaluate the input line which requested NMATS matrix types for
 PATH.  The flow of control is as follows:

 If NMATS = NTYPES then
    DOTYPE(1:NTYPES) = .TRUE.
 else
    Read the next input line for NMATS matrix types
    Set DOTYPE(I) = .TRUE. for each valid type I
 endif
Parameters
[in]PATH
          PATH is CHARACTER*3
          An LAPACK path name for testing.
[in]NMATS
          NMATS is INTEGER
          The number of matrix types to be used in testing this path.
[out]DOTYPE
          DOTYPE is LOGICAL array, dimension (NTYPES)
          The vector of flags indicating if each type will be tested.
[in]NTYPES
          NTYPES is INTEGER
          The maximum number of matrix types for this path.
[in]NIN
          NIN is INTEGER
          The unit number for input.  NIN >= 1.
[in]NOUT
          NOUT is INTEGER
          The unit number for output.  NOUT >= 1.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 92 of file alarqg.f.

92 *
93 * -- LAPACK test routine (version 3.4.0) --
94 * -- LAPACK is a software package provided by Univ. of Tennessee, --
95 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
96 * November 2011
97 *
98 * .. Scalar Arguments ..
99  CHARACTER*3 path
100  INTEGER nin, nmats, nout, ntypes
101 * ..
102 * .. Array Arguments ..
103  LOGICAL dotype( * )
104 * ..
105 *
106 * ======================================================================
107 *
108 * .. Local Scalars ..
109  LOGICAL firstt
110  CHARACTER c1
111  CHARACTER*10 intstr
112  CHARACTER*80 line
113  INTEGER i, i1, ic, j, k, lenp, nt
114 * ..
115 * .. Local Arrays ..
116  INTEGER nreq( 100 )
117 * ..
118 * .. Intrinsic Functions ..
119  INTRINSIC len
120 * ..
121 * .. Data statements ..
122  DATA intstr / '0123456789' /
123 * ..
124 * .. Executable Statements ..
125 *
126  IF( nmats.GE.ntypes ) THEN
127 *
128 * Test everything if NMATS >= NTYPES.
129 *
130  DO 10 i = 1, ntypes
131  dotype( i ) = .true.
132  10 CONTINUE
133  ELSE
134  DO 20 i = 1, ntypes
135  dotype( i ) = .false.
136  20 CONTINUE
137  firstt = .true.
138 *
139 * Read a line of matrix types if 0 < NMATS < NTYPES.
140 *
141  IF( nmats.GT.0 ) THEN
142  READ( nin, fmt = '(A80)', end = 90 )line
143  lenp = len( line )
144  i = 0
145  DO 60 j = 1, nmats
146  nreq( j ) = 0
147  i1 = 0
148  30 CONTINUE
149  i = i + 1
150  IF( i.GT.lenp ) THEN
151  IF( j.EQ.nmats .AND. i1.GT.0 ) THEN
152  GO TO 60
153  ELSE
154  WRITE( nout, fmt = 9995 )line
155  WRITE( nout, fmt = 9994 )nmats
156  GO TO 80
157  END IF
158  END IF
159  IF( line( i: i ).NE.' ' .AND. line( i: i ).NE.',' ) THEN
160  i1 = i
161  c1 = line( i1: i1 )
162 *
163 * Check that a valid integer was read
164 *
165  DO 40 k = 1, 10
166  IF( c1.EQ.intstr( k: k ) ) THEN
167  ic = k - 1
168  GO TO 50
169  END IF
170  40 CONTINUE
171  WRITE( nout, fmt = 9996 )i, line
172  WRITE( nout, fmt = 9994 )nmats
173  GO TO 80
174  50 CONTINUE
175  nreq( j ) = 10*nreq( j ) + ic
176  GO TO 30
177  ELSE IF( i1.GT.0 ) THEN
178  GO TO 60
179  ELSE
180  GO TO 30
181  END IF
182  60 CONTINUE
183  END IF
184  DO 70 i = 1, nmats
185  nt = nreq( i )
186  IF( nt.GT.0 .AND. nt.LE.ntypes ) THEN
187  IF( dotype( nt ) ) THEN
188  IF( firstt )
189  $ WRITE( nout, fmt = * )
190  firstt = .false.
191  WRITE( nout, fmt = 9997 )nt, path
192  END IF
193  dotype( nt ) = .true.
194  ELSE
195  WRITE( nout, fmt = 9999 )path, nt, ntypes
196  9999 FORMAT( ' *** Invalid type request for ', a3, ', type ',
197  $ i4, ': must satisfy 1 <= type <= ', i2 )
198  END IF
199  70 CONTINUE
200  80 CONTINUE
201  END IF
202  RETURN
203 *
204  90 CONTINUE
205  WRITE( nout, fmt = 9998 )path
206  9998 FORMAT( /' *** End of file reached when trying to read matrix ',
207  $ 'types for ', a3, /' *** Check that you are requesting the',
208  $ ' right number of types for each path', / )
209  9997 FORMAT( ' *** Warning: duplicate request of matrix type ', i2,
210  $ ' for ', a3 )
211  9996 FORMAT( //' *** Invalid integer value in column ', i2,
212  $ ' of input', ' line:', /a79 )
213  9995 FORMAT( //' *** Not enough matrix types on input line', /a79 )
214  9994 FORMAT( ' ==> Specify ', i4, ' matrix types on this line or ',
215  $ 'adjust NTYPES on previous line' )
216  WRITE( nout, fmt = * )
217  stop
218 *
219 * End of ALARQG
220 *
subroutine alasmg ( character*3  TYPE,
integer  NOUT,
integer  NFAIL,
integer  NRUN,
integer  NERRS 
)

ALASMG

Purpose:
 ALASMG prints a summary of results from one of the -CHK- routines.
Parameters
[in]TYPE
          TYPE is CHARACTER*3
          The LAPACK path name.
[in]NOUT
          NOUT is INTEGER
          The unit number on which results are to be printed.
          NOUT >= 0.
[in]NFAIL
          NFAIL is INTEGER
          The number of tests which did not pass the threshold ratio.
[in]NRUN
          NRUN is INTEGER
          The total number of tests.
[in]NERRS
          NERRS is INTEGER
          The number of error messages recorded.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 75 of file alasmg.f.

75 *
76 * -- LAPACK test routine (version 3.4.0) --
77 * -- LAPACK is a software package provided by Univ. of Tennessee, --
78 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
79 * November 2011
80 *
81 * .. Scalar Arguments ..
82  CHARACTER*3 type
83  INTEGER nfail, nout, nrun, nerrs
84 * ..
85 *
86 * ======================================================================
87 *
88 * .. Executable Statements ..
89 *
90  IF( nfail.GT.0 ) THEN
91  WRITE( nout, fmt = 9999 )TYPE, nfail, nrun
92  ELSE
93  WRITE( nout, fmt = 9998 )TYPE, nrun
94  END IF
95  IF( nerrs.GT.0 ) THEN
96  WRITE( nout, fmt = 9997 )nerrs
97  END IF
98 *
99  9999 FORMAT( 1x, a3, ': ', i6, ' out of ', i6,
100  $ ' tests failed to pass the threshold' )
101  9998 FORMAT( /1x, 'All tests for ', a3,
102  $ ' routines passed the threshold ( ', i6, ' tests run)' )
103  9997 FORMAT( 6x, i6, ' error messages recorded' )
104  RETURN
105 *
106 * End of ALASMG
107 *
subroutine alasum ( character*3  TYPE,
integer  NOUT,
integer  NFAIL,
integer  NRUN,
integer  NERRS 
)

ALASUM

Purpose:
 ALASUM prints a summary of results from one of the -CHK- routines.
Parameters
[in]TYPE
          TYPE is CHARACTER*3
          The LAPACK path name.
[in]NOUT
          NOUT is INTEGER
          The unit number on which results are to be printed.
          NOUT >= 0.
[in]NFAIL
          NFAIL is INTEGER
          The number of tests which did not pass the threshold ratio.
[in]NRUN
          NRUN is INTEGER
          The total number of tests.
[in]NERRS
          NERRS is INTEGER
          The number of error messages recorded.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 75 of file alasum.f.

75 *
76 * -- LAPACK test routine (version 3.4.0) --
77 * -- LAPACK is a software package provided by Univ. of Tennessee, --
78 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
79 * November 2011
80 *
81 * .. Scalar Arguments ..
82  CHARACTER*3 type
83  INTEGER nfail, nout, nrun, nerrs
84 * ..
85 *
86 * =====================================================================
87 *
88 * .. Executable Statements ..
89 *
90  IF( nfail.GT.0 ) THEN
91  WRITE( nout, fmt = 9999 )TYPE, nfail, nrun
92  ELSE
93  WRITE( nout, fmt = 9998 )TYPE, nrun
94  END IF
95  IF( nerrs.GT.0 ) THEN
96  WRITE( nout, fmt = 9997 )nerrs
97  END IF
98 *
99  9999 FORMAT( 1x, a3, ': ', i6, ' out of ', i6,
100  $ ' tests failed to pass the threshold' )
101  9998 FORMAT( /1x, 'All tests for ', a3,
102  $ ' routines passed the threshold ( ', i6, ' tests run)' )
103  9997 FORMAT( 6x, i6, ' error messages recorded' )
104  RETURN
105 *
106 * End of ALASUM
107 *
subroutine alasvm ( character*3  TYPE,
integer  NOUT,
integer  NFAIL,
integer  NRUN,
integer  NERRS 
)

ALASVM

Purpose:
 ALASVM prints a summary of results from one of the -DRV- routines.
Parameters
[in]TYPE
          TYPE is CHARACTER*3
          The LAPACK path name.
[in]NOUT
          NOUT is INTEGER
          The unit number on which results are to be printed.
          NOUT >= 0.
[in]NFAIL
          NFAIL is INTEGER
          The number of tests which did not pass the threshold ratio.
[in]NRUN
          NRUN is INTEGER
          The total number of tests.
[in]NERRS
          NERRS is INTEGER
          The number of error messages recorded.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 75 of file alasvm.f.

75 *
76 * -- LAPACK test routine (version 3.4.0) --
77 * -- LAPACK is a software package provided by Univ. of Tennessee, --
78 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
79 * November 2011
80 *
81 * .. Scalar Arguments ..
82  CHARACTER*3 type
83  INTEGER nfail, nout, nrun, nerrs
84 * ..
85 *
86 * =====================================================================
87 *
88 * .. Executable Statements ..
89 *
90  IF( nfail.GT.0 ) THEN
91  WRITE( nout, fmt = 9999 )TYPE, nfail, nrun
92  ELSE
93  WRITE( nout, fmt = 9998 )TYPE, nrun
94  END IF
95  IF( nerrs.GT.0 ) THEN
96  WRITE( nout, fmt = 9997 )nerrs
97  END IF
98 *
99  9999 FORMAT( 1x, a3, ' drivers: ', i6, ' out of ', i6,
100  $ ' tests failed to pass the threshold' )
101  9998 FORMAT( /1x, 'All tests for ', a3, ' drivers passed the ',
102  $ 'threshold ( ', i6, ' tests run)' )
103  9997 FORMAT( 14x, i6, ' error messages recorded' )
104  RETURN
105 *
106 * End of ALASVM
107 *
integer function ilaenv ( integer  ISPEC,
character*( * )  NAME,
character*( * )  OPTS,
integer  N1,
integer  N2,
integer  N3,
integer  N4 
)

ILAENV

Purpose:
 ILAENV returns problem-dependent parameters for the local
 environment.  See ISPEC for a description of the parameters.

 In this version, the problem-dependent parameters are contained in
 the integer array IPARMS in the common block CLAENV and the value
 with index ISPEC is copied to ILAENV.  This version of ILAENV is
 to be used in conjunction with XLAENV in TESTING and TIMING.
Parameters
[in]ISPEC
          ISPEC is INTEGER
          Specifies the parameter to be returned as the value of
          ILAENV.
          = 1: the optimal blocksize; if this value is 1, an unblocked
               algorithm will give the best performance.
          = 2: the minimum block size for which the block routine
               should be used; if the usable block size is less than
               this value, an unblocked routine should be used.
          = 3: the crossover point (in a block routine, for N less
               than this value, an unblocked routine should be used)
          = 4: the number of shifts, used in the nonsymmetric
               eigenvalue routines
          = 5: the minimum column dimension for blocking to be used;
               rectangular blocks must have dimension at least k by m,
               where k is given by ILAENV(2,...) and m by ILAENV(5,...)
          = 6: the crossover point for the SVD (when reducing an m by n
               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds
               this value, a QR factorization is used first to reduce
               the matrix to a triangular form.)
          = 7: the number of processors
          = 8: the crossover point for the multishift QR and QZ methods
               for nonsymmetric eigenvalue problems.
          = 9: maximum size of the subproblems at the bottom of the
               computation tree in the divide-and-conquer algorithm
          =10: ieee NaN arithmetic can be trusted not to trap
          =11: infinity arithmetic can be trusted not to trap
          12 <= ISPEC <= 16:
               xHSEQR or one of its subroutines,
               see IPARMQ for detailed explanation

          Other specifications (up to 100) can be added later.
[in]NAME
          NAME is CHARACTER*(*)
          The name of the calling subroutine.
[in]OPTS
          OPTS is CHARACTER*(*)
          The character options to the subroutine NAME, concatenated
          into a single character string.  For example, UPLO = 'U',
          TRANS = 'T', and DIAG = 'N' for a triangular routine would
          be specified as OPTS = 'UTN'.
[in]N1
          N1 is INTEGER
[in]N2
          N2 is INTEGER
[in]N3
          N3 is INTEGER
[in]N4
          N4 is INTEGER

          Problem dimensions for the subroutine NAME; these may not all
          be required.
Returns
ILAENV
          ILAENV is INTEGER
          >= 0: the value of the parameter specified by ISPEC
          < 0:  if ILAENV = -k, the k-th argument had an illegal value.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011
Further Details:
  The following conventions have been used when calling ILAENV from the
  LAPACK routines:
  1)  OPTS is a concatenation of all of the character options to
      subroutine NAME, in the same order that they appear in the
      argument list for NAME, even if they are not used in determining
      the value of the parameter specified by ISPEC.
  2)  The problem dimensions N1, N2, N3, N4 are specified in the order
      that they appear in the argument list for NAME.  N1 is used
      first, N2 second, and so on, and unused problem dimensions are
      passed a value of -1.
  3)  The parameter value returned by ILAENV is checked for validity in
      the calling subroutine.  For example, ILAENV is used to retrieve
      the optimal blocksize for STRTRI as follows:

      NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 )
      IF( NB.LE.1 ) NB = MAX( 1, N )

Definition at line 155 of file ilaenv.f.

155 *
156 * -- LAPACK test routine (version 3.4.0) --
157 * -- LAPACK is a software package provided by Univ. of Tennessee, --
158 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
159 * November 2011
160 *
161 * .. Scalar Arguments ..
162  CHARACTER*( * ) name, opts
163  INTEGER ispec, n1, n2, n3, n4
164 * ..
165 *
166 * =====================================================================
167 *
168 * .. Intrinsic Functions ..
169  INTRINSIC int, min, real
170 * ..
171 * .. External Functions ..
172  INTEGER ieeeck
173  EXTERNAL ieeeck
174 * ..
175 * .. Arrays in Common ..
176  INTEGER iparms( 100 )
177 * ..
178 * .. Common blocks ..
179  COMMON / claenv / iparms
180 * ..
181 * .. Save statement ..
182  SAVE / claenv /
183 * ..
184 * .. Executable Statements ..
185 *
186  IF( ispec.GE.1 .AND. ispec.LE.5 ) THEN
187 *
188 * Return a value from the common block.
189 *
190  ilaenv = iparms( ispec )
191 *
192  ELSE IF( ispec.EQ.6 ) THEN
193 *
194 * Compute SVD crossover point.
195 *
196  ilaenv = int( REAL( MIN( N1, N2 ) )*1.6e0 )
197 *
198  ELSE IF( ispec.GE.7 .AND. ispec.LE.9 ) THEN
199 *
200 * Return a value from the common block.
201 *
202  ilaenv = iparms( ispec )
203 *
204  ELSE IF( ispec.EQ.10 ) THEN
205 *
206 * IEEE NaN arithmetic can be trusted not to trap
207 *
208 C ILAENV = 0
209  ilaenv = 1
210  IF( ilaenv.EQ.1 ) THEN
211  ilaenv = ieeeck( 1, 0.0, 1.0 )
212  END IF
213 *
214  ELSE IF( ispec.EQ.11 ) THEN
215 *
216 * Infinity arithmetic can be trusted not to trap
217 *
218 C ILAENV = 0
219  ilaenv = 1
220  IF( ilaenv.EQ.1 ) THEN
221  ilaenv = ieeeck( 0, 0.0, 1.0 )
222  END IF
223 *
224  ELSE IF(( ispec.GE.12 ) .AND. (ispec.LE.16)) THEN
225 *
226 * 12 <= ISPEC <= 16: xHSEQR or one of its subroutines.
227 *
228  ilaenv = iparms( ispec )
229 * WRITE(*,*) 'ISPEC = ',ISPEC,' ILAENV =',ILAENV
230 * ILAENV = IPARMQ( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
231 *
232  ELSE
233 *
234 * Invalid value for ISPEC
235 *
236  ilaenv = -1
237  END IF
238 *
239  RETURN
240 *
241 * End of ILAENV
242 *
integer function ieeeck(ISPEC, ZERO, ONE)
Definition: tstiee.f:626
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
Definition: tstiee.f:83

Here is the call graph for this function:

subroutine xerbla ( character*(*)  SRNAME,
integer  INFO 
)

XERBLA

Purpose:
 This is a special version of XERBLA to be used only as part of
 the test program for testing error exits from the LAPACK routines.
 Error messages are printed if INFO.NE.INFOT or if SRNAME.NE.SRNAMT,
 where INFOT and SRNAMT are values stored in COMMON.
Parameters
[in]SRNAME
          SRNAME is CHARACTER*(*)
          The name of the subroutine calling XERBLA.  This name should
          match the COMMON variable SRNAMT.
[in]INFO
          INFO is INTEGER
          The error return code from the calling subroutine.  INFO
          should equal the COMMON variable INFOT.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011
Further Details:
  The following variables are passed via the common blocks INFOC and
  SRNAMC:

  INFOT   INTEGER      Expected integer return code
  NOUT    INTEGER      Unit number for printing error messages
  OK      LOGICAL      Set to .TRUE. if INFO = INFOT and
                       SRNAME = SRNAMT, otherwise set to .FALSE.
  LERR    LOGICAL      Set to .TRUE., indicating that XERBLA was called
  SRNAMT  CHARACTER*(*) Expected name of calling subroutine

Definition at line 77 of file xerbla.f.

77 *
78 * -- LAPACK test routine (version 3.4.0) --
79 * -- LAPACK is a software package provided by Univ. of Tennessee, --
80 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
81 * November 2011
82 *
83 * .. Scalar Arguments ..
84  CHARACTER*(*) srname
85  INTEGER info
86 * ..
87 *
88 * =====================================================================
89 *
90 * .. Scalars in Common ..
91  LOGICAL lerr, ok
92  CHARACTER*32 srnamt
93  INTEGER infot, nout
94 * ..
95 * .. Intrinsic Functions ..
96  INTRINSIC len_trim
97 * ..
98 * .. Common blocks ..
99  COMMON / infoc / infot, nout, ok, lerr
100  COMMON / srnamc / srnamt
101 * ..
102 * .. Executable Statements ..
103 *
104  lerr = .true.
105  IF( info.NE.infot ) THEN
106  IF( infot.NE.0 ) THEN
107  WRITE( nout, fmt = 9999 )
108  $ srnamt( 1:len_trim( srnamt ) ), info, infot
109  ELSE
110  WRITE( nout, fmt = 9997 )
111  $ srname( 1:len_trim( srname ) ), info
112  END IF
113  ok = .false.
114  END IF
115  IF( srname.NE.srnamt ) THEN
116  WRITE( nout, fmt = 9998 )
117  $ srname( 1:len_trim( srname ) ),
118  $ srnamt( 1:len_trim( srnamt ) )
119  ok = .false.
120  END IF
121  RETURN
122 *
123  9999 FORMAT( ' *** XERBLA was called from ', a, ' with INFO = ', i6,
124  $ ' instead of ', i2, ' ***' )
125  9998 FORMAT( ' *** XERBLA was called with SRNAME = ', a,
126  $ ' instead of ', a6, ' ***' )
127  9997 FORMAT( ' *** On entry to ', a, ' parameter number ', i6,
128  $ ' had an illegal value ***' )
129 *
130 * End of XERBLA
131 *
subroutine xlaenv ( integer  ISPEC,
integer  NVALUE 
)

XLAENV

Purpose:
 XLAENV sets certain machine- and problem-dependent quantities
 which will later be retrieved by ILAENV.
Parameters
[in]ISPEC
          ISPEC is INTEGER
          Specifies the parameter to be set in the COMMON array IPARMS.
          = 1: the optimal blocksize; if this value is 1, an unblocked
               algorithm will give the best performance.
          = 2: the minimum block size for which the block routine
               should be used; if the usable block size is less than
               this value, an unblocked routine should be used.
          = 3: the crossover point (in a block routine, for N less
               than this value, an unblocked routine should be used)
          = 4: the number of shifts, used in the nonsymmetric
               eigenvalue routines
          = 5: the minimum column dimension for blocking to be used;
               rectangular blocks must have dimension at least k by m,
               where k is given by ILAENV(2,...) and m by ILAENV(5,...)
          = 6: the crossover point for the SVD (when reducing an m by n
               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds
               this value, a QR factorization is used first to reduce
               the matrix to a triangular form)
          = 7: the number of processors
          = 8: another crossover point, for the multishift QR and QZ
               methods for nonsymmetric eigenvalue problems.
          = 9: maximum size of the subproblems at the bottom of the
               computation tree in the divide-and-conquer algorithm
               (used by xGELSD and xGESDD)
          =10: ieee NaN arithmetic can be trusted not to trap
          =11: infinity arithmetic can be trusted not to trap
          12 <= ISPEC <= 16:
               xHSEQR or one of its subroutines,
               see IPARMQ for detailed explanation
[in]NVALUE
          NVALUE is INTEGER
          The value of the parameter specified by ISPEC.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date
November 2011

Definition at line 83 of file xlaenv.f.

83 *
84 * -- LAPACK test routine (version 3.4.0) --
85 * -- LAPACK is a software package provided by Univ. of Tennessee, --
86 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
87 * November 2011
88 *
89 * .. Scalar Arguments ..
90  INTEGER ispec, nvalue
91 * ..
92 *
93 * =====================================================================
94 *
95 * .. Arrays in Common ..
96  INTEGER iparms( 100 )
97 * ..
98 * .. Common blocks ..
99  COMMON / claenv / iparms
100 * ..
101 * .. Save statement ..
102  SAVE / claenv /
103 * ..
104 * .. Executable Statements ..
105 *
106  IF( ispec.GE.1 .AND. ispec.LE.16 ) THEN
107  iparms( ispec ) = nvalue
108  END IF
109 *
110  RETURN
111 *
112 * End of XLAENV
113 *