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

    r2551 r2643  
    1111static int use_bdl (double JD, char *dir, MoonData md[M_NMOONS]);
    1212static void moonradec (double msize, MoonData md[M_NMOONS]);
    13 static void moonSVis (Obj *eop, Obj *mop, MoonData md[M_NMOONS]);
     13static void moonSVis (Obj *sop, Obj *mop, MoonData md[M_NMOONS]);
    1414static void moonEVis (MoonData md[M_NMOONS]);
     15static void moonPShad (Obj *sop, Obj *mop, MoonData md[M_NMOONS]);
     16static void moonTrans (MoonData md[M_NMOONS]);
    1517
    1618/* moon table and a few other goodies and when it was last computed */
     
    2628static char mbdlfn[] = "mars.9910";
    2729
     30/* These values are from the Explanatory Supplement.
     31 * Precession degrades them gradually over time.
     32 */
     33#define POLE_RA         degrad(317.61)
     34#define POLE_DEC        degrad(52.85)
     35
     36
    2837/* get mars info in md[0], moon info in md[1..M_NMOONS-1].
    2938 * if !dir always use bruton model.
    3039 * if !mop caller just wants md[] for names
    31  * N.B. we assume eop and mop are updated.
     40 * N.B. we assume sop and mop are updated.
    3241 */
    3342void
     
    3544double Mjd,                     /* mjd */
    3645char dir[],                     /* dir in which to look for helper files */
    37 Obj *eop,                       /* earth == Sun */
     46Obj *sop,                       /* Sun */
    3847Obj *mop,                       /* mars */
    3948double *sizep,                  /* mars's angular diam, rads */
     49double *polera, double *poledec,/* pole location */
    4050MoonData md[M_NMOONS])          /* return info */
    4151{
     
    4454        /* always copy back at least for name */
    4555        memcpy (md, mmd, sizeof(mmd));
     56
     57        /* pole */
     58        if (polera) *polera = POLE_RA;
     59        if (poledec) *poledec = POLE_DEC;
    4660
    4761        /* nothing else if repeat call or just want names */
     
    8195
    8296        /* set visibilities */
    83         moonSVis (eop, mop, md);
     97        moonSVis (sop, mop, md);
     98        moonPShad (sop, mop, md);
    8499        moonEVis (md);
     100        moonTrans (md);
    85101
    86102        /* fill in moon ra and dec */
     
    167183static void
    168184moonSVis(
    169 Obj *eop,               /* earth == SUN */
     185Obj *sop,               /* SUN */
    170186Obj *mop,               /* mars */
    171187MoonData md[M_NMOONS])
    172188{
    173         double esd = eop->s_edist;
     189        double esd = sop->s_edist;
    174190        double eod = mop->s_edist;
    175191        double sod = mop->s_sdist;
     
    210226}
    211227
     228/* set pshad and sx,sy shadow info */
     229static void
     230moonPShad(
     231Obj *sop,             /* SUN */
     232Obj *mop,             /* mars */
     233MoonData md[M_NMOONS])
     234{
     235        int i;
     236
     237        for (i = 1; i < M_NMOONS; i++) {
     238            MoonData *mdp = &md[i];
     239            mdp->pshad = !plshadow (mop, sop, POLE_RA, POLE_DEC, mdp->x,
     240                                          mdp->y, mdp->z, &mdp->sx, &mdp->sy);
     241        }
     242}
     243
     244/* set whether moons are transiting */
     245static void
     246moonTrans (MoonData md[M_NMOONS])
     247{
     248        int i;
     249
     250        for (i = 1; i < M_NMOONS; i++) {
     251            MoonData *mdp = &md[i];
     252            mdp->trans = mdp->z > 0 && mdp->x*mdp->x + mdp->y*mdp->y < 1;
     253        }
     254}
     255
     256
    212257/* For RCS Only -- Do Not Edit */
    213 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: marsmoon.c,v $ $Date: 2004-06-15 16:54:12 $ $Revision: 1.1 $ $Name: not supported by cvs2svn $"};
     258static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: marsmoon.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.