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