/************************************************************ * Calculate the SAC orig. time based on kztime and * Catalog Value * Usage * gsact year month day hour min sec minsec f sac_files ... * Got from Lupei Zhu * Modified by Zhigang Peng, Mon Aug 13 11:34:37 PDT 2001 * Modified Hisory * Change the filename from sacgeto to gsact * which can be used both on the arrival and origin time *************************************************************/ #include #include #include #include "sac.h" #include #define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) int julian(int year,int month, int day); int main(int argc, char **argv) { int i,j,cat[10],nl,jday; float *pt; SACHEAD hd; double catday, kzday,tdiff,origtime; if(argc<9) { fprintf(stderr,"Usage: %s year month day hour min sec minsec f sac_files ...\n",argv[0]); fprintf(stderr," : Calculate the SAC origin and arrival time relative to kztime\n\tbased on catalog and arrivals\n"); return -1; } nl=0;argv++;argc--; while ( *argv[0] != 'f' ) { cat[nl] = atoi(argv[0]); if (cat[nl]==-999) { fprintf(stderr, "error in header_list %s\n",argv[0]); return -1; } nl++; argv++; argc--; } /* for (i = 0; i=13 || month <1) { fprintf(stderr,"Input Month Error!! Usage: julian -[j|d] day month year\n"); return -1; } if(day>31 || day <1) { fprintf(stderr,"Input Day Error !! Usage: julian -[j|d] day month year\n"); return -1; } if(year<0) { fprintf(stderr,"Input Year Error !! Usage: julian -[j|d] day month year\n"); return -1; } if(isleap(year)) { dom[2] = 29; } else { dom[2] = 28; } for (month--;month; month--) { julianday +=dom[month]; } julianday += day; /* printf("julian day is %d\n",julianday);*/ return julianday; }