Skip to content

The SGP8 Model

The NORAD mean element sets can be used for prediction with SGP8. All symbols not defined below are defined in the list of symbols in Section Twelve. The original mean motion (non''_o) and semimajor axis (aoa''_o) are first recovered from the input elements by the equations

a1=(keno)23a_1 = \left(\frac{k_e}{n_o}\right)^{\frac{2}{3}}

δ1=32k2a12(3cos2io1)(1eo2)32\delta_1 = \frac{3}{2} \frac{k_2}{a_1^2} \frac{(3\cos^2 i_o - 1)}{(1 - e_o^2)^{\frac{3}{2}}}

ao=a1(113δ1δ1213481δ13)a_o = a_1 \left(1 - \frac{1}{3}\delta_1 - \delta_1^2 - \frac{134}{81}\delta_1^3\right)

δo=32k2ao2(3cos2io1)(1eo2)32\delta_o = \frac{3}{2} \frac{k_2}{a_o^2} \frac{(3\cos^2 i_o - 1)}{(1 - e_o^2)^{\frac{3}{2}}}

no=no1+δon''_o = \frac{n_o}{1 + \delta_o}

ao=ao1δo.a''_o = \frac{a_o}{1 - \delta_o}.

The ballistic coefficient (BB term) is then calculated from the BB^* drag term by

B=2B/ρoB = 2B^*/\rho_o

where

ρo=(2.461×105) XKMPER kg/m2/Earth radii\rho_o = (2.461 \times 10^{-5}) \text{ XKMPER kg/m}^2\text{/Earth radii}

is a reference value of atmospheric density.

Then calculate the constants

β2=1e2\beta^2 = 1 - e^2

θ=cosi\theta = \cos i

M˙1=32nk2a2β3(13θ2)\dot{M}_1 = -\frac{3}{2} \frac{n'' k_2}{a''^2 \beta^3} (1 - 3\theta^2)

ω˙1=32nk2a2β4(15θ2)\dot{\omega}_1 = -\frac{3}{2} \frac{n'' k_2}{a''^2 \beta^4} (1 - 5\theta^2)

Ω˙1=3nk2a2β4θ\dot{\Omega}_1 = -3 \frac{n'' k_2}{a''^2 \beta^4} \theta

M˙2=316nk22a4β7(1378θ2+137θ4)\dot{M}_2 = \frac{3}{16} \frac{n'' k_2^2}{a''^4 \beta^7} (13 - 78\theta^2 + 137\theta^4)

ω˙2=316nk22a4β8(7114θ2+395θ4)+54nk4a4β8(336θ2+49θ4)\dot{\omega}_2 = \frac{3}{16} \frac{n'' k_2^2}{a''^4 \beta^8} (7 - 114\theta^2 + 395\theta^4) + \frac{5}{4} \frac{n'' k_4}{a''^4 \beta^8} (3 - 36\theta^2 + 49\theta^4)

Ω˙2=32nk22a4β8θ(419θ2)+52nk4a4β8θ(37θ2)\dot{\Omega}_2 = \frac{3}{2} \frac{n'' k_2^2}{a''^4 \beta^8} \theta(4 - 19\theta^2) + \frac{5}{2} \frac{n'' k_4}{a''^4 \beta^8} \theta(3 - 7\theta^2)

˙=n+M˙1+M˙2\dot{\ell} = n'' + \dot{M}_1 + \dot{M}_2

ω˙=ω˙1+ω˙2\dot{\omega} = \dot{\omega}_1 + \dot{\omega}_2

Ω˙=Ω˙1+Ω˙2\dot{\Omega} = \dot{\Omega}_1 + \dot{\Omega}_2

ξ=1aβ2s\xi = \frac{1}{a''\beta^2 - s}

η=esξ\eta = es\xi

ψ=1η2\psi = \sqrt{1 - \eta^2}

α2=1+e2\alpha^2 = 1 + e^2

Co=12Bρo(qos)4naξ4α1ψ7C_o = \frac{1}{2} B\rho_o (q_o - s)^4 n'' a'' \xi^4 \alpha^{-1} \psi^{-7}

C1=32nα4CoC_1 = \frac{3}{2} n'' \alpha^4 C_o

D1=ξψ2/aβ2D_1 = \xi\psi^{-2}/a''\beta^2

D2=12+36η2+92η4D_2 = 12 + 36\eta^2 + \frac{9}{2}\eta^4

D3=15η2+52η4D_3 = 15\eta^2 + \frac{5}{2}\eta^4

D4=5η+154η3D_4 = 5\eta + \frac{15}{4}\eta^3

D5=ξψ2D_5 = \xi\psi^{-2}

B1=k2(13θ2)B_1 = -k_2(1 - 3\theta^2)

B2=k2(1θ2)B_2 = -k_2(1 - \theta^2)

B3=A3,0k2siniB_3 = \frac{A_{3,0}}{k_2} \sin i

C2=D1D3B2C_2 = D_1 D_3 B_2

C3=D4D5B3C_3 = D_4 D_5 B_3

n˙o=C1(2+3η2+20eη+5eη3+172e2+34e2η2+D1D2B1+C2cos2ω+C3sinω)\dot{n}_o = C_1 \left(2 + 3\eta^2 + 20e\eta + 5e\eta^3 + \frac{17}{2}e^2 + 34e^2\eta^2 + D_1 D_2 B_1 + C_2 \cos 2\omega + C_3 \sin \omega\right)

C4=D1D7B2C_4 = D_1 D_7 B_2

C5=D5D8B3C_5 = D_5 D_8 B_3

D6=30η+452η3D_6 = 30\eta + \frac{45}{2}\eta^3

D7=5η+252η3D_7 = 5\eta + \frac{25}{2}\eta^3

D8=1+274η2+η4D_8 = 1 + \frac{27}{4}\eta^2 + \eta^4

e˙o=Co(4η+η3+5e+15eη2+312e2η+7e2η3+D1D6B1+C4cos2ω+C5sinω)\dot{e}_o = -C_o \left(4\eta + \eta^3 + 5e + 15e\eta^2 + \frac{31}{2}e^2\eta + 7e^2\eta^3 + D_1 D_6 B_1 + C_4 \cos 2\omega + C_5 \sin \omega\right)

α˙/α=ee˙α2\dot{\alpha}/\alpha = e\dot{e}\alpha^{-2}

C6=13n˙nC_6 = \frac{1}{3} \frac{\dot{n}}{n''}

ξ˙/ξ=2aξ(C6β2+ee˙)\dot{\xi}/\xi = 2a''\xi(C_6\beta^2 + e\dot{e})

η˙=(e˙+eξ˙/ξ)sξ\dot{\eta} = (\dot{e} + e\dot{\xi}/\xi)s\xi

ψ˙/ψ=ηη˙ψ2\dot{\psi}/\psi = -\eta\dot{\eta}\psi^{-2}

C˙o/Co=C6+4ξ˙/ξα˙/α7ψ˙/ψ\dot{C}_o/C_o = C_6 + 4\dot{\xi}/\xi - \dot{\alpha}/\alpha - 7\dot{\psi}/\psi

C˙1/C1=n˙/n+4α˙/α+C˙o/Co\dot{C}_1/C_1 = \dot{n}/n'' + 4\dot{\alpha}/\alpha + \dot{C}_o/C_o

D9=6η+20e+15eη2+68e2ηD_9 = 6\eta + 20e + 15e\eta^2 + 68e^2\eta

D10=20η+5η3+17e+68eη2D_{10} = 20\eta + 5\eta^3 + 17e + 68e\eta^2

D11=72η+18η3D_{11} = 72\eta + 18\eta^3

D12=30η+10η3D_{12} = 30\eta + 10\eta^3

D13=5+454η2D_{13} = 5 + \frac{45}{4}\eta^2

D14=ξ˙/ξ2ψ˙/ψD_{14} = \dot{\xi}/\xi - 2\dot{\psi}/\psi

D15=2(C6+ee˙β2)D_{15} = 2(C_6 + e\dot{e}\beta^{-2})

D˙1=D1(D14+D15)\dot{D}_1 = D_1(D_{14} + D_{15})

D˙2=η˙D11\dot{D}_2 = \dot{\eta}D_{11}

D˙3=η˙D12\dot{D}_3 = \dot{\eta}D_{12}

D˙4=η˙D13\dot{D}_4 = \dot{\eta}D_{13}

D˙5=D5D14\dot{D}_5 = D_5 D_{14}

C˙2=B2(D˙1D3+D1D˙3)\dot{C}_2 = B_2(\dot{D}_1 D_3 + D_1 \dot{D}_3)

C˙3=B3(D˙5D4+D5D˙4)\dot{C}_3 = B_3(\dot{D}_5 D_4 + D_5 \dot{D}_4)

ω˙=32nk2a2β4(15θ2)\dot{\omega} = -\frac{3}{2} \frac{n'' k_2}{a''^2 \beta^4} (1 - 5\theta^2)

D16=D9η˙+D10e˙+B1(D˙1D2+D1D˙2)+C˙2cos2ω+C˙3sinω+ω˙(C3cosω2C2sin2ω)D_{16} = D_9 \dot{\eta} + D_{10} \dot{e} + B_1(\dot{D}_1 D_2 + D_1 \dot{D}_2) + \dot{C}_2 \cos 2\omega + \dot{C}_3 \sin \omega + \dot{\omega}(C_3 \cos \omega - 2C_2 \sin 2\omega)

n¨o=n˙C˙1/C1+C1D16\ddot{n}_o = \dot{n}\dot{C}_1/C_1 + C_1 D_{16}

e¨o=e˙C˙o/CoCo{(4+3η2+30eη+312e2+21e2η2)η˙+(5+15η2+31eη+14eη3)e˙\ddot{e}_o = \dot{e}\dot{C}_o/C_o - C_o \left\{\left(4 + 3\eta^2 + 30e\eta + \frac{31}{2}e^2 + 21e^2\eta^2\right)\dot{\eta} + (5 + 15\eta^2 + 31e\eta + 14e\eta^3)\dot{e}\right.

+B1[D˙1D6+D1η˙(30+1352η2)]+B2[D˙1D7+D1η˙(5+752η2)]cosω\quad + B_1\left[\dot{D}_1 D_6 + D_1 \dot{\eta}\left(30 + \frac{135}{2}\eta^2\right)\right] + B_2\left[\dot{D}_1 D_7 + D_1 \dot{\eta}\left(5 + \frac{75}{2}\eta^2\right)\right]\cos\omega

+B3[D˙5D8+D5ηη˙(272+4η2)]sinω+ω˙(C5cosω2C4sin2ω)}\quad + \left.B_3\left[\dot{D}_5 D_8 + D_5\eta\dot{\eta}\left(\frac{27}{2} + 4\eta^2\right)\right]\sin\omega + \dot{\omega}(C_5 \cos\omega - 2C_4 \sin 2\omega)\right\}

D17=n¨/n(n˙/n)2D_{17} = \ddot{n}/n'' - (\dot{n}/n'')^2

ξ¨/ξ=2(ξ˙/ξC6)ξ˙/ξ+2aξ(13D17β22C6ee˙+e˙2+ee¨)\ddot{\xi}/\xi = 2(\dot{\xi}/\xi - C_6)\dot{\xi}/\xi + 2a''\xi\left(\frac{1}{3}D_{17}\beta^2 - 2C_6 e\dot{e} + \dot{e}^2 + e\ddot{e}\right)

η¨=(e¨+2e˙ξ˙/ξ)sξ+ηξ¨/ξ\ddot{\eta} = (\ddot{e} + 2\dot{e}\dot{\xi}/\xi)s\xi + \eta\ddot{\xi}/\xi

D18=ξ¨/ξ(ξ˙/ξ)2D_{18} = \ddot{\xi}/\xi - (\dot{\xi}/\xi)^2

D19=(ψ˙/ψ)2(1+η2)ηη¨ψ2D_{19} = -(\dot{\psi}/\psi)^2(1 + \eta^{-2}) - \eta\ddot{\eta}\psi^{-2}

D¨1=D˙1(D14+D15)+D1(D182D19+23D17+2α2e˙2β4+2ee¨β2)\ddot{D}_1 = \dot{D}_1(D_{14} + D_{15}) + D_1\left(D_{18} - 2D_{19} + \frac{2}{3}D_{17} + 2\alpha^2\dot{e}^2\beta^{-4} + 2e\ddot{e}\beta^{-2}\right)

n...o=n˙[43D17+3e˙2α2+3ee¨α26(α˙/α)2+4D187D19]\dddot{n}_o = \dot{n}\left[\frac{4}{3}D_{17} + 3\dot{e}^2\alpha^{-2} + 3e\ddot{e}\alpha^{-2} - 6(\dot{\alpha}/\alpha)^2 + 4D_{18} - 7D_{19}\right]

+n¨C˙1/C1+C1{D16C˙1/C1+D9η¨+D10e¨+η˙2(6+30eη+68e2)\quad + \ddot{n}\dot{C}_1/C_1 + C_1\left\{D_{16}\dot{C}_1/C_1 + D_9\ddot{\eta} + D_{10}\ddot{e} + \dot{\eta}^2(6 + 30e\eta + 68e^2)\right.

+η˙e˙(40+30η2+272eη)+e˙2(17+68η2)\quad + \dot{\eta}\dot{e}(40 + 30\eta^2 + 272e\eta) + \dot{e}^2(17 + 68\eta^2)

+B1[D¨1D2+2D˙1D˙2+D1(η¨D11+η˙2(72+54η2))]\quad + B_1[\ddot{D}_1 D_2 + 2\dot{D}_1 \dot{D}_2 + D_1(\ddot{\eta}D_{11} + \dot{\eta}^2(72 + 54\eta^2))]

+B2[D¨1D3+2D˙1D˙3+D1(η¨D12+η˙2(30+30η2))]cos2ω\quad + B_2[\ddot{D}_1 D_3 + 2\dot{D}_1 \dot{D}_3 + D_1(\ddot{\eta}D_{12} + \dot{\eta}^2(30 + 30\eta^2))]\cos 2\omega

+B3[(D˙5D14+D5(D182D19))D4+2D˙4D˙5+D5(η¨D13+452ηη˙2)]sinω\quad + B_3\left[(\dot{D}_5 D_{14} + D_5(D_{18} - 2D_{19}))D_4 + 2\dot{D}_4\dot{D}_5 + D_5\left(\ddot{\eta}D_{13} + \frac{45}{2}\eta\dot{\eta}^2\right)\right]\sin\omega

+ω˙[(7C6+4ee˙β2)(C3cosω2C2sin2ω)+2C3cosω\quad + \dot{\omega}[(7C_6 + 4e\dot{e}\beta^{-2})(C_3 \cos\omega - 2C_2 \sin 2\omega) + 2C_3 \cos\omega

4C2sin2ωω˙(C3sinω+4C2cos2ω)]}\quad\left. - 4C_2 \sin 2\omega - \dot{\omega}(C_3 \sin\omega + 4C_2 \cos 2\omega)]\right\}

p=2n¨o2n˙on...on¨o2n˙on...op = \frac{2\ddot{n}_o^2 - \dot{n}_o\,\dddot{n}_o}{\ddot{n}_o^2 - \dot{n}_o\,\dddot{n}_o}

γ=n...on¨o1(p2)\gamma = -\frac{\dddot{n}_o}{\ddot{n}_o}\frac{1}{(p - 2)}

nD=n˙opγn_D = \frac{\dot{n}_o}{p\gamma}

q=1e¨oe˙oγq = 1 - \frac{\ddot{e}_o}{\dot{e}_o \gamma}

eD=e˙oqγe_D = \frac{\dot{e}_o}{q\gamma}

where all quantities are epoch values.

The secular effects of atmospheric drag and gravitation are included by

n=no+nD[1(1γ(tto))p]n = n''_o + n_D[1 - (1 - \gamma(t - t_o))^p]

e=eo+eD[1(1γ(tto))q]e = e_o + e_D[1 - (1 - \gamma(t - t_o))^q]

ω=ωo+ω˙1[(tto)+731noZ1]+ω˙2(tto)\omega = \omega_o + \dot{\omega}_1\left[(t - t_o) + \frac{7}{3}\frac{1}{n''_o}Z_1\right] + \dot{\omega}_2(t - t_o)

Ω=Ωo+Ω˙1[(tto)+731noZ1]+Ω˙2(tto)\Omega = \Omega''_o + \dot{\Omega}_1\left[(t - t_o) + \frac{7}{3}\frac{1}{n''_o}Z_1\right] + \dot{\Omega}_2(t - t_o)

M=Mo+no(tto)+Z1+M˙1[(tto)+731noZ1]+M˙2(tto)M = M_o + n''_o(t - t_o) + Z_1 + \dot{M}_1\left[(t - t_o) + \frac{7}{3}\frac{1}{n''_o}Z_1\right] + \dot{M}_2(t - t_o)

where

Z1=n˙opγ{(tto)+1γ(p+1)[(1γ(tto))p+11]}.Z_1 = \frac{\dot{n}_o}{p\gamma}\left\{(t - t_o) + \frac{1}{\gamma(p + 1)}[(1 - \gamma(t - t_o))^{p+1} - 1]\right\}.

If drag is very small (n˙no\frac{\dot{n}}{n''_o} less than 1.5×1061.5 \times 10^{-6}/min) then the secular equations for nn, ee, and Z1Z_1 should be replaced by

n=no+n˙(tto)n = n''_o + \dot{n}(t - t_o)

e=eo+e˙(tto)e = e''_o + \dot{e}(t - t_o)

Z1=12n˙o(tto)2Z_1 = \frac{1}{2}\dot{n}_o(t - t_o)^2

where (tto)(t - t_o) is time since epoch and where

e˙=23n˙ono(1eo).\dot{e} = -\frac{2}{3}\frac{\dot{n}_o}{n''_o}(1 - e_o).

Solve Kepler’s equation for EE by using the iteration equation

Ei+1=Ei+ΔEiE_{i+1} = E_i + \Delta E_i

with

ΔEi=M+esinEiEi1ecosEi\Delta E_i = \frac{M + e\sin E_i - E_i}{1 - e\cos E_i}

and

E1=M+esinM+12e2sin2M.E_1 = M + e\sin M + \frac{1}{2}e^2\sin 2M.

The following equations are used to calculate preliminary quantities needed for the short-period periodics.

a=(ken)23a = \left(\frac{k_e}{n}\right)^{\frac{2}{3}}

β=(1e2)12\beta = (1 - e^2)^{\frac{1}{2}}

sinf=βsinE1ecosE\sin f = \frac{\beta\sin E}{1 - e\cos E}

cosf=cosEe1ecosE\cos f = \frac{\cos E - e}{1 - e\cos E}

u=f+ωu = f + \omega

r=aβ21+ecosfr'' = \frac{a\beta^2}{1 + e\cos f}

r˙=naeβsinf\dot{r}'' = \frac{nae}{\beta}\sin f

(rf˙)=na2βr(r\dot{f})'' = \frac{na^2\beta}{r}

δr=12k2aβ2[(1θ2)cos2u+3(13θ2)]14A3,0k2siniosinu\delta r = \frac{1}{2}\frac{k_2}{a\beta^2}[(1 - \theta^2)\cos 2u + 3(1 - 3\theta^2)] - \frac{1}{4}\frac{A_{3,0}}{k_2}\sin i_o \sin u

δr˙=n(ar)2[k2aβ2(1θ2)sin2u+14A3,0k2siniocosu]\delta\dot{r} = -n\left(\frac{a}{r}\right)^2\left[\frac{k_2}{a\beta^2}(1 - \theta^2)\sin 2u + \frac{1}{4}\frac{A_{3,0}}{k_2}\sin i_o \cos u\right]

δI=θ[32k2a2β4siniocos2u14A3,0k2aβ2esinω]\delta I = \theta\left[\frac{3}{2}\frac{k_2}{a^2\beta^4}\sin i_o \cos 2u - \frac{1}{4}\frac{A_{3,0}}{k_2 a\beta^2}e\sin\omega\right]

δ(rf˙)=n(ar)2δr+na(ar)sinioθδI\delta(r\dot{f}) = -n\left(\frac{a}{r}\right)^2\delta r + na\left(\frac{a}{r}\right)\frac{\sin i_o}{\theta}\delta I

δu=12k2a2β4[12(17θ2)sin2u3(15θ2)(fM+esinf)]\delta u = \frac{1}{2}\frac{k_2}{a^2\beta^4}\left[\frac{1}{2}(1 - 7\theta^2)\sin 2u - 3(1 - 5\theta^2)(f - M + e\sin f)\right]

14A3,0k2aβ2[siniocosu(2+ecosf)+12θ2sinio/2  cosio/2ecosω]\quad - \frac{1}{4}\frac{A_{3,0}}{k_2 a\beta^2}\left[\sin i_o \cos u(2 + e\cos f) + \frac{1}{2}\frac{\theta^2}{\sin i_o/2\;\cos i_o/2}e\cos\omega\right]

δλ=12k2a2β4[12(1+6θ7θ2)sin2u3(1+2θ5θ2)(fM+esinf)]\delta\lambda = \frac{1}{2}\frac{k_2}{a^2\beta^4}\left[\frac{1}{2}(1 + 6\theta - 7\theta^2)\sin 2u - 3(1 + 2\theta - 5\theta^2)(f - M + e\sin f)\right]

+14A3,0k2aβ2sinio[eθ1+θcosω(2+ecosf)cosu]\quad + \frac{1}{4}\frac{A_{3,0}}{k_2 a\beta^2}\sin i_o\left[\frac{e\theta}{1 + \theta}\cos\omega - (2 + e\cos f)\cos u\right]

The short-period periodics are added to give the osculating quantities

r=r+δrr = r'' + \delta r

r˙=r˙+δr˙\dot{r} = \dot{r}'' + \delta\dot{r}

rf˙=(rf˙)+δ(rf˙)r\dot{f} = (r\dot{f})'' + \delta(r\dot{f})

y4=sinio2sinu+cosusinio2δu+12sinucosio2δIy_4 = \sin\frac{i_o}{2}\sin u + \cos u\sin\frac{i_o}{2}\delta u + \frac{1}{2}\sin u\cos\frac{i_o}{2}\delta I

y5=sinio2cosusinusinio2δu+12cosucosio2δIy_5 = \sin\frac{i_o}{2}\cos u - \sin u\sin\frac{i_o}{2}\delta u + \frac{1}{2}\cos u\cos\frac{i_o}{2}\delta I

λ=u+Ω+δλ.\lambda = u + \Omega + \delta\lambda.

Unit orientation vectors are calculated by

Ux=2y4(y5sinλy4cosλ)+cosλU_x = 2y_4(y_5\sin\lambda - y_4\cos\lambda) + \cos\lambda

Uy=2y4(y5cosλ+y4sinλ)+sinλU_y = -2y_4(y_5\cos\lambda + y_4\sin\lambda) + \sin\lambda

Uz=2y4cosI2U_z = 2y_4\cos\frac{I}{2}

Vx=2y5(y5sinλy4cosλ)sinλV_x = 2y_5(y_5\sin\lambda - y_4\cos\lambda) - \sin\lambda

Vy=2y5(y5cosλ+y4sinλ)+cosλV_y = -2y_5(y_5\cos\lambda + y_4\sin\lambda) + \cos\lambda

Vz=2y5cosI2V_z = 2y_5\cos\frac{I}{2}

where

cosI2=1y42y52.\cos\frac{I}{2} = \sqrt{1 - y_4^2 - y_5^2}.

Position and velocity are given by

r=rU\mathbf{r} = r\mathbf{U}

r˙=r˙U+rf˙V.\dot{\mathbf{r}} = \dot{r}\mathbf{U} + r\dot{f}\mathbf{V}.

A FORTRAN IV computer code listing of the subroutine SGP8 is given below.


* SGP8 14 NOV 80
SUBROUTINE SGP8(IFLAG,TSINCE)
COMMON/E1/XMO,XNODEO,OMEGAO,EO,XINCL,XNO,XNDT2O,
1 XNDD6O,BSTAR,X,Y,Z,XDOT,YDOT,ZDOT,EPOCH,DS50
COMMON/C1/CK2,CK4,E6A,QOMS2T,S,TOTHRD,
1 XJ3,XKE,XKMPER,XMNPDA,AE
DOUBLE PRECISION EPOCH, DS50
DATA RHO/.15696615/
IF (IFLAG .EQ. 0) GO TO 100
* RECOVER ORIGINAL MEAN MOTION (XNODP) AND SEMIMAJOR AXIS (AODP)
* FROM INPUT ELEMENTS --------- CALCULATE BALLISTIC COEFFICIENT
* (B TERM) FROM INPUT B* DRAG TERM
A1=(XKE/XNO)**TOTHRD
COSI=COS(XINCL)
THETA2=COSI*COSI
TTHMUN=3.*THETA2-1.
EOSQ=EO*EO
BETAO2=1.-EOSQ
BETAO=SQRT(BETAO2)
DEL1=1.5*CK2*TTHMUN/(A1*A1*BETAO*BETAO2)
AO=A1*(1.-DEL1*(.5*TOTHRD+DEL1*(1.+134./81.*DEL1)))
DELO=1.5*CK2*TTHMUN/(AO*AO*BETAO*BETAO2)
AODP=AO/(1.-DELO)
XNODP=XNO/(1.+DELO)
B=2.*BSTAR/RHO
* INITIALIZATION
ISIMP=0
PO=AODP*BETAO2
POM2=1./(PO*PO)
SINI=SIN(XINCL)
SING=SIN(OMEGAO)
COSG=COS(OMEGAO)
TEMP=.5*XINCL
SINIO2=SIN(TEMP)
COSIO2=COS(TEMP)
THETA4=THETA2**2
UNM5TH=1.-5.*THETA2
UNMTH2=1.-THETA2
A3COF=-XJ3/CK2*AE**3
PARDT1=3.*CK2*POM2*XNODP
PARDT2=PARDT1*CK2*POM2
PARDT4=1.25*CK4*POM2*POM2*XNODP
XMDT1=.5*PARDT1*BETAO*TTHMUN
XGDT1=-.5*PARDT1*UNM5TH
XHDT1=-PARDT1*COSI
XLLDOT=XNODP+XMDT1+
2 .0625*PARDT2*BETAO*(13.-78.*THETA2+137.*THETA4)
OMGDT=XGDT1+
1 .0625*PARDT2*(7.-114.*THETA2+395.*THETA4)+PARDT4*(3.-36.*
2 THETA2+49.*THETA4)
XNODOT=XHDT1+
1 (.5*PARDT2*(4.-19.*THETA2)+2.*PARDT4*(3.-7.*THETA2))*COSI
TSI=1./(PO-S)
ETA=EO*S*TSI
ETA2=ETA**2
PSIM2=ABS(1./(1.-ETA2))
ALPHA2=1.+EOSQ
EETA=EO*ETA
COS2G=2.*COSG**2-1.
D5=TSI*PSIM2
D1=D5/PO
D2=12.+ETA2*(36.+4.5*ETA2)
D3=ETA2*(15.+2.5*ETA2)
D4=ETA*(5.+3.75*ETA2)
B1=CK2*TTHMUN
B2=-CK2*UNMTH2
B3=A3COF*SINI
C0=.5*B*RHO*QOMS2T*XNODP*AODP*TSI**4*PSIM2**3.5/SQRT(ALPHA2)
C1=1.5*XNODP*ALPHA2**2*C0
C4=D1*D3*B2
C5=D5*D4*B3
XNDT=C1*(
1 (2.+ETA2*(3.+34.*EOSQ)+5.*EETA*(4.+ETA2)+8.5*EOSQ)+
1 D1*D2*B1+ C4*COS2G+C5*SING)
XNDTN=XNDT/XNODP
* IF DRAG IS VERY SMALL, THE ISIMP FLAG IS SET AND THE
* EQUATIONS ARE TRUNCATED TO LINEAR VARIATION IN MEAN
* MOTION AND QUADRATIC VARIATION IN MEAN ANOMALY
IF(ABS(XNDTN*XMNPDA) .LT. 2.16E-3) GO TO 50
D6=ETA*(30.+22.5*ETA2)
D7=ETA*(5.+12.5*ETA2)
D8=1.+ETA2*(6.75+ETA2)
C8=D1*D7*B2
C9=D5*D8*B3
EDOT=-C0*(
1 ETA*(4.+ETA2+EOSQ*(15.5+7.*ETA2))+EO*(5.+15.*ETA2)+
1 D1*D6*B1 +
1 C8*COS2G+C9*SING)
D20=.5*TOTHRD*XNDTN
ALDTAL=EO*EDOT/ALPHA2
TSDTTS=2.*AODP*TSI*(D20*BETAO2+EO*EDOT)
ETDT=(EDOT+EO*TSDTTS)*TSI*S
PSDTPS=-ETA*ETDT*PSIM2
SIN2G=2.*SING*COSG
C0DTC0=D20+4.*TSDTTS-ALDTAL-7.*PSDTPS
C1DTC1=XNDTN+4.*ALDTAL+C0DTC0
D9=ETA*(6.+68.*EOSQ)+EO*(20.+15.*ETA2)
D10=5.*ETA*(4.+ETA2)+EO*(17.+68.*ETA2)
D11=ETA*(72.+18.*ETA2)
D12=ETA*(30.+10.*ETA2)
D13=5.+11.25*ETA2
D14=TSDTTS-2.*PSDTPS
D15=2.*(D20+EO*EDOT/BETAO2)
D1DT=D1*(D14+D15)
D2DT=ETDT*D11
D3DT=ETDT*D12
D4DT=ETDT*D13
D5DT=D5*D14
C4DT=B2*(D1DT*D3+D1*D3DT)
C5DT=B3*(D5DT*D4+D5*D4DT)
D16=
1 D9*ETDT+D10*EDOT +
1 B1*(D1DT*D2+D1*D2DT) +
1 C4DT*COS2G+C5DT*SING+XGDT1*(C5*COSG-2.*C4*SIN2G)
XNDDT=C1DTC1*XNDT+C1*D16
EDDOT=C0DTC0*EDOT-C0*(
1 (4.+3.*ETA2+30.*EETA+EOSQ*(15.5+21.*ETA2))*ETDT+(5.+15.*ETA2
' +EETA*(31.+14.*ETA2))*EDOT +
1 B1*(D1DT*D6+D1*ETDT*(30.+67.5*ETA2)) +
1 B2*(D1DT*D7+D1*ETDT*(5.+37.5*ETA2))*COS2G+
1 B3*(D5DT*D8+D5*ETDT*ETA*(13.5+4.*ETA2))*SING+XGDT1*(C9*
' COSG-2.*C8*SIN2G))
D25=EDOT**2
D17=XNDDT/XNODP-XNDTN**2
TSDDTS=2.*TSDTTS*(TSDTTS-D20)+AODP*TSI*(TOTHRD*BETAO2*D17-4.*D20*
' EO*EDOT+2.*(D25+EO*EDDOT))
ETDDT =(EDDOT+2.*EDOT*TSDTTS)*TSI*S+TSDDTS*ETA
D18=TSDDTS-TSDTTS**2
D19=-PSDTPS**2/ETA2-ETA*ETDDT*PSIM2-PSDTPS**2
D23=ETDT*ETDT
D1DDT=D1DT*(D14+D15)+D1*(D18-2.*D19+TOTHRD*D17+2.*(ALPHA2*D25
' /BETAO2+EO*EDDOT)/BETAO2)
XNTRDT=XNDT*(2.*TOTHRD*D17+3.*
1 (D25+EO*EDDOT)/ALPHA2-6.*ALDTAL**2 +
1 4.*D18-7.*D19 ) +
1 C1DTC1*XNDDT+C1*(C1DTC1*D16+
1 D9*ETDDT+D10*EDDOT+D23*(6.+30.*EETA+68.*EOSQ)+
1 ETDT*EDOT*(40.+30.*
' ETA2+272.*EETA)+D25*(17.+68.*ETA2) +
1 B1*(D1DDT*D2+2.*D1DT*D2DT+D1*(ETDDT*D11+D23*(72.+54.*ETA2))) +
1 B2*(D1DDT*D3+2.*D1DT*D3DT+D1*(ETDDT*D12+D23*(30.+30.*ETA2))) *
1 COS2G+
1 B3*((D5DT*D14+D5*(D18-2.*D19)) *
1 D4+2.*D4DT*D5DT+D5*(ETDDT*D13+22.5*ETA*D23)) *SING+XGDT1*
1 ((7.*D20+4.*EO*EDOT/BETAO2)*
' (C5*COSG-2.*C4*SIN2G)
' +((2.*C5DT*COSG-4.*C4DT*SIN2G)-XGDT1*(C5*SING+4.*
' C4*COS2G))))
TMNDDT=XNDDT*1.E9
TEMP=TMNDDT**2-XNDT*1.E18*XNTRDT
PP=(TEMP+TMNDDT**2)/TEMP
GAMMA=-XNTRDT/(XNDDT*(PP-2.))
XND=XNDT/(PP*GAMMA)
QQ=1.-EDDOT/(EDOT*GAMMA)
ED=EDOT/(QQ*GAMMA)
OVGPP=1./(GAMMA*(PP+1.))
GO TO 70
50 ISIMP=1
EDOT=-TOTHRD*XNDTN*(1.-EO)
70 IFLAG=0
* UPDATE FOR SECULAR GRAVITY AND ATMOSPHERIC DRAG
100 XMAM=FMOD2P(XMO+XLLDOT*TSINCE)
OMGASM=OMEGAO+OMGDT*TSINCE
XNODES=XNODEO+XNODOT*TSINCE
IF(ISIMP .EQ. 1) GO TO 105
TEMP=1.-GAMMA*TSINCE
TEMP1=TEMP**PP
XN=XNODP+XND*(1.-TEMP1)
EM=EO+ED*(1.-TEMP**QQ)
Z1=XND*(TSINCE+OVGPP*(TEMP*TEMP1-1.))
GO TO 108
105 XN=XNODP+XNDT*TSINCE
EM=EO+EDOT*TSINCE
Z1=.5*XNDT*TSINCE*TSINCE
108 Z7=3.5*TOTHRD*Z1/XNODP
XMAM=FMOD2P(XMAM+Z1+Z7*XMDT1)
OMGASM=OMGASM+Z7*XGDT1
XNODES=XNODES+Z7*XHDT1
* SOLVE KEPLERS EQUATION
ZC2=XMAM+EM*SIN(XMAM)*(1.+EM*COS(XMAM))
DO 130 I=1,10
SINE=SIN(ZC2)
COSE=COS(ZC2)
ZC5=1./(1.-EM*COSE)
CAPE=(XMAM+EM*SINE-ZC2)*
1 ZC5+ZC2
IF(ABS(CAPE-ZC2) .LE. E6A) GO TO 140
130 ZC2=CAPE
* SHORT PERIOD PRELIMINARY QUANTITIES
140 AM=(XKE/XN)**TOTHRD
BETA2M=1.-EM*EM
SINOS=SIN(OMGASM)
COSOS=COS(OMGASM)
AXNM=EM*COSOS
AYNM=EM*SINOS
PM=AM*BETA2M
G1=1./PM
G2=.5*CK2*G1
G3=G2*G1
BETA=SQRT(BETA2M)
G4=.25*A3COF*SINI
G5=.25*A3COF*G1
SNF=BETA*SINE*ZC5
CSF=(COSE-EM)*ZC5
FM=ACTAN(SNF,CSF)
SNFG=SNF*COSOS+CSF*SINOS
CSFG=CSF*COSOS-SNF*SINOS
SN2F2G=2.*SNFG*CSFG
CS2F2G=2.*CSFG**2-1.
ECOSF=EM*CSF
G10=FM-XMAM+EM*SNF
RM=PM/(1.+ECOSF)
AOVR=AM/RM
G13=XN*AOVR
G14=-G13*AOVR
DR=G2*(UNMTH2*CS2F2G-3.*TTHMUN)-G4*SNFG
DIWC=3.*G3*SINI*CS2F2G-G5*AYNM
DI=DIWC*COSI
* UPDATE FOR SHORT PERIOD PERIODICS
SNI2DU=SINIO2*(
1 G3*(.5*(1.-7.*THETA2)*SN2F2G-3.*UNM5TH*G10)-G5*SINI*CSFG*(2.+
2 ECOSF))-.5*G5*THETA2*AXNM/COSIO2
XLAMB=FM+OMGASM+XNODES+G3*(.5*(1.+6.*COSI-7.*THETA2)*SN2F2G-3.*
1 (UNM5TH+2.*COSI)*G10)+G5*SINI*(COSI*AXNM/(1.+COSI)-(2.
2 +ECOSF)*CSFG)
Y4=SINIO2*SNFG+CSFG*SNI2DU+.5*SNFG*COSIO2*DI
Y5=SINIO2*CSFG-SNFG*SNI2DU+.5*CSFG*COSIO2*DI
R=RM+DR
RDOT=XN*AM*EM*SNF/BETA+G14*(2.*G2*UNMTH2*SN2F2G+G4*CSFG)
RVDOT=XN*AM**2*BETA/RM+
1 G14*DR+AM*G13*SINI*DIWC
* ORIENTATION VECTORS
SNLAMB=SIN(XLAMB)
CSLAMB=COS(XLAMB)
TEMP=2.*(Y5*SNLAMB-Y4*CSLAMB)
UX=Y4*TEMP+CSLAMB
VX=Y5*TEMP-SNLAMB
TEMP=2.*(Y5*CSLAMB+Y4*SNLAMB)
UY=-Y4*TEMP+SNLAMB
VY=-Y5*TEMP+CSLAMB
TEMP=2.*SQRT(1.-Y4*Y4-Y5*Y5)
UZ=Y4*TEMP
VZ=Y5*TEMP
* POSITION AND VELOCITY
X=R*UX
Y=R*UY
Z=R*UZ
XDOT=RDOT*UX+RVDOT*VX
YDOT=RDOT*UY+RVDOT*VY
ZDOT=RDOT*UZ+RVDOT*VZ
RETURN
END