Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.stsci.edu/~jordan/other/ao_orbit_30.nb.gz
Дата изменения: Thu Apr 26 04:22:19 2001
Дата индексирования: Tue Oct 2 14:17:30 2012
Кодировка:
(***********************************************************************

Mathematica-Compatible Notebook

This notebook can be used on any computer system with Mathematica 3.0,
MathReader 3.0, or any compatible application. The data for the notebook
starts with the line of stars above.

To get the notebook into a Mathematica-compatible application, do one of
the following:

* Save the data starting with the line of stars above into a file
with a name ending in .nb, then open the file inside the application;

* Copy the data starting with the line of stars above to the
clipboard, then use the Paste menu command inside the application.

Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode. Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).

NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing the
word CacheID, otherwise Mathematica-compatible applications may try to
use invalid cache data.

For more information on notebooks and Mathematica-compatible
applications, contact Wolfram Research:
web: http://www.wolfram.com
email: info@wolfram.com
phone: +1-217-398-0700 (U.S.)

Notebook reader applications are available free of charge from
Wolfram Research.
***********************************************************************)

(*CacheID: 232*)


(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[ 732320, 19787]*)
(*NotebookOutlinePosition[ 733269, 19818]*)
(* CellTagsIndexPosition[ 733225, 19814]*)
(*WindowFrame->Normal*)



Notebook[{

Cell[CellGroupData[{
Cell["Orbital Influence on Atomic Oxygen Fluence", "Title"],

Cell["\<\
Mathematica model of the Jacchia Thermosphere/Exosphere Model which \
determines the integrated fluence of Atomic Oxygen.
\t\
\>", "Text"],

Cell[BoxData[
\(Basic\ Setup\ of\ the\ equations\ which\ govern\ the\ model\)], "Input",\

Evaluatable->False],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Fixed Constants:", "Section"]], "Text",
CellFrame->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[0.849989]],

Cell[BoxData[
\(\(\(amu = 1.66*10\^\(-24\);
\)\ (*\ grams/atomic - mass - unit\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(g0 = 9.80665; \)\ (*\ \(metres/second\)/second\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(bigR0 = 6356.766; \)\ (*\ kilometres\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(avogadro = 6.02257*10^23; \)\ (*\ #/mole\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(k = 1.380658*10^\(-23\); \)\ (*\ Joules/Kelvin\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(kJ = \ k*avogadro; \)\ (*\ \(Joules/Kelvin\)/mole\ *) \)\)],
"Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(ai = 0; \)\ (*\ ' ai'\ is\ the\ diffusion\ constant\ *) \)\)],
"Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(rEq = 6378.14;
\)\ (*\ ' rEq'\ is\ the\ exospheric\ \(temperature . \)\ *) \)\)],
"Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(rPo = 6356.785; \)\ (*\ polar\ radius\ km\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(elliptEarth = 0.08182; \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(ecclipticIncl = 23.45;
\)\ (*\ obliquity\ of\ the\ ecliptic, \ degrees\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(bigG = 6.67259*10^\(-11\); \)\ (*\ mks\ units\ *) \)\)], "Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]],

Cell[BoxData[
\(\(\(massEa = 5.9742*10^24; \)\ (*\ earth\ mass\ in\ kg\ *) \)\)],
"Input",
CellFrame->True,
InitializationCell->True,
TextAlignment->Left,
TextJustification->0.25,
Background->GrayLevel[1]]
}, Open ]],

Cell[CellGroupData[{

Cell["Jacchia Model Constants:", "Subsubtitle"],

Cell[BoxData[
\(\(\(T0 = 183;
\)\ (*\ , \
\(' T0'\ is\ the\ temperature\ at\ the\ reference\ altitude\ '
\(z0' . \)\)\ *) \)\)], "Input",
InitializationCell->True],

Cell["\<\
'mu' is a fixed constant, along with 'lambda', 'temp1' and 'temp2' \
are fitting Temperature parameters.\
\>", "Text"],

Cell[BoxData[
\(\(\(z0 = 90000;
\)\ (*\ altitude\ of\ start\ of\ Jaccchia\ \(model . \)\ *) \)\)],
"Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(rho0 = 3.46*10\^\(-9\);
\)\ \ (*\
density\ at\ reference\ altitude\ of\ 90\ km\ in\ grams/cubic\
centimetre\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(mj = 2.5; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(nj = 3.0; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(\[Beta] = \(-37.0\); \)\ (*\ degrees\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(pj = 6.0; \)\ (*\ degrees\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(\[Gamma] = 43.0; \)\ (*\ degrees\ *) \)\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell["Julian Day calculation:", "Subsection"],

Cell["\<\
We define a junction JD which returns the Julian date given the \
inputs year, month, day, and UT hour. the Julian Day function is called by \
JD[YYYY,MO,DD,HR.HR]\
\>", "Text"],

Cell[BoxData[
\(\(bigYY := 1969; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(bigMM := 1; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(bigDD := 20; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(bigUT := 19.18; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(LittleMonth[x_] := If[x <= 2, x + 12, x]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(LittleY[y_, x_] := If[x <= 2, y - 1, y]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(B[x_] := IntegerPart[x/400] - IntegerPart[x/100]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(JD[a_, b_, c_, d_] :=
IntegerPart[365.25\ LittleY[a, b]] +
IntegerPart[30.6001\ \((LittleMonth[b] + 1)\)] + B[a] + 1720996.5 +
c + d/24\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(JDstart := JD[bigYY, bigMM, bigDD, bigUT]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(doy := JD[bigYY, bigMM, bigDD, bigUT] - JD[bigYY, 1, 0, 0]\)], "Input",
InitializationCell->True]
}, Open ]],

Cell[CellGroupData[{

Cell["Orbital Elements", "Section"],

Cell[BoxData[
\(\(\(hp\ = 300;
\)\ (*\ perigee\ above\ spherical\ earth\ \((equator)\), \ km\ *) \)\)],
"Input",
InitializationCell->True],

Cell[BoxData[
\(\(ha = 348; \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(io = 45;
\)\ (*\ inclination\ of\ the\ orbit\ in\ degrees\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(\[Omega] = 140;
\)\ (*\ ascending\ node\ - \
periapsis\ \((degrees)\)\ in\ plane\ of\ \(orbit . \)\ *) \)\)],
"Input",
InitializationCell->True],

Cell[BoxData[
\(\(\(\[CapitalOmega] = 167.5;
\)\ (*\ ascending\ node\ crossing\ \((degrees)\)\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(a := \(2*rEq + ha + hp\)\/2\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\
semimajor\ axis\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(period :=
2*Pi*\@\(\((1000*a)\)\^3\/\(massEa*bigG\)\)\ \ \ \ \ \ \ \ \ \ \ (*\
period\ in\ seconds\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(eccenOrb := 1 - \(rEq + hp\)\/a\ \ \ \ \ \ \ \ (*\
eccentricity\ of\ the\ orbit\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(eccAnomANC :=
2*ArcTan[Sqrt[\(1 + eccenOrb\)\/\(1 - eccenOrb\)]*
Tan[\(\[Omega]*Pi\)\/\(2*180\)]]\ \ \ \ \ \ \ \ \ (*\
eccentric\ anomaly\ in\ radians\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(meanAnomANC :=
eccAnomANC - eccenOrb*Sin[eccAnomANC]\ \ \ \ \ \ \ \ (*\
mean\ anomaly\ in\ radians\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(nmean := 2*Pi/period\ \ \ \ \ \ \ \ \ (*\
mean\ motion\ in\ radians/second\ *) \)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(timePeriANC := meanAnomANC/nmean\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(decSol :=
ecclipticIncl*
Sin[\(2*Pi \((doy - 81 + bigUT/24)\)\)\/\((365.242)\)]
\ \ \ \ \ \ \ \ (*\
This\ is\ an\ approximation\ for\ the\ declination\ of\ the\
\(sun . \)\ *) \)\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(Timing[{period, a, meanAnomANC, timePeriANC, decSol}]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(TraditionalForm
\`{0.`\ Second, {5460.2561002593557`, 6702.13999999999998`,
2.44346411799743812`, 2123.43567852677628`,
\(-20.0049100741932672`\)}}\)], "Output"]
}, Open ]]
}, Open ]],

Cell[CellGroupData[{

Cell["\<\
Environment Data
\
\>", "Section"],

Cell[BoxData[
\(\(F\_10.7\%0\)\&_ := 136\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(F\_10.7\%75\)\&_ := 155\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(\(F\_10.7\%400\)\&_ := 138.5\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(bigKp := 2.35\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(tempSubC :=
383 + 3.32*\(F\_10.7\%75\)\&_ +
1.8*\((\(F\_10.7\%0\)\&_ - \(F\_10.7\%75\)\&_)\)\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(r := \(-0.19\) + Log[10, \(F\_10.7\%400\)\&_]\/4\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(Timing[{r, tempSubC}]\)], "Input",
InitializationCell->True],

Cell[BoxData[
\(TraditionalForm
\`{0.`\ Second, {0.345362443350116743`, 863.400000000000034`}}\)],
"Output"]
}, Open ]]
}, Open ]],

Cell[CellGroupData[{

Cell["Function Definitions.", "Section"],

Cell[BoxData[
\(LittleROrb[y_] :=
\(a*\((1 - eccenOrb\^2)\)\)\/\(1 + eccenOrb*Cos[Pi*y/180]\)\)], "Input",\

InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(Timing[Do[u = N[CompLittleROrb[j]], {j, 1, 1000}]]\)], "Input"],

Cell[BoxData[
\(TraditionalForm\`{0.380000000000052295`\ Second, Null}\)], "Output"]
}, Open ]],

Cell[CellGroupData[{

Cell[BoxData[
\(CompLittleROrb = \
Compile[{dummy},
\(a*\((1 - eccenOrb\^2)\)\)\/\(1 + eccenOrb*Cos[Pi*trueAnom/180]\)]
\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\(a\ \((1 - eccenOrb\^2)\)\)\/\(eccenOrb\
\(cos(\(\[Pi]\ trueAnom\)\/180)\) + 1\), "-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
distance from the earth center (same units as a)as a function of \
true anomaly.\
\>", "Text"],

Cell[BoxData[
\(AltiSpher[y_] := LittleROrb[y] - rEq\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompAltiSpher = Compile[{dummy}, littlerorbCon - rEq]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy}, littlerorbCon - rEq, "-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
altitude above a spherical earth (equatorial radius) as function of \
true anomaly.\
\>", "Text"],

Cell[BoxData[
\(Speed[con1_] := \@\(\(bigG*massEa\)\/1000*\((2\/a - 1\/con1)\)\)\)],
"Input",
InitializationCell->True],

Cell["speed in orbit (m/s) as function of true anomaly.", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
\(CompSpeed =
Compile[{dummy},
\@\(\(bigG*massEa\)\/1000*\((2\/a - 1\/littlerorbCon)\)\)]\)], "Input",\

InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\@\(\(\((bigG\ massEa)\)\ \((2\/a - 1\/littlerorbCon)\)\)\/1000\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(EccAnom[y_] :=
2*ArcTan[\@\(\(1 - eccenOrb\)\/\(1 + eccenOrb\)\)*Tan[y*Pi/360]]\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompEccAnom =
Compile[{dummy},
2*ArcTan[
\@\(\(1 - eccenOrb\)\/\(1 + eccenOrb\)\)*Tan[trueAnom*Pi/360]]]
\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
2\ \(\(tan\^\(-1\)\)(
\@\(\(1 - eccenOrb\)\/\(eccenOrb + 1\)\)\
\(tan(\(trueAnom\ \[Pi]\)\/360)\))\), "-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["eccentric anomaly (in radians) as function of true anomaly.", "Text"],

Cell[BoxData[
\(MeanAnom[y_] := EccAnom[y] - eccenOrb*Sin[y]\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompMeanAnom =
Compile[{dummy}, eccanomCon - eccenOrb*Sin[trueAnom]]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy}, eccanomCon - eccenOrb\ \(sin(trueAnom)\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["mean anomaly (in radians) as function of true anomaly.", "Text"],

Cell[BoxData[
\(LatGeoc[y_] :=
180\/Pi*ArcSin[Sin[\(Pi*\((y - \[Omega])\)\)\/180]*Sin[\(Pi*io\)\/180]]
\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompLatGeoc\ = \
Compile[{dummy},
180\/Pi*ArcSin[
Sin[\(Pi*\((trueAnom - \[Omega])\)\)\/180]*Sin[\(Pi*io\)\/180]]]
\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\(180\ \(\(sin\^\(-1\)\)(
\(sin(1\/180\ \[Pi]\ \((trueAnom - \[Omega])\))\)\
\(sin(\(\[Pi]\ io\)\/180)\))\)\)\/\[Pi], "-CompiledCode-")
\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["Geocentric lattitude (degrees) as function of true anomaly.", "Text"],

Cell[BoxData[
\(\(LongGeoc[y_] :=
\[CapitalOmega] +
Sign[LatGeoc[y]]*180\/Pi*
ArcCos[Cos[Pi*\((y - \[Omega])\)/180]\/Cos[LatGeoc[y]*Pi/180]]\t
\)\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompLongGeoc =
Compile[{dummy},
\[CapitalOmega] +
Sign[latgeocCon]*180\/Pi*
ArcCos[Cos[Pi*\((trueAnom - \[Omega])\)/180]\/Cos[
latgeocCon*Pi/180]]]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\[CapitalOmega] +
\(180\ \(\(cos\^\(-1\)\)(
\(cos(1\/180\ \[Pi]\ \((trueAnom - \[Omega])\))\)\/\(cos(
\(latgeocCon\ \[Pi]\)\/180)\))\)\
\(sgn(latgeocCon)\)\)\/\[Pi], "-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
Geocentric longitude (in degrees) at epoch of orbit ascending node \
crossing as function of true anomaly.\
\>", "Text"],

Cell[BoxData[
\(Tperi[y_] := Mod[\(MeanAnom[y]*period\)\/\(2*Pi\), period]\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(qq = D[Mod[\((MeanAnom[y]*period)\)/\((2 Pi)\), period], y]\)], "Input"],

Cell[BoxData[
FormBox[
RowBox[{
"869.026748903952039`", " ",
\((\(0.0173909047292617291`\
\(\(sec\^2\)(\(\[Pi]\ y\)\/360)\)\)\/\(0.992863663260057016`\
\(\(tan\^2\)(\(\[Pi]\ y\)\/360)\) + 1\) -
0.00358094578746492864`\ \(cos(y)\))\), " ",
RowBox[{
SuperscriptBox["Mod",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "(",
\(869.026748903952039`\
\((2\ \(\(tan\^\(-1\)\)(
0.996425442900800817`\ \(tan(\(\[Pi]\ y\)\/360)\))\) -
0.00358094578746492864`\ \(sin(y)\))\), 5460.2561002593557`
\), ")"}]}], TraditionalForm]], "Output"]
}, Closed]],

Cell[BoxData[
\(NIntegrate[
CompJustO[CompAltGeoid[y], y]*D[CompTperi[y], y], {y, 0, 180}]\)],
"Input"],

Cell["\<\
time from last periapsis of satellite orbit (seconds) as function \
of true anomaly.\
\>", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTperi =
Compile[{dummy}, Mod[\(meananomCon*period\)\/\(2*Pi\), period]]\)],
"Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
RowBox[{"CompiledFunction", "(",
RowBox[{\({dummy}\), ",",

InterpretationBox[
\(\(meananomCon\ period\)\/\(2\ \[Pi]\)\ mod\ period\),
Mod[
Times[ meananomCon, period,
Power[
Times[ 2, Pi], -1]], period]], ",",
"\<\"-CompiledCode-\"\>"}], ")"}],
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(LongGeocSubTc[y_] :=
\(360*\((Tperi[y] - timePeriANC)\)\)\/86400 + LongGeoc[y]\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompLongGeocSubTc =
Compile[{dummy},
\(360*\((tperiCon - timePeriANC)\)\)\/86400 + longgeocCon]\)], "Input",\

InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
longgeocCon + \(360\ \((tperiCon - timePeriANC)\)\)\/86400,
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
Geocentric longitude (in degrees) corrected for earth rotation \
during the orbit as function of true anomaly (true, real-time \
longitude).\
\>", "Text"],

Cell[BoxData[
\(\(lGMTdays =
Mod[\((0.5 + \((Tperi[0] - timePeriANC)\)\/86400 +
FractionalPart[JD[bigYY, bigMM, bigDD, bigUT]])\), 1]; \)\)],
"Input",
InitializationCell->True],

Cell["fraction of a day from perigee to ascending node crossing.", "Text"],

Cell[BoxData[
\(\(Rgeoid[y_] :=
rEq*\@\(\((1 - elliptEarth\^2)\)\^2*
\((Sin[\(Pi*LatGeoc[y]\)\/180])\)\^2 +
\((Cos[\(Pi*LatGeoc[y]\)\/180])\)\^2\)\/\@\((
1 - \((elliptEarth*Sin[\(Pi*LatGeoc[y]\)\/180])\)\^2)\)\n\)\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompRgeoid =
Compile[{dummy},
rEq*\@\(\((1 - elliptEarth\^2)\)\^2*
\((Sin[\(Pi*latgeocCon\)\/180])\)\^2 +
\((Cos[\(Pi*latgeocCon\)\/180])\)\^2\)\/\@\((
1 - \((elliptEarth*Sin[\(Pi*latgeocCon\)\/180])\)\^2)\)]\)],
"Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\(rEq\ \@\(\(cos\^2\)(\(\[Pi]\ latgeocCon\)\/180) +
\((1 - elliptEarth\^2)\)\^2\
\(\(sin\^2\)(\(\[Pi]\ latgeocCon\)\/180)\)\)\)\/\@\(1 -
\((elliptEarth\ \(sin(\(\[Pi]\ latgeocCon\)\/180)\))\)\^2\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
radius of earth at a given point in the satellite orbit (true \
anomaly) above a given latitude.\
\>", "Text"],

Cell[BoxData[
\(HAneqt[y_] :=
15*Mod[\((\(-24\)*\((lGMTdays - LongGeocSubTc[y]\/360)\))\), 24]\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompHAneqt =
Compile[{dummy},
15*Mod[\((\(-24\)*\((lGMTdays - longgeocsubtcCon\/360)\))\), 24]]\)],
"Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
RowBox[{"CompiledFunction", "(",
RowBox[{\({dummy}\), ",",
RowBox[{"15", " ",
RowBox[{"(",

InterpretationBox[
\(\(\(-24\)\ \((lGMTdays - longgeocsubtcCon\/360)\)\)\ mod\
24\),
Mod[
Times[ -24,
Plus[ lGMTdays,
Times[ -1,
Times[ longgeocsubtcCon,
Power[ 360, -1]]]]], 24]], ")"}]}], ",",
"\<\"-CompiledCode-\"\>"}], ")"}],
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["Hour angle of the satellite orbit with respect to sun.", "Text"],

Cell["\<\
The above equation is not corrected for the equation of time.\
\>",
"Text"],

Cell[BoxData[
\(AltGeoid[y_] := LittleROrb[y] - Rgeoid[y]\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompAltGeoid = Compile[{dummy}, littlerorbCon - rgeoidCon]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy}, littlerorbCon - rgeoidCon,
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["satellite altitude above the elliptical earth geoid.", "Text"],

Cell[BoxData[
\(Eta[y_] := Abs[decSol - LatGeoc[y]]\/2\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompEta = Compile[{dummy}, Abs[decSol - latgeocCon]\/2]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\[LeftBracketingBar]decSol - latgeocCon\[RightBracketingBar]\/2,
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(Theta[y_] := Abs[decSol + latgeocCon]\/2\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTheta = Compile[{dummy}, Abs[decSol + latgeocCon]\/2]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\[LeftBracketingBar]decSol + latgeocCon\[RightBracketingBar]\/2,
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(Tau[y_] :=
Mod[\((HAneqt[y] + \[Beta] +
\((pj*Sin[Pi*\((HAneqt[y] + \[Gamma])\)/180])\) + 180)\),
360] - 180\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTau =
Compile[{dummy},
Mod[\((haneqtCon + \[Beta] +
\((pj*Sin[Pi*\((haneqtCon + \[Gamma])\)/180])\) + 180)\),
360] - 180]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
RowBox[{"CompiledFunction", "(",
RowBox[{\({dummy}\), ",",
RowBox[{

InterpretationBox[
\(\(haneqtCon + \[Beta] +
pj\ \(sin(1\/180\ \[Pi]\ \((haneqtCon + \[Gamma])\))\) +
180\)\ mod\ 360\),
Mod[
Plus[ haneqtCon, \[Beta],
Times[ pj,
Sin[
Times[ Pi,
Times[
Plus[ haneqtCon, \[Gamma]],
Power[ 180, -1]]]]], 180], 360]], "-", "180"}],
",", "\<\"-CompiledCode-\"\>"}], ")"}],
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(A[y_] :=
r*\(\((Cos[Eta[y]*Pi/180])\)\^mj -
\((Sin[Theta[y]*Pi/180])\)\^mj\)\/\(1 +
r*\((Sin[Theta[y]*Pi/180])\)\^mj\)\)], "Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompA =
Compile[{dummy},
r*\(\((Cos[etaCon*Pi/180])\)\^mj -
\((Sin[thetaCon*Pi/180])\)\^mj\)\/\(1 +
r*\((Sin[thetaCon*Pi/180])\)\^mj\)]\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
\(r\ \((\(cos\^mj\)(\(etaCon\ \[Pi]\)\/180) -
\(sin\^mj\)(\(thetaCon\ \[Pi]\)\/180))\)\)\/\(r\
\(\(sin\^mj\)(\(thetaCon\ \[Pi]\)\/180)\) + 1\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["4 arguments in Jacchia model", "Text"],

Cell[BoxData[
\(Tni[y_] := tempSubC*\((1 + r*\((Sin[Theta[y]*Pi/180])\)\^mj)\)\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTni =
Compile[{dummy}, tempSubC*\((1 + r*\((Sin[thetaCon*Pi/180])\)\^mj)\)]
\)], "Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
tempSubC\ \((r\ \(\(sin\^mj\)(\(thetaCon\ \[Pi]\)\/180)\) + 1)\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell[BoxData[
\(Tday[y_] := tempSubC*\((1 + r*\((Cos[Eta[y]*Pi/180])\)\^mj)\)\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTday =
Compile[{dummy}, tempSubC*\((1 + r*\((Cos[etaCon*Pi/180])\)\^mj)\)]\)],
"Input",
InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
tempSubC\ \((r\ \(\(cos\^mj\)(\(etaCon\ \[Pi]\)\/180)\) + 1)\),
"-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["\<\
minimum night-time and maximum day-time temperatures base values \
for the exosphere.\
\>", "Text"],

Cell[BoxData[
\(Tl[y_] := Tni[y]*\((1 + A[y]*\((Cos[Pi*\(Tau[y]/180\)/2])\)\^nj)\)\)],
"Input",
InitializationCell->True],

Cell[CellGroupData[{

Cell[BoxData[
\(CompTl =
Compile[{dummy},
tniCon*\((1 + aCon*\((Cos[Pi*\(tauCon/180\)/2])\)\^nj)\)]\)], "Input",\

InitializationCell->True],

Cell[BoxData[
FormBox[
TagBox[
\(CompiledFunction({dummy},
tniCon\ \((aCon\ \(\(cos\^nj\)(\(\[Pi]\ tauCon\)\/\(180\ 2\))\) + 1)
\), "-CompiledCode-")\),
False,
Editable->False], TraditionalForm]], "Output"]
}, Open ]],

Cell["uncorrected exospheric temperature.", "Text"],

Cell[BoxData[
\(dTg := 28*bigKp + 0.03*Exp[bigKp]\)], "Input",
InitializationCell->True],

Cell[