;+
; FUNCTIONAL DESCRIPTION:
;
; Function calculates the satellite's position in barycentric
; coordinates, then calculates a time correction based no the
; projection of the satellite's position vector into the source
; direction (from the Earth). Thus the time is corrected to a
; fixed point on the Earth-source line, such that the line joining
; that point to the barycenter is pependicular to the Earth-source
; line.
;
; INPUT PARAMETERS:
;
; SRCVEC floating-point array giving the unit 3-vector to from the
; Earth to the source object, in celestial coordinates.
;
; SATVEC floating-point array giving the satellite's position
; 3-vector relative to Earth-center, in kilometers.
;
; JTIME double-precision modified Julian date for which the
; correction is to be calculated (JD1950) in days.
;
; OUTPUT PARAMETERS:
;
; None.
;
; RETURNS:
;
; BARY_CORR = (double-precision) delta-time (seconds) which, when
; added to JTIME, gives the time at the correction point
; discussed above.
;
; NOTES:
;
; This code based on SUBROUTINE BARYTIME written by Lynn Cominsky.
;
; AUTHOR/DATE: K.H. Fairfield, 04-DEC-1992
;
;-
function BARYCORR, Srcvec, Satvec, Jtime
aunit = 1.495978706d8 ; one au in km.
cvel = 2.99792458d5 ; vel. of light, km/s
deqx = 1950.d0 ; 1950 epoch
dsrc = dblarr(3)
dsrc(0) = double (srcvec(0))
dsrc(1) = double (srcvec(1))
dsrc(2) = double (srcvec(2))
sladvn, dsrc, dsrc, dn
slaevp, jtime, deqx, dvel,dpos, dvh,dvp
dsat = dpos*aunit + double( satvec )
bary_corr = sladvdv(dsat, dsrc) / cvel
return, bary_corr
end