      SUBROUTINE G1(A,B,COS,SIN,SIG)
C
C     C.L.LAWSON AND R.J.HANSON, JET PROPULSION LABORATORY, 1973 JUN 12
C     TO APPEAR IN ^SOLVING LEAST SQUARES PROBLEMS^, PRENTICE HALL, 1974
C
C     COMPUTE ORTHOGONAL ROTAION MATRIX
C     COMPUTE   MATRIX  (C,S) SO THAT (C,S)(A) = (SQRT(A**2+B**2)
C                      (-S,C) SO THAT (-S,C)(B) = (0)
C     COMPUTE SIG = SQRT(A**2+B**2)
C             SIG IS COMPUTED TO ALLOW FOR THE POSSIBILITY THAT
C             SIG MAY BE IN THE SAME LOCATION AS A OR B
C
      IMPLICIT REAL*8(A-H,O-Z)
      IMPLICIT INTEGER(I-N)
C
      ZERO = 0.0
      ONE = 1.0
      IF(ABS(A).LE.ABS(B)) GO TO 10
      XR = B/A
      YR = SQRT(ONE+XR**2)
      COS = SIGN(ONE/YR,A)
      SIN = COS*XR
      SIG = ABS(A)*YR
      RETURN
   10 IF(B) 20,30,20
   20 XR = A/B
      YR = SQRT(ONE+XR**2)
      SIN = SIGN(ONE/YR,B)
      COS = SIN*XR
      SIG = ABS(B)*YR
      RETURN
   30 SIG = ZERO
      COS = ZERO
      SIN = ONE
      RETURN
      END

