home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / linpack / srotg.for < prev    next >
Text File  |  1984-01-06  |  644b  |  27 lines

  1.       SUBROUTINE SROTG(SA,SB,C,S)
  2. C
  3. C     CONSTRUCT GIVENS PLANE ROTATION.
  4. C     JACK DONGARRA, LINPACK, 3/11/78.
  5. C
  6.       REAL SA,SB,C,S,ROE,SCALE,R,Z
  7. C
  8.       ROE = SB
  9.       IF( ABS(SA) .GT. ABS(SB) ) ROE = SA
  10.       SCALE = ABS(SA) + ABS(SB)
  11.       IF( SCALE .NE. 0.0 ) GO TO 10
  12.          C = 1.0
  13.          S = 0.0
  14.          R = 0.0
  15.          GO TO 20
  16.    10 R = SCALE*SQRT((SA/SCALE)**2 + (SB/SCALE)**2)
  17.       R = SIGN(1.0,ROE)*R
  18.       C = SA/R
  19.       S = SB/R
  20.    20 Z = 1.0
  21.       IF( ABS(SA) .GT. ABS(SB) ) Z = S
  22.       IF( ABS(SB) .GE. ABS(SA) .AND. C .NE. 0.0 ) Z = 1.0/C
  23.       SA = R
  24.       SB = Z
  25.       RETURN
  26.       END
  27.