Changeset 2551 in Sophya for trunk/SophyaExt/XephemAstroLib/moon.c
- Timestamp:
- Jun 15, 2004, 6:54:12 PM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/XephemAstroLib/moon.c
r1719 r2551 62 62 */ 63 63 64 #include <stdlib.h> 65 #include <stdio.h> 64 66 #include <math.h> 65 #if defined(__STDC__) 66 #include <stdlib.h> 67 #endif 68 69 #include "P_.h" 67 70 68 #include "astro.h" 71 69 … … 86 84 }; 87 85 88 static double mods3600 P_((double x));89 static void mean_elements P_((double JED));90 static int sscc P_((int k, double arg, int n));91 static int g2plan P_((double J, struct plantbl *plan, double *pobj, int flag));92 static double g1plan P_((double J, struct plantbl *plan));93 static int gecmoon P_((double J, struct plantbl *lrtab,94 struct plantbl *lattab, double *pobj) );86 static double mods3600 (double x); 87 static void mean_elements (double JED); 88 static int sscc (int k, double arg, int n); 89 static int g2plan (double J, struct plantbl *plan, double *pobj, int flag); 90 static double g1plan (double J, struct plantbl *plan); 91 static int gecmoon (double J, struct plantbl *lrtab, 92 struct plantbl *lattab, double *pobj); 95 93 96 94 /* time points */ … … 103 101 static double Args[NARGS]; 104 102 static double LP_equinox; 105 static double NF_arcsec;106 103 static double Ea_arcsec; 107 104 static double pA_precession; … … 2832 2829 answer in arc seconds */ 2833 2830 static double 2834 mods3600(x) 2835 double x; 2831 mods3600(double x) 2836 2832 { 2837 2833 double y; … … 2848 2844 2849 2845 static void 2850 mean_elements (JED) 2851 double JED; 2846 mean_elements (double JED) 2852 2847 { 2853 2848 double x, T, T2; … … 2932 2927 - 7.5311878482337989e-04) * T /* F, t^3 */ 2933 2928 - 1.3117809789650071e+01) * T2; /* F, t^2 */ 2934 NF_arcsec = x;2935 2929 Args[10] = x; 2936 2930 … … 3008 3002 */ 3009 3003 static int 3010 sscc (k, arg, n) 3011 int k; 3012 double arg; 3013 int n; 3004 sscc (int k, double arg, int n) 3014 3005 { 3015 3006 double cu, su, cv, sv, s; … … 3040 3031 of the same list of arguments. */ 3041 3032 static int 3042 g2plan (J, plan, pobj, flag) 3043 double J; 3044 struct plantbl *plan; 3045 double pobj[]; 3046 int flag; 3033 g2plan (double J, struct plantbl *plan, double pobj[], int flag) 3047 3034 { 3048 3035 int i, j, k, m, k1, ip, np, nt; … … 3168 3155 3169 3156 static double 3170 g1plan (J, plan) 3171 double J; 3172 struct plantbl *plan; 3157 g1plan (double J, struct plantbl *plan) 3173 3158 { 3174 3159 int i, j, k, m, k1, ip, np, nt; … … 3271 3256 */ 3272 3257 static int 3273 gecmoon (J, lrtab, lattab, pobj) 3274 double J; 3275 struct plantbl *lrtab, *lattab; 3276 double pobj[]; 3258 gecmoon (double J, struct plantbl *lrtab, struct plantbl *lattab, double pobj[]) 3277 3259 { 3278 3260 double x; … … 3294 3276 /*********** end stephen moshier's moon code ****************/ 3295 3277 3296 static void moon_fast P_((double mjd, double *lam, double *bet,3297 double *hp, double *msp, double *mdp) );3278 static void moon_fast (double mj, double *lam, double *bet, 3279 double *hp, double *msp, double *mdp); 3298 3280 3299 3281 /* previous version (elwood): … … 3309 3291 */ 3310 3292 static void 3311 moon_fast (mjd, lam, bet, hp, msp, mdp) 3312 double mjd; 3313 double *lam, *bet, *hp; 3314 double *msp, *mdp; 3293 moon_fast (double mj, double *lam, double *bet, double *hp, double *msp, 3294 double *mdp) 3315 3295 { 3316 3296 double t, t2; … … 3324 3304 double m1, m2, m3, m4, m5, m6; 3325 3305 3326 t = mj d/36525.;3306 t = mj/36525.; 3327 3307 t2 = t*t; 3328 3308 3329 m1 = mj d/27.32158213;3309 m1 = mj/27.32158213; 3330 3310 m1 = 360.0*(m1-(long)m1); 3331 m2 = mj d/365.2596407;3311 m2 = mj/365.2596407; 3332 3312 m2 = 360.0*(m2-(long)m2); 3333 m3 = mj d/27.55455094;3313 m3 = mj/27.55455094; 3334 3314 m3 = 360.0*(m3-(long)m3); 3335 m4 = mj d/29.53058868;3315 m4 = mj/29.53058868; 3336 3316 m4 = 360.0*(m4-(long)m4); 3337 m5 = mj d/27.21222039;3317 m5 = mj/27.21222039; 3338 3318 m5 = 360.0*(m5-(long)m5); 3339 m6 = mj d/6798.363307;3319 m6 = mj/6798.363307; 3340 3320 m6 = 360.0*(m6-(long)m6); 3341 3321 … … 3456 3436 */ 3457 3437 void 3458 moon (mjd, lam, bet, rho, msp, mdp) 3459 double mjd; 3460 double *lam, *bet, *rho; 3461 double *msp, *mdp; 3438 moon (double mj, double *lam, double *bet, double *rho, double *msp, 3439 double *mdp) 3462 3440 { 3463 3441 double pobj[3], dt; 3464 3442 double hp; 3465 3443 3466 if (mj d >= MOSHIER_BEGIN && mjd<= MOSHIER_END) {3444 if (mj >= MOSHIER_BEGIN && mj <= MOSHIER_END) { 3467 3445 /* retard for light time */ 3468 moon_fast (mj d, lam, bet, &hp, msp, mdp);3446 moon_fast (mj, lam, bet, &hp, msp, mdp); 3469 3447 *rho = EarthRadius/AUKM/sin(hp); 3470 3448 dt = *rho * 5.7755183e-3; /* speed of light in a.u/day */ 3471 gecmoon(mj d+ MJD0 - dt, &moonlr, &moonlat, pobj);3449 gecmoon(mj + MJD0 - dt, &moonlr, &moonlat, pobj); 3472 3450 3473 3451 *lam = pobj[0]; … … 3478 3456 *mdp = STR * Args[12]; 3479 3457 } else { 3480 moon_fast (mj d, lam, bet, &hp, msp, mdp);3458 moon_fast (mj, lam, bet, &hp, msp, mdp); 3481 3459 *rho = EarthRadius/AUKM/sin(hp); 3482 3460 … … 3485 3463 3486 3464 /* For RCS Only -- Do Not Edit */ 3487 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: moon.c,v $ $Date: 200 1-10-22 12:08:27 $ $Revision: 1.2$ $Name: not supported by cvs2svn $"};3465 static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: moon.c,v $ $Date: 2004-06-15 16:52:39 $ $Revision: 1.3 $ $Name: not supported by cvs2svn $"};
Note:
See TracChangeset
for help on using the changeset viewer.