SUBROUTINE SROTMG(SD1,SD2,SX1,SY1,SPARAM) SROTMG constructs a modified Givens rotation H and updates the scale factors SD1 and SD2 which zero SY1. The transformed value of SD1 replaces SD1, i.e. On input, SW1 = SQRT(SD1)*SX1, SZ1 = SQRT(SD2)*SY1. On output, ( C S ) (SW1) = (C*SW1 + S*SZ1) = (SQRT(SD1)*SX1) (-S C ) (SZ1) = ( 0 ) = ( 0 ) where C and S define a Givens rotation. H takes the form: SPARAM(1) = -2.0 SPARAM(2) = Unchanged SPARAM(4) = Unchanged SPARAM(3) = Unchanged SPARAM(5) = Unchanged SPARAM(1) = -1.0 SPARAM(2) = H11 SPARAM(4) = H12 SPARAM(3) = H21 SPARAM(5) = H22 SPARAM(1) = 0.0 SPARAM(2) = Unchanged SPARAM(4) = H12 SPARAM(3) = H21 SPARAM(5) = Unchanged SPARAM(1) = 1.0 SPARAM(2) = H11 SPARAM(4) = Unchanged SD1 Input/output, REAL SD1, scale factor. On input, SD1 contains the first scale factor. On output, SD1 contains the updated scale factor. SD2 Input/output, REAL SD2, scale factor. On input, SD2 contains the second scale factor. On output, SD2 contains the updated scale factor. SX1 Input/output, REAL SX1, on input contains the first component of the vector to be rotated and output SX1 contains the rotated value of the first component. SY1 Input, REAL SY1, on input, second component of the vector to be rotated. Since this component is zeroed by the rotation, it is left unchanged in storage. SPARAM Input/output, REAL SPARAM(5), defines the rotation matrix H. See remarks above.