55
56
57
58
59
60
61 CHARACTER*3 PATH
62 INTEGER NUNIT
63
64
65
66
67
68 INTEGER NMAX
69 parameter( nmax = 2 )
70
71
72 INTEGER I, INFO, J
73
74
75 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76 $ W( NMAX ), X( NMAX )
77
78
81
82
83 LOGICAL LERR, OK
84 CHARACTER*32 SRNAMT
85 INTEGER INFOT, NOUT
86
87
88 COMMON / infoc / infot, nout, ok, lerr
89 COMMON / srnamc / srnamt
90
91
92 INTRINSIC real
93
94
95
96 nout = nunit
97 WRITE( nout, fmt = * )
98
99
100
101 DO 20 j = 1, nmax
102 DO 10 i = 1, nmax
103 a( i, j ) = 1. / real( i+j )
104 af( i, j ) = 1. / real( i+j )
105 10 CONTINUE
106 b( j ) = 0.
107 w( j ) = 0.
108 x( j ) = 0.
109 20 CONTINUE
110 ok = .true.
111
112
113
114
115
116 srnamt = 'SGELQF'
117 infot = 1
118 CALL sgelqf( -1, 0, a, 1, b, w, 1, info )
119 CALL chkxer(
'SGELQF', infot, nout, lerr, ok )
120 infot = 2
121 CALL sgelqf( 0, -1, a, 1, b, w, 1, info )
122 CALL chkxer(
'SGELQF', infot, nout, lerr, ok )
123 infot = 4
124 CALL sgelqf( 2, 1, a, 1, b, w, 2, info )
125 CALL chkxer(
'SGELQF', infot, nout, lerr, ok )
126 infot = 7
127 CALL sgelqf( 2, 1, a, 2, b, w, 1, info )
128 CALL chkxer(
'SGELQF', infot, nout, lerr, ok )
129
130
131
132 srnamt = 'SGELQ2'
133 infot = 1
134 CALL sgelq2( -1, 0, a, 1, b, w, info )
135 CALL chkxer(
'SGELQ2', infot, nout, lerr, ok )
136 infot = 2
137 CALL sgelq2( 0, -1, a, 1, b, w, info )
138 CALL chkxer(
'SGELQ2', infot, nout, lerr, ok )
139 infot = 4
140 CALL sgelq2( 2, 1, a, 1, b, w, info )
141 CALL chkxer(
'SGELQ2', infot, nout, lerr, ok )
142
143
144
145 srnamt = 'SORGLQ'
146 infot = 1
147 CALL sorglq( -1, 0, 0, a, 1, x, w, 1, info )
148 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
149 infot = 2
150 CALL sorglq( 0, -1, 0, a, 1, x, w, 1, info )
151 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
152 infot = 2
153 CALL sorglq( 2, 1, 0, a, 2, x, w, 2, info )
154 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
155 infot = 3
156 CALL sorglq( 0, 0, -1, a, 1, x, w, 1, info )
157 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
158 infot = 3
159 CALL sorglq( 1, 1, 2, a, 1, x, w, 1, info )
160 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
161 infot = 5
162 CALL sorglq( 2, 2, 0, a, 1, x, w, 2, info )
163 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
164 infot = 8
165 CALL sorglq( 2, 2, 0, a, 2, x, w, 1, info )
166 CALL chkxer(
'SORGLQ', infot, nout, lerr, ok )
167
168
169
170 srnamt = 'SORGL2'
171 infot = 1
172 CALL sorgl2( -1, 0, 0, a, 1, x, w, info )
173 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
174 infot = 2
175 CALL sorgl2( 0, -1, 0, a, 1, x, w, info )
176 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
177 infot = 2
178 CALL sorgl2( 2, 1, 0, a, 2, x, w, info )
179 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
180 infot = 3
181 CALL sorgl2( 0, 0, -1, a, 1, x, w, info )
182 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
183 infot = 3
184 CALL sorgl2( 1, 1, 2, a, 1, x, w, info )
185 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
186 infot = 5
187 CALL sorgl2( 2, 2, 0, a, 1, x, w, info )
188 CALL chkxer(
'SORGL2', infot, nout, lerr, ok )
189
190
191
192 srnamt = 'SORMLQ'
193 infot = 1
194 CALL sormlq(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
195 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
196 infot = 2
197 CALL sormlq(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
198 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
199 infot = 3
200 CALL sormlq(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
201 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
202 infot = 4
203 CALL sormlq(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
204 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
205 infot = 5
206 CALL sormlq(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
207 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
208 infot = 5
209 CALL sormlq(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
210 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
211 infot = 5
212 CALL sormlq(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
213 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
214 infot = 7
215 CALL sormlq(
'L',
'N', 2, 0, 2, a, 1, x, af, 2, w, 1, info )
216 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
217 infot = 7
218 CALL sormlq(
'R',
'N', 0, 2, 2, a, 1, x, af, 1, w, 1, info )
219 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
220 infot = 10
221 CALL sormlq(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
222 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
223 infot = 12
224 CALL sormlq(
'L',
'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
226 infot = 12
227 CALL sormlq(
'R',
'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
228 CALL chkxer(
'SORMLQ', infot, nout, lerr, ok )
229
230
231
232 srnamt = 'SORML2'
233 infot = 1
234 CALL sorml2(
'/',
'N', 0, 0, 0, a, 1, x, af, 1, w, info )
235 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
236 infot = 2
237 CALL sorml2(
'L',
'/', 0, 0, 0, a, 1, x, af, 1, w, info )
238 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
239 infot = 3
240 CALL sorml2(
'L',
'N', -1, 0, 0, a, 1, x, af, 1, w, info )
241 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
242 infot = 4
243 CALL sorml2(
'L',
'N', 0, -1, 0, a, 1, x, af, 1, w, info )
244 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
245 infot = 5
246 CALL sorml2(
'L',
'N', 0, 0, -1, a, 1, x, af, 1, w, info )
247 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
248 infot = 5
249 CALL sorml2(
'L',
'N', 0, 1, 1, a, 1, x, af, 1, w, info )
250 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
251 infot = 5
252 CALL sorml2(
'R',
'N', 1, 0, 1, a, 1, x, af, 1, w, info )
253 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
254 infot = 7
255 CALL sorml2(
'L',
'N', 2, 1, 2, a, 1, x, af, 2, w, info )
256 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
257 infot = 7
258 CALL sorml2(
'R',
'N', 1, 2, 2, a, 1, x, af, 1, w, info )
259 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
260 infot = 10
261 CALL sorml2(
'L',
'N', 2, 1, 0, a, 2, x, af, 1, w, info )
262 CALL chkxer(
'SORML2', infot, nout, lerr, ok )
263
264
265
266 CALL alaesm( path, ok, nout )
267
268 RETURN
269
270
271
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine sgelq2(m, n, a, lda, tau, work, info)
SGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm.
subroutine sgelqf(m, n, a, lda, tau, work, lwork, info)
SGELQF
subroutine sorgl2(m, n, k, a, lda, tau, work, info)
SORGL2
subroutine sorglq(m, n, k, a, lda, tau, work, lwork, info)
SORGLQ
subroutine sorml2(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
SORML2 multiplies a general matrix by the orthogonal matrix from a LQ factorization determined by sge...
subroutine sormlq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
SORMLQ