10049
10050
10051
10052
10053
10054
10055
10056      CHARACTER*1        UPLO
10057      INTEGER            IOFFD, LDA, M, N
10058      COMPLEX*16         ALPHA, BETA
10059
10060
10061      COMPLEX*16         A( LDA, * )
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158      INTEGER            I, J, JTMP, MN
10159
10160
10161      LOGICAL            LSAME
10163
10164
10166
10167
10168
10169
10170
10171      IF( m.LE.0 .OR. n.LE.0 )
10172     $   RETURN
10173
10174
10175
10176      IF( 
lsame( uplo, 
'L' ) ) 
THEN 
10177
10178
10179
10180
10181         mn = 
max( 0, -ioffd )
 
10182         DO 20 j = 1, 
min( mn, n )
 
10183            DO 10 i = 1, m
10184               a( i, j ) = alpha
10185   10       CONTINUE
10186   20    CONTINUE
10187         DO 40 j = mn + 1, 
min( m - ioffd, n )
 
10188            jtmp = j + ioffd
10189            a( jtmp, j ) = beta
10190            DO 30 i = jtmp + 1, m
10191               a( i, j ) = alpha
10192   30       CONTINUE
10193   40    CONTINUE
10194
10195      ELSE IF( 
lsame( uplo, 
'U' ) ) 
THEN 
10196
10197
10198
10199
10200         mn = 
min( m - ioffd, n )
 
10201         DO 60 j = 
max( 0, -ioffd ) + 1, mn
 
10202            jtmp = j + ioffd
10203            DO 50 i = 1, jtmp - 1
10204               a( i, j ) = alpha
10205   50       CONTINUE
10206            a( jtmp, j ) = beta
10207   60    CONTINUE
10208         DO 80 j = 
max( 0, mn ) + 1, n
 
10209            DO 70 i = 1, m
10210               a( i, j ) = alpha
10211   70       CONTINUE
10212   80    CONTINUE
10213
10214      ELSE IF( 
lsame( uplo, 
'D' ) ) 
THEN 
10215
10216
10217
10218         DO 90 j = 
max( 0, -ioffd ) + 1, 
min( m - ioffd, n )
 
10219            a( j + ioffd, j ) = beta
10220   90    CONTINUE
10221
10222      ELSE
10223
10224
10225
10226
10227         DO 110 j = 1, n
10228            DO 100 i = 1, m
10229               a( i, j ) = alpha
10230  100       CONTINUE
10231  110    CONTINUE
10232         IF( alpha.NE.beta .AND. ioffd.LT.m .AND. ioffd.GT.-n ) THEN
10233            DO 120 j = 
max( 0, -ioffd ) + 1, 
min( m - ioffd, n )
 
10234               a( j + ioffd, j ) = beta
10235  120       CONTINUE
10236         END IF
10237
10238      END IF
10239
10240      RETURN
10241
10242
10243