2
3
4
5
6
7
8
9 INTEGER LDA, LDB, M, N
10 COMPLEX ALPHA, BETA
11
12
13 COMPLEX A( LDA, * ), B( LDB, * )
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 COMPLEX ONE, ZERO
70 parameter( one = ( 1.0e+0, 0.0e+0 ),
71 $ zero = ( 0.0e+0, 0.0e+0 ) )
72
73
74 INTEGER I, J
75
76
77 EXTERNAL cscal
78
79
80 INTRINSIC conjg
81
82
83
84 IF( m.GE.n ) THEN
85 IF( alpha.EQ.one ) THEN
86 IF( beta.EQ.zero ) THEN
87 DO 20 j = 1, n
88 DO 10 i = 1, m
89 b( j, i ) = conjg( a( i, j ) )
90 10 CONTINUE
91 20 CONTINUE
92 ELSE IF( beta.NE.one ) THEN
93 DO 40 j = 1, n
94 DO 30 i = 1, m
95 b( j, i ) = conjg( a( i, j ) ) + beta * b( j, i )
96 30 CONTINUE
97 40 CONTINUE
98 ELSE
99 DO 60 j = 1, n
100 DO 50 i = 1, m
101 b( j, i ) = conjg( a( i, j ) ) + b( j, i )
102 50 CONTINUE
103 60 CONTINUE
104 END IF
105 ELSE IF( alpha.NE.zero ) THEN
106 IF( beta.EQ.zero ) THEN
107 DO 80 j = 1, n
108 DO 70 i = 1, m
109 b( j, i ) = alpha * conjg( a( i, j ) )
110 70 CONTINUE
111 80 CONTINUE
112 ELSE IF( beta.NE.one ) THEN
113 DO 100 j = 1, n
114 DO 90 i = 1, m
115 b( j, i ) = alpha * conjg( a( i, j ) ) +
116 $ beta * b( j, i )
117 90 CONTINUE
118 100 CONTINUE
119 ELSE
120 DO 120 j = 1, n
121 DO 110 i = 1, m
122 b( j, i ) = alpha * conjg( a( i, j ) ) + b( j, i )
123 110 CONTINUE
124 120 CONTINUE
125 END IF
126 ELSE
127 IF( beta.EQ.zero ) THEN
128 DO 140 j = 1, m
129 DO 130 i = 1, n
130 b( i, j ) = zero
131 130 CONTINUE
132 140 CONTINUE
133 ELSE IF( beta.NE.one ) THEN
134 DO 160 j = 1, m
135 CALL cscal( n, beta, b( 1, j ), 1 )
136
137
138
139 160 CONTINUE
140 END IF
141 END IF
142 ELSE
143 IF( alpha.EQ.one ) THEN
144 IF( beta.EQ.zero ) THEN
145 DO 180 j = 1, m
146 DO 170 i = 1, n
147 b( i, j ) = conjg( a( j, i ) )
148 170 CONTINUE
149 180 CONTINUE
150 ELSE IF( beta.NE.one ) THEN
151 DO 200 j = 1, m
152 DO 190 i = 1, n
153 b( i, j ) = conjg( a( j, i ) ) + beta * b( i, j )
154 190 CONTINUE
155 200 CONTINUE
156 ELSE
157 DO 220 j = 1, m
158 DO 210 i = 1, n
159 b( i, j ) = conjg( a( j, i ) ) + b( i, j )
160 210 CONTINUE
161 220 CONTINUE
162 END IF
163 ELSE IF( alpha.NE.zero ) THEN
164 IF( beta.EQ.zero ) THEN
165 DO 240 j = 1, m
166 DO 230 i = 1, n
167 b( i, j ) = alpha * conjg( a( j, i ) )
168 230 CONTINUE
169 240 CONTINUE
170 ELSE IF( beta.NE.one ) THEN
171 DO 260 j = 1, m
172 DO 250 i = 1, n
173 b( i, j ) = alpha * conjg( a( j, i ) ) +
174 $ beta * b( i, j )
175 250 CONTINUE
176 260 CONTINUE
177 ELSE
178 DO 280 j = 1, m
179 DO 270 i = 1, n
180 b( i, j ) = alpha * conjg( a( j, i ) ) + b( i, j )
181 270 CONTINUE
182 280 CONTINUE
183 END IF
184 ELSE
185 IF( beta.EQ.zero ) THEN
186 DO 300 j = 1, m
187 DO 290 i = 1, n
188 b( i, j ) = zero
189 290 CONTINUE
190 300 CONTINUE
191 ELSE IF( beta.NE.one ) THEN
192 DO 320 j = 1, m
193 CALL cscal( n, beta, b( 1, j ), 1 )
194
195
196
197 320 CONTINUE
198 END IF
199 END IF
200 END IF
201
202 RETURN
203
204
205