SUBROUTINE DLAS2U(AJJ, AJK, AKK, SMIN, SMAX) IMPLICIT NONE DOUBLE PRECISION AJJ,AJK,AKK,SMIN,SMAX DOUBLE PRECISION ALPHA, BETA, THETA1, THETA2 DOUBLE PRECISION T, R1, R2 DOUBLE PRECISION CSL,SNL,CSR,SNR DOUBLE PRECISION C0, S0, TMP1, TMP2, TMP3, TMP4 DOUBLE PRECISION ONE, ZERO, HALF, TWO, CONST PARAMETER (ONE = 1.0D0, ZERO = 0.0D0, HALF = 0.5D0, TWO = 2.0D0) EXTERNAL DFMA0 DOUBLE PRECISION DFMA0 IF (AJJ .EQ. ZERO .AND. AJK .EQ. ZERO .AND. AKK .EQ. ZERO) THEN SMIN = ZERO SMAX = ZERO ELSE TMP2 = AJJ TMP3 = AJK TMP4 = AKK ALPHA = ATAN ( TMP3 / ( TMP2 - TMP4 ) ) BETA = ATAN ( TMP3 / ( TMP2 + TMP4 ) ) THETA1 = (ALPHA + BETA) * HALF THETA2 = (ALPHA - BETA) * HALF CSL = COS (THETA1) SNL = SIN (THETA1) CSR = COS (THETA2) SNR = SIN (THETA2) T = CSL + CSR R1 = SNL / T R2 = -SNR / T SMAX = ABS(DFMA0(TMP3,R1,TMP2)) SMIN = ABS(DFMA0(TMP3,R2,TMP4)) IF (SMAX .LT. SMIN) THEN T = SMAX SMAX = SMIN SMIN = T ENDIF ENDIF RETURN END SUBROUTINE DLAS2U