The following document lists the file pluto.f
from catalogue VI/88.
A plain copy of the file
(without headers/trailers) may be downloaded.
subroutine PLUTO (tjd,r,ierr)
* =============================
*
*
* Ref : Bureau des Longitudes - 95.1
* J. Chapront, G. Francou (BDL)
*
* Object
* ------
*
* Computation of heliocentric rectangular coordinates of Pluto.
* Source : DE200 (Jet Propulsion Laboratory).
* Frame : dynamical mean equinox and equator J2000 (DE200).
* The ephemerides are computed with a method of approximation
* using frequency analysis :
* J. Chapront, 1995, Astron. Atrophys. Sup. Ser., 109, 181.
*
* Input
* -----
*
* tjd : Julian Date TDB (double real).
* The interval of validity is :
* tdeb = JD2341972.5 (Jan 01 1700 0h)
* tfin = JD2488092.5 (Jan 01 2100 0h)
*
* Output
* ------
*
* r(6) : Table of rectangular coordinates (double real).
* r(1) : X position (au).
* r(2) : Y position (au).
* r(3) : Z position (au).
* r(4) : X' velocity (au/day).
* r(5) : Y' velovity (au/day).
* r(6) : Z' velocity (au/day).
*
* ierr : Error Index (integer).
* 0 : No error.
* 1 : Date error.
*
*
* Declarations
* ------------
*
implicit double precision (a-h,o-z)
dimension r(6),v(6),w(3)
dimension nf(0:2),ax(0:3),ay(0:3),az(0:3),fq(106)
dimension cx(106),sx(106),cy(106),sy(106),cz(106),sz(106)
*
* Initializations
* ---------------
*
data nf/82,19,5/
data tdeb/2341972.5d0/
data tfin/2488092.5d0/
data dt/146120.d0/
*
* Secular Series
*
data ax/
. 98083308510.d0, -1465718392.d0, 11528487809.d0, 55397965917.d0/
data ay/
.101846243715.d0, 57789.d0, -5487929294.d0, 8520205290.d0/
data az/
. 2183700004.d0, 433209785.d0, -4911803413.d0, -14029741184.d0/
*
* Frequencies
*
data fq/
.0.0000645003954767d0,0.0001083248054773d0,0.0001302772403167d0,
.0.0001647868659960d0,0.0001935009111902d0,0.0002223740247147d0,
.0.0003032575201026d0,0.0003259246239385d0,0.0003564763034914d0,
.0.0004265811293132d0,0.0004503959517513d0,0.0004638675148284d0,
.0.0005009272733421d0,0.0005163593863414d0,0.0005578826828210d0,
.0.0005882795362847d0,0.0006450023602974d0,0.0007097635821639d0,
.0.0007630643253588d0,0.0007740033551209d0,0.0008385031396726d0,
.0.0008950591609720d0,0.0009545118163938d0,0.0010255417569600d0,
.0.0010826728325744d0,0.0011680358909203d0,0.0012405125052369d0,
.0.0012931805883876d0,0.0013460706181008d0,0.0014190059530383d0,
.0.0014394705053002d0,0.0014502634075377d0,0.0014992014575181d0,
.0.0015434430430867d0,0.0016000710611098d0,0.0016562809940875d0,
.0.0017275924266291d0,0.0017454042542465d0,0.0018215079641428d0,
.0.0018694826929211d0,0.0019274630193251d0,0.0020276790928706d0,
.0.0021822818660433d0,0.0022885289854970d0,0.0023167646379420d0,
.0.0023445464874575d0,0.0024069306189938d0,0.0024473146628449d0,
.0.0024778027974419d0,0.0025244208011161d0,0.0025682157855485d0,
.0.0026028617439482d0,0.0026544444009919d0,0.0026987455959123d0,
.0.0027308225916697d0,0.0027735113723168d0,0.0028728385464030d0,
.0.0029001725379479d0,0.0029379670182566d0,0.0029750359447782d0,
.0.0031326820696785d0,0.0031822107498712d0,0.0031931048857857d0,
.0.0032268922327691d0,0.0034657232066225d0,0.0037838581645670d0,
.0.0038055149432355d0,0.0038631344783149d0,0.0039129259467328d0,
.0.0040311445462510d0,0.0040607542008930d0,0.0041490103414206d0,
.0.0043500678052272d0,0.0046321937641054d0,0.0058000376725240d0,
.0.0091460971544658d0,0.0091560629947357d0,0.0172021239411871d0,
.0.0182919855069063d0,0.0279624510118796d0,0.0344040996177640d0,
.0.0714245719830324d0,0.0001083248054773d0,0.0001647868659960d0,
.0.0003032575201026d0,0.0003259246239385d0,0.0003564763034914d0,
.0.0005009272733421d0,0.0005882795362847d0,0.0007097635821639d0,
.0.0007630643253588d0,0.0008950591609720d0,0.0011680358909203d0,
.0.0014502634075377d0,0.0017454042542465d0,0.0029001725379479d0,
.0.0031822107498712d0,0.0040607542008930d0,0.0043500678052272d0,
.0.0091460971544658d0,0.0279624510118796d0,0.0001083248054773d0,
.0.0003032575201026d0,0.0011680358909203d0,0.0043500678052272d0,
.0.0279624510118796d0/
*
* Coefficients X (cosine)
*
data cx/
. -16338582222.d0, -5995086437.d0, 23663880362.d0, 10304632056.d0,
. -3996936944.d0, -4136465568.d0, 1188702881.d0, -621434363.d0,
. 566898160.d0, -75880391.d0, 576146406.d0, -659684298.d0,
. 451962774.d0, -153724334.d0, -603163280.d0, 364764379.d0,
. 193062130.d0, 161493959.d0, 1167349082.d0, -1417467887.d0,
. 15325240.d0, -3624391.d0, -587306.d0, 132022.d0,
. -106501.d0, 228373.d0, -95106.d0, 56299.d0,
. -48339.d0, 803937.d0, -6172744.d0, -18962749.d0,
. 133022.d0, -25964.d0, 7111.d0, -4998.d0,
. 32034.d0, -29666.d0, -1983.d0, 114.d0,
. 191.d0, -1063.d0, 419.d0, 346.d0,
. 5059.d0, -81.d0, 1408.d0, 2964.d0,
. -5364.d0, 1509.d0, -4924.d0, 2954.d0,
. 2034.d0, -5199.d0, 604.d0, -1247.d0,
. 4576.d0, -350741.d0, -4023.d0, 1147.d0,
. -38.d0, -99.d0, -11686.d0, 1129.d0,
. 582.d0, -83.d0, -97.d0, 431.d0,
. -134.d0, -323.d0, -292.d0, 195.d0,
. 39068.d0, 523.d0, -1747.d0, 3135.d0,
. -619.d0, -12095.d0, 6.d0, 18476.d0,
. -130.d0, -438.d0, 102345278799.d0, -9329130892.d0,
. 1484339404.d0, 472660593.d0, -581239444.d0, 1016663241.d0,
. -1054199614.d0, 99039105.d0, -52190030.d0, -3394173.d0,
. -16529.d0, 3102430.d0, 2286.d0, -10955.d0,
. -5293.d0, -654.d0, 124.d0, -85.d0,
. 29.d0, 418209651.d0, -1191875710.d0, -823081.d0,
. -558.d0, -1091.d0/
*
* Coefficients X (sine)
*
data sx/
.-308294137468.d0,-68820910480.d0, 28346466257.d0, -1755658975.d0,
. 7818660837.d0, -1098895702.d0, -1192462299.d0, -772129982.d0,
. 1061702581.d0, -639572722.d0, 1128327488.d0, -423570428.d0,
. -175317704.d0, 251601606.d0, -869448807.d0, 551228298.d0,
. 87807522.d0, -11540541.d0, -103236703.d0, 92638954.d0,
. -3624991.d0, 1004975.d0, 304396.d0, -56532.d0,
. 55554.d0, -799096.d0, 56947.d0, -48016.d0,
. 50599.d0, -680660.d0, 5858452.d0, 38125648.d0,
. -109460.d0, 18684.d0, -5269.d0, 2771.d0,
. -6814.d0, 47130.d0, 1192.d0, -1387.d0,
. 379.d0, -612.d0, -52.d0, 813.d0,
. -4354.d0, -2275.d0, 685.d0, -1352.d0,
. 4681.d0, -1908.d0, -6530.d0, 8667.d0,
. 1675.d0, 874.d0, 898.d0, 965.d0,
. -7124.d0, -1145389.d0, 2931.d0, -618.d0,
. -34.d0, -6562.d0, 8038.d0, -697.d0,
. -8.d0, 12.d0, -267.d0, -131.d0,
. 304.d0, -756.d0, -103.d0, -250.d0,
. 19816.d0, -596.d0, 576.d0, 4122.d0,
. 65.d0, -27900.d0, 217.d0, -137.d0,
. -269.d0, 531.d0, -24338350765.d0, 11210995713.d0,
. 2793567155.d0, -776019789.d0, 1528323591.d0, -249354416.d0,
. 1127608109.d0, -667692329.d0, -1570766679.d0, -9724425.d0,
. 26552.d0, 3332520.d0, -27607.d0, -11696.d0,
. -7297.d0, -104.d0, -184.d0, -455.d0,
. -16.d0, 39813894679.d0, 3633087275.d0, 522728.d0,
. -320.d0, -1401.d0/
*
* Coefficients Y (cosine)
*
data cy/
. 299584895562.d0, 75951634908.d0, -36135662843.d0, 18125610071.d0,
. -20398008415.d0, 6125780503.d0, -162559485.d0, 4352425804.d0,
. -3819676998.d0, 1168107376.d0, -5041323701.d0, 4093828501.d0,
. -1727274544.d0, 134214260.d0, 5033950069.d0, -3071449401.d0,
. -1190419055.d0, -775881742.d0, -5524713888.d0, 6803228005.d0,
. -65675611.d0, 15155413.d0, 2009509.d0, -389682.d0,
. 275571.d0, 474366.d0, 132163.d0, -81550.d0,
. 69996.d0, -706470.d0, 4777898.d0, -44002785.d0,
. -58735.d0, 7624.d0, -1922.d0, -729.d0,
. -1733.d0, -35642.d0, -586.d0, -258.d0,
. -368.d0, 1286.d0, -136.d0, 883.d0,
. 2673.d0, 331.d0, 50.d0, 178.d0,
. 2901.d0, -654.d0, -8972.d0, 3034.d0,
. 1113.d0, 570.d0, -72.d0, 1950.d0,
. 8550.d0, 1047593.d0, -2348.d0, 313.d0,
. 432.d0, 6765.d0, -8240.d0, 335.d0,
. 140.d0, -833.d0, 252.d0, -210.d0,
. 366.d0, -920.d0, 1215.d0, -217.d0,
. -17780.d0, 581.d0, -560.d0, -4131.d0,
. 390.d0, 25613.d0, -206.d0, 1850.d0,
. 171.d0, -471.d0, 26437625772.d0,-12674907683.d0,
. -1067899665.d0, -2082744.d0, -43195632.d0, 211912497.d0,
. -108307161.d0, -63033809.d0, -203850703.d0, -1672332.d0,
. 7136.d0, 803655.d0, -10985.d0, 9126.d0,
. 3317.d0, -151.d0, 160.d0, 138.d0,
. -27.d0,-36463065062.d0, -5816560445.d0, 1576292.d0,
. -21.d0, -295.d0/
*
* Coefficients Y (sine)
*
data sy/
. -53545027809.d0, -8838029861.d0, 23553788174.d0, 13775798112.d0,
. -6068121593.d0, -2853107588.d0, 750355551.d0, -82067770.d0,
. 230091832.d0, -259838942.d0, 197944074.d0, 27141006.d0,
. -105334544.d0, 95175918.d0, -139461973.d0, 80593104.d0,
. -5126842.d0, -21953793.d0, -163767784.d0, 192436228.d0,
. -2479113.d0, 561687.d0, 121909.d0, -30275.d0,
. 16333.d0, 68105.d0, 24081.d0, -11228.d0,
. 667.d0, -73047.d0, 1007089.d0, -22814549.d0,
. 434.d0, 1013.d0, 710.d0, 1100.d0,
. -4598.d0, 1990.d0, 564.d0, 828.d0,
. -1119.d0, -1249.d0, -597.d0, 227.d0,
. 5467.d0, 801.d0, -2029.d0, -1892.d0,
. 4713.d0, -459.d0, 1757.d0, -9303.d0,
. -2357.d0, 7679.d0, -2953.d0, 629.d0,
. 5011.d0, -333905.d0, -2388.d0, 415.d0,
. 139.d0, -5726.d0, -4583.d0, 310.d0,
. 681.d0, -107.d0, 301.d0, -525.d0,
. 198.d0, -379.d0, -230.d0, -64.d0,
. 36069.d0, 459.d0, -1596.d0, 2509.d0,
. -146.d0, -11081.d0, 4.d0, 15764.d0,
. -147.d0, -362.d0, 117449924600.d0, -7691661502.d0,
. -4771148239.d0, 3733883366.d0, -7081845126.d0, 3502526523.d0,
. -8115570206.d0, 3607883959.d0, 7690328772.d0, 37384011.d0,
. -164319.d0, -2859257.d0, 1593.d0, -11997.d0,
. -6476.d0, 1419.d0, 34.d0, 232.d0,
. 32.d0, 2752753498.d0, -672124207.d0, 154239.d0,
. -400.d0, 372.d0/
*
* Coefficients Z (cosine)
*
data cz/
. 98425296138.d0, 25475793908.d0, -18424386574.d0, 2645968636.d0,
. -5282207967.d0, 3278235471.d0, -425422632.d0, 1526641086.d0,
. -1323182752.d0, 235873266.d0, -1617466723.d0, 1557465867.d0,
. -848586296.d0, 218182986.d0, 1636044515.d0, -1001334243.d0,
. -455739370.d0, -348173978.d0, -2511254281.d0, 3062521470.d0,
. -32079379.d0, 7597939.d0, 1138566.d0, -238849.d0,
. 192377.d0, 83169.d0, 148694.d0, -92489.d0,
. 87116.d0, -1281070.d0, 9950106.d0, -25105642.d0,
. -171749.d0, 31035.d0, -8648.d0, 5360.d0,
. -30345.d0, 11482.d0, 1322.d0, -467.d0,
. 96.d0, 894.d0, -381.d0, -583.d0,
. 2525.d0, -569.d0, 226.d0, -2039.d0,
. 3728.d0, -1540.d0, 42.d0, -3144.d0,
. 658.d0, 220.d0, 1848.d0, 678.d0,
. -7289.d0, 463291.d0, 3945.d0, -1141.d0,
. -26.d0, -10607.d0, 11458.d0, -1005.d0,
. 120.d0, -301.d0, 135.d0, -186.d0,
. 118.d0, 30.d0, 197.d0, -182.d0,
. -8585.d0, 240.d0, -226.d0, -2049.d0,
. 283.d0, 11109.d0, -100.d0, -842.d0,
. 71.d0, -181.d0, -22591501373.d0, -1138977908.d0,
. -782718600.d0, -141483824.d0, 159033355.d0, -246222739.d0,
. 287284767.d0, -48002332.d0, -41114335.d0, 578004.d0,
. -8420.d0, -766779.d0, 957.d0, 5780.d0,
. 4141.d0, 417.d0, -8.d0, 65.d0,
. -22.d0,-11656050047.d0, -1186276469.d0, 1388681.d0,
. 201.d0, 561.d0/
*
* Coefficients Z (sine)
*
data sz/
. 76159403805.d0, 17987340882.d0, -1193982379.d0, 4828308190.d0,
. -4248985438.d0, -559147671.d0, 593594960.d0, 208799497.d0,
. -249913200.d0, 115051024.d0, -282588988.d0, 135883560.d0,
. 23091693.d0, -49187976.d0, 223956575.d0, -137344299.d0,
. -28188872.d0, -2636274.d0, -14202661.d0, 25488216.d0,
. 419837.d0, -150966.d0, -64906.d0, 3719.d0,
. -2226.d0, 86321.d0, -15970.d0, 16609.d0,
. -15782.d0, 200300.d0, -1500491.d0, -9161491.d0,
. 37481.d0, -4616.d0, 224.d0, -1027.d0,
. 5220.d0, -6976.d0, -267.d0, 556.d0,
. -23.d0, -711.d0, -122.d0, -97.d0,
. 2440.d0, 786.d0, -806.d0, -167.d0,
. -156.d0, 572.d0, 2532.d0, -4582.d0,
. -1178.d0, 875.d0, -558.d0, 781.d0,
. 3230.d0, -116132.d0, -1440.d0, 438.d0,
. 176.d0, 1072.d0, -5850.d0, 418.d0,
. 267.d0, 60.d0, 134.d0, -85.d0,
. -59.d0, 112.d0, -168.d0, -89.d0,
. 14986.d0, 190.d0, -685.d0, 1018.d0,
. -48.d0, -4807.d0, 0.d0, 7066.d0,
. -54.d0, -229.d0, 44126663549.d0, -5626220823.d0,
. -2536450838.d0, 1536292657.d0, -2916144530.d0, 949074586.d0,
. -2842935040.d0, 1500396857.d0, 3415136438.d0, 19702076.d0,
. -46995.d0, -5801645.d0, 33470.d0, 17674.d0,
. 7355.d0, 199.d0, 11.d0, 205.d0,
. 33.d0,-11127973411.d0, -1310869292.d0, -164753.d0,
. -107.d0, 284.d0/
*
* Results in table r
* ------------------
*
do i=1,6
r(i)=0.d0
enddo
*
* Check up the date
* -----------------
*
ierr=11
if (tjd.lt.tdeb.or.tjd.gt.tfin) return
ierr=0
*
* Change variable
* ---------------
*
x=2.d0*(tjd-tdeb)/dt-1.d0
fx=x*dt/2.d0
*
* Compute the positions (secular terms)
* -------------------------------------
*
v(1)=0.d0
v(2)=0.d0
v(3)=0.d0
wx=1.d0
do i=0,3
v(1)=v(1)+ax(i)*wx
v(2)=v(2)+ay(i)*wx
v(3)=v(3)+az(i)*wx
wx=wx*x
enddo
*
* Compute the positions (periodic and Poisson terms)
* --------------------------------------------------
*
imax=0
wx=1.d0
do m=0,2
do iv=1,3
w(iv)=0.d0
enddo
imin=imax+1
imax=imax+nf(m)
do i=imin,imax
f=fq(i)*fx
cf=cos(f)
sf=sin(f)
w(1)=w(1)+cx(i)*cf+sx(i)*sf
w(2)=w(2)+cy(i)*cf+sy(i)*sf
w(3)=w(3)+cz(i)*cf+sz(i)*sf
enddo
do iv=1,3
v(iv)=v(iv)+w(iv)*wx
enddo
wx=wx*x
enddo
*
* Compute the velocities (secular terms)
* --------------------------------------
*
wt=2.d0/dt
v(4)=0.d0
v(5)=0.d0
v(6)=0.d0
wx=1.d0
do i=1,3
v(4)=v(4)+i*ax(i)*wx
v(5)=v(5)+i*ay(i)*wx
v(6)=v(6)+i*az(i)*wx
wx=wx*x
enddo
v(4)=wt*v(4)
v(5)=wt*v(5)
v(6)=wt*v(6)
*
* Compute the velocities (periodic and Poisson terms)
* ---------------------------------------------------
*
imax=0
wx=1
do m=0,2
imin=imax+1
imax=imax+nf(m)
do i=imin,imax
fw=fq(i)
f=fw*fx
cf=cos(f)
sf=sin(f)
v(4)=v(4)+fw*(sx(i)*cf-cx(i)*sf)*wx
v(5)=v(5)+fw*(sy(i)*cf-cy(i)*sf)*wx
v(6)=v(6)+fw*(sz(i)*cf-cz(i)*sf)*wx
if (m.gt.0) then
v(4)=v(4)+m*wt*(cx(i)*cf+sx(i)*sf)*wy
v(5)=v(5)+m*wt*(cy(i)*cf+sy(i)*sf)*wy
v(6)=v(6)+m*wt*(cz(i)*cf+sz(i)*sf)*wy
endif
enddo
wy=wx
wx=wx*x
enddo
*
* Stock the results
* -----------------
*
do iv=1,6
r(iv)=v(iv)/1.d10
enddo
*
* Exit
* ----
*
return
end
© UDS/CNRS