home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / satel / lab / lac.bas < prev    next >
BASIC Source File  |  1986-03-27  |  14KB  |  612 lines

  1. 395 CLS:BEEP:INPUT"START DATE OF LOOKANGLES (YYDOY)";DA
  2. 396 PRINT:INPUT"STOP DATE OF LOOKANGLES (YYDOY)";DA1:IF DA>DA1 THEN BEEP:GOTO 395
  3. 397 PRINT:INPUT"TIME BETWEEN LOOK POINTS DESIRED (SECONDS)";DT:DT1=DT
  4. 398 PRINT:INPUT"RANGE IN KILOMETERS OR NAUTICAL MILES? <K OR M>";R$:PRINT
  5. 399 IF INSTR("KM",R$)=0 THEN BEEP:GOTO 398
  6. 400 CLS:LOCATE 15,25:PRINT"PLEASE WAIT, INITIALIZING !":KB=1
  7. 401 IF DA>DA1 THEN LPRINT CHR$(12):GOTO 34
  8. 402 FMU=398601.49#
  9. 403 AE=6378.135#
  10. 404 FI=298.26#
  11. 405 WE=.00007292115146#
  12. 406 XJ(2)=.001082549#
  13. 407 XJ(3)=-.000002435#
  14. 408 PI=3.1415926536#
  15. 410 RA=PI/180#
  16. 412 E2=(2*FI-1)/(FI*FI)
  17. 414 ST(1)=(SC(1)+SC(2)/60+SC(3)/3600)*RA
  18. 415 ST(2)=(SC(4)+SC(5)/60+SC(6)/3600)*RA
  19. 416 H=SC(7)/1000
  20. 417 D1=(SC(8)/3600)*RA
  21. 418 D2=(SC(9)/3600)*RA
  22. 421 GOSUB 578
  23. 423 OJNUM=MES(1)
  24. 424 DAT(1)=MES(2)
  25. 425 DAT(2)=MES(3)
  26. 426 DAT(17)=MES(4)
  27. 427 DAT(18)=MES(5)
  28. 428 DAT(7)=MES(6)
  29. 429 DAT(12)=MES(7)
  30. 430 DAT(6)=MES(8)
  31. 431 DAT(9)=MES(9)
  32. 432 DAT(15)=MES(10)
  33. 433 DAT(16)=MES(11)
  34. 434 DAT(22)=MES(12)
  35. 436 GOSUB 628
  36. 438 REVL=-1
  37. 440 IPIP=0
  38. 442 IX=INT(DA)
  39. 443 IY=INT(IX/1000)
  40. 444 ID=INT(IX-IY*1000)
  41. 445 FF=365*IY+(IY-1)/4#+ID+15019#
  42. 447 FJD=FF+2400000.5#
  43. 449 GOSUB 697
  44. 450 TH=TH*RA
  45. 454 IF KA=1 GOTO 457
  46. 455 IF DT<1 THEN DT=1
  47. 456 DT=DT/86400!
  48. 457 TD=0
  49. 459 DL=(FF-DAT(1))+(TD-DAT(2))
  50. 461 GOSUB 714
  51. 462 X(1)=X(1)*AE
  52. 464 GOSUB 755
  53. 466 IF IPIP=0 THEN 472  
  54. 468 GOSUB 849
  55. 469 FOR I=1 TO 6
  56. 470 X(I)=X(I)+G(I)
  57. 471 NEXT
  58. 472 SS=TD*86400!
  59. 474 T1=TH+WE*SS
  60. 475 Z=T1
  61. 476 GOSUB 1069
  62. 477 T2=Z2
  63. 478 Z=T1
  64. 479 GOSUB 1072
  65. 480 T3=Z2
  66. 482 EF(1)=X(1)*T2+X(2)*T3
  67. 483 EF(2)=-X(1)*T3+X(2)*T2
  68. 484 EF(3)=X(3)
  69. 486 FOR I=1 TO 3
  70. 487 DJ(I)=EF(I)-DIR(9+I)
  71. 488 NEXT
  72. 489 FOR I=1 TO 3
  73. 490 U(I)=0
  74. 491 FOR J=1 TO 3
  75. 492 K=I+3*(J-1)
  76. 493 U(I)=U(I)+DIR(K)*DJ(J)
  77. 494 NEXT J
  78. 495 NEXT I
  79. 496 U=( ATN(U(3)/SQR(U(1)*U(1)+U(2)*U(2))))*180#/PI
  80. 497 IF S9=0 GOTO 499
  81. 498 II=(U-II)/(S9*86400!)
  82. 499 IF ABS(II)<.015 THEN II=.015
  83. 500 IF U(3)<0 THEN G=0
  84. 501 IF U(3)<0 THEN GG=0
  85. 502 PRINT"U(3)=" U(3),"REV=" REV,,"EL=" U
  86. 504 IF U(3)<-10 GOTO 540 
  87. 505 IF IPIP<>0 THEN 508 
  88. 506 IPIP=1
  89. 507 GOTO 468
  90. 508 IF U(3)<0 GOTO 540
  91. 510 Z=U(1)*U(1)+U(2)*U(2)
  92. 511 X2=Z
  93. 512 GOSUB 1118
  94. 513 XY=Z3
  95. 514 Z=X2+U(3)*U(3)
  96. 515 GOSUB 1118
  97. 516 RC=Z3
  98. 517 IF R$="M" THEN RC=RC/1.8483128#
  99. 518 IF R$="M" THEN PRINT"RANGE=" RC;"NM"
  100. 519 IF R$="K" THEN PRINT"RANGE=" RC;"KM"
  101. 520 Z=U(1)/U(2)
  102. 521 GOSUB 1093
  103. 522 AC=Z2*180#/PI
  104. 523 IF U(1)<0 AND U(2)>0 THEN AC=AC+360
  105. 524 IF U(1)<0 AND U(2)<0 THEN AC=AC+180
  106. 525 IF U(1)>0 AND U(2)<0 THEN AC=AC+180
  107. 526 PRINT"AZ=" AC;"DEG"
  108. 527 Z=U(3)/XY
  109. 528 GOSUB 1093
  110. 529 EC=Z2*180#/PI
  111. 530 PRINT"EL=" EC;"DEG"
  112. 531 IF EC>0 THEN GG=GG+1
  113. 532 TP=SS+.0001
  114. 533 IHR=INT(TP/3600)
  115. 534 MIN=INT((TP-3600*IHR)/60)
  116. 535 SEC=INT(TP-3600*IHR-60*MIN)
  117. 536 PRINT IHR":" MIN":" SEC;" ZULU":PRINT
  118. 538 GOSUB 1003
  119. 540 IF U(3)<-10 THEN IPIP=0
  120. 542 IF IPIP<>0 GOTO 559 
  121. 544 XP=X(4)-WE*X(2)
  122. 545 XQ=X(5)+WE*X(1)
  123. 546 EF(4)=XP*T2+XQ*T3
  124. 547 EF(5)=-XP*T3+XQ*T2
  125. 548 EF(6)=X(6)
  126. 549 WD=DIR(3)*EF(4)+DIR(6)*EF(5)+DIR(9)*EF(6)
  127. 550 PRINT"WD=" WD:PRINT
  128. 552 IF U(3)<0 AND WD>0 THEN DB=( ABS(U/II)/3)/86400!:IF DB>DT THEN TD=TD+DB: GOTO 559
  129. 553 IF WD>0 GOTO 559 
  130. 555 DB=.5/DAT(16)
  131. 556 IK=INT((DB-DT)/DT)
  132. 557 IF IK<=0 GOTO 559 
  133. 558 TD=TD+DT*IK
  134. 559 TD=TD+DT
  135. 560 IF TD=DT THEN S9=DT ELSE S9=TD-S8
  136. 561 S8=TD
  137. 562 II=U
  138. 563 IF TD>1! THEN DA=DA+1:DT=DT1:GOTO 401
  139. 564 GOTO 459  
  140. 578 AE=6378.135#
  141. 579 FI=298.26#
  142. 580 E2=(2*FI-1)/(FI*FI)
  143. 581 Z=ST(1)
  144. 582 GOSUB 1072
  145. 583 DIR(9)=Z2
  146. 584 Z=1-E2*DIR(9)*DIR(9)
  147. 585 GOSUB 1118
  148. 586 VO=AE/Z3
  149. 587 Z=ST(1)
  150. 588 GOSUB 1069
  151. 589 DIR(8)=Z2
  152. 590 TE=(VO+H)*DIR(8)
  153. 591 Z=ST(2)
  154. 592 GOSUB 1072
  155. 593 DIR(1)=-Z2
  156. 594 Z=ST(2)
  157. 595 GOSUB 1069
  158. 596 DIR(4)=Z2
  159. 597 DIR(10)=TE*DIR(4)
  160. 598 DIR(11)=-TE*DIR(1)
  161. 599 DIR(12)=((1-E2)*VO+H)*DIR(9)
  162. 600 AL=ST(2)+D2/DIR(8)
  163. 601 PH=ST(1)+D1
  164. 602 Z=PH
  165. 603 GOSUB 1069
  166. 604 DIR(8)=Z2
  167. 605 Z=AL
  168. 606 GOSUB 1072
  169. 607 DIR(1)=-Z2
  170. 608 Z=AL
  171. 609 GOSUB 1069
  172. 610 DIR(4)=Z2
  173. 611 Z=PH
  174. 612 GOSUB 1072
  175. 613 DIR(9)=Z2
  176. 614 DIR(7)=0
  177. 615 DIR(2)=-DIR(9)*DIR(4)
  178. 616 DIR(5)=DIR(9)*DIR(1)
  179. 617 DIR(3)=DIR(8)*DIR(4)
  180. 618 DIR(6)=-DIR(8)*DIR(1)
  181. 619 RETURN
  182. 628 YY=.3333333333333333#
  183. 629 FM=398601.49#
  184. 630 AE=6378.135#
  185. 631 XJ=.001082549#
  186. 632 PI=3.1415926536#
  187. 633 XM=FM*((86400!/(2*PI))*(86400!/(2*PI)))/(AE*AE*AE)
  188. 634 DR=180/PI'CONVERT DEGREES TO RADIANS
  189. 636 IX=INT(DAT(1)+.1)
  190. 637 IY=INT(IX/1000)
  191. 638 ID=INT(IX-IY*1000)
  192. 639 DAT(1)=365*IY+(IY-1)/4+ID+15019
  193. 641 Z=(XM/(DAT(16)*DAT(16)))
  194. 642 GOSUB 1031
  195. 643 Z=Z2*YY
  196. 644 GOSUB 1053
  197. 645 AA=Z2
  198. 646 IF DAT(16)<0 THEN AA=-DAT(16)
  199. 647 R7=DAT(7)/DR
  200. 648 Z=1-DAT(6)*DAT(6)
  201. 649 GOSUB 1031
  202. 650 Z=Z2*3
  203. 651 GOSUB 1053
  204. 652 Z=Z2
  205. 653 GOSUB 1118
  206. 654 DD=-1.5*XJ*(1/AA)*(1/AA)/Z3
  207. 655 Z=R7
  208. 656 GOSUB 1072
  209. 657 DD=DD*(1-1.5*Z2*Z2)
  210. 658 DAT(3)=AA*(1+YY*DD-(YY*DD)*(YY*DD))
  211. 659 IF DAT(16)>0 THEN GOTO 665
  212. 660 DAT(3)=AA
  213. 661 Z=XM/(DAT(3)*DAT(3)*DAT(3))*(1+DD)
  214. 662 GOSUB 1118
  215. 663 DAT(16)=Z3
  216. 665 Z=1/(DAT(3)*(1-DAT(6)*DAT(6)))
  217. 666 GOSUB 1031
  218. 667 Z=2*Z2
  219. 668 GOSUB 1053
  220. 669 TEMP=1.5*XJ*Z2*DAT(16)
  221. 670 Z=R7
  222. 671 GOSUB 1069
  223. 672 DAT(13)=-TEMP*Z2
  224. 674 Z=R7
  225. 675 GOSUB 1072
  226. 676 DAT(10)=TEMP*(2-2.5*Z2*Z2)
  227. 678 DAT(20)=-4#/3#*((1-DAT(6))/DAT(16))*DAT(17)
  228. 680 DAT(4)=-4#/3#*DAT(3)/DAT(16)*DAT(17)
  229. 682 DAT(5)=2*DAT(3)/DAT(16)*(10#/(9#*DAT(16))*DAT(17)*DAT(17)-DAT(18))
  230. 684 DAT(14)=((DAT(13)/DAT(16))*((14#/3#)*DAT(17)-(16#/3#)*(DAT(6)/(1+DAT(6)))*DAT(17)))/2#
  231. 686 DAT(11)=DAT(10)/DAT(16)*DAT(17)*(1+4#/3#*(1-DAT(6))/(1+DAT(6)))
  232. 688 DAT(10)=DAT(10)*360
  233. 689 DAT(11)=DAT(11)*360
  234. 690 DAT(13)=DAT(13)*360
  235. 691 DAT(14)=DAT(14)*360
  236. 692 RETURN
  237. 697 D=FJD-2433282.5#
  238. 698 I=INT(D/365)
  239. 699 TH=100.0755426#-360*I+(2.9015D-13*D+.985647346#)*D
  240. 700 IF TH<0 THEN TH=TH+360
  241. 701 IF TH>360 THEN TH=TH-360
  242. 702 RETURN
  243. 714 DL(2)=DL*DL
  244. 715 DL(3)=DL(2)*DL
  245. 716 A=DAT(3)+DL*DAT(4)+DL(2)*DAT(5)
  246. 717 E=1-(DAT(3)*(1-DAT(6)))/A
  247. 718 FI=DAT(7)
  248. 719 DF=DL*DAT(10)+DL(2)*DAT(11)
  249. 720 FO=DAT(9)+DF
  250. 721 FO=FO-( INT(FO/360)*360)
  251. 722 IF FO<0 THEN FO=FO+360
  252. 723 FQ=DAT(12)+DL*DAT(13)+DL(2)*DAT(14)
  253. 724 FQ=FQ-( INT(FQ/360)*360)
  254. 725 IF FQ <0 THEN FQ =FQ +360
  255. 726 DF(2)=DL*DAT(16)+DL(2)*DAT(17)+DL(3)*DAT(18)
  256. 727 IC=INT(DF(2))
  257. 728 FM=DAT(15)+360*(DF(2)-IC)
  258. 729 FM=FM-( INT(FM/360)*360)
  259. 730 IF FM<0 THEN FM=FM+360
  260. 731 X(1)=A
  261. 732 X(2)=E
  262. 733 X(3)=FI
  263. 734 X(4)=FO
  264. 735 X(5)=FQ
  265. 736 X(6)=FM
  266. 738 IREV=INT(DAT(22)+.01)
  267. 739 ALAT=DAT(9)+DAT(15)
  268. 740 ALAT=ALAT-( INT(ALAT/360)*360)
  269. 742 IF ALAT>359 THEN IREV=IREV-1
  270. 743 REV=IREV+ALAT/360
  271. 745 DREV=(DF/360)+DF(2)
  272. 746 REV=REV+DREV
  273. 748 REV=INT(REV*10)/10
  274. 749 RETURN
  275. 755 FMU=398601.49#
  276. 756 PI=3.1415926536#
  277. 757 C=180/PI
  278. 758 PI(2)=2*PI
  279. 759 A=X(1)
  280. 760 EE=X(2)
  281. 761 IF EE-1>=0 THEN 840
  282. 762 XI=X(3)/C
  283. 763 O=X(4)/C
  284. 764 XN=X(5)/C
  285. 765 XM=X(6)/C
  286. 766 IF XM>PI THEN XM=XM-PI(2)
  287. 767 Z=FMU
  288. 768 GOSUB 1118
  289. 769 SQM=Z3
  290. 770 EP=XM
  291. 771 J=1
  292. 772 Z=EP
  293. 773 GOSUB 1072
  294. 774 B=-Z2*EE+EP-XM
  295. 775 Z=EP
  296. 776 GOSUB 1069
  297. 777 B1=-Z2*EE+1
  298. 778 E=EP-(B/B1)
  299. 779 IF (ABS(E-EP)-.0000000001#)<0 THEN 783
  300. 780 EP=E
  301. 781 J=J+1
  302. 782 GOTO 772
  303. 783 Z=E
  304. 784 GOSUB 1069
  305. 785 XO=A*(Z2-EE)
  306. 786 Z=E
  307. 787 GOSUB 1072
  308. 788 YO=A*Z2
  309. 789 Z=(1-EE*EE)
  310. 790 GOSUB 1118
  311. 791 B=Z3
  312. 792 YO=YO*Z3
  313. 793 Z=E
  314. 794 GOSUB 1069
  315. 795 CSE=Z2
  316. 796 Z=E
  317. 797 GOSUB 1072
  318. 798 XD=SQM*Z2
  319. 799 Z=A
  320. 800 GOSUB 1118
  321. 801 B=Z3
  322. 802 B=B*(1-EE*CSE)
  323. 803 XD=-XD/B
  324. 804 Z=1-EE*EE
  325. 805 GOSUB 1118
  326. 806 YD=Z3*SQM*CSE
  327. 807 Z=A
  328. 808 GOSUB 1118
  329. 809 YD=YD/(Z3*(1-EE*CSE))
  330. 810 Z=O
  331. 811 GOSUB 1069
  332. 812 CO=Z2
  333. 813 Z=XN
  334. 814 GOSUB 1069
  335. 815 CN=Z2
  336. 816 Z=O
  337. 817 GOSUB 1072
  338. 818 SO=Z2
  339. 819 Z=XI
  340. 820 GOSUB 1069
  341. 821 CI=Z2
  342. 822 Z=XN
  343. 823 GOSUB 1072
  344. 824 SN=Z2
  345. 825 PX=CO*CN-SO*SN*CI
  346. 826 AX=-SO*CN-CO*SN*CI
  347. 827 PY=CO*SN+SO*CN*CI
  348. 828 AY=-SO*SN+CO*CN*CI
  349. 829 Z=XI
  350. 830 GOSUB 1072
  351. 831 PZ=SO*Z2
  352. 832 AZ=CO*Z2
  353. 833 X(1)=XO*PX+YO*AX
  354. 834 X(2)=XO*PY+YO*AY
  355. 835 X(3)=XO*PZ+YO*AZ
  356. 836 X(4)=XD*PX+YD*AX
  357. 837 X(5)=XD*PY+YD*AY
  358. 838 X(6)=XD*PZ+YD*AZ
  359. 839 GOTO 843
  360. 840 FOR I=1 TO 6
  361. 841 X(I)=0
  362. 842 NEXT
  363. 843 RETURN
  364. 849 AE=6378.135#
  365. 850 FMU=398601.49#
  366. 851 XJ(2)=.001082549#
  367. 852 XJ(3)=-.000002435#
  368. 853 FOR K=1 TO 6
  369. 854 Y(K)=X(K)
  370. 855 NEXT
  371. 856 Z=FMU
  372. 857 GOSUB 1118
  373. 858 SMU=Z3
  374. 860 Z=Y(1)*Y(1)+Y(2)*Y(2)+Y(3)*Y(3)
  375. 861 GOSUB 1118
  376. 862 RR=Z3
  377. 864 V2=Y(4)*Y(4)+Y(5)*Y(5)+Y(6)*Y(6)
  378. 865 AV=(2*FMU-RR*V2)/(FMU*RR)
  379. 866 IF AV<=0 GOTO 978
  380. 867 HX=Y(2)*Y(6)-Y(5)*Y(3)
  381. 868 HY=-Y(1)*Y(6)+Y(4)*Y(3)
  382. 869 HZ=Y(1)*Y(5)-Y(4)*Y(2)
  383. 870 H1=HX*HX+HY*HY
  384. 871 H2=H1+HZ*HZ
  385. 872 Z=H2
  386. 873 GOSUB 1118
  387. 874 H3=Z3
  388. 876 Z=H1
  389. 877 GOSUB 1118
  390. 878 SI(1)=Z3/H3
  391. 879 IF SI(1)<.00017 GOTO 978
  392. 880 CO(1)=HZ/H3
  393. 881 SI(2)=H3*SI(1)
  394. 883 SI(3)=HX/SI(2)
  395. 884 CO(2)=-HY/SI(2)
  396. 886 SI(4)=Y(3)/(RR*SI(1))
  397. 887 CO(3)=(-Y(1)*HY+Y(2)*HX)/(RR*SI(2))
  398. 888 SI(5)=2*SI(4)*CO(3)
  399. 889 CO(4)=1-2*SI(4)*SI(4)
  400. 890 RD=Y(1)*Y(4)+Y(2)*Y(5)+Y(3)*Y(6)
  401. 892 RA=RD/RR
  402. 893 SI(6)=RA*H3/FMU
  403. 895 P=H2/FMU
  404. 896 Z=P
  405. 897 GOSUB 1118
  406. 898 SQP=Z3
  407. 899 CO(5)=(P/RR)-1
  408. 900 OP=1+CO(5)
  409. 902 RV=SMU*OP/SQP
  410. 904 E2=SI(6)*SI(6)+CO(5)*CO(5)
  411. 905 IF E2>1 GOTO 978
  412. 906 Z=1-E2
  413. 907 GOSUB 1118
  414. 908 ETA=Z3
  415. 910 SV=(SI(6)/OP)*((ETA+OP)/(1+ETA))
  416. 911 IF ABS(SV)>1 GOTO 981
  417. 912 Z=-SV*SV+1
  418. 913 GOSUB 1118
  419. 914 Z=SV/Z3
  420. 915 GOSUB 1093
  421. 916 VMM=Z2+ETA*SI(6)/OP
  422. 918 SI(7)=SI(1)*SI(1)
  423. 919 CO(6)=CO(1)*CO(1)
  424. 920 SI(8)=1-3*CO(6)
  425. 921 PEE=P/AE
  426. 922 A1=.25*XJ(2)/(PEE*PEE)
  427. 923 A2=A1*SMU/SQP
  428. 924 EV(2)=CO(5)*SI(5)-SI(6)*CO(4)
  429. 925 EV(3)=CO(5)*CO(4)+SI(6)*SI(5)
  430. 926 EV(4)=CO(5)*SI(5)+SI(6)*CO(4)
  431. 927 EV(5)=CO(5)*CO(4)-SI(6)*SI(5)
  432. 928 DR=A1*P*(SI(7)*CO(4)+SI(8)*(1-1*ETA/OP+CO(5)/(1+ETA)))
  433. 929 TEMP=OP*OP
  434. 930 DD(1)=-A2*(2*SI(7)*TEMP*SI(5)+SI(8)*SI(6)*(-.5*ETA+TEMP/(1+ETA)))
  435. 931 DD(2)=SI(7)*(2*CO(4)+2*EV(3)+CO(5)*CO(4))
  436. 932 DD(2)=DD(2)-SI(8)*(1.5+CO(5)*((2+ETA)/(1+ETA))+.5*(E2-2*SI(6)*SI(6))/(1+ETA))
  437. 933 DD(2)=DD(2)*A1*RV
  438. 934 DI=A1*SI(1)*CO(1)*(3*(CO(4)+EV(3))+EV(5))
  439. 935 DN=-A1*CO(1)*(6*(VMM+SI(6))-3*(SI(5)+EV(2))-EV(4))
  440. 936 DU=6*(1-5*CO(6))*VMM+4*(1-6*CO(6)+SI(8)/(1+ETA))*SI(6)
  441. 937 DU=DU+SI(8)*2*SI(6)*CO(5)/(1+ETA)+2*(5*CO(6)-2)*EV(2)
  442. 938 DU=DU+(7*CO(6)-1)*SI(5)+2*CO(6)*EV(4)
  443. 939 DU=-.5*A1*DU
  444. 941 XU=CO(3)*CO(2)-SI(4)*SI(3)*CO(1)
  445. 942 YU=CO(3)*SI(3)+SI(4)*CO(2)*CO(1)
  446. 943 ZU=SI(4)*SI(1)
  447. 944 XV=-SI(4)*CO(2)-CO(3)*SI(3)*CO(1)
  448. 945 YV=-SI(4)*SI(3)+CO(3)*CO(2)*CO(1)
  449. 946 ZV=CO(3)*SI(1)
  450. 947 XW=SI(3)*SI(1)
  451. 948 YW=-CO(2)*SI(1)
  452. 949 ZW=CO(1)
  453. 950 TEMP=DU+CO(1)*DN
  454. 951 TM=SI(4)*DI-CO(3)*SI(1)*DN
  455. 952 DS(1)=DR*XU+RR*(TEMP*XV+TM*XW)
  456. 953 DS(2)=DR*YU+RR*(TEMP*YV+TM*YW)
  457. 954 DS(3)=DR*ZU+RR*(TEMP*ZV+TM*ZW)
  458. 955 TC=DD(1)-RV*TEMP
  459. 956 TG=DD(2)+RA*TEMP
  460. 957 TE=RA*TM+RV*(CO(3)*DI+SI(4)*SI(1)*DN)
  461. 958 DS(4)=TC*XU+TG*XV+TE*XW
  462. 959 DS(5)=TC*YU+TG*YV+TE*YW
  463. 960 DS(6)=TC*ZU+TG*ZV+TE*ZW
  464. 962 A2=.5*XJ(3)/(XJ(2)*PEE)
  465. 963 ES=SI(4)*CO(5)-CO(3)*SI(6)
  466. 964 TA=SI(1)*OP*(A2*SI(4))
  467. 965 TB=SI(1)*(A2*(1+OP)*CO(3))
  468. 966 TC=CO(1)*(A2*CO(5))
  469. 967 TG=-SI(1)*OP*(A2*CO(3))
  470. 968 TE=-SI(1)*(A2*(SI(4)+ES))
  471. 969 TF=-CO(1)*(A2*SI(6))
  472. 970 D(1)=RR*(TA*XU+TB*XV+TC*XW)
  473. 971 D(2)=RR*(TA*YU+TB*YV+TC*YW)
  474. 972 D(3)=RR*(TA*ZU+TB*ZV+TC*ZW)
  475. 973 TM=SMU/SQP
  476. 974 D(4)=TM*(TG*XU+TE*XV+TF*XW)
  477. 975 D(5)=TM*(TG*YU+TE*YV+TF*YW)
  478. 976 D(6)=TM*(TG*ZU+TE*ZV+TF*ZW)
  479. 977 GOTO 981
  480. 978 FOR K=1 TO 6
  481. 979 DS(K)=0
  482. 980 NEXT
  483. 981 FOR K=1 TO 6
  484. 982 G(K)=DS(K)+D(K)
  485. 983 NEXT
  486. 984 RETURN
  487. 1003 I$="#####.###"
  488. 1004 IF KB=1 THEN LPRINT:LPRINT TAB(10)"STATION= "B$(AQ!):LPRINT TAB(10)"LAT="SC(1);"DEG.,";SC(2);"MIN.,";SC(3);"SEC":LPRINT TAB(10)"LONG="SC(4);"DEG.,";SC(5);"MIN.,";SC(6);"SEC":LPRINT TAB(10)"HEIGHT="SC(7);"METERS":LPRINT TAB(10)"DEF(M)="SC(8);"DEG"
  489. 1005 IF KB=1 THEN LPRINT TAB(10)"DEF(P)="SC(9);"DEG":LPRINT
  490. 1006 IF KB=1 THEN LPRINT TAB(10)"OBJ#="MES(1);"/";NA$:LPRINT TAB(10)"MJD="MES(2):LPRINT TAB(10)"FJD="MES(3):LPRINT TAB(10)"FDMM="MES(4):LPRINT TAB(10)"SDMM="MES(5):LPRINT TAB(10)"INC="MES(6):LPRINT TAB(10)"RAN="MES(7):LPRINT TAB(10)"ECC="MES(8)
  491. 1007 IF KB=1 THEN LPRINT TAB(10)"AP="MES(9)
  492. 1008 IF KB=1 THEN LPRINT TAB(10)"MA="MES(10):LPRINT TAB(10)"MM="MES(11): LPRINT TAB(10)"REV="MES(12):LC1=20
  493. 1009 KB=0
  494. 1010 IF GG=1 THEN LPRINT:LPRINT TAB(10)"STATION ";B$(AQ!):LPRINT TAB(10)"OBJECT";OJNUM;"/";NA$:LPRINT TAB(10)"DATE   DOY" ID" YEAR" IY:LPRINT TAB(10)"REV" INT(REV)
  495. 1011 IF GG=1 AND R$="M" THEN LPRINT TAB(10)"TIME(GMT)   AZ(DEG)  EL(DEG)   RANGE(NM)":LC1=LC1+6
  496. 1012 IF GG=1 AND R$="K" THEN LPRINT TAB(10)"TIME(GMT)   AZ(DEG)  EL(DEG)   RANGE(KM)":LC1=LC1+6
  497. 1013 'FORMAT TIME
  498. 1014 AA$=STR$(IHR)
  499. 1015 IF LEN(AA$)<>3 THEN AA$="0" +RIGHT$(AA$,1)
  500. 1016 BB$=STR$(MIN)
  501. 1017 IF LEN(BB$)<>3 THEN BB$="0" +RIGHT$(BB$,1)
  502. 1018 CC$=STR$(SEC)
  503. 1019 IF LEN(CC$)<>3 THEN CC$="0" +RIGHT$(CC$,1)
  504. 1020 DD$=":"
  505. 1021 EE$=RIGHT$(AA$,2)+DD$+RIGHT$(BB$,2)+DD$+RIGHT$(CC$,2)
  506. 1022 LPRINT TAB(10)EE$;
  507. 1023 LPRINT TAB(20); USING I$; AC;
  508. 1024 LPRINT TAB(29); USING I$; EC;
  509. 1025 LPRINT TAB(41); USING I$; RC
  510. 1026 EE$="":LC1=LC1+1
  511. 1027 IF LC1>53 THEN LC1=0:LPRINT CHR$(12)
  512. 1028 RETURN
  513. 1031 Z2=LOG(Z)
  514. 1032 I0=0
  515. 1033 I2=SGN(Z2)
  516. 1034 IF I2<0 THEN Z=1/Z
  517. 1035 IF Z<1.065 THEN 1040
  518. 1036 GOSUB 1118
  519. 1037 Z=Z3
  520. 1038 I0=I0+1
  521. 1039 GOTO 1035
  522. 1040 Z=(Z-1)/(Z+1)
  523. 1041 Z2=Z*Z
  524. 1042 Z3=Z
  525. 1043 I3=9
  526. 1044 GOSUB 1131
  527. 1045 Z=Z+Z
  528. 1046 IF I0=0 THEN 1050
  529. 1047 FOR I=1 TO I0
  530. 1048 Z=Z+Z
  531. 1049 NEXT
  532. 1050 Z2=Z*I2
  533. 1051 RETURN
  534. 1053 Z2=EXP(ABS(Z))
  535. 1054 I0=0
  536. 1055 IF Z*Z<.004 THEN 1059
  537. 1056 Z=Z/2
  538. 1057 I0=I0+1
  539. 1058 GOTO 1055
  540. 1059 Z2=1
  541. 1060 FOR I2=8 TO 1 STEP -1
  542. 1061 Z2=Z2*Z/I2+1
  543. 1062 NEXT
  544. 1063 IF I0=0 THEN 1067
  545. 1064 FOR I=1 TO I0
  546. 1065 Z2=Z2*Z2
  547. 1066 NEXT
  548. 1067 RETURN
  549. 1069 GOSUB 1123 'COS
  550. 1070 Z=Z9-Z
  551. 1072 GOSUB 1123 'SIN
  552. 1073 I0=0
  553. 1074 I2=SGN(Z)
  554. 1075 Z2=Z9+Z9
  555. 1076 Z=ABS(Z)
  556. 1077 Z=Z-INT(Z/(Z2+Z2))*(Z2+Z2)
  557. 1078 IF Z>Z2 THEN Z=Z-Z2: I2=-I2
  558. 1079 IF Z>Z9 THEN Z=Z2-Z
  559. 1080 IF ABS(Z)<.063 THEN 1084
  560. 1081 Z=Z/3
  561. 1082 I0=I0+1
  562. 1083 GOTO 1080
  563. 1084 Z2=-Z*Z
  564. 1085 Z2=(((Z2/42+1)*Z2/20+1)*Z2/6+1)*Z
  565. 1086 IF I0=0 THEN 1090
  566. 1087 FOR I=1 TO I0
  567. 1088 Z2=(3-4*Z2*Z2)*Z2
  568. 1089 NEXT
  569. 1090 Z2=Z2*I2
  570. 1091 RETURN
  571. 1093 GOSUB 1123
  572. 1094 I0=0
  573. 1095 I1=0
  574. 1096 I2=SGN(Z)
  575. 1097 Z=ABS(Z)
  576. 1098 IF Z>1 THEN Z=1/Z: I1=1
  577. 1099 IF Z<.077 THEN 1106
  578. 1100 Z2=Z
  579. 1101 Z=Z*Z+1
  580. 1102 GOSUB 1118
  581. 1103 Z=Z2/(Z3+1)
  582. 1104 I0=I0+1
  583. 1105 GOTO 1099
  584. 1106 Z3=Z
  585. 1107 I3=-11
  586. 1108 GOSUB 1131
  587. 1109 IF I0=0 THEN GOTO 1113
  588. 1110 FOR I=1 TO I0
  589. 1111 Z=Z+Z
  590. 1112 NEXT
  591. 1113 Z2=Z
  592. 1114 IF I1=1 THEN Z2=Z9-Z2
  593. 1115 Z2=Z2*I2
  594. 1116 RETURN
  595. 1118 Z3=SQR(Z)
  596. 1119 Z3=(Z3+Z/Z3)/2
  597. 1120 Z3=(Z3+Z/Z3)/2
  598. 1121 RETURN
  599. 1123 IF Z9<>0 THEN RETURN
  600. 1124 Z4=Z
  601. 1125 Z=1
  602. 1126 GOSUB 1094
  603. 1127 Z9=Z2+Z2
  604. 1128 Z=Z4
  605. 1129 RETURN
  606. 1131 Z2=Z*Z
  607. 1132 FOR I=3 TO ABS(I3) STEP 2
  608. 1133 Z3=SGN(I3)*Z3*Z2
  609. 1134 Z=Z+Z3/I
  610. 1135 NEXT
  611. 1136 RETURN
  612.