SUBROUTINE iau_APCO ( DATE1, DATE2, EBPV, EHP, X, Y, S, : THETA, ELONG, PHI, HM, XP, YP, SP, : REFA, REFB, ASTROM ) *+ * - - - - - - - - - * i a u _ A P C O * - - - - - - - - - * * For a terrestrial observer, prepare star-independent astrometry * parameters for transformations between ICRS and observed coordinates. * The caller supplies the Earth ephemeris, the Earth rotation * information and the refraction constants as well as the site * coordinates. * * This routine is part of the International Astronomical Union's * SOFA (Standards of Fundamental Astronomy) software collection. * * Status: support routine. * * Given: * DATE1 d TDB as a 2-part... * DATE2 d ...Julian Date (Note 1) * EBPV d(3,2) Earth barycentric pos/vel (au, au/day, Note 2) * EHP d(3) Earth heliocentric position (au, Note 2) * X,Y d CIP X,Y (components of unit vector) * S d the CIO locator s (radians) * THETA d Earth rotation angle (radians) * ELONG d longitude (radians, east +ve, Note 3) * PHI d latitude (geodetic, radians, Note 3) * HM d height above ellipsoid (m, geodetic, Note 3) * XP,YP d polar motion coordinates (radians, Note 4) * SP d the TIO locator s' (radians, Note 4) * REFA d refraction constant A (radians, Note 5) * REFB d refraction constant B (radians, Note 5) * * Returned: * ASTROM d(30) star-independent astrometry parameters: * (1) PM time interval (SSB, Julian years) * (2-4) SSB to observer (vector, au) * (5-7) Sun to observer (unit vector) * (8) distance from Sun to observer (au) * (9-11) v: barycentric observer velocity (vector, c) * (12) sqrt(1-|v|^2): reciprocal of Lorenz factor * (13-21) bias-precession-nutation matrix * (22) adjusted longitude (radians) * (23) polar motion xp wrt local meridian (radians) * (24) polar motion yp wrt local meridian (radians) * (25) sine of geodetic latitude * (26) cosine of geodetic latitude * (27) magnitude of diurnal aberration vector * (28) "local" Earth rotation angle (radians) * (29) refraction constant A (radians) * (30) refraction constant B (radians) * * Notes: * * 1) The TDB date DATE1+DATE2 is a Julian Date, apportioned in any * convenient way between the two arguments. For example, * JD(TDB)=2450123.7 could be expressed in any of these ways, among * others: * * DATE1 DATE2 * * 2450123.7D0 0D0 (JD method) * 2451545D0 -1421.3D0 (J2000 method) * 2400000.5D0 50123.2D0 (MJD method) * 2450123.5D0 0.2D0 (date & time method) * * The JD method is the most natural and convenient to use in cases * where the loss of several decimal digits of resolution is * acceptable. The J2000 method is best matched to the way the * argument is handled internally and will deliver the optimum * resolution. The MJD method and the date & time methods are both * good compromises between resolution and convenience. For most * applications of this routine the choice will not be at all * critical. * * TT can be used instead of TDB without any significant impact on * accuracy. * * 2) The vectors EB, EH, and all the ASTROM vectors, are with respect * to BCRS axes. * * 3) The geographical coordinates are with respect to the WGS84 * reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN * CONVENTION: the longitude required by the present routine is * right-handed, i.e. east-positive, in accordance with geographical * convention. * * The adjusted longitude stored in the ASTROM array takes into * account the TIO locator and polar motion. * * 4) XP and YP are the coordinates (in radians) of the Celestial * Intermediate Pole with respect to the International Terrestrial * Reference System (see IERS Conventions), measured along the * meridians 0 and 90 deg west respectively. SP is the TIO locator * s', in radians, which positions the Terrestrial Intermediate * Origin on the equator. For many applications, XP, YP and * (especially) SP can be set to zero. * * Internally, the polar motion is stored in a form rotated onto the * local meridian. * * 5) The refraction constants REFA and REFB are for use in a * dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed * (i.e. refracted) zenith distance and dZ is the amount of * refraction. * * 6) It is advisable to take great care with units, as even unlikely * values of the input parameters are accepted and processed in * accordance with the models used. * * 7) In cases where the caller does not wish to provide the Earth * Ephemeris, the Earth rotation information and refraction * constants, the routine iau_APCO13 can be used instead of the * present routine. This starts from UTC and weather readings etc. * and computes suitable values using other SOFA routines. * * 8) This is one of several routines that inserts into the ASTROM * array star-independent parameters needed for the chain of * astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed. * * The various routines support different classes of observer and * portions of the transformation chain: * * routines observer transformation * * iau_APCG iau_APCG13 geocentric ICRS <-> GCRS * iau_APCI iau_APCI13 terrestrial ICRS <-> CIRS * iau_APCO iau_APCO13 terrestrial ICRS <-> observed * iau_APCS iau_APCS13 space ICRS <-> GCRS * iau_APER iau_APER13 terrestrial update Earth rotation * iau_APIO iau_APIO13 terrestrial CIRS <-> observed * * Those with names ending in "13" use contemporary SOFA models to * compute the various ephemerides. The others accept ephemerides * supplied by the caller. * * The transformation from ICRS to GCRS covers space motion, * parallax, light deflection, and aberration. From GCRS to CIRS * comprises frame bias and precession-nutation. From CIRS to * observed takes account of Earth rotation, polar motion, diurnal * aberration and parallax (unless subsumed into the ICRS <-> GCRS * transformation), and atmospheric refraction. * * 9) The context array ASTROM produced by this routine is used by * iau_ATIOQ, iau_ATOIQ, iau_ATCIQ*, and iau_ATICQ*. * * Called: * iau_IR initialize r-matrix to identity * iau_RZ rotate around Z-axis * iau_RY rotate around Y-axis * iau_RX rotate around X-axis * iau_ANPM normalize angle into range +/- pi * iau_C2IXYS celestial-to-intermediate matrix, given X,Y and s * iau_PVTOB position/velocity of terrestrial station * iau_TRXPV product of transpose of r-matrix and pv-vector * iau_APCS astrometry parameters, ICRS-GCRS, space observer * iau_CR copy r-matrix * * This revision: 2021 January 7 * * SOFA release 2021-05-12 * * Copyright (C) 2021 IAU SOFA Board. See notes at end. * *----------------------------------------------------------------------- IMPLICIT NONE DOUBLE PRECISION DATE1, DATE2, EBPV(3,2), EHP(3), X, Y, S, : THETA, ELONG, PHI, HM, XP, YP, SP, REFA, REFB, : ASTROM(30) DOUBLE PRECISION R(3,3), A, B, ERAL, C, PVC(3,2), PV(3,2) DOUBLE PRECISION iau_ANPM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Form the rotation matrix, CIRS to apparent [HA,Dec]. CALL iau_IR ( R ) CALL iau_RZ ( THETA+SP, R ) CALL iau_RY ( -XP, R ) CALL iau_RX ( -YP, R ) CALL iau_RZ ( ELONG, R ) * Solve for local Earth rotation angle. A = R(1,1) B = R(1,2) IF ( A.NE.0D0 .OR. B.NE.0D0 ) THEN ERAL = ATAN2 ( B, A ) ELSE ERAL = 0D0 END IF ASTROM(28) = ERAL * Solve for polar motion [X,Y] with respect to local meridian. A = R(1,1) C = R(1,3) ASTROM(23) = ATAN2 ( C, SQRT(A*A+B*B) ) A = R(2,3) B = R(3,3) IF ( A.NE.0D0 .OR. B.NE.0D0 ) THEN ASTROM(24) = - ATAN2 ( A, B ) ELSE ASTROM(24) = 0D0 END IF * Adjusted longitude. ASTROM(22) = iau_ANPM ( ERAL - THETA ) * Functions of latitude. ASTROM(25) = SIN(PHI) ASTROM(26) = COS(PHI) * Refraction constants. ASTROM(29) = REFA ASTROM(30) = REFB * Disable the (redundant) diurnal aberration step. ASTROM(27) = 0D0 * CIO based BPN matrix. CALL iau_C2IXYS ( X, Y, S, R ) * Observer's geocentric position and velocity (m, m/s, CIRS). CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PVC ) * Rotate into GCRS. CALL iau_TRXPV ( R, PVC, PV ) * ICRS <-> GCRS parameters. CALL iau_APCS ( DATE1, DATE2, PV, EBPV, EHP, ASTROM ) * Store the CIO based BPN matrix. CALL iau_CR ( R, ASTROM(13) ) * Finished. *+---------------------------------------------------------------------- * * Copyright (C) 2021 * Standards Of Fundamental Astronomy Board * of the International Astronomical Union. * * ===================== * SOFA Software License * ===================== * * NOTICE TO USER: * * BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND * CONDITIONS WHICH APPLY TO ITS USE. * * 1. The Software is owned by the IAU SOFA Board ("SOFA"). * * 2. Permission is granted to anyone to use the SOFA software for any * purpose, including commercial applications, free of charge and * without payment of royalties, subject to the conditions and * restrictions listed below. * * 3. You (the user) may copy and distribute SOFA source code to others, * and use and adapt its code and algorithms in your own software, * on a world-wide, royalty-free basis. That portion of your * distribution that does not consist of intact and unchanged copies * of SOFA source code files is a "derived work" that must comply * with the following requirements: * * a) Your work shall be marked or carry a statement that it * (i) uses routines and computations derived by you from * software provided by SOFA under license to you; and * (ii) does not itself constitute software provided by and/or * endorsed by SOFA. * * b) The source code of your derived work must contain descriptions * of how the derived work is based upon, contains and/or differs * from the original SOFA software. * * c) The names of all routines in your derived work shall not * include the prefix "iau" or "sofa" or trivial modifications * thereof such as changes of case. * * d) The origin of the SOFA components of your derived work must * not be misrepresented; you must not claim that you wrote the * original software, nor file a patent application for SOFA * software or algorithms embedded in the SOFA software. * * e) These requirements must be reproduced intact in any source * distribution and shall apply to anyone to whom you have * granted a further right to modify the source code of your * derived work. * * Note that, as originally distributed, the SOFA software is * intended to be a definitive implementation of the IAU standards, * and consequently third-party modifications are discouraged. All * variations, no matter how minor, must be explicitly marked as * such, as explained above. * * 4. You shall not cause the SOFA software to be brought into * disrepute, either by misuse, or use for inappropriate tasks, or * by inappropriate modification. * * 5. The SOFA software is provided "as is" and SOFA makes no warranty * as to its use or performance. SOFA does not and cannot warrant * the performance or results which the user may obtain by using the * SOFA software. SOFA makes no warranties, express or implied, as * to non-infringement of third party rights, merchantability, or * fitness for any particular purpose. In no event will SOFA be * liable to the user for any consequential, incidental, or special * damages, including any lost profits or lost savings, even if a * SOFA representative has been advised of such damages, or for any * claim by any third party. * * 6. The provision of any version of the SOFA software under the terms * and conditions specified herein does not imply that future * versions will also be made available under the same terms and * conditions. * * In any published work or commercial product which uses the SOFA * software directly, acknowledgement (see www.iausofa.org) is * appreciated. * * Correspondence concerning SOFA software should be addressed as * follows: * * By email: sofa@ukho.gov.uk * By post: IAU SOFA Center * HM Nautical Almanac Office * UK Hydrographic Office * Admiralty Way, Taunton * Somerset, TA1 2DN * United Kingdom * *----------------------------------------------------------------------- END