Ignore:
Timestamp:
Jan 17, 2005, 11:13:08 AM (21 years ago)
Author:
cmv
Message:

update pour version 3.6.3 Xephem cmv 17/01/04

File:
1 edited

Legend:

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

    r2551 r2643  
    1313    MoonData md[J_NMOONS]);
    1414static void moonradec (double jupsize, MoonData md[J_NMOONS]);
    15 static void moonSVis (Obj *eop, Obj *jop, MoonData md[J_NMOONS]);
     15static void moonSVis (Obj *sop, Obj *jop, MoonData md[J_NMOONS]);
    1616static void moonEVis (MoonData md[J_NMOONS]);
     17static void moonPShad (Obj *sop, Obj *jop, MoonData md[J_NMOONS]);
     18static void moonTrans (MoonData md[J_NMOONS]);
    1719
    1820/* moon table and a few other goodies and when it was last computed */
     
    3234static char jbdlfn[] = "jupiter.9910";
    3335
     36/* These values are from the Explanatory Supplement.
     37 * Precession degrades them gradually over time.
     38 */
     39#define POLE_RA   degrad(268.05)         /* RA of Jupiter's north pole */
     40#define POLE_DEC  degrad(64.50)         /* Dec of Jupiter's north pole */
     41
     42
    3443/* get jupiter info in md[0], moon info in md[1..J_NMOONS-1].
    3544 * if !dir always use meeus model.
    3645 * if !jop caller just wants md[] for names
    37  * N.B. we assume eop and jop are updated.
     46 * N.B. we assume sop and jop are updated.
    3847 */
    3948void
     
    4150double Mjd,             /* mjd */
    4251char dir[],             /* dir in which to look for helper files */
    43 Obj *eop,               /* earth == Sun */
     52Obj *sop,               /* Sun */
    4453Obj *jop,               /* jupiter */
    4554double *sizep,          /* jup angular diam, rads */
    46 double *cmlI, double *cmlII,    /* central meridian longitude, rads */
     55double *cmlI, double *cmlII,            /* central meridian longitude, rads */
     56double *polera, double *poledec,        /* pole location */
    4757MoonData md[J_NMOONS])  /* return info */
    4858{
     
    5161        /* always copy back at least for name */
    5262        memcpy (md, jmd, sizeof(jmd));
     63
     64        /* pole */
     65        if (polera) *polera = POLE_RA;
     66        if (poledec) *poledec = POLE_DEC;
    5367
    5468        /* nothing else if repeat call or just want names */
     
    91105
    92106        /* set visibilities */
    93         moonSVis (eop, jop, md);
     107        moonSVis (sop, jop, md);
     108        moonPShad (sop, jop, md);
    94109        moonEVis (md);
     110        moonTrans (md);
    95111
    96112        /* fill in moon ra and dec */
     
    168184                         */
    169185{
    170 #define POLE_RA         degrad(268.05)  /* RA of Jupiter's north pole */
    171 #define POLE_DEC        degrad(64.50)   /* Dec of Jupiter's north pole */
    172186#define dsin(x) sin(degrad(x))
    173187#define dcos(x) cos(degrad(x))
     
    296310static void
    297311moonSVis(
    298 Obj *eop,               /* earth == SUN */
     312Obj *sop,               /* SUN */
    299313Obj *jop,               /* jupiter */
    300314MoonData md[J_NMOONS])
    301315{
    302         double esd = eop->s_edist;
     316        double esd = sop->s_edist;
    303317        double eod = jop->s_edist;
    304318        double sod = jop->s_sdist;
     
    339353}
    340354
     355/* set pshad and sx,sy shadow info */
     356static void
     357moonPShad(
     358Obj *sop,               /* SUN */
     359Obj *jop,               /* jupiter */
     360MoonData md[J_NMOONS])
     361{
     362        int i;
     363
     364        for (i = 1; i < J_NMOONS; i++) {
     365            MoonData *mdp = &md[i];
     366            mdp->pshad = !plshadow (jop, sop, POLE_RA, POLE_DEC, mdp->x,
     367                                            mdp->y, mdp->z, &mdp->sx, &mdp->sy);
     368        }
     369}
     370
     371/* set whether moons are transiting */
     372static void
     373moonTrans (MoonData md[J_NMOONS])
     374{
     375        int i;
     376
     377        for (i = 1; i < J_NMOONS; i++) {
     378            MoonData *mdp = &md[i];
     379            mdp->trans = mdp->z > 0 && mdp->x*mdp->x + mdp->y*mdp->y < 1;
     380        }
     381}
     382
    341383/* For RCS Only -- Do Not Edit */
    342 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: jupmoon.c,v $ $Date: 2004-06-15 16:54:12 $ $Revision: 1.1 $ $Name: not supported by cvs2svn $"};
     384static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: jupmoon.c,v $ $Date: 2005-01-17 10:13:05 $ $Revision: 1.2 $ $Name: not supported by cvs2svn $"};
Note: See TracChangeset for help on using the changeset viewer.