Ignore:
Timestamp:
Jun 15, 2004, 6:54:12 PM (21 years ago)
Author:
cmv
Message:

nouvelle version de xephem/libastro (3.6) cmv 15/6/04

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/XephemAstroLib/plans.c

    r1719 r2551  
    55#include <math.h>
    66
    7 #include "P_.h"
    87#include "astro.h"
    98#include "vsop87.h"
    109#include "chap95.h"
    1110
    12 static void pluto_ell P_((double mjd, double *ret));
    13 static void chap_trans P_((double mjd, double *ret));
    14 static void planpos P_((double mjd, int obj, double prec, double *ret));
     11static void pluto_ell (double mj, double *ret);
     12static void chap_trans (double mj, double *ret);
     13static void planpos (double mj, int obj, double prec, double *ret);
    1514
    1615/* coordinate transformation
     
    2120 */
    2221static void
    23 chap_trans (mjd, ret)
    24 double mjd;     /* destination epoch */
    25 double *ret;    /* vector to be transformed _IN PLACE_ */
     22chap_trans (
     23double mj,      /* destination epoch */
     24double *ret)    /* vector to be transformed _IN PLACE_ */
    2625{
    2726        double ra, dec, r, eps;
     
    2928
    3029        cartsph(ret[0], ret[1], ret[2], &ra, &dec, &r);
    31         precess(J2000, mjd, &ra, &dec);
    32         obliquity(mjd, &eps);
     30        precess(J2000, mj, &ra, &dec);
     31        obliquity(mj, &eps);
    3332        sr = sin(ra); cr = cos(ra);
    3433        sd = sin(dec); cd = cos(dec);
     
    4342 */
    4443static void
    45 pluto_ell (mjd, ret)
    46 double mjd;     /* epoch */
    47 double *ret;    /* ecliptic coordinates {l,b,r} at equinox of date */
     44pluto_ell (
     45double mj,      /* epoch */
     46double *ret)    /* ecliptic coordinates {l,b,r} at equinox of date */
    4847{
    4948        /* mean orbital elements of Pluto.
     
    5554                Om0 = 110.307,                  /* long asc node, deg */
    5655                omeg0 = 113.768,                /* arg of perihel, deg */
    57                 mjdp = 2448045.539 - MJD0,      /* epoch of perihel */
    58                 mjdeq = J2000,                  /* equinox of elements */
     56                mjp = 2448045.539 - MJD0,       /* epoch of perihel */
     57                mjeq = J2000,                   /* equinox of elements */
    5958                n = 144.9600/36525.;            /* daily motion, deg */
    6059
     
    6362        double lo, slo, clo;    /* longitude in orbit from asc node */
    6463
    65         reduce_elements(mjdeq, mjd, degrad(inc0), degrad(omeg0), degrad(Om0),
     64        reduce_elements(mjeq, mj, degrad(inc0), degrad(omeg0), degrad(Om0),
    6665                                &inc, &omeg, &Om);
    67         ma = degrad((mjd - mjdp) * n);
     66        ma = degrad((mj - mjp) * n);
    6867        anomaly(ma, e, &nu, &ea);
    6968        ret[2] = a * (1.0 - e*cos(ea));                 /* r */
     
    8180 */
    8281static void
    83 planpos (mjd, obj, prec, ret)
    84 double mjd;
    85 int obj;
    86 double prec;
    87 double *ret;
    88 {
    89         if (mjd >= CHAP_BEGIN && mjd <= CHAP_END) {
     82planpos (double mj, int obj, double prec, double *ret)
     83{
     84        if (mj >= CHAP_BEGIN && mj <= CHAP_END) {
    9085            if (obj >= JUPITER) {               /* prefer Chapront */
    91                 chap95(mjd, obj, prec, ret);
    92                 chap_trans (mjd, ret);
     86                chap95(mj, obj, prec, ret);
     87                chap_trans (mj, ret);
    9388            } else {                            /* VSOP for inner planets */
    94                 vsop87(mjd, obj, prec, ret);
     89                vsop87(mj, obj, prec, ret);
    9590            }
    9691        } else {                                /* outside Chapront time: */
    9792            if (obj != PLUTO) {                 /* VSOP for all but Pluto */
    98                 vsop87(mjd, obj, prec, ret);
     93                vsop87(mj, obj, prec, ret);
    9994            } else {                            /* Pluto mean elliptic orbit */
    100                 pluto_ell(mjd, ret);
     95                pluto_ell(mj, ret);
    10196            }
    10297        }
     
    126121};
    127122
    128 /* given a modified Julian date, mjd, and a planet, p, find:
     123/* given a modified Julian date, mj, and a planet, p, find:
    129124 *   lpd0: heliocentric longitude,
    130125 *   psi0: heliocentric latitude,
     
    148143 */
    149144void
    150 plans (mjd, p, lpd0, psi0, rp0, rho0, lam, bet, dia, mag)
    151 double mjd;
    152 int p;
    153 double *lpd0, *psi0, *rp0, *rho0, *lam, *bet, *dia, *mag;
    154 {
    155         static double lastmjd = -10000;
     145plans (double mj, PLCode p, double *lpd0, double *psi0, double *rp0,
     146double *rho0, double *lam, double *bet, double *dia, double *mag)
     147{
     148        static double lastmj = -10000;
    156149        static double lsn, bsn, rsn;    /* geocentric coords of sun */
    157150        static double xsn, ysn, zsn;    /* cartesian " */
     
    163156        int pass;
    164157
    165         /* get sun cartesian; needed only once at mjd */
    166         if (mjd != lastmjd) {
    167             sunpos (mjd, &lsn, &rsn, &bsn);
     158        /* get sun cartesian; needed only once at mj */
     159        if (mj != lastmj) {
     160            sunpos (mj, &lsn, &rsn, &bsn);
    168161            sphcart (lsn, bsn, rsn, &xsn, &ysn, &zsn);
    169             lastmjd = mjd;
     162            lastmj = mj;
    170163        }
    171164
    172         /* first find the true position of the planet at mjd.
     165        /* first find the true position of the planet at mj.
    173166         * then repeat a second time for a slightly different time based
    174167         * on the position found in the first pass to account for light-travel
     
    183176             * alternative option:  vsop allows calculating rates.
    184177             */
    185             planpos(mjd - dt, p, 0.0, ret);
     178            planpos(mj - dt, p, 0.0, ret);
    186179
    187180            lp = ret[0];
     
    225218        if (p == SATURN) {
    226219            double et, st, set;
    227             satrings (bp, lp, rp, lsn+PI, rsn, mjd+MJD0, &et, &st);
     220            satrings (bp, lp, rp, lsn+PI, rsn, mj+MJD0, &et, &st);
    228221            set = sin(fabs(et));
    229222            *mag += (-2.60 + 1.25*set)*set;
     
    232225
    233226/* For RCS Only -- Do Not Edit */
    234 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: plans.c,v $ $Date: 2001-10-22 12:08:27 $ $Revision: 1.2 $ $Name: not supported by cvs2svn $"};
     227static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: plans.c,v $ $Date: 2004-06-15 16:52:39 $ $Revision: 1.3 $ $Name: not supported by cvs2svn $"};
Note: See TracChangeset for help on using the changeset viewer.