Annotation of researchv10no/cmd/ccom/vax/tests/w.i, revision 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.