9556
9557
9558
9559
9560
9561
9562
9563 CHARACTER*1 UPLO
9564 INTEGER IOFFD, LDA, M, N
9565 DOUBLE PRECISION ALPHA
9566
9567
9568 DOUBLE PRECISION A( LDA, * )
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658 INTEGER I, J, JTMP, MN
9659
9660
9661 LOGICAL LSAME
9663
9664
9666
9667
9668
9669
9670
9671 IF( m.LE.0 .OR. n.LE.0 )
9672 $ RETURN
9673
9674
9675
9676 IF(
lsame( uplo,
'L' ) )
THEN
9677
9678
9679
9680 mn =
max( 0, -ioffd )
9681 DO 20 j = 1,
min( mn, n )
9682 DO 10 i = 1, m
9683 a( i, j ) = alpha * a( i, j )
9684 10 CONTINUE
9685 20 CONTINUE
9686 DO 40 j = mn + 1,
min( m - ioffd, n )
9687 DO 30 i = j + ioffd, m
9688 a( i, j ) = alpha * a( i, j )
9689 30 CONTINUE
9690 40 CONTINUE
9691
9692 ELSE IF(
lsame( uplo,
'U' ) )
THEN
9693
9694
9695
9696 mn =
min( m - ioffd, n )
9697 DO 60 j =
max( 0, -ioffd ) + 1, mn
9698 DO 50 i = 1, j + ioffd
9699 a( i, j ) = alpha * a( i, j )
9700 50 CONTINUE
9701 60 CONTINUE
9702 DO 80 j =
max( 0, mn ) + 1, n
9703 DO 70 i = 1, m
9704 a( i, j ) = alpha * a( i, j )
9705 70 CONTINUE
9706 80 CONTINUE
9707
9708 ELSE IF(
lsame( uplo,
'D' ) )
THEN
9709
9710
9711
9712 DO 90 j =
max( 0, -ioffd ) + 1,
min( m - ioffd, n )
9713 jtmp = j + ioffd
9714 a( jtmp, j ) = alpha * a( jtmp, j )
9715 90 CONTINUE
9716
9717 ELSE
9718
9719
9720
9721 DO 110 j = 1, n
9722 DO 100 i = 1, m
9723 a( i, j ) = alpha * a( i, j )
9724 100 CONTINUE
9725 110 CONTINUE
9726
9727 END IF
9728
9729 RETURN
9730
9731
9732