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/satmoon.c

    r2551 r2643  
    1414static void moonSVis (Obj *eop, Obj *sop, MoonData md[S_NMOONS]);
    1515static void moonEVis (MoonData md[S_NMOONS]);
     16static void moonPShad (Obj *eop, Obj *sop, MoonData md[S_NMOONS]);
     17static void moonTrans (MoonData md[S_NMOONS]);
    1618
    1719/* moon table and a few other goodies and when it was last computed */
     
    3537static char sbdlfn[] = "saturne.9910";
    3638
     39/* These values are from the Explanatory Supplement.
     40 * Precession degrades them gradually over time.
     41 */
     42#define POLE_RA         degrad(40.58)   /* RA of Saturn's north pole */
     43#define POLE_DEC        degrad(83.54)   /* Dec of Saturn's north pole */
     44
     45
    3746/* get saturn info in md[0], moon info in md[1..S_NMOONS-1].
    3847 * if !dir always use bruton model.
     
    4857double *sizep,                  /* saturn's angular diam, rads */
    4958double *etiltp, double *stiltp, /* earth and sun tilts -- +S */
     59double *polera, double *poledec,/* pole location */
    5060MoonData md[S_NMOONS])          /* return info */
    5161{
     
    5464        /* always copy back at least for name */
    5565        memcpy (md, smd, sizeof(smd));
     66
     67        /* pole */
     68        if (polera) *polera = POLE_RA;
     69        if (poledec) *poledec = POLE_DEC;
    5670
    5771        /* nothing else if repeat call or just want names */
     
    94108        /* set visibilities */
    95109        moonSVis (eop, sop, md);
     110        moonPShad (eop, sop, md);
    96111        moonEVis (md);
     112        moonTrans (md);
    97113
    98114        /* fill in moon ra and dec */
     
    455471}
    456472
     473/* set pshad and sx,sy shadow info */
     474static void
     475moonPShad(
     476Obj *eop,             /* earth == SUN */
     477Obj *sop,             /* saturn */
     478MoonData md[S_NMOONS])
     479{
     480        int i;
     481
     482        for (i = 1; i < S_NMOONS; i++) {
     483            MoonData *mdp = &md[i];
     484            mdp->pshad = !plshadow (sop, eop, POLE_RA, POLE_DEC, mdp->x,
     485                                          mdp->y, mdp->z, &mdp->sx, &mdp->sy);
     486        }
     487}
     488
     489
     490/* set whether moons are transiting */
     491static void
     492moonTrans (MoonData md[S_NMOONS])
     493{
     494        int i;
     495
     496        for (i = 1; i < S_NMOONS; i++) {
     497            MoonData *mdp = &md[i];
     498            mdp->trans = mdp->z > 0 && mdp->x*mdp->x + mdp->y*mdp->y < 1;
     499        }
     500}
     501
    457502/* For RCS Only -- Do Not Edit */
    458 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: satmoon.c,v $ $Date: 2004-06-15 16:54:12 $ $Revision: 1.1 $ $Name: not supported by cvs2svn $"};
     503static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: satmoon.c,v $ $Date: 2005-01-17 10:13:07 $ $Revision: 1.2 $ $Name: not supported by cvs2svn $"};
Note: See TracChangeset for help on using the changeset viewer.