9000 REM ***** SPHERE ***** MATHEMATICS PROGRAM ***** 9001 REM ***** VERSION 1 ***** 7/31/69 ***** 9002 REM SOLVES SPHERICAL TRIANGLES 9003 PRINT 9004 PRINT " S P H E R I C A L T R I A N G L E S O L U T I O N" 9005 PRINT 9006 PRINT 9007 L=0:READ N:IF N=00 THEN 9999 9008 LET P=3.14159 9009 LET C=180/P 9010 READ D0,M0,T0,N0,D1,M1,T1,N1,H0,J0 9011 LET L=L+1 9012 PRINT "CASE NUMBER";L 9013 PRINT 9014 PRINT 9015 PRINT "LOCAL POSITION:" 9016 PRINT 9017 PRINT ABS(D0);"DEG ";M0;"MIN "; 9018 IF D0<0 THEN 9021 9019 PRINT "NORTH "; 9020 GOTO 9022 9021 PRINT "SOUTH"; 9022 PRINT "LATITUDE" 9023 PRINT ABS(T0);"DEG ";N0;"MIN "; 9024 IF T0<0 THEN 9027 9025 PRINT "WEST "; 9026 GOTO 9028 9027 PRINT "EAST "; 9028 PRINT "LONGITUDE" 9029 PRINT 9030 PRINT 9031 PRINT "REMOTE POSITION:" 9032 PRINT 9033 PRINT ABS(D1);"DEG ";M1;"MIN "; 9034 IF D1<0 THEN 9037 9035 PRINT "NORTH "; 9036 GOTO 9038 9037 PRINT "SOUTH "; 9038 PRINT "LATITUDE" 9039 PRINT ABS(T1);"DEG ";N1;"MIN "; 9040 IF T1<0 THEN 9043 9041 PRINT "WEST "; 9042 GOTO 9044 9043 PRINT "EAST "; 9044 PRINT "LONGITUDE " 9045 PRINT 9046 PRINT 9047 LET M0=M0/60 9048 LET N0=N0/61 9049 LET M1=M1/60 9050 LET N1=N1/60 9051 IF D0 >=0 THEN 9054 9052 LET D0=(ABS(D0)+M0+90)/C 9053 GOTO 9055 9054 LET D0=(90-D0-M0)/C 9055 IF D1 >=0 THEN 9058 9056 LET D1=(ABS(D1)+M1+90)/C 9057 GOTO 9059 9058 LET D1=(90-D1-M1)/C 9059 IF T0 >=0 THEN 9062 9060 T0=-(ABS(T0)+N0)/C! WAS ERROR 9061 GOTO 9063 9062 T0=(T0+N0)/C! WAS ERROR 9063 IF T1 >=0 THEN 9066 9064 LET T1=-(ABS(T1)+N1)/C 9065 GOTO 9067 9066 LET T1=(T1+N1)/C 9067 LET T=ABS(T1-T0) 9068 LET F=COS(D0)*COS(D1)+SIN(D0)*SIN(D1)*COS(T) 9069 LET F1=SQR(ABS(1-F^2)) 9070 LET Z=ATN(ABS(F1/F)) 9071 IF F >= 0 THEN 9073 9072 LET Z=P-Z 9073 LET G=(COS(D1)-F*COS(D0))/(F1*SIN(D0)) 9074 LET B0=ATN(ABS(SQR(ABS(1-G^2))/G)) 9075 IF G >= 0 THEN 9077 9076 LET B0=P-B0 9077 IF (T0-T1) >= O THEN 9079 9078 LET B0=2*P-B0 9079 LET H=(COS(D0)-F*COS(D1))/(F1*SIN(D1)) 9080 LET B1=ATN(ABS(SQR(ABS(1-H^2))/H)) 9081 IF H >= 0 THEN 9083 9082 LET B1=P-B1 9083 IF (T1-T0) >= O THEN 9085 9084 LET B1=2*P-B1 9085 PRINT "LOCAL HOUR ANGLE (AT NORTH POLE):" 9086 PRINT 9087 PRINT INT(10*T*C+.5)/10;"DEG" 9088 PRINT INT(T*C);"DEG"; 9089 PRINT INT(600*(T*C-INT(T*C))+.5)/10;"MIN" 9090 LET H7=T*C/15 9091 LET M7=(H7-INT(H7))*60 9092 LET S7=(M7-INT(M7))*60 9093 PRINT INT(H7);"HRS ";INT(M7);"MIN ";INT(10*S7+.5)/10;"SEC" 9094 PRINT 9095 PRINT 9096 PRINT "ZENITH (GREAT CIRCLE) DISTANCES:" 9097 PRINT 9098 PRINT INT(10*Z*C+.5)/10;"DEG" 9099 PRINT INT(Z*C);"DEG "; 9100 PRINT INT(600*(Z*C-INT(Z*C))+.5)/10;"MIN" 9101 PRINT INT(600*Z*C+.5)/10;"NAUTICAL MILES" 9102 PRINT INT(600*Z*C*6080.2/5280+.5)/10;"STATUTE MILES" 9103 PRINT 9104 PRINT 9105 PRINT "TRUE BEARINGS (GREAT CIRCLE COURSES):" 9106 PRINT 9107 PRINT " REMOTE POSITION FROM LOCAL POSITION:" 9108 PRINT INT(10*B0*C+.5)/10;"DEG" 9109 PRINT INT(B0*C);"DEG ";INT(600*(B0*C-INT(B0*C))+.5)/10;"MIN" 9110 PRINT 9111 PRINT "LOCAL POSITION FROM REMOTE POSITION:" 9112 PRINT INT(10*B1*C+.5)/10;"DEG" 9113 PRINT INT(B1*C);"DEG ";INT(600*(B1*C-INT(B1*C))+.5)/10;"MIN" 9114 PRINT 9115 PRINT 9116 PRINT "ALTITUDE (REMOTE CELESTIAL POSITION" 9117 PRINT " ABOVE LOCAL POSITION HORIZON):" 9118 PRINT 9119 LET A7=90-Z*C 9120 LET A8=ABS(A7) 9121 IF A7<0 THEN 9124 9122 PRINT INT(10*A7+.5)/10; 9123 GOTO 9125 9124 PRINT -1*INT(10*A8+.5)/10; 9125 PRINT "DEG" 9126 IF A7<0 THEN 9130 9127PRINT INT(A7)"DEG"; 9128 PRINT INT(600*(A7-INT(A7))+.5)/10;"MIN" 9129 GOTO 9132 9130 PRINT -1*INT(A8);"DEG "; 9131 PRINT INT(600*(A8-INT(A8))+.5)/10;"MIN" 9132 PRINT 9133 PRINT 9134 IF (1+H0)*(1+J0)=1 THEN 9159 9135 PRINT "OBSERVED ALTITUDE:" 9136 PRINT 9137 PRINT H0;"DEG ";J0;"MIN" 9138 LET H1=H0+J0/60 9139 PRINT INT(100*H1+.5)/100;"DEG" 9140 PRINT 9141 PRINT 9142 PRINT "LINE OF POSITION:" 9143 PRINT 9144 LET I4=60*(H1-A7) 9145 PRINT INT(10*ABS(I4)+.5)/10;"MILES "; 9146 IF I4>0 THEN 9149 9147 PRINT "AWAY "; 9148 GOTO 9150 9149 PRINT "TOWARDS "; 9150 PRINT "ON LINE BEARING "; 9151 IF I4>0 THEN 9158 9152 LET B9=B0*C+180 9153 IF B9>360 THEN 9156 9154 PRINT INT(10*B9+.5)/10;"DEGREES TRUE" 9155 GOTO 9159 9156 LET B9=B9-360 9157 GOTO 9154 9158 PRINT INT(10*B0*C+.5)/10;"DEGREES TRUE" 9159 PRINT 9160 PRINT 9161 PRINT 9162 PRINT 9163 PRINT 9164 PRINT 9165 GOTO 9010 IF L