Annotation of researchv10no/cmd/ccom/vax/tests/w.i, revision 1.1.1.1

1.1       root        1: int    flags;
                      2: double wlong, awlong, nlat, elev;
                      3: double obliq, phi, eps, tobliq;
                      4: double dphi, deps;
                      5: double day, deld;
                      6: double eday, capt, capt2, capt3, gst;
                      7: double pi, radian, radsec, deltat;
                      8: double erad, glat;
                      9: double xms, yms, zms;
                     10: double xdot, ydot, zdot;
                     11: double ecc, incl, node, argp, mrad, anom, motion;
                     12: double lambda, beta, rad, mag, semi;
                     13: double alpha, delta, rp, hp;
                     14: double ra, decl, semi2;
                     15: double lha, decl2, lmb2;
                     16: double az, el;
                     17: double meday, seday, mhp, salph, sdelt, srad;
                     18: double rah, ram, ras, dday, dmin, dsec;
                     19: long   agc;
                     20: double da, dd, px, epoch;
                     21: char   line[100];
                     22: double sin();
                     23: double cos();
                     24: double floor();
                     25: double ltod();
                     26: double sqrt();
                     27: double pyth();
                     28: double fmod();
                     29: double atan2();
                     30: double log();
                     31: double fabs();
                     32: double dist();
                     33: double rise();
                     34: double set();
                     35: double melong();
                     36: double solstice();
                     37: double betcross();
                     38: int    evcomp();
                     39: long   time();
                     40: double sunel();
                     41: double readate();
                     42: double convdate();
                     43: double ltod();
                     44: double atof();
                     45: double cosadd();
                     46: double sinadd();
                     47: char * skip();
                     48: struct obj1
                     49: {
                     50:        double  ra;
                     51:        double  decl2;
                     52:        double  semi2;
                     53:        double  az;
                     54:        double  el;
                     55:        double  mag;
                     56: };
                     57: struct obj2
                     58: {
                     59:        char    *name;
                     60:        int     (*obj)();
                     61:        struct  obj1    point[12+2];
                     62: }
                     63: osun, omoon, oshad, omerc, ovenus,
                     64: omars, osat, ojup, ostar;
                     65: extern struct  obj2    *objlst[];
                     66: struct obj3
                     67: {
                     68:        double  t1;
                     69:        double  t2;
                     70:        double  t3;
                     71:        double  t4;
                     72:        double  t5;
                     73: } occ;
                     74: extern int     dmo[];
                     75: extern struct  _iobuf {
                     76:        int     _cnt;
                     77:        unsigned char   *_ptr;
                     78:        unsigned char   *_base;
                     79:        short   _flag;
                     80:        char    _file;
                     81: } _iob[20];
                     82: struct _iobuf  *fopen();
                     83: struct _iobuf  *fdopen();
                     84: struct _iobuf  *freopen();
                     85: long   ftell();
                     86: char   *fgets();
                     87: main(argc, argv)
                     88: char *argv[];
                     89: {
                     90:        register i, j;
                     91:        double d;
                     92:        pi = 3.1415926535897932;
                     93:        radian = pi/180.;
                     94:        radsec = radian/3600.;
                     95:        args(argc, argv);
                     96:        init();
                     97:        deld = 1.0/12;
                     98: loop:
                     99:        d = day;
                    100:        pdate(d);
                    101:        if(flags & 8) {
                    102:                printf(" ");
                    103:                ptime(d);
                    104:        }
                    105:        printf("\n");
                    106:        for(i=0; i<=12+1; i++) {
                    107:                setime(d);
                    108:                for(j=0; objlst[j]; j++) {
                    109:                        (*objlst[j]->obj)();
                    110:                        setobj(&objlst[j]->point[i]);
                    111:                        if(flags & 8)
                    112:                                output(objlst[j]->name, &objlst[j]->point[i]);
                    113:                }
                    114:                d += deld;
                    115:                if(flags & 8)
                    116:                        exit(0);
                    117:        }
                    118:        search();
                    119:        day += 1.0;
                    120:        if(flags & 1)
                    121:                goto loop;
                    122:        exit(0);
                    123: }
                    124: args(argc, argv)
                    125: char *argv[];
                    126: {
                    127:        register char *p;
                    128:        long t;
                    129:        p = "";
                    130:        if(argc > 1)
                    131:                p = argv[1];
                    132:        while(*p)
                    133:        switch(*p++) {
                    134:        case 'd':
                    135:                flags |= 64;
                    136:                continue;
                    137:        case 'l':
                    138:                flags |= 128;
                    139:                continue;
                    140:        case 'c':
                    141:                flags |= 1;
                    142:                continue;
                    143:        case 'p':
                    144:                flags |= 8;
                    145:                continue;
                    146:        case 's':
                    147:                flags |= 4;
                    148:                continue;
                    149:        case 'a':
                    150:                flags |= 16;
                    151:                continue;
                    152:        case 't':
                    153:                flags |= 256;
                    154:                continue;
                    155:        case 'o':
                    156:                flags |= 2;
                    157:                continue;
                    158:        case 'k':
                    159:                flags |= 512;
                    160:                continue;
                    161:        case '-':
                    162:                continue;
                    163:        default:
                    164:                printf("unknown option '%c'\n", p[-1]);
                    165:        }
                    166:        t = time((int *)0);
                    167:        day = t/86400. + 25567.5;
                    168:        if(flags & 64)
                    169:                day = readate();
                    170:        awlong = (74. + 32./60.)*radian;
                    171:        nlat = (40. + 40./60.)*radian;
                    172:        elev = 0.;
                    173:        if(flags & 128)
                    174:                readlat();
                    175: }
                    176: double
                    177: readate()
                    178: {
                    179:        register i;
                    180:        double ifa[5];
                    181:        printf("year mo da hr min\n");
                    182:        rline((&_iob[0]));
                    183:        for(i=0; i<5; i++)
                    184:                ifa[i] = atof(skip(i));
                    185:        return(convdate(ifa));
                    186: }
                    187: double
                    188: convdate(ifa)
                    189: double ifa[];
                    190: {
                    191:        double y, d;
                    192:        register i;
                    193:        y = ifa[0];
                    194:        i = (int)ifa[1];
                    195:        d = ifa[2];
                    196:        while(i < 1) {
                    197:                i += 12;
                    198:                y -= 1.;
                    199:        }
                    200:        while(i > 12) {
                    201:                i -= 12;
                    202:                y += 1.;
                    203:        }
                    204:        if(y < 0.)
                    205:                y += 1.;
                    206:        y += 4712.;
                    207:        if(fmod(y, 4.) == 0 && i > 2)
                    208:                d += 1.;
                    209:        y = y*365. +
                    210:                floor((y+3.)/4.) +
                    211:                dmo[i-1] + d - 1.;
                    212:        if(y > 2361232.)
                    213:                y -= floor((y-1794167.)/36525.) -
                    214:                        floor((y-1721117.)/146100.);
                    215:        y += ifa[3]/24. + ifa[4]/1440. - .5;
                    216:        return(y-2415020.);
                    217: }
                    218: readlat()
                    219: {
                    220:        register i;
                    221:        double ifa[3];
                    222:        printf("wlong nlat elev\n");
                    223:        rline((&_iob[0]));
                    224:        for(i=0; i<3; i++)
                    225:                ifa[i] = atof(skip(i));
                    226:        awlong = ifa[0] * radian;
                    227:        nlat = ifa[1] * radian;
                    228:        elev = ifa[2];
                    229: }
                    230: double
                    231: fmod(a, b)
                    232: double a, b;
                    233: {
                    234:        return(a - floor(a/b)*b);
                    235: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.