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