silence compiler errors and few minor fixes

This commit is contained in:
Wei Chen
2024-03-27 08:01:05 -05:00
parent 410f0ff9ab
commit dbf49ab05f
5 changed files with 35 additions and 278 deletions

View File

@@ -1,13 +1,13 @@
CC = gcc
CFLAGS = -Wall -O2
CFLAGS = -Wall -O3 -g
LIBS = -lm -lpthread
LUNARCAL = lunarcal
TESTASTRO = testastro
# default target
.PHONY : all
.PHONY : all clean
all: $(LUNARCAL) $(TESTASTRO)
@echo all done!
@@ -36,6 +36,5 @@ $(TESTASTRO): $(TESTASTRO_OBJS)
$(CC) $(CFLAGS) -o $(TESTASTRO) $(TESTASTRO_OBJS) $(LIBS)
.PHONY : clean
clean:
rm -f *.o core a.out astro lunarcal testastro
rm -f *.o core a.out lunarcal testastro

View File

@@ -118,6 +118,10 @@ double lea406(double jd, int ignorenutation) {
V += nutation(jd);
/* printf("debug lea406, nutation been adjusted"); */
}
for (i = 0; i < num_threads; i++)
free(thread_args[i]);
return V;
}

View File

@@ -2,7 +2,7 @@
#define MAX_NEWMOONS 15
#define MAX_DAYS 450
#define CACHESIZE 3
#define BUFSIZE 32
#define BUFSIZE 64
#define TZ_CN 8
struct solarterm {

View File

@@ -4,7 +4,7 @@
#include <math.h>
#include "astro.h"
#define MAX_JPL_LINE_LEN 100
#define MAX_JPL_LINE_LEN 128
#define MAX_JPL_RECORDS 73415
#define FLAG_SOE 1
@@ -14,10 +14,15 @@ struct jplrcd {
};
int parsejplhorizon(char *fname, struct jplrcd *records[]);
void testnewmoon_solarterm(int year);
void testdeltat(void);
struct jplrcd *lon_alloc(void);
void verify_apparent_sun_moon(void);
double n180to180(double angle);
double jd2year(double jd);
void testapparentmoon(void);
void testnutation(void);
double jd2year(double jd)
{
@@ -30,11 +35,9 @@ double jd2year(double jd)
return fyear;
}
void testdeltat(void);
void testdeltat()
{
// double d = -133.5;
// int i;
double jd;
char strout[30];
jd = jdptime("2012-01-05 18:00", "%y-%m-%d %H:%M", 0, 0);
@@ -43,10 +46,10 @@ void testdeltat()
jdftime(strout, jd, "%y-%m-%d %H:%M", 0, 0);
printf("jdftime output = %s\n", strout);
int i,year;
int year;
double deltat;
year = -500;
for (i = 0; i < 20; i++) {
for (int i = 0; i < 20; i++) {
deltat = deltaT(year, 1);
printf("%d = %.2f\n", year, deltat);
year += 100;
@@ -54,46 +57,42 @@ void testdeltat()
return;
}
void testnewmoon_solarterm(void);
void testnewmoon_solarterm(void)
void testnewmoon_solarterm(int year)
{
double newmoons[NMCOUNT];
double jd;
//jd = jdptime("2014-01-01 18:00", "%y-%m-%d %H:%M", 0, 0);
int year = 2000;
int n;
int y = year;
char isodt[30];
int i;
for (n = 0; n < 50; n++) {
jd = g2jd(year, 1, 1.0);
const float tz = 8.0;
for (int n = 0; n < 2; n++) {
jd = g2jd(y, 1, 1.0);
findnewmoons(newmoons, NMCOUNT, jd);
year += 1;
y += 1;
for (i = 0; i < NMCOUNT; i++) {
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", 8.0, 1);
printf("found newmoon: %s %.8f\n", isodt, newmoons[i]);
for (int i = 0; i < NMCOUNT; i++) {
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", tz, 1);
printf("newmoon: %s UTC%.1f\n", isodt, tz);
}
}
double angle;
y = year;
for (angle = -90; angle < 285; angle += 15) {
jd = solarterm(2014, angle);
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", 8.0, 1);
printf("solar term: %3.0f %s\n", angle, isodt);
jd = solarterm(y, angle);
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", tz, 1);
printf("solar term: %3.0f %s UTC%.1f\n", angle, isodt, tz);
}
return;
}
void testapparentmoon(void);
void testapparentmoon(void)
{
double jd = 2411545.0;
char deg[30];
char degsun[30];
double d;
int i;
for (i = 0; i < 20; i++) {
for (int i = 0; i < 20; i++) {
d = apparentmoon(jd, 1) * RAD2DEG;
fmtdeg(deg, d);
d = lightabbr_high(jd) * RAD2DEG;
@@ -104,7 +103,6 @@ void testapparentmoon(void)
}
}
void testnutation(void);
void testnutation(void)
{
double jd = 2411545.0;
@@ -130,8 +128,8 @@ int parsejplhorizon(char *fname, struct jplrcd *records[])
}
flag = 0;
i = 0;
while ((p = fgets(buf, MAX_JPL_LINE_LEN + 1, fp)) != NULL
&& i < MAX_JPL_RECORDS) {
while ((p = fgets(buf, MAX_JPL_LINE_LEN, fp)) != NULL &&
i < MAX_JPL_RECORDS) {
if (p == strstr(p, "$$SOE")) { /* start of records */
flag = 1;
continue;
@@ -144,12 +142,10 @@ int parsejplhorizon(char *fname, struct jplrcd *records[])
sscanf(p, "%lf %lf", &(plon->jd), &(plon->lon));
records[i++] = plon;
}
}
return i;
}
struct jplrcd *lon_alloc(void)
{
return (struct jplrcd *) malloc(sizeof(struct jplrcd));
@@ -217,12 +213,11 @@ double n180to180(double angle)
return angle;
}
int main(void);
int main()
{
//testnewmoon_solarterm();
testnewmoon_solarterm(2024);
//testapparentmoon();
//testnutation();
verify_apparent_sun_moon();
//verify_apparent_sun_moon();
return 0;
}

View File

@@ -1,241 +0,0 @@
BEGIN:VCALENDAR
PRODID:-//Chen Wei//2016 China Public Holiday Calendar//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:2016 China Public Holiday
X-WR-TIMEZONE:Asia/Shanghai
X-WR-CALDESC:上证公告[2015]36号
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160101-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160101
DTEND;VALUE=DATE:20160102
STATUS:CONFIRMED
SUMMARY:元旦
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160102-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160102
DTEND;VALUE=DATE:20160103
STATUS:CONFIRMED
SUMMARY:元旦
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160103-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160103
DTEND;VALUE=DATE:20160104
STATUS:CONFIRMED
SUMMARY:元旦
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160207-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160207
DTEND;VALUE=DATE:20160208
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160208-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160208
DTEND;VALUE=DATE:20160209
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160209-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160209
DTEND;VALUE=DATE:20160210
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160210-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160210
DTEND;VALUE=DATE:20160211
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160211-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160211
DTEND;VALUE=DATE:20160212
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160212-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160212
DTEND;VALUE=DATE:20160213
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160213-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160213
DTEND;VALUE=DATE:20160214
STATUS:CONFIRMED
SUMMARY:春节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160402-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160402
DTEND;VALUE=DATE:20160403
STATUS:CONFIRMED
SUMMARY:清明节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160403-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160403
DTEND;VALUE=DATE:20160404
STATUS:CONFIRMED
SUMMARY:清明节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160404-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160404
DTEND;VALUE=DATE:20160405
STATUS:CONFIRMED
SUMMARY:清明节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160430-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160430
DTEND;VALUE=DATE:20160501
STATUS:CONFIRMED
SUMMARY:劳动节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160501-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160501
DTEND;VALUE=DATE:20160502
STATUS:CONFIRMED
SUMMARY:劳动节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160502-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160502
DTEND;VALUE=DATE:20160503
STATUS:CONFIRMED
SUMMARY:劳动节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160609-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160609
DTEND;VALUE=DATE:20160610
STATUS:CONFIRMED
SUMMARY:端午节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160610-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160610
DTEND;VALUE=DATE:20160611
STATUS:CONFIRMED
SUMMARY:端午节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160611-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160611
DTEND;VALUE=DATE:20160612
STATUS:CONFIRMED
SUMMARY:端午节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160915-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160915
DTEND;VALUE=DATE:20160916
STATUS:CONFIRMED
SUMMARY:中秋节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160916-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160916
DTEND;VALUE=DATE:20160917
STATUS:CONFIRMED
SUMMARY:中秋节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20160917-holiday@infinet.github.io
DTSTART;VALUE=DATE:20160917
DTEND;VALUE=DATE:20160918
STATUS:CONFIRMED
SUMMARY:中秋节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161001-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161001
DTEND;VALUE=DATE:20161002
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161002-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161002
DTEND;VALUE=DATE:20161003
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161003-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161003
DTEND;VALUE=DATE:20161004
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161004-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161004
DTEND;VALUE=DATE:20161005
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161005-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161005
DTEND;VALUE=DATE:20161006
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161006-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161006
DTEND;VALUE=DATE:20161007
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20160101T043225Z
UID:20161007-holiday@infinet.github.io
DTSTART;VALUE=DATE:20161007
DTEND;VALUE=DATE:20161008
STATUS:CONFIRMED
SUMMARY:国庆节
END:VEVENT
END:VCALENDAR