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 COMPLEX ONE, ZERO
69 parameter( one = ( 1.0e+0, 0.0e+0 ),
70 $ zero = ( 0.0e+0, 0.0e+0 ) )
71
72
73 INTEGER I, J
74
75
76 EXTERNAL cscal
77
78
79 INTRINSIC conjg
80
81
82
83 IF( beta.EQ.one ) THEN
84 IF( alpha.EQ.zero ) THEN
85 DO 20 j = 1, n
86 DO 10 i = 1, m
87 a( i, j ) = conjg( b( i, j ) )
88 10 CONTINUE
89 20 CONTINUE
90 ELSE IF( alpha.NE.one ) THEN
91 DO 40 j = 1, n
92 DO 30 i = 1, m
93 a( i, j ) = conjg( b( i, j ) ) + alpha * a( i, j )
94 30 CONTINUE
95 40 CONTINUE
96 ELSE
97 DO 60 j = 1, n
98 DO 50 i = 1, m
99 a( i, j ) = conjg( b( i, j ) ) + a( i, j )
100 50 CONTINUE
101 60 CONTINUE
102 END IF
103 ELSE IF( beta.NE.zero ) THEN
104 IF( alpha.EQ.zero ) THEN
105 DO 80 j = 1, n
106 DO 70 i = 1, m
107 a( i, j ) = beta * conjg( b( i, j ) )
108 70 CONTINUE
109 80 CONTINUE
110 ELSE IF( alpha.NE.one ) THEN
111 DO 100 j = 1, n
112 DO 90 i = 1, m
113 a( i, j ) = beta * conjg( b( i, j ) ) +
114 $ alpha * a( i, j )
115 90 CONTINUE
116 100 CONTINUE
117 ELSE
118 DO 120 j = 1, n
119 DO 110 i = 1, m
120 a( i, j ) = beta * conjg( b( i, j ) ) + a( i, j )
121 110 CONTINUE
122 120 CONTINUE
123 END IF
124 ELSE
125 IF( alpha.EQ.zero ) THEN
126 DO 140 j = 1, n
127 DO 130 i = 1, m
128 a( i, j ) = zero
129 130 CONTINUE
130 140 CONTINUE
131 ELSE IF( alpha.NE.one ) THEN
132 DO 160 j = 1, n
133 CALL cscal( m, alpha, a( 1, j ), 1 )
134
135
136
137 160 CONTINUE
138 END IF
139 END IF
140
141 RETURN
142
143
144