C+ C NAME: C Time2Precession C PURPOSE: C Converts ecliptic coordinates for epoch JEpoch1 to epoch JEpoch2, C i.e. corrects for precession between the two epochs. C Uses the 'rotate' subroutine to transform between frames of reference C and hence is 'exact'. C CATEGORY: C Celestial mechanics C CALLING SEQUENCE: subroutine Time2Precession(tt1,tt2,lambda,beta) C CALLS: C rotated, Time2JEpoch C INPUTS: C tt1 integer initial epoch C tt2 integer final epoch C lambda double precision ecliptic longitude for tt1 (deg) C beta double precision ecliptic latitude for tt1 (deg) C OUTPUTS: C lambda double precision ecliptic longitude for tt2 (deg) C beta double precision ecliptic latitude for tt2 (deg) C PROCEDURE: C See R. Green, Spherical Astronomy, Cambridge UP, 1985, Sect. 9.5, p. 217 C (1) First transform ecliptic longitude and latitude to equatorial right C ascension and declination (for initial epoch); C (2) Transform equatorial coordinates for initial epoch to epoch J2000.0; C (3) Calculate equatorial coordinates for epoch J2000.0 to final epoch; C (4) Transform back to ecliptic coordinates (for final epoch). C C EPS inclination between ecliptic and equator C ZETA,Z,THETA precession angles C MODIFICATION HISTORY: C 1989, Paul Hick (MPAE,UCSD/CASS; pphick@ucsd.edu) C- integer tt1(2) integer tt2(2) double precision lambda double precision beta double precision T double precision eps double precision zeta double precision z double precision theta call Time2JEpoch(2,tt1,T) T = 0.01d0*T !Time interval in Julian centuries eps = 23.43929111d0-(46.815d0+(0.001d0-0.002d0*T)*T)*T/3600.0d0 !Form.(9.25), p. 220 call rotated(90.0d0,eps,-90.0d0,lambda,beta) !(1) zeta = (0.6406161d0+(0.0000839d0+0.0000050d0*T)*T)*T !Form. (9.23), p. 219 z = (0.6406161d0+(0.0003041d0+0.0000051d0*T)*T)*T theta = (0.5567530d0-(0.0001185d0+0.0000116d0*T)*T)*T call rotated(z,-theta,zeta,lambda,beta) !(2) call Time2JEpoch(2,tt2,T) T = 0.01d0*T !Time interval in Julian centuries zeta = (0.6406161d0+(0.0000839d0+0.0000050d0*T)*T)*T !Form. (9.23), p. 219 z = (0.6406161d0+(0.0003041d0+0.0000051d0*T)*T)*T theta = (0.5567530d0-(0.0001185d0+0.0000116d0*T)*T)*T call rotated(-zeta,theta,-z,lambda,beta) !(3) eps = 23.43929111d0-(46.815d0+(0.001d0-0.002d0*T)*T)*T/3600.0d0 !Form.(9.25), p. 220 call rotated(90.0d0,-eps,-90.0d0,lambda,beta) !(4) return end