1 REM "MINIMUF.BAS" 2 REM MAXIMUM USEABLE FREQUENCY PROGRAM 3 REM Originally written for Tektronix, converted to MBASIC. 4 REM KAYPRO COMPUTER 64K MX-80 PRINTER 10 REM Author: Robert B. Rose, K6GKU 11 REM Head, Ionospheric Assessment Systems Branch 12 REM Naval Ocean Systems Center 13 REM San Diego, CA 92152 14 REM Published in 'QST Magazine' December 1982 pg 36. 21 REM Entered and adapted to MBASIC - 4 January 1983 22 REM by: Jerry HALE, K0JH 23 REM 6334 Edward Street 24 REM Norfolk, VA 23513 25 REM Modified version of MUF.BAS by Jerry Hale, K0JH 26 REM by: John W. Barron, WA4LHT 27 REM 14307 Silverdale Drive 28 REM Woodbridge, VA 22193 29 REM Modified 1/15/84 to change receiver location and add next 30 REM case option of NO by adding END statement. 100 REM This program was developed by the U.S. Navy to allow almost 101 REM any mini or micro computer to be used to determine the 102 REM Maximum Useable Frequency (MUF) between any two points. 103 REM This is a simplification of a much larger program designed to 104 REM run on a very large computer and requiring 150,000 to 200,000 105 REM bytes, hence the name "MINI-MUF". The program has been extens- 106 REM ively tested by military, industrial and commercial users. The 107 REM The original sounder data base encompassed 196 path months (4704 108 REM test points) of observed maximum usable freqs measured over 23 109 REM different hf-sounder paths. MINI-MUF was found to have an rms 110 REM error of +/-3.8 MHz for MUF predictions out to 6000 miles. How- 111 REM ever, accuracy degrades for ranges of less than 250 miles. The 112 REM program is a single layer F-region model. Because of the lag in 113 REM F-layer response to 10.7 cm solar flux activity it is best to use 114 REM a 5-day, 15-day or 90-day running average of the 10.7-cm flux. 115 REM The flux value can be acquired from WWV at 18 minutes after each 116 REM hour. The conversion from 10.7-cm flux to sunspot number has 117 REM been accomplished by breaking the curve of the graph which 118 REM accompanied the reference article, into five sections and der- 119 REM iving a formula for each section and then using that formula 120 REM to convert from solar flux number to sunspot number. The orig- 121 REM inal program is used from that point onward. Note that any 122 REM intervention by E-region modes of propagation are not predict- 123 REM able by MINI-MUF but represent only a very small precentage 124 REM of total instances. 300 REM - - - VARIABLES USED - - - 301 REM L1 = Transmitter latitude (-90 < L1 < 90). 302 REM W1 = Transmitter longitude (-360 < W1 < 360). 303 REM L2 = Receiver latitude (-90 < L2 < 90). 304 REM W2 = Receiver west longitude (-360 < W2 < 360). 305 REM M0 = Month (1 < M0 < 12). 306 REM D6 = Day (1 < D6 31). 307 REM T5 = Time (UT), hours (0.0 < T5 < 24.0). 308 REM J9 = Output MUF, MHz. 309 REM S9 = Sunspot number. 310 REM PI = 3.141593 311 REM P0 = 1.570796 1000 REM 1010 REM - MAXIMUM USEABLE FREQUENCY (MUF) 1020 REM 1030 C$=CHR$(26):PI=3.14159:P0=1.5708:B$="##.#":B1$="###.#":B2$="###" 1040 A1$=CHR$(27)+CHR$(61):REM DIRECT CURSOR ADDRESS 1045 REM FOLLOW A1$ WITH "ROW+31" + "COL+31" TO POSITION 1050 DIM M$(37),A$(4),M(12),SF(110) 1060 FOR I = 1 TO 12:READ M(I):NEXT 1070 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 1080 R0=PI/180:P1=2*PI:R1=180/PI 1090 FOR I=1 TO 110:READ SF(I) 1100 IF SF(I) = 0 THEN P2=I-1:GOTO 1210 1200 NEXT 1210 REM 1220 REM - SECTION ADDED TO PROVIDE AUTOMATIC TRANSMITTER LOCATIONS 1230 REM 1240 PRINT C$:REM CLEARS THE SCREEN 1250 PRINT A1$+"#"+"3"+" IN WHICH WORLD AREA IS THE TRANSMITTER LOCATED: " 1260 PRINT:PRINT TAB(23)"1- NORTH AMERICA 4- AFRICA" 1270 PRINT:PRINT TAB(23)"2- SOUTH AMERICA 5- ASIA" 1280 PRINT:PRINT TAB(23)"3- EUROPE 6- PACIFIC OCEAN" 1290 PRINT:PRINT TAB(28)"7- ENTER LAT/LONG DIRECTLY" 1300 PRINT:PRINT TAB(28)"8- WWV FORT COLLINS COLORADO" 1310 PRINT:INPUT O 1320 IF O>0 AND O<9 THEN GOTO 1350 1330 PRINT C$;A1$+"+"+"9"+"SELECT 1 THRU 8 ONLY PLEASE." 1340 FOR I=1 TO 1000:NEXT:GOTO 1210 1350 ON O GOTO 3400,3700,3900,4200,4400,4700,1360,1380 1360 PRINT A1$+"0"+" ";:INPUT "ENTER TRANSMITTING STATION CALL & LOCATION: ";N$ 1370 PRINT A1$+"1"+"8";:INPUT "TRANSMITTER LAT,LON ";L1,W1:GOTO 1430 1380 N$="WWV FORT COLLINS COLORADO":L1=38:W1=107 1400 REM 1410 REM - INPUTTING STATION LOCATION INFORMATION 1420 REM 1430 IF L1>-91 AND L1<91 AND W1>-361 AND W1<361 THEN 1470 1440 PRINT C$:PRINT A1$+"+"+"9"+"INVALID LATITUDE/LONGITUDE" 1450 FOR I=1 TO 1000:NEXT:GOTO 1200 1470 L2=47.63:W2=117.63 1600 REM 1610 REM - SELECTING SOLAR FLUX/SUNSPOT NUMBER OPTIONS 1620 REM 1630 PRINT C$:PRINT A1$+"+"+"4"+"USE A 5-DAY AVERAGE SOLAR FLUX "; 1640 INPUT O$ 1650 IF LEFT$(O$,1)="N" OR LEFT$(O$,1)="n" GOTO 1670 1660 O=1:GOTO 1830 1670 PRINT C$:PRINT A1$+")"+"5"+"1- USE 5-DAY SOLAR FLUX AVERAGE." 1680 PRINT A1$+"*"+"5"+"2- USE 15-DAY SOLAR FLUX AVERAGE." 1690 PRINT A1$+"+"+"5"+"3- USE 90-DAY SOLAR FLUX AVERAGE." 1700 PRINT A1$+","+"5"+"4- INPUT TODAY'S SOLAR FLUX NUMBER." 1710 PRINT A1$+"-"+"5"+"5- INPUT THE SUNSPOT NUMBER." 1720 PRINT A1$+"0"+"9";:INPUT "OPTION ";O 1722 IF O>0 AND O<6 GOTO 1730 1723 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 5 ONLY PLEASE" 1724 FOR I=1 TO 1000:NEXT:GOTO 1670 1730 ON O GOTO 1830,1930,2030,2130,2330 1800 REM 1810 REM - CALCULATING A 5-DAY RUNNING AVERAGE 1820 REM 1830 AV1=0:IF P2<6 THEN GOTO 1850 1840 D2=5:FOR I=(P2-4) TO P2:AV1=AV1+SF(I):NEXT:AV1=AV1/5:S8=AV1:GOTO 2140 1850 D2=P2:FOR I=1 TO P2:AV1=AV1+SF(I):NEXT:AV1=AV1/P2:S8=AV1:GOTO 2140 1900 REM 1910 REM - CALCULATING A 15-DAY RUNNING AVERAGE 1920 REM 1930 AV2=0:IF P2<16 GOTO 1950 1940 D2=15:FOR I=(P2-14)TO P2:AV2=AV2+SF(I):NEXT:AV2=AV2/15:S8=AV2:GOTO 2140 1950 D2=P2:FOR I=1 TO P2:AV2=AV2+SF(I):NEXT:AV2=AV2/P2:S8=AV2:GOTO 2140 2000 REM 2010 REM - CALCULATING A 90-DAY RUNNING AVERAGE 2020 REM 2030 AV3=0:IF P2<91 GOTO 2050 2040 D2=90:FOR I=(P2-89) TO P2:AV3=AV3+SF(I):NEXT:AV3=AV3/90:S8=AV3:GOTO 2140 2050 D2=P2:FOR I=1 TO P2:AV3=AV3+SF(I):NEXT:AV3=AV3/P2:S8=AV3:GOTO 2140 2100 REM 2110 REM - CONVERSION FROM SOLAR FLUX TO SUNSPOT NR 2120 REM 2130 PRINT C$:PRINT A1$+"+"+"8";:INPUT "SOLAR FLUX NUMBER: ";S8 2140 IF S8=>65 AND S8<=245 THEN GOTO 2160 2150 PRINT "S8=";S8;"SOLAR FLUX MUST BE IN RANGE 65-245.":GOTO 2130 2160 IF S8=>65 AND S8<100 THEN M1=.745:C1=64.4:GOTO 2210 2170 IF S8=>100 AND S8<133 THEN M1=.842:C1=62.3:GOTO 2210 2180 IF S8=>133 AND S8<165 THEN M1=1:C1=45:GOTO 2210 2190 IF S8=>165 AND S8<203 THEN M1=.974:C1=48.5:GOTO 2210 2200 IF S8=>203 AND S8<=245 THEN M1=.977:C1=49:GOTO 2210 2210 S9=(S8-C1)/M1:GOTO 2500 2300 REM 2310 REM - CONVERTING FROM SUNSPOT NUMBER TO SOLAR FLUX 2320 REM 2330 PRINT A1$+"1"+"8";:INPUT "ENTER SUNSPOT NUMBER ";S9 2340 IF S9=>1 AND S9<201 THEN GOTO 2360 2350 PRINT "INVALID SUNSPOT NUMBER, MUST BE IN RANGE 1-200. ":GOTO 2330 2360 IF S9=>1 AND S9<46 THEN M1=.745:C1=64.4:GOTO 2410 2370 IF S9=>46 AND S9<86 THEN M1=.842:C1=62.3:GOTO 2410 2380 IF S9=>86 AND S9<121 THEN M1=1:C1=45:GOTO 2410 2390 IF S9=>121 AND S9<159 THEN M1=.974:C1=48.5:GOTO 2410 2400 IF S9=>159 AND S9<201 THEN M1=.977:C1=49:GOTO 2410 2410 S8=M1*S9+C1 2500 REM 2510 REM - MUF CHART PRINTING SECTION 2520 REM 2530 PRINT C$:PRINT A1$+"+"+"5" 2540 INPUT "DO YOU WANT A 'HARD COPY' OF THE CHART ? ";O$ 2550 IF LEFT$(O$,1)="Y" OR LEFT$(O$,1)="y" THEN GOTO 3010 2600 REM 2610 REM - ROUTINE TO PRINT THE MUF TABLE ON SCREEN 2620 REM 2630 PRINT C$:PRINT 2640 PRINT:PRINT TAB(10)"TRANSMITTING STATION: ";N$ 2650 PRINT TAB(10)"TRANSMITTER LOCATION: "; 2660 PRINT USING B1$;ABS(L1);:IF L1>0 THEN PRINT " NORTH ",:GOTO 2680 2670 PRINT " SOUTH ", 2680 PRINT USING B1$;ABS(W1);:IF W1>0 THEN PRINT " WEST ",:GOTO 2700 2690 PRINT " EAST ", 2700 PRINT TAB(10)"RECEIVER LOCATION: SPOKANE, WA"; 2750 ON O GOTO 2760,2760,2760,2800,2840 2760 PRINT TAB(10);"SOLAR FLUX NR: ";:PRINT USING B2$;S8; 2770 PRINT " (A ";D2;" DAY AVERAGE)" 2780 PRINT TAB(10);"SUNSPOT NR: ";:PRINT USING B2$;S9; 2790 PRINT " (CALCULATED FROM AVERAGE FLUX)":GOTO 2880 2800 PRINT TAB(10);"SOLAR FLUX NR: ";:PRINT USING B2$;S8; 2810 PRINT " (TODAY'S VALUE)" 2820 PRINT TAB(10);"SUNSPOT NR: ";:PRINT USING B2$;S9; 2830 PRINT " (CALCULATED FROM ABOVE)":GOTO 2880 2840 PRINT TAB(10);"SUNSPOT NR: ";:PRINT USING B2$;S9; 2850 PRINT " (GIVEN)" 2860 PRINT TAB(10);"SOLAR FLUX NR: ";:PRINT USING B2$;S8; 2870 PRINT " (CALCULATED FROM ABOVE)" 2880 PRINT:PRINT " GMT","MUF(MHZ)";:PRINT TAB(42) " GMT","MUF(MHZ)" 2890 L1=L1*R0:W1=W1*R0:L2=L2*R0:W2=W2*R0:PRINT 2900 FOR T5=0 TO 9:GOSUB 10000:PRINT " ";T5;" "; 2910 PRINT USING B$;J9:NEXT 2920 FOR T5=10 TO 11:GOSUB 10000:PRINT T5;" ";:PRINT USING B$;J9:NEXT 2930 FOR T5=12 TO 23:GOSUB 10000 2940 PRINT A1$+CHR$(31+T5)+"J"; 2950 PRINT T5;" ";:PRINT USING B$;J9:NEXT:PRINT:GOTO 3380 3000 REM 3010 REM - ROUTINE TO PRINT MUF CHART ON THE LINE PRINTER 3020 REM 3030 PRINT A1$+"-"+"4"; 3040 INPUT "READY THE PRINTER AND THEN PRESS ANY KEY ";O$ 3060 LPRINT TAB(15) "TRANSMITTING STATION: ";N$ 3070 LPRINT TAB(15) "TRANSMITTER LOCATION: "; 3080 LPRINT USING B1$;ABS(L1);:IF L1>0 THEN LPRINT " NORTH ",:GOTO 3100 3090 LPRINT " SOUTH ", 3100 LPRINT USING B1$;ABS(W1);:IF W1>0 THEN LPRINT " WEST ",:GOTO 3120 3110 LPRINT "EAST ", 3120 LPRINT TAB(15) "RECEIVER LOCATION: SPOKANE, WA"; 3170 ON O GOTO 3180,3180,3180,3220,3260 3180 LPRINT TAB(15) "SOLAR FLUX NUMBER: ";:LPRINT USING B2$;S8; 3190 LPRINT" (A ";D2;" DAY AVERAGE)" 3200 LPRINT TAB(15) "SUN SPOT NUMBER: ";:LPRINT USING B2$;S9; 3210 LPRINT " (CALCULATED FROM AVERAGE FLUX)":GOTO 3300 3220 LPRINT TAB(15) "SOLAR FLUX NUMBER: ";:LPRINT USING B2$;S8; 3230 LPRINT " (TODAY'S VALUE)" 3240 LPRINT TAB(15) "SUN SPOT NUMBER: ";:LPRINT USING B2$;S9; 3250 LPRINT " (CALCULATED FROM ABOVE)":GOTO 3300 3260 LPRINT TAB(15) "SUN SPOT NUMBER: ";:LPRINT USING B2$;S9; 3270 LPRINT " (GIVEN)" 3280 LPRINT TAB(15) "SOLAR FLUX NUMBER: ";:LPRINT USING B2$;S8; 3290 LPRINT " (CALCULATED FROM ABOVE)" 3300 LPRINT:LPRINT TAB(25) " GMT","MUF(MHZ)":LPRINT 3310 L1=L1*R0:W1=W1*R0:L2=L2*R0:W2=W2*R0 3320 FOR T5=0 TO 9:GOSUB 10000:LPRINT TAB(25) " ";T5,; 3330 LPRINT USING B$;J9:NEXT 3340 FOR T5=10 TO 23:GOSUB 10000:LPRINT TAB(25) T5,; 3350 LPRINT USING B$;J9:NEXT 3355 LPRINT:LPRINT:LPRINT:LPRINT 3380 PRINT A1$"7"+"0";:INPUT "PERFORM ANOTHER CASE? ";O$ 3389 IF LEFT$(O$,1)="N" OR LEFT$(O$,1)="n" GOTO 15140 3390 GOTO 1210 3400 REM 3410 REM - NORTH AMERICAN TRANSMITTER LOCATIONS 3420 REM 3430 PRINT C$:PRINT A1$+"&"+"&"; 3440 PRINT:PRINT TAB(20) "1- WCC CHATHAM MASS 5- KOK LOS ANGELES CA" 3450 PRINT:PRINT TAB(20) "2- NMN NORFOLK VA 6- KPH SAN FRANCISCO" 3460 PRINT:PRINT TAB(20) "3- WOE LANTANA FLA 7- KLB SEATTLE WASH" 3470 PRINT:PRINT TAB(20) "4- WLO MOBILE ALA 8- NOJ KODIAK ALASKA" 3480 PRINT:INPUT O 3490 IF O=>1 AND O=<8 THEN GOTO 3520 3500 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 8 ONLY PLEASE " 3510 FOR I=1 TO 1000:NEXT:GOTO 3430 3520 ON O GOTO 3530,3540,3550,3560,3570,3580,3590,3600 3530 N$="WCC CHATHAM MASS":L1=41.7:W1=70:GOTO 1430 3540 N$="NMN NORFOLK VIRGINIA":L1=36.5:W1=76.3:GOTO 1430 3550 N$="WOE LANTANA FLORIDA":L1=24.6:W1=80.1:GOTO 1430 3560 N$="WLO MOBILE ALABAMA":L1=30.7:W1=88:GOTO 1430 3570 N$="KOK LOS ANGELES CALIF":L1=35.9:W1=118.1:GOTO 1430 3580 N$="KPH SAN FRANCISCO CALIF":L1=37.9:W1=122.7:GOTO 1430 3590 N$="KLB SEATTLE WASHINGTON":L1=47.4:W1=122.3:GOTO 1430 3600 N$="NOJ KODIAK ALASKA":L1=57.8:W1=152.6:GOTO 1430 3700 REM 3710 REM - SOUTH AMERICAN TRANSMITTER LOCATIONS 3720 REM 3730 PRINT C$:PRINT A1$+"&"+"+" 3740 PRINT:PRINT TAB(20) "1- HPN PANAMA 4- PPR RIO DE JANERIO" 3750 PRINT:PRINT TAB(20) "2- YVG VENEZUELA 5- CBV VALPARAISO" 3760 PRINT:PRINT TAB(20) "3- OBM LIMA PERU 6- PZN PARAMARIBO" 3770 PRINT:INPUT O 3780 IF O=>1 AND O=<6 THEN GOTO 3810 3790 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 6 ONLY PLEASE " 3800 FOR I=1 TO 1000:NEXT:GOTO 3730 3810 ON O GOTO 3820,3830,3840,3850,3860,3870 3820 N$="HPN60 PANAMA RADIO":L1=9:W1=79.5:GOTO 1430 3830 N$="YVG VENEZUELA":L1=10.6:W1=67.1:GOTO 1430 3840 N$="OBM LIMA PERU":L1=-12.1:W1=77.1:GOTO 1430 3850 N$="PPR RIO DE JANERIO":L1=-23:W1=43.7:GOTO 1430 3860 N$="CBV VALPARAISO CHILE":L1=-31:W1=71.7:GOTO 1430 3870 N$="PZN PARAMARIBO SURINAM":L1=5.9:W1=55.1:GOTO 1430 3900 REM 3910 REM - EUROPEAN TRANSMITTER LOCATIONS 3920 REM 3930 PRINT C$:PRINT A1$+"&"+"+" 3940 PRINT:PRINT TAB(15) "1- OXZ LYNGBY DENMARK 6- EAD ARANJUEZ SPAIN" 3950 PRINT:PRINT TAB(15) "2- OFJ HELSINKI FINLAND 7- IAR ROME ITALY" 3960 PRINT:PRINT TAB(15) "3- PCH ROTTERDAM NETH 8- SVA ATHENS GREECE" 3970 PRINT:PRINT TAB(15) "4- GKA PORTISHEAD ENGL 9- CUG AZORES" 3980 PRINT:PRINT TAB(15) "5- FFL ST LYS FRANCE " 3990 PRINT:INPUT O 4000 IF O>0 AND O<10 THEN GOTO 4030 4010 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 9 ONLY PLEASE" 4020 FOR I=1 TO 1000:NEXT:GOTO 3930 4030 ON O GOTO 4040,4050,4060,4070,4080,4090,4100,4110,4120 4040 N$="OXZ LYNGBY DENMARK":L1=55.8:W1=-11.4:GOTO 1430 4050 N$="OFJ HELSINKI FINLAND":L1=60.1:W1=-25:GOTO 1430 4060 N$="PCH ROTTERDAM NETHERLANDS":L1=52.1:W1=-4.3:GOTO 1430 4070 N$="GKA PORTISHEAD ENGLAND":L1=52.4:W1=1.2:GOTO 1430 4080 N$="FFL ST LYS FRANCE":L1=43.4:W1=-1.4:GOTO 1430 4090 N$="EAD ARANJUEZ SPAIN":L1=40:W1=3.7:GOTO 1430 4100 N$="IAR ROME ITALY":L1=41.8:W1=-12.5:GOTO 1430 4110 N$="SVA ATHENS GREECE":L1=38:W1=-23.9:GOTO 1430 4120 N$="CUG SAN MIGUEL AZORES":L1=37.7:W1=25.7:GOTO 1430 4200 REM 4210 REM - AFRICAN TRANSMITTER LOCATIONS 4220 REM 4230 PRINT C$:PRINT A1$+"&"+"+" 4240 PRINT:PRINT TAB(15) "1- CNP CASABLANCA MOROCCO 4- TUA ABIDJAN IV COAST" 4250 PRINT:PRINT TAB(15) "2- ZSC CAPETOWN S. AFRICA 5- 5ZF MOMBASA KENYA" 4260 PRINT:PRINT TAB(15) "3- SUH ALEXANDRIA EGYPT 6- TRA LIBERVILLE GABON" 4270 PRINT:INPUT O 4280 IF O>0 AND O<7 THEN GOTO 4310 4290 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 6 ONLY PLEASE." 4300 FOR I=1 TO 1000:NEXT:GOTO 4230 4310 ON O GOTO 4320,4330,4340,4350,4360,4370 4320 N$="CNP CASABLANCA MOROCCO":L1=33.6:W1=7.7:GOTO 1430 4330 N$="ZSC CAPETOWN SOUTH AFRICA":L1=-33.7:W1=-18.7:GOTO 1430 4340 N$="SUH ALEXANDRIA EGYPT":L1=31.2:W1=-29.9:GOTO 1430 4350 N$="TUA ABIDJAN IVORY COAST":L1=5.4:W1=4:GOTO 1430 4360 N$="5ZF MOMBASA KENYA":L1=-4.1:W1=-39.7:GOTO 1430 4370 N$="TRA LIBERVILLE GABON":L1=.4:W1=-9.4:GOTO 1430 4400 REM 4410 REM - ASIAN TRANSMITTER LOCATIONS 4420 REM 4430 PRINT C$:PRINT A1$+"&"+"+" 4440 PRINT:PRINT TAB(15) "1- JCS CHOSHI JAPAN 5- HZH JEDDAH S.ARABIA" 4450 PRINT:PRINT TAB(15) "2- JOS NAGASAKI JAPAN 6- VWB BOMBAY INDIA" 4460 PRINT:PRINT TAB(15) "3- HLG SEOUL KOREA 7- A9M BAHRAIN" 4470 PRINT:PRINT TAB(15) "4- VPS HONG KONG 8- 9VG SINGAPORE" 4480 PRINT:INPUT O 4490 IF O>0 AND O<9 THEN GOTO 4520 4500 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 8 ONLY PLEASE " 4510 FOR I=1 TO 1000:NEXT:GOTO 4430 4520 ON O GOTO 4530,4540,4550,4560,4570,4580,4590,4600 4530 N$="JCS CHOSHI JAPAN":L1=35.8:W1=-140.8:GOTO 1430 4540 N$="JOS NAGASAKI JAPAN":L1=32.8:W1=-130.2:GOTO 1430 4550 N$="HLG SEOUL KOREA":L1=37.5:W1=-126.8:GOTO 1430 4560 N$="VPS HONG KONG":L1=22.2:W1=-114.3:GOTO 1430 4570 N$="HZH JEDDAH SAUDI ARABIA":L1=21.5:W1=-39.2:GOTO 1430 4580 N$="VWB BOMBAY INDIA":L1=19.1:W1=-72.8:GOTO 1430 4590 N$="A9M BAHRAIN":L1=26.2:W1=-50.5:GOTO 1430 4600 N$="9VG SINGAPORE":L1=1.3:W1=-103.7:GOTO 1430 4700 REM 4710 REM - PACIFIC AREA TRANSMITTER LOCATIONS 4720 REM 4730 PRINT C$:PRINT A1$+"&"+"+" 4740 PRINT:PRINT TAB(15) "1- VIP PERTH AUSTRALIA 6- NMO HONOLULU HAWAII" 4750 PRINT:PRINT TAB(15) "2- VID DARWIN AUSTRALIA 7- NRV GUAM MARIANA IS" 4760 PRINT:PRINT TAB(15) "3- VIA ADELAIDE AUSTRALIA 8- FJA TAHITI" 4770 PRINT:PRINT TAB(15) "4- VIS SYDNEY AUSTRALIA 9- 3DP SUVA FIJI ISL." 4780 PRINT:PRINT TAB(15) "5- ZLW WELLINGTON NZEALAND 10- DZZ MANILA PHIL." 4790 PRINT:INPUT O 4800 IF O>0 AND O<11 THEN GOTO 4830 4810 PRINT C$:PRINT A1$+"+"+"9"+"SELECT 1 THRU 10 ONLY PLEASE." 4820 FOR I=1 TO 1000:NEXT:GOTO 4730 4830 ON O GOTO 4840,4850,4860,4870,4880,4890,4900,4910,4920,4930 4840 N$="VIP PERTH AUSTRALIA":L1=-31.8:W1=-115.9:GOTO 1430 4850 N$="VID DARWIN AUSTRALIA":L1=-12.4:W1=-130.8:GOTO 1430 4860 N$="VIA ADELAIDE AUSTRALIA":L1=-35.2:W1=-138.5:GOTO 1430 4870 N$="VIS SYDNEY AUSTRALIA":L1=-33.8:W1=-150.9:GOTO 1430 4880 N$="ZLW WELLINGTON NEW ZEALAND":L1=-41.3:W1=-174.8:GOTO 1430 4890 N$="NMO HONOLULU HAWAII":L1=21.4:W1=158.2:GOTO 1430 4900 N$="NRV GUAM MARIANA ISLANDS":L1=13.6:W1=-144.8:GOTO 1430 4910 N$="FJA TAHITI FR. POLYNESIA":L1=-17.5:W1=149.5:GOTO 1430 4920 N$="3DP SUVA FIJI ISLANDS":L1=-18.1:W1=-174.8:GOTO 1430 4930 N$="DZZ MANILA PHILIPPINES":L1=14.6:W1=-121:GOTO 1430 10000 REM 10010 REM - MUF'S NUMBER CRUNCHING ROUTINE 10020 REM 10030 K7=SIN(L1)*SIN(L2)+COS(L1)*COS(L2)*COS(W2-W1) 10040 IF K7=>-1 THEN 10070 10050 K7=-1 10060 GOTO 10090 10070 IF K7<=1 THEN 10090 10080 K7=1 10090 G1=(-ATN(K7/SQR(-K7*K7+1))+1.5708) 10100 K6=1.59*G1 10110 IF K6>=1 THEN 10130 10120 K6=1 10130 K5=1/K6:J9=100 10140 FOR K1=1/(2*K6) TO 1-1/(2*K6) STEP .9999-1/K6 10150 IF K5=1 THEN 10170 10160 K5=.5 10170 P=SIN(L2):Q=COS(L2):B=G1*K1 10180 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1)) 10190 C=P*COS(B)+Q*SIN(B)*A:D=(COS(B)-C*P)/(Q*SQR(1-C^2)) 10200 IF D=>-1 THEN 10230 10210 D=-1 10220 GOTO 10250 10230 IF D<=1 THEN 10250 10240 D=1 10250 D=(-ATN(D/SQR(-D*D+1))+1.5708) 10260 W0=W2+SGN(SIN(W1-W2))*D:IF W0=>0 THEN 10280 10270 W0=W0+P1 10280 IF W0-1 THEN 10330 10310 C=-1 10320 GOTO 10350 10330 IF C<=1 THEN 10350 10340 C=1 10350 L0=P0-(-ATN(C/SQR(-C*C+1))+1.5708) 10360 Y1=.0172*(10+(M0-1)*30.4+D6):Y2=.409*COS(Y1) 10370 K8=3.82*W0+12+.13*(SIN(Y1)+1.2*SIN(2*Y1)) 10380 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24)) 10390 IF COS(L0+Y2)>-.26 THEN 10460 10400 K9=0:G0=0:M9=2.5*G1*K5 10410 IF M9<=P0 THEN 10430 10420 M9=P0 10430 M9=SIN(M9) 10440 M9=1+2.5*M9*SQR(M9) 10450 GOTO 10670 10460 K9=(-.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+.001) 10470 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.63944 10480 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2)) 10490 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24)) 10500 C0=ABS(COS(L0+Y2)):T9=9.7*C0^9.6 10510 IF T9>.1 THEN 10530 10520 T9=.1 10530 M9=2.5*G1*K5 10540 IF M9<=P0 THEN 10560 10550 M9=P0 10560 M9=SIN(M9) 10570 M9=1+2.5*M9*SQR(M9):IF T40 THEN 10610 10590 GOTO 10720 10600 IF (T5-T4)*(T-T5)>0 THEN 10720 10610 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5)) 10620 G9=PI*(T6-T)/K9:G8=PI*T9/K9:U=(T-T6)/T9 10630 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8) 10640 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8) 10650 IF G0=>G7 THEN 10670 10660 G0=G7 10670 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0)) 10680 G2=G2*(1-.1*EXP((K9-24)/3)) 10690 G2=G2*(1+(1-SGN(L1)*SGN(L2))*.1) 10700 G2=G2*(1-.1*(1+SGN(ABS(SIN(L0))-COS(L0)))) 10710 GOTO 10770 10720 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5)) 10730 G8=PI*T9/K9:U=(T4-T6)/2:U1=-K9/T9 10740 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8) 10750 GOTO 10670 10770 IF G2>J9 THEN 10790 10780 J9=G2 10790 NEXT K1 10800 RETURN 15000 REM 15010 REM - DAYS IN THE MONTHS 15020 REM 15030 DATA 31,28,31,30,31,30,31,31,30,31,30,31 15100 REM 15110 REM - SOLAR FLUX NUMBERS FROM WWV (END WITH A ZERO) 15120 REM 15130 DATA 117,118,119,116,109,103,97,97,110,117,0 15140 END REM - SOLAR FLUX NUMBERS FROM WWV (END WITH A ZERO) 15120 REM 151