001:       SUBROUTINE SLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
002: *
003: *  -- LAPACK auxiliary routine (version 3.2) --
004: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
005: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
006: *     November 2006
007: *
008: *     .. Scalar Arguments ..
009:       CHARACTER          SIDE
010:       INTEGER            LDC, M, N
011:       REAL               TAU
012: *     ..
013: *     .. Array Arguments ..
014:       REAL               C( LDC, * ), V( * ), WORK( * )
015: *     ..
016: *
017: *  Purpose
018: *  =======
019: *
020: *  SLARFX applies a real elementary reflector H to a real m by n
021: *  matrix C, from either the left or the right. H is represented in the
022: *  form
023: *
024: *        H = I - tau * v * v'
025: *
026: *  where tau is a real scalar and v is a real vector.
027: *
028: *  If tau = 0, then H is taken to be the unit matrix
029: *
030: *  This version uses inline code if H has order < 11.
031: *
032: *  Arguments
033: *  =========
034: *
035: *  SIDE    (input) CHARACTER*1
036: *          = 'L': form  H * C
037: *          = 'R': form  C * H
038: *
039: *  M       (input) INTEGER
040: *          The number of rows of the matrix C.
041: *
042: *  N       (input) INTEGER
043: *          The number of columns of the matrix C.
044: *
045: *  V       (input) REAL array, dimension (M) if SIDE = 'L'
046: *                                     or (N) if SIDE = 'R'
047: *          The vector v in the representation of H.
048: *
049: *  TAU     (input) REAL
050: *          The value tau in the representation of H.
051: *
052: *  C       (input/output) REAL array, dimension (LDC,N)
053: *          On entry, the m by n matrix C.
054: *          On exit, C is overwritten by the matrix H * C if SIDE = 'L',
055: *          or C * H if SIDE = 'R'.
056: *
057: *  LDC     (input) INTEGER
058: *          The leading dimension of the array C. LDA >= (1,M).
059: *
060: *  WORK    (workspace) REAL array, dimension
061: *                      (N) if SIDE = 'L'
062: *                      or (M) if SIDE = 'R'
063: *          WORK is not referenced if H has order < 11.
064: *
065: *  =====================================================================
066: *
067: *     .. Parameters ..
068:       REAL               ZERO, ONE
069:       PARAMETER          ( ZERO = 0.0E+0, ONE = 1.0E+0 )
070: *     ..
071: *     .. Local Scalars ..
072:       INTEGER            J
073:       REAL               SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
074:      $                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
075: *     ..
076: *     .. External Functions ..
077:       LOGICAL            LSAME
078:       EXTERNAL           LSAME
079: *     ..
080: *     .. External Subroutines ..
081:       EXTERNAL           SLARF
082: *     ..
083: *     .. Executable Statements ..
084: *
085:       IF( TAU.EQ.ZERO )
086:      $   RETURN
087:       IF( LSAME( SIDE, 'L' ) ) THEN
088: *
089: *        Form  H * C, where H has order m.
090: *
091:          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
092:      $           170, 190 )M
093: *
094: *        Code for general M
095: *
096:          CALL SLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
097:          GO TO 410
098:    10    CONTINUE
099: *
100: *        Special code for 1 x 1 Householder
101: *
102:          T1 = ONE - TAU*V( 1 )*V( 1 )
103:          DO 20 J = 1, N
104:             C( 1, J ) = T1*C( 1, J )
105:    20    CONTINUE
106:          GO TO 410
107:    30    CONTINUE
108: *
109: *        Special code for 2 x 2 Householder
110: *
111:          V1 = V( 1 )
112:          T1 = TAU*V1
113:          V2 = V( 2 )
114:          T2 = TAU*V2
115:          DO 40 J = 1, N
116:             SUM = V1*C( 1, J ) + V2*C( 2, J )
117:             C( 1, J ) = C( 1, J ) - SUM*T1
118:             C( 2, J ) = C( 2, J ) - SUM*T2
119:    40    CONTINUE
120:          GO TO 410
121:    50    CONTINUE
122: *
123: *        Special code for 3 x 3 Householder
124: *
125:          V1 = V( 1 )
126:          T1 = TAU*V1
127:          V2 = V( 2 )
128:          T2 = TAU*V2
129:          V3 = V( 3 )
130:          T3 = TAU*V3
131:          DO 60 J = 1, N
132:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J )
133:             C( 1, J ) = C( 1, J ) - SUM*T1
134:             C( 2, J ) = C( 2, J ) - SUM*T2
135:             C( 3, J ) = C( 3, J ) - SUM*T3
136:    60    CONTINUE
137:          GO TO 410
138:    70    CONTINUE
139: *
140: *        Special code for 4 x 4 Householder
141: *
142:          V1 = V( 1 )
143:          T1 = TAU*V1
144:          V2 = V( 2 )
145:          T2 = TAU*V2
146:          V3 = V( 3 )
147:          T3 = TAU*V3
148:          V4 = V( 4 )
149:          T4 = TAU*V4
150:          DO 80 J = 1, N
151:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
152:      $            V4*C( 4, J )
153:             C( 1, J ) = C( 1, J ) - SUM*T1
154:             C( 2, J ) = C( 2, J ) - SUM*T2
155:             C( 3, J ) = C( 3, J ) - SUM*T3
156:             C( 4, J ) = C( 4, J ) - SUM*T4
157:    80    CONTINUE
158:          GO TO 410
159:    90    CONTINUE
160: *
161: *        Special code for 5 x 5 Householder
162: *
163:          V1 = V( 1 )
164:          T1 = TAU*V1
165:          V2 = V( 2 )
166:          T2 = TAU*V2
167:          V3 = V( 3 )
168:          T3 = TAU*V3
169:          V4 = V( 4 )
170:          T4 = TAU*V4
171:          V5 = V( 5 )
172:          T5 = TAU*V5
173:          DO 100 J = 1, N
174:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
175:      $            V4*C( 4, J ) + V5*C( 5, J )
176:             C( 1, J ) = C( 1, J ) - SUM*T1
177:             C( 2, J ) = C( 2, J ) - SUM*T2
178:             C( 3, J ) = C( 3, J ) - SUM*T3
179:             C( 4, J ) = C( 4, J ) - SUM*T4
180:             C( 5, J ) = C( 5, J ) - SUM*T5
181:   100    CONTINUE
182:          GO TO 410
183:   110    CONTINUE
184: *
185: *        Special code for 6 x 6 Householder
186: *
187:          V1 = V( 1 )
188:          T1 = TAU*V1
189:          V2 = V( 2 )
190:          T2 = TAU*V2
191:          V3 = V( 3 )
192:          T3 = TAU*V3
193:          V4 = V( 4 )
194:          T4 = TAU*V4
195:          V5 = V( 5 )
196:          T5 = TAU*V5
197:          V6 = V( 6 )
198:          T6 = TAU*V6
199:          DO 120 J = 1, N
200:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
201:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
202:             C( 1, J ) = C( 1, J ) - SUM*T1
203:             C( 2, J ) = C( 2, J ) - SUM*T2
204:             C( 3, J ) = C( 3, J ) - SUM*T3
205:             C( 4, J ) = C( 4, J ) - SUM*T4
206:             C( 5, J ) = C( 5, J ) - SUM*T5
207:             C( 6, J ) = C( 6, J ) - SUM*T6
208:   120    CONTINUE
209:          GO TO 410
210:   130    CONTINUE
211: *
212: *        Special code for 7 x 7 Householder
213: *
214:          V1 = V( 1 )
215:          T1 = TAU*V1
216:          V2 = V( 2 )
217:          T2 = TAU*V2
218:          V3 = V( 3 )
219:          T3 = TAU*V3
220:          V4 = V( 4 )
221:          T4 = TAU*V4
222:          V5 = V( 5 )
223:          T5 = TAU*V5
224:          V6 = V( 6 )
225:          T6 = TAU*V6
226:          V7 = V( 7 )
227:          T7 = TAU*V7
228:          DO 140 J = 1, N
229:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
230:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
231:      $            V7*C( 7, J )
232:             C( 1, J ) = C( 1, J ) - SUM*T1
233:             C( 2, J ) = C( 2, J ) - SUM*T2
234:             C( 3, J ) = C( 3, J ) - SUM*T3
235:             C( 4, J ) = C( 4, J ) - SUM*T4
236:             C( 5, J ) = C( 5, J ) - SUM*T5
237:             C( 6, J ) = C( 6, J ) - SUM*T6
238:             C( 7, J ) = C( 7, J ) - SUM*T7
239:   140    CONTINUE
240:          GO TO 410
241:   150    CONTINUE
242: *
243: *        Special code for 8 x 8 Householder
244: *
245:          V1 = V( 1 )
246:          T1 = TAU*V1
247:          V2 = V( 2 )
248:          T2 = TAU*V2
249:          V3 = V( 3 )
250:          T3 = TAU*V3
251:          V4 = V( 4 )
252:          T4 = TAU*V4
253:          V5 = V( 5 )
254:          T5 = TAU*V5
255:          V6 = V( 6 )
256:          T6 = TAU*V6
257:          V7 = V( 7 )
258:          T7 = TAU*V7
259:          V8 = V( 8 )
260:          T8 = TAU*V8
261:          DO 160 J = 1, N
262:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
263:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
264:      $            V7*C( 7, J ) + V8*C( 8, J )
265:             C( 1, J ) = C( 1, J ) - SUM*T1
266:             C( 2, J ) = C( 2, J ) - SUM*T2
267:             C( 3, J ) = C( 3, J ) - SUM*T3
268:             C( 4, J ) = C( 4, J ) - SUM*T4
269:             C( 5, J ) = C( 5, J ) - SUM*T5
270:             C( 6, J ) = C( 6, J ) - SUM*T6
271:             C( 7, J ) = C( 7, J ) - SUM*T7
272:             C( 8, J ) = C( 8, J ) - SUM*T8
273:   160    CONTINUE
274:          GO TO 410
275:   170    CONTINUE
276: *
277: *        Special code for 9 x 9 Householder
278: *
279:          V1 = V( 1 )
280:          T1 = TAU*V1
281:          V2 = V( 2 )
282:          T2 = TAU*V2
283:          V3 = V( 3 )
284:          T3 = TAU*V3
285:          V4 = V( 4 )
286:          T4 = TAU*V4
287:          V5 = V( 5 )
288:          T5 = TAU*V5
289:          V6 = V( 6 )
290:          T6 = TAU*V6
291:          V7 = V( 7 )
292:          T7 = TAU*V7
293:          V8 = V( 8 )
294:          T8 = TAU*V8
295:          V9 = V( 9 )
296:          T9 = TAU*V9
297:          DO 180 J = 1, N
298:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
299:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
300:      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
301:             C( 1, J ) = C( 1, J ) - SUM*T1
302:             C( 2, J ) = C( 2, J ) - SUM*T2
303:             C( 3, J ) = C( 3, J ) - SUM*T3
304:             C( 4, J ) = C( 4, J ) - SUM*T4
305:             C( 5, J ) = C( 5, J ) - SUM*T5
306:             C( 6, J ) = C( 6, J ) - SUM*T6
307:             C( 7, J ) = C( 7, J ) - SUM*T7
308:             C( 8, J ) = C( 8, J ) - SUM*T8
309:             C( 9, J ) = C( 9, J ) - SUM*T9
310:   180    CONTINUE
311:          GO TO 410
312:   190    CONTINUE
313: *
314: *        Special code for 10 x 10 Householder
315: *
316:          V1 = V( 1 )
317:          T1 = TAU*V1
318:          V2 = V( 2 )
319:          T2 = TAU*V2
320:          V3 = V( 3 )
321:          T3 = TAU*V3
322:          V4 = V( 4 )
323:          T4 = TAU*V4
324:          V5 = V( 5 )
325:          T5 = TAU*V5
326:          V6 = V( 6 )
327:          T6 = TAU*V6
328:          V7 = V( 7 )
329:          T7 = TAU*V7
330:          V8 = V( 8 )
331:          T8 = TAU*V8
332:          V9 = V( 9 )
333:          T9 = TAU*V9
334:          V10 = V( 10 )
335:          T10 = TAU*V10
336:          DO 200 J = 1, N
337:             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
338:      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
339:      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
340:      $            V10*C( 10, J )
341:             C( 1, J ) = C( 1, J ) - SUM*T1
342:             C( 2, J ) = C( 2, J ) - SUM*T2
343:             C( 3, J ) = C( 3, J ) - SUM*T3
344:             C( 4, J ) = C( 4, J ) - SUM*T4
345:             C( 5, J ) = C( 5, J ) - SUM*T5
346:             C( 6, J ) = C( 6, J ) - SUM*T6
347:             C( 7, J ) = C( 7, J ) - SUM*T7
348:             C( 8, J ) = C( 8, J ) - SUM*T8
349:             C( 9, J ) = C( 9, J ) - SUM*T9
350:             C( 10, J ) = C( 10, J ) - SUM*T10
351:   200    CONTINUE
352:          GO TO 410
353:       ELSE
354: *
355: *        Form  C * H, where H has order n.
356: *
357:          GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
358:      $           370, 390 )N
359: *
360: *        Code for general N
361: *
362:          CALL SLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
363:          GO TO 410
364:   210    CONTINUE
365: *
366: *        Special code for 1 x 1 Householder
367: *
368:          T1 = ONE - TAU*V( 1 )*V( 1 )
369:          DO 220 J = 1, M
370:             C( J, 1 ) = T1*C( J, 1 )
371:   220    CONTINUE
372:          GO TO 410
373:   230    CONTINUE
374: *
375: *        Special code for 2 x 2 Householder
376: *
377:          V1 = V( 1 )
378:          T1 = TAU*V1
379:          V2 = V( 2 )
380:          T2 = TAU*V2
381:          DO 240 J = 1, M
382:             SUM = V1*C( J, 1 ) + V2*C( J, 2 )
383:             C( J, 1 ) = C( J, 1 ) - SUM*T1
384:             C( J, 2 ) = C( J, 2 ) - SUM*T2
385:   240    CONTINUE
386:          GO TO 410
387:   250    CONTINUE
388: *
389: *        Special code for 3 x 3 Householder
390: *
391:          V1 = V( 1 )
392:          T1 = TAU*V1
393:          V2 = V( 2 )
394:          T2 = TAU*V2
395:          V3 = V( 3 )
396:          T3 = TAU*V3
397:          DO 260 J = 1, M
398:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
399:             C( J, 1 ) = C( J, 1 ) - SUM*T1
400:             C( J, 2 ) = C( J, 2 ) - SUM*T2
401:             C( J, 3 ) = C( J, 3 ) - SUM*T3
402:   260    CONTINUE
403:          GO TO 410
404:   270    CONTINUE
405: *
406: *        Special code for 4 x 4 Householder
407: *
408:          V1 = V( 1 )
409:          T1 = TAU*V1
410:          V2 = V( 2 )
411:          T2 = TAU*V2
412:          V3 = V( 3 )
413:          T3 = TAU*V3
414:          V4 = V( 4 )
415:          T4 = TAU*V4
416:          DO 280 J = 1, M
417:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
418:      $            V4*C( J, 4 )
419:             C( J, 1 ) = C( J, 1 ) - SUM*T1
420:             C( J, 2 ) = C( J, 2 ) - SUM*T2
421:             C( J, 3 ) = C( J, 3 ) - SUM*T3
422:             C( J, 4 ) = C( J, 4 ) - SUM*T4
423:   280    CONTINUE
424:          GO TO 410
425:   290    CONTINUE
426: *
427: *        Special code for 5 x 5 Householder
428: *
429:          V1 = V( 1 )
430:          T1 = TAU*V1
431:          V2 = V( 2 )
432:          T2 = TAU*V2
433:          V3 = V( 3 )
434:          T3 = TAU*V3
435:          V4 = V( 4 )
436:          T4 = TAU*V4
437:          V5 = V( 5 )
438:          T5 = TAU*V5
439:          DO 300 J = 1, M
440:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
441:      $            V4*C( J, 4 ) + V5*C( J, 5 )
442:             C( J, 1 ) = C( J, 1 ) - SUM*T1
443:             C( J, 2 ) = C( J, 2 ) - SUM*T2
444:             C( J, 3 ) = C( J, 3 ) - SUM*T3
445:             C( J, 4 ) = C( J, 4 ) - SUM*T4
446:             C( J, 5 ) = C( J, 5 ) - SUM*T5
447:   300    CONTINUE
448:          GO TO 410
449:   310    CONTINUE
450: *
451: *        Special code for 6 x 6 Householder
452: *
453:          V1 = V( 1 )
454:          T1 = TAU*V1
455:          V2 = V( 2 )
456:          T2 = TAU*V2
457:          V3 = V( 3 )
458:          T3 = TAU*V3
459:          V4 = V( 4 )
460:          T4 = TAU*V4
461:          V5 = V( 5 )
462:          T5 = TAU*V5
463:          V6 = V( 6 )
464:          T6 = TAU*V6
465:          DO 320 J = 1, M
466:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
467:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
468:             C( J, 1 ) = C( J, 1 ) - SUM*T1
469:             C( J, 2 ) = C( J, 2 ) - SUM*T2
470:             C( J, 3 ) = C( J, 3 ) - SUM*T3
471:             C( J, 4 ) = C( J, 4 ) - SUM*T4
472:             C( J, 5 ) = C( J, 5 ) - SUM*T5
473:             C( J, 6 ) = C( J, 6 ) - SUM*T6
474:   320    CONTINUE
475:          GO TO 410
476:   330    CONTINUE
477: *
478: *        Special code for 7 x 7 Householder
479: *
480:          V1 = V( 1 )
481:          T1 = TAU*V1
482:          V2 = V( 2 )
483:          T2 = TAU*V2
484:          V3 = V( 3 )
485:          T3 = TAU*V3
486:          V4 = V( 4 )
487:          T4 = TAU*V4
488:          V5 = V( 5 )
489:          T5 = TAU*V5
490:          V6 = V( 6 )
491:          T6 = TAU*V6
492:          V7 = V( 7 )
493:          T7 = TAU*V7
494:          DO 340 J = 1, M
495:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
496:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
497:      $            V7*C( J, 7 )
498:             C( J, 1 ) = C( J, 1 ) - SUM*T1
499:             C( J, 2 ) = C( J, 2 ) - SUM*T2
500:             C( J, 3 ) = C( J, 3 ) - SUM*T3
501:             C( J, 4 ) = C( J, 4 ) - SUM*T4
502:             C( J, 5 ) = C( J, 5 ) - SUM*T5
503:             C( J, 6 ) = C( J, 6 ) - SUM*T6
504:             C( J, 7 ) = C( J, 7 ) - SUM*T7
505:   340    CONTINUE
506:          GO TO 410
507:   350    CONTINUE
508: *
509: *        Special code for 8 x 8 Householder
510: *
511:          V1 = V( 1 )
512:          T1 = TAU*V1
513:          V2 = V( 2 )
514:          T2 = TAU*V2
515:          V3 = V( 3 )
516:          T3 = TAU*V3
517:          V4 = V( 4 )
518:          T4 = TAU*V4
519:          V5 = V( 5 )
520:          T5 = TAU*V5
521:          V6 = V( 6 )
522:          T6 = TAU*V6
523:          V7 = V( 7 )
524:          T7 = TAU*V7
525:          V8 = V( 8 )
526:          T8 = TAU*V8
527:          DO 360 J = 1, M
528:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
529:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
530:      $            V7*C( J, 7 ) + V8*C( J, 8 )
531:             C( J, 1 ) = C( J, 1 ) - SUM*T1
532:             C( J, 2 ) = C( J, 2 ) - SUM*T2
533:             C( J, 3 ) = C( J, 3 ) - SUM*T3
534:             C( J, 4 ) = C( J, 4 ) - SUM*T4
535:             C( J, 5 ) = C( J, 5 ) - SUM*T5
536:             C( J, 6 ) = C( J, 6 ) - SUM*T6
537:             C( J, 7 ) = C( J, 7 ) - SUM*T7
538:             C( J, 8 ) = C( J, 8 ) - SUM*T8
539:   360    CONTINUE
540:          GO TO 410
541:   370    CONTINUE
542: *
543: *        Special code for 9 x 9 Householder
544: *
545:          V1 = V( 1 )
546:          T1 = TAU*V1
547:          V2 = V( 2 )
548:          T2 = TAU*V2
549:          V3 = V( 3 )
550:          T3 = TAU*V3
551:          V4 = V( 4 )
552:          T4 = TAU*V4
553:          V5 = V( 5 )
554:          T5 = TAU*V5
555:          V6 = V( 6 )
556:          T6 = TAU*V6
557:          V7 = V( 7 )
558:          T7 = TAU*V7
559:          V8 = V( 8 )
560:          T8 = TAU*V8
561:          V9 = V( 9 )
562:          T9 = TAU*V9
563:          DO 380 J = 1, M
564:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
565:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
566:      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 )
567:             C( J, 1 ) = C( J, 1 ) - SUM*T1
568:             C( J, 2 ) = C( J, 2 ) - SUM*T2
569:             C( J, 3 ) = C( J, 3 ) - SUM*T3
570:             C( J, 4 ) = C( J, 4 ) - SUM*T4
571:             C( J, 5 ) = C( J, 5 ) - SUM*T5
572:             C( J, 6 ) = C( J, 6 ) - SUM*T6
573:             C( J, 7 ) = C( J, 7 ) - SUM*T7
574:             C( J, 8 ) = C( J, 8 ) - SUM*T8
575:             C( J, 9 ) = C( J, 9 ) - SUM*T9
576:   380    CONTINUE
577:          GO TO 410
578:   390    CONTINUE
579: *
580: *        Special code for 10 x 10 Householder
581: *
582:          V1 = V( 1 )
583:          T1 = TAU*V1
584:          V2 = V( 2 )
585:          T2 = TAU*V2
586:          V3 = V( 3 )
587:          T3 = TAU*V3
588:          V4 = V( 4 )
589:          T4 = TAU*V4
590:          V5 = V( 5 )
591:          T5 = TAU*V5
592:          V6 = V( 6 )
593:          T6 = TAU*V6
594:          V7 = V( 7 )
595:          T7 = TAU*V7
596:          V8 = V( 8 )
597:          T8 = TAU*V8
598:          V9 = V( 9 )
599:          T9 = TAU*V9
600:          V10 = V( 10 )
601:          T10 = TAU*V10
602:          DO 400 J = 1, M
603:             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
604:      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
605:      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
606:      $            V10*C( J, 10 )
607:             C( J, 1 ) = C( J, 1 ) - SUM*T1
608:             C( J, 2 ) = C( J, 2 ) - SUM*T2
609:             C( J, 3 ) = C( J, 3 ) - SUM*T3
610:             C( J, 4 ) = C( J, 4 ) - SUM*T4
611:             C( J, 5 ) = C( J, 5 ) - SUM*T5
612:             C( J, 6 ) = C( J, 6 ) - SUM*T6
613:             C( J, 7 ) = C( J, 7 ) - SUM*T7
614:             C( J, 8 ) = C( J, 8 ) - SUM*T8
615:             C( J, 9 ) = C( J, 9 ) - SUM*T9
616:             C( J, 10 ) = C( J, 10 ) - SUM*T10
617:   400    CONTINUE
618:          GO TO 410
619:       END IF
620:   410 RETURN
621: *
622: *     End of SLARFX
623: *
624:       END
625: