1      subroutine crotgf(ca,cb,c,s)
2      complex ca,cb,s
3      real c
4      real norm,scale
5      complex alpha
6      if (cabs(ca) .ne. 0.) go to 10
7         c = 0.
8         s = (1.,0.)
9         ca = cb
10         go to 20
11   10 continue
12         scale = cabs(ca) + cabs(cb)
13         norm = scale * sqrt((cabs(ca/scale))**2 + (cabs(cb/scale))**2)
14         alpha = ca /cabs(ca)
15         c = cabs(ca) / norm
16         s = alpha * conjg(cb) / norm
17         ca = alpha * norm
18   20 continue
19      return
20      end
21