diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /math/slalib/mappa.f | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'math/slalib/mappa.f')
-rw-r--r-- | math/slalib/mappa.f | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/math/slalib/mappa.f b/math/slalib/mappa.f new file mode 100644 index 00000000..d3d9c2ae --- /dev/null +++ b/math/slalib/mappa.f @@ -0,0 +1,129 @@ + SUBROUTINE slMAPA (EQ, DATE, AMPRMS) +*+ +* - - - - - - +* M A P A +* - - - - - - +* +* Compute star-independent parameters in preparation for +* conversions between mean place and geocentric apparent place. +* +* The parameters produced by this routine are required in the +* parallax, light deflection, aberration, and precession/nutation +* parts of the mean/apparent transformations. +* +* The reference frames and timescales used are post IAU 1976. +* +* Given: +* EQ d epoch of mean equinox to be used (Julian) +* DATE d TDB (JD-2400000.5) +* +* Returned: +* AMPRMS d(21) star-independent mean-to-apparent parameters: +* +* (1) time interval for proper motion (Julian years) +* (2-4) barycentric position of the Earth (AU) +* (5-7) heliocentric direction of the Earth (unit vector) +* (8) (grav rad Sun)*2/(Sun-Earth distance) +* (9-11) ABV: barycentric Earth velocity in units of c +* (12) sqrt(1-v**2) where v=modulus(ABV) +* (13-21) precession/nutation (3,3) matrix +* +* References: +* 1984 Astronomical Almanac, pp B39-B41. +* (also Lederle & Schwan, Astron. Astrophys. 134, +* 1-6, 1984) +* +* Notes: +* +* 1) For DATE, the distinction between the required TDB and TT +* is always negligible. Moreover, for all but the most +* critical applications UTC is adequate. +* +* 2) The vectors AMPRMS(2-4) and AMPRMS(5-7) are referred to +* the mean equinox and equator of epoch EQ. +* +* 3) The parameters AMPRMS produced by this routine are used by +* slAMPQ, slMAPQ and slMAPZ. +* +* 4) The accuracy is sub-milliarcsecond, limited by the +* precession-nutation model (IAU 1976 precession, Shirai & +* Fukushima 2001 forced nutation and precession corrections). +* +* 5) A further limit to the accuracy of routines using the parameter +* array AMPRMS is imposed by the routine slEVP, used here to +* compute the Earth position and velocity by the methods of +* Stumpff. The maximum error in the resulting aberration +* corrections is about 0.3 milliarcsecond. +* +* Called: +* slEPJ MDJ to Julian epoch +* slEVP earth position & velocity +* slDVN normalize vector +* slPRNU precession/nutation matrix +* +* P.T.Wallace Starlink 24 October 2003 +* +* Copyright (C) 2003 Rutherford Appleton Laboratory +* +* 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., 51 Franklin Street, Fifth Floor, +* Boston, MA 02110-1301 USA +* +* Copyright (C) 1995 Association of Universities for Research in Astronomy Inc. +*- + + IMPLICIT NONE + + DOUBLE PRECISION EQ,DATE,AMPRMS(21) + +* Light time for 1 AU (sec) + DOUBLE PRECISION CR + PARAMETER (CR=499.004782D0) + +* Gravitational radius of the Sun x 2 (2*mu/c**2, AU) + DOUBLE PRECISION GR2 + PARAMETER (GR2=2D0*9.87063D-9) + + INTEGER I + + DOUBLE PRECISION EBD(3),EHD(3),EH(3),E,VN(3),VM + + DOUBLE PRECISION slEPJ + + + +* Time interval for proper motion correction + AMPRMS(1) = slEPJ(DATE)-EQ + +* Get Earth barycentric and heliocentric position and velocity + CALL slEVP(DATE,EQ,EBD,AMPRMS(2),EHD,EH) + +* Heliocentric direction of earth (normalized) and modulus + CALL slDVN(EH,AMPRMS(5),E) + +* Light deflection parameter + AMPRMS(8) = GR2/E + +* Aberration parameters + DO I=1,3 + AMPRMS(I+8) = EBD(I)*CR + END DO + CALL slDVN(AMPRMS(9),VN,VM) + AMPRMS(12) = SQRT(1D0-VM*VM) + +* Precession/nutation matrix + CALL slPRNU(EQ,DATE,AMPRMS(13)) + + END |