Changeset 2643 in Sophya for trunk/SophyaExt/XephemAstroLib/jupmoon.c
- Timestamp:
- Jan 17, 2005, 11:13:08 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XephemAstroLib/jupmoon.c
r2551 r2643 13 13 MoonData md[J_NMOONS]); 14 14 static void moonradec (double jupsize, MoonData md[J_NMOONS]); 15 static void moonSVis (Obj * eop, Obj *jop, MoonData md[J_NMOONS]);15 static void moonSVis (Obj *sop, Obj *jop, MoonData md[J_NMOONS]); 16 16 static void moonEVis (MoonData md[J_NMOONS]); 17 static void moonPShad (Obj *sop, Obj *jop, MoonData md[J_NMOONS]); 18 static void moonTrans (MoonData md[J_NMOONS]); 17 19 18 20 /* moon table and a few other goodies and when it was last computed */ … … 32 34 static char jbdlfn[] = "jupiter.9910"; 33 35 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 34 43 /* get jupiter info in md[0], moon info in md[1..J_NMOONS-1]. 35 44 * if !dir always use meeus model. 36 45 * 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. 38 47 */ 39 48 void … … 41 50 double Mjd, /* mjd */ 42 51 char dir[], /* dir in which to look for helper files */ 43 Obj * eop, /* earth ==Sun */52 Obj *sop, /* Sun */ 44 53 Obj *jop, /* jupiter */ 45 54 double *sizep, /* jup angular diam, rads */ 46 double *cmlI, double *cmlII, /* central meridian longitude, rads */ 55 double *cmlI, double *cmlII, /* central meridian longitude, rads */ 56 double *polera, double *poledec, /* pole location */ 47 57 MoonData md[J_NMOONS]) /* return info */ 48 58 { … … 51 61 /* always copy back at least for name */ 52 62 memcpy (md, jmd, sizeof(jmd)); 63 64 /* pole */ 65 if (polera) *polera = POLE_RA; 66 if (poledec) *poledec = POLE_DEC; 53 67 54 68 /* nothing else if repeat call or just want names */ … … 91 105 92 106 /* set visibilities */ 93 moonSVis (eop, jop, md); 107 moonSVis (sop, jop, md); 108 moonPShad (sop, jop, md); 94 109 moonEVis (md); 110 moonTrans (md); 95 111 96 112 /* fill in moon ra and dec */ … … 168 184 */ 169 185 { 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 */172 186 #define dsin(x) sin(degrad(x)) 173 187 #define dcos(x) cos(degrad(x)) … … 296 310 static void 297 311 moonSVis( 298 Obj * eop, /* earth ==SUN */312 Obj *sop, /* SUN */ 299 313 Obj *jop, /* jupiter */ 300 314 MoonData md[J_NMOONS]) 301 315 { 302 double esd = eop->s_edist;316 double esd = sop->s_edist; 303 317 double eod = jop->s_edist; 304 318 double sod = jop->s_sdist; … … 339 353 } 340 354 355 /* set pshad and sx,sy shadow info */ 356 static void 357 moonPShad( 358 Obj *sop, /* SUN */ 359 Obj *jop, /* jupiter */ 360 MoonData 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 */ 372 static void 373 moonTrans (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 341 383 /* For RCS Only -- Do Not Edit */ 342 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: jupmoon.c,v $ $Date: 200 4-06-15 16:54:12 $ $Revision: 1.1$ $Name: not supported by cvs2svn $"};384 static 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.