Changeset 2643 in Sophya for trunk/SophyaExt/XephemAstroLib/marsmoon.c
- Timestamp:
- Jan 17, 2005, 11:13:08 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XephemAstroLib/marsmoon.c
r2551 r2643 11 11 static int use_bdl (double JD, char *dir, MoonData md[M_NMOONS]); 12 12 static void moonradec (double msize, MoonData md[M_NMOONS]); 13 static void moonSVis (Obj * eop, Obj *mop, MoonData md[M_NMOONS]);13 static void moonSVis (Obj *sop, Obj *mop, MoonData md[M_NMOONS]); 14 14 static void moonEVis (MoonData md[M_NMOONS]); 15 static void moonPShad (Obj *sop, Obj *mop, MoonData md[M_NMOONS]); 16 static void moonTrans (MoonData md[M_NMOONS]); 15 17 16 18 /* moon table and a few other goodies and when it was last computed */ … … 26 28 static char mbdlfn[] = "mars.9910"; 27 29 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 28 37 /* get mars info in md[0], moon info in md[1..M_NMOONS-1]. 29 38 * if !dir always use bruton model. 30 39 * 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. 32 41 */ 33 42 void … … 35 44 double Mjd, /* mjd */ 36 45 char dir[], /* dir in which to look for helper files */ 37 Obj * eop, /* earth ==Sun */46 Obj *sop, /* Sun */ 38 47 Obj *mop, /* mars */ 39 48 double *sizep, /* mars's angular diam, rads */ 49 double *polera, double *poledec,/* pole location */ 40 50 MoonData md[M_NMOONS]) /* return info */ 41 51 { … … 44 54 /* always copy back at least for name */ 45 55 memcpy (md, mmd, sizeof(mmd)); 56 57 /* pole */ 58 if (polera) *polera = POLE_RA; 59 if (poledec) *poledec = POLE_DEC; 46 60 47 61 /* nothing else if repeat call or just want names */ … … 81 95 82 96 /* set visibilities */ 83 moonSVis (eop, mop, md); 97 moonSVis (sop, mop, md); 98 moonPShad (sop, mop, md); 84 99 moonEVis (md); 100 moonTrans (md); 85 101 86 102 /* fill in moon ra and dec */ … … 167 183 static void 168 184 moonSVis( 169 Obj * eop, /* earth ==SUN */185 Obj *sop, /* SUN */ 170 186 Obj *mop, /* mars */ 171 187 MoonData md[M_NMOONS]) 172 188 { 173 double esd = eop->s_edist;189 double esd = sop->s_edist; 174 190 double eod = mop->s_edist; 175 191 double sod = mop->s_sdist; … … 210 226 } 211 227 228 /* set pshad and sx,sy shadow info */ 229 static void 230 moonPShad( 231 Obj *sop, /* SUN */ 232 Obj *mop, /* mars */ 233 MoonData 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 */ 245 static void 246 moonTrans (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 212 257 /* For RCS Only -- Do Not Edit */ 213 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: marsmoon.c,v $ $Date: 200 4-06-15 16:54:12 $ $Revision: 1.1$ $Name: not supported by cvs2svn $"};258 static 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.