SUBROUTINE DLARTG6( K, L, M, N, CS, SN ) IMPLICIT NONE * * .. Scalar Arguments .. DOUBLE PRECISION K, L, M, N DOUBLE PRECISION CS, SN, R * .. * * ===================================================================== * * .. Parameters .. DOUBLE PRECISION ZERO, ONE, HALF PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0, HALF = 0.5D0 ) * .. * .. Local Scalars .. DOUBLE PRECISION F, G, TMP * .. * .. External Functions .. DOUBLE PRECISION DFMA0 EXTERNAL DFMA0 * .. * .. Executable Statements .. * IF (N .GE. K) THEN TMP = L/N F = DFMA0(TMP,K,M) G = DFMA0(TMP,M,-K) ELSE TMP = M/K F = DFMA0(TMP,N,L) G = DFMA0(TMP,L,-N) ENDIF CALL DLARTG(F,ABS(G),CS,SN,R) SN = SIGN(SN, G) RETURN * * End of DLARTG6 * END