mirror of
https://github.com/eddyem/BTA_lib.git
synced 2025-12-06 02:35:20 +03:00
156 lines
5.1 KiB
Fortran
156 lines
5.1 KiB
Fortran
SUBROUTINE sla_PLANTU (DATE, ELONG, PHI, U, RA, DEC, R, JSTAT)
|
|
*+
|
|
* - - - - - - -
|
|
* P L A N T U
|
|
* - - - - - - -
|
|
*
|
|
* Topocentric apparent RA,Dec of a Solar-System object whose
|
|
* heliocentric universal elements are known.
|
|
*
|
|
* Given:
|
|
* DATE d TT MJD of observation (JD - 2400000.5)
|
|
* ELONG d observer's east longitude (radians)
|
|
* PHI d observer's geodetic latitude (radians)
|
|
* U d(13) universal elements
|
|
*
|
|
* (1) combined mass (M+m)
|
|
* (2) total energy of the orbit (alpha)
|
|
* (3) reference (osculating) epoch (t0)
|
|
* (4-6) position at reference epoch (r0)
|
|
* (7-9) velocity at reference epoch (v0)
|
|
* (10) heliocentric distance at reference epoch
|
|
* (11) r0.v0
|
|
* (12) date (t)
|
|
* (13) universal eccentric anomaly (psi) of date, approx
|
|
*
|
|
* Returned:
|
|
* RA,DEC d RA, Dec (topocentric apparent, radians)
|
|
* R d distance from observer (AU)
|
|
* JSTAT i status: 0 = OK
|
|
* -1 = radius vector zero
|
|
* -2 = failed to converge
|
|
*
|
|
* Called: sla_GMST, sla_DT, sla_EPJ, sla_EPV, sla_UE2PV, sla_PRENUT,
|
|
* sla_DMXV, sla_PVOBS, sla_DCC2S, sla_DRANRM
|
|
*
|
|
* Notes:
|
|
*
|
|
* 1 DATE is the instant for which the prediction is required. It is
|
|
* in the TT timescale (formerly Ephemeris Time, ET) and is a
|
|
* Modified Julian Date (JD-2400000.5).
|
|
*
|
|
* 2 The longitude and latitude allow correction for geocentric
|
|
* parallax. This is usually a small effect, but can become
|
|
* important for near-Earth asteroids. Geocentric positions can be
|
|
* generated by appropriate use of routines sla_EPV (or sla_EVP) and
|
|
* sla_UE2PV.
|
|
*
|
|
* 3 The "universal" elements are those which define the orbit for the
|
|
* purposes of the method of universal variables (see reference 2).
|
|
* They consist of the combined mass of the two bodies, an epoch,
|
|
* and the position and velocity vectors (arbitrary reference frame)
|
|
* at that epoch. The parameter set used here includes also various
|
|
* quantities that can, in fact, be derived from the other
|
|
* information. This approach is taken to avoiding unnecessary
|
|
* computation and loss of accuracy. The supplementary quantities
|
|
* are (i) alpha, which is proportional to the total energy of the
|
|
* orbit, (ii) the heliocentric distance at epoch, (iii) the
|
|
* outwards component of the velocity at the given epoch, (iv) an
|
|
* estimate of psi, the "universal eccentric anomaly" at a given
|
|
* date and (v) that date.
|
|
*
|
|
* 4 The universal elements are with respect to the J2000 equator and
|
|
* equinox.
|
|
*
|
|
* 1 Sterne, Theodore E., "An Introduction to Celestial Mechanics",
|
|
* Interscience Publishers Inc., 1960. Section 6.7, p199.
|
|
*
|
|
* 2 Everhart, E. & Pitkin, E.T., Am.J.Phys. 51, 712, 1983.
|
|
*
|
|
* Last revision: 19 February 2005
|
|
*
|
|
* Copyright P.T.Wallace. All rights reserved.
|
|
*
|
|
* License:
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program (see SLA_CONDITIONS); if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
|
* Boston, MA 02111-1307 USA
|
|
*
|
|
*-
|
|
|
|
IMPLICIT NONE
|
|
|
|
DOUBLE PRECISION DATE,ELONG,PHI,U(13),RA,DEC,R
|
|
INTEGER JSTAT
|
|
|
|
* Light time for unit distance (sec)
|
|
DOUBLE PRECISION TAU
|
|
PARAMETER (TAU=499.004782D0)
|
|
|
|
INTEGER I
|
|
DOUBLE PRECISION DVB(3),DPB(3),VSG(6),VSP(6),V(6),RMAT(3,3),
|
|
: VGP(6),STL,VGO(6),DX,DY,DZ,D,TL
|
|
DOUBLE PRECISION sla_GMST,sla_DT,sla_EPJ,sla_DRANRM
|
|
|
|
|
|
|
|
* Sun to geocentre (J2000, velocity in AU/s).
|
|
CALL sla_EPV(DATE,VSG,VSG(4),DPB,DVB)
|
|
DO I=4,6
|
|
VSG(I)=VSG(I)/86400D0
|
|
END DO
|
|
|
|
* Sun to planet (J2000).
|
|
CALL sla_UE2PV(DATE,U,VSP,JSTAT)
|
|
|
|
* Geocentre to planet (J2000).
|
|
DO I=1,6
|
|
V(I)=VSP(I)-VSG(I)
|
|
END DO
|
|
|
|
* Precession and nutation to date.
|
|
CALL sla_PRENUT(2000D0,DATE,RMAT)
|
|
CALL sla_DMXV(RMAT,V,VGP)
|
|
CALL sla_DMXV(RMAT,V(4),VGP(4))
|
|
|
|
* Geocentre to observer (date).
|
|
STL=sla_GMST(DATE-sla_DT(sla_EPJ(DATE))/86400D0)+ELONG
|
|
CALL sla_PVOBS(PHI,0D0,STL,VGO)
|
|
|
|
* Observer to planet (date).
|
|
DO I=1,6
|
|
V(I)=VGP(I)-VGO(I)
|
|
END DO
|
|
|
|
* Geometric distance (AU).
|
|
DX=V(1)
|
|
DY=V(2)
|
|
DZ=V(3)
|
|
D=SQRT(DX*DX+DY*DY+DZ*DZ)
|
|
|
|
* Light time (sec).
|
|
TL=TAU*D
|
|
|
|
* Correct position for planetary aberration
|
|
DO I=1,3
|
|
V(I)=V(I)-TL*V(I+3)
|
|
END DO
|
|
|
|
* To RA,Dec.
|
|
CALL sla_DCC2S(V,RA,DEC)
|
|
RA=sla_DRANRM(RA)
|
|
R=D
|
|
|
|
END
|