C$ Procedure MA2EA C DOUBLE PRECISION FUNCTION MA2EA ( ECC , MADEG ) C C C******************************************************************************* C C Copyright (C) 1993, California Institute of Technology. U.S. C Government Sponsorhip under NASA Contract NAS7-918 is C acknowledged. C C******************************************************************************* C C$ Purpose C C MA2EA converts mean anomaly to eccentric anomaly using Newton's C Method upon Kelper's Equation. C C$ Input_Arguments C C ECC - the eccentricity C MADEG - the mean anomaly in degrees C C$ Output_Arguments C C MA2EA - function return that is the eccentric anomaly in degrees C C$ Restrictions C C 1- MA2EA is not stable for eccentricity > .965. This routine C will return -999 for ECC > .965. C$ Log C C 17-Feb-1989 - Eric Cannell - creation C C$ Parameters C DOUBLE PRECISION EPS PARAMETER ( EPS = 1.0D-15 ) DOUBLE PRECISION MAXECC PARAMETER ( MAXECC = .965 ) DOUBLE PRECISION PI PARAMETER ( PI = 3. 14159 26535 89793 23846 D0 ) DOUBLE PRECISION D2R PARAMETER ( D2R = PI / 180.0D0 ) C C$ Declarations_of_Input_and_Output_Arguments C DOUBLE PRECISION ECC DOUBLE PRECISION MADEG C C$ Declarations_of_Local_Variables C DOUBLE PRECISION EA DOUBLE PRECISION EANXT DOUBLE PRECISION ERATIO DOUBLE PRECISION MARAD C C$ Method C-& C1 If mean anomaly is zero, then return zero. IF ( MADEG .EQ. 0.0D0 ) THEN MA2EA = 0.0D0 RETURN END IF C1 Check that eccentricity is not greater than MAXECC. IF ( ECC .GT. MAXECC ) THEN MA2EA = -999. RETURN END IF C1 Convert mean anomaly to radians. MARAD = MADEG * D2R C1 Let the initial guess be the value of the mean anomaly. EANXT = MARAD C1 Use Newton's Equation to find the root of 0 = E - esin(E) - M. 901 CONTINUE EA = EANXT EANXT = EA - ( EA - ECC * DSIN( EA ) - MARAD ) & / ( 1.0D0 - ECC * DCOS( EA ) ) ERATIO = DABS( EANXT - EA ) / EA IF ( ERATIO .GT. EPS ) GO TO 901 C1 Return the eccentric anomaly in degrees. MA2EA = EANXT / D2R RETURN END