IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 23, 2008, 10:05:34 AM (18 years ago)
Author:
eugene
Message:

cleanup skycalc build, license info, prototypes; add sunmoon function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/skycalc/include/skycalc_internal.h

    r3263 r19681  
     1/* header for use by the skycalc library files and stand-alone programs, not needed for external calls */
    12
    2 /* header for use by the skycalc library files, not needed for external calls */
    3 
    4 # include <skycalc.h>
    53# include <stdio.h>
    64# include <math.h>
    7 # include <ctype.h>
    8 # include <stdarg.h>
    9 # include <string.h>
     5# include <stdlib.h>
    106# include <time.h>
    11 
    12 /* a couple of the system-dependent magic numbers are defined here */
    13 
    14 #define SYS_CLOCK_OK 1    /* 1 means ANSI-standard time libraries do work,
    15    2 means they don't.  This is used by compiler switches in file 5 and
    16    the main program.  */
    17 
    18 #define LOG_FILES_OK 1  /* 1 means that log files are enabled.
    19                         Any other value means they're not.  */
    20 
    21 #define MAX_OBJECTS 500
    22 #define MINSHORT -32767   /* min, max short integers and double precision */
    23 #define MAXSHORT 32767
    24 #define MAXDOUBLE 1.0e38
    25 #define MINDOUBLE -1.0e38
    26 #define BUFSIZE 150
     7# include <skycalc.h>
    278
    289/* some (not all) physical, mathematical, and astronomical constants
     
    4425#define  PLANET_TOL        3.          /* flag if nearer than 3 degrees
    4526                                                to a major planet ... */
    46 #define  KZEN              0.172       /* zenith extinction, mag, for use
    47                                      in lunar sky brightness calculations. */
    48 #define FIRSTJD            2415387.  /* 1901 Jan 1 -- calendrical limit */
    49 #define LASTJD             2488070.  /* 2099 Dec 31 */
    5027
    51 /* MAGIC NUMBERS which might depend on how accurately double-
    52    precision floating point is handled on your machine ... */
     28# define dCOS(A)   ((double) cos ((double)RAD_DEG*A))
     29# define dSIN(A)   ((double) sin ((double)RAD_DEG*A))
    5330
    54 #define  EARTH_DIFF        0.05            /* used in numerical
    55    differentiation to find earth velocity -- this value gives
    56    about 8 digits of numerical accuracy on the VAX, but is
    57    about 3 orders of magnitude larger than the value where roundoff
    58    errors become apparent. */
     31/** prototypes of private functions used by the library **/
    5932
    60 #define  MIDN_TOL          0.00001         /* this is no longer
    61    used -- it was formerly
    62    how close (in days) a julian date has to be to midnight
    63    before a warning flag is printed for the reader.  VAX
    64    double precision renders a Julian date considerably
    65    more accurately than this.  The day and date are now based
    66    on the same rounding of the julian date, so they should
    67    always agree. */
     33/* in time.c */
     34int    SC_get_sys_date (struct SC_date_time *date);
     35double SC_date_to_jd (struct SC_date_time date);
     36void   SC_jd_to_date (double jdin, struct SC_date_time *date);
     37double SC_lst (double jd, double longit);
     38double SC_adj_time (double x);
    6839
    69 /** prototypes **/
    70 int    get_sys_date (struct SC_date_time *date);
    71 double date_to_jd (struct SC_date_time date);
    72 void   jd_to_date (double jdin, struct SC_date_time *date);
    73 double lst (double jd, double longit);
    74 double adj_time (double x);
    75 void   xyz_cel (double x, double y, double z, double *r, double *d);
    76 double atan_circ (double x, double y);
    77 double altit (double dec, double ha, double lat, double *az);
    78 double ha_alt (double dec, double lat, double alt);
    79 void   min_max_alt (double lat, double dec, double *min, double *max);
    80 double circulo (double x);
    81 void   precrot (double rorig, double dorig, double orig_epoch, double final_epoch, double *rf, double *df);
    82 void   geocent (double geolong, double geolat, double height, double *x_geo, double *y_geo, double *z_geo);
    83 void   eclrot(double jd, double *x, double *y, double *z);
    84 double etcorr (double jd);
    85 void   set_zenith (struct SC_date_time date, double lat, double longit, double epoch, double *ra, double *dec);
    86 void   lpsun (double jd, double *ra, double *dec);
    87 double jd_sun_alt (double alt, double jdguess, double lat, double longit);
    88 void   accumoon (double jd, double geolat, double lst, double elevsea,
    89        double *geora, double *geodec, double *geodist,
    90        double *topora, double *topodec, double *topodist);
    91 double jd_moon_alt (double alt, double jdguess, double lat, double longit, double elevsea);
     40/* in geometry.c */
     41void   SC_xyz_cel (double x, double y, double z, double *r, double *d);
     42double SC_atan_circ (double x, double y);
     43double SC_altit (double dec, double ha, double lat, double *az);
     44double SC_ha_alt (double dec, double lat, double alt);
     45void   SC_min_max_alt (double lat, double dec, double *min, double *max);
     46double SC_circulo (double x);
    9247
    93 double sunset_tonight (struct SC_date_time date, double lat, double longit, double elev);
    94 double sunrise_tonight (struct SC_date_time date, double lat, double longit, double elev);
     48/* in astro.c */
     49void   SC_precrot (double rorig, double dorig, double orig_epoch, double final_epoch, double *rf, double *df);
     50void   SC_geocent (double geolong, double geolat, double height, double *x_geo, double *y_geo, double *z_geo);
     51void   SC_eclrot(double jd, double *x, double *y, double *z);
     52double SC_etcorr (double jd);
     53void   SC_set_zenith (struct SC_date_time date, double lat, double longit, double epoch, double *ra, double *dec);
    9554
    96 int dms_to_ddd (double *Value, char *string);
    97 int str_to_radec (double *ra, double *dec, char *str1, char *str2);
    98 int chk_time (char *line);
    99 double sec_to_jd (time_t second);
    100 time_t jd_to_sec (double jd);
    101 char *sec_to_date (time_t second);
    102 time_t date_to_sec (char *date);
    103 int str_to_time (char *line, time_t *second);
    104 int str_to_dtime (char *line, double *second);
     55/* in sun.c */
     56void   SC_lpsun (double jd, double *ra, double *dec);
     57double SC_jd_sun_alt (double alt, double jdguess, double lat, double longit);
     58double SC_sunset_tonight (struct SC_date_time date, double lat, double longit, double elev);
     59double SC_sunrise_tonight (struct SC_date_time date, double lat, double longit, double elev);
     60
     61/* in moon.c */
     62void   SC_lpmoon(double jd, double lat, double sid, double* ra, double* dec, double* dist);
     63void   SC_accumoon (double jd, double geolat, double lst, double elevsea, double *geora, double *geodec, double *geodist, double *topora, double *topodec, double *topodist);
     64double SC_jd_moon_alt (double alt, double jdguess, double lat, double longit, double elevsea);
     65double SC_moonset_tonight (struct SC_date_time date, double lat, double longit, double elevsea, double elev);
     66double SC_moonrise_tonight (struct SC_date_time date, double lat, double longit, double elevsea, double elev);
     67
     68// are these defined in here or in libohana?
     69// int dms_to_ddd (double *Value, char *string);
     70// int str_to_radec (double *ra, double *dec, char *str1, char *str2);
     71// int chk_time (char *line);
     72// double sec_to_jd (time_t second);
     73// time_t jd_to_sec (double jd);
     74// char *sec_to_date (time_t second);
     75// time_t date_to_sec (char *date);
     76// int str_to_time (char *line, time_t *second);
     77// int str_to_dtime (char *line, double *second);
Note: See TracChangeset for help on using the changeset viewer.