home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
rf
/
minimuf
/
muf.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
6KB
|
218 lines
41 REM MININUF 3.5 FROM NOSC TO KE6UY TO H4UH TO W4MB 15 OCT 87
10 ON ERROR GOTO 5000
18 H$="****************************************"
19 QC=0:QD=0:OG=O:G=0
20 DIM M$(37),A$(94),M(12),H(40),L2(360),W2(360)
21 DATA 31,28,31,30,31,30,31,31,30,31,30,31
22 FOR X=1 TO 12:READ M(X):NEXT X
23 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
24 PRINT :PRINT
25 PRINT "MINIMUF 3.5 PROPAGATION PREDICTION"
26 PRINT " INPUT 1-4 FOR TYPE OF RUN WANTED"
27 PRINT " W4MB QTH ANOTHER QTH"
28 PRINT " 1-360 DEGREE AT AN HOUR 3-360 DEGREE AT AN HOUR"
29 PRINT " 2-W4MB TO A POINT, 24 HOUR 4- THE QTH TO A POINT, 24 HOUR"
31 INPUT I$: IF I$<"1" OR I$>"4" THEN 31
32 IF I$="2" THEN QC=1
33 IF I$="4" THEN QC=1
34 IF I$>"2" THEN INPUT "ENTER OTHER QTH LAT (+/-90), LONG (+/-360) ";L1,W1: GOTO 50
43 L1=29.1583:W1=81.025:QD=1 ' IS W4MB
50 PI=3.14159265#
60 R0=PI/180
70 P1=2*PI
80 R1=180/PI
90 P0=PI/2
100 IF QC=0 THEN 200
110 INPUT"ENTER THE POINT LAT (+/-90), LONG (+/-360) ";L2,W2
120 IF L2<-90 OR L2>90 THEN 110
130 IF W2<-360 OR W2>360 THEN 10
140 GOSUB 2640
200 INPUT "ENTER DAY (1-31), MONTH (1-12)";D6,MON
210 IF MON<1 OR MON>12 THEN PRINT "INVALID MONTH": GOTO 200
220 IF M(MON)-D6<0 THEN PRINT "INVALID DAY":GOTO 200
230 J$=MID$(M$,3*MON-2,3)
240 INPUT" ENTER SOLAR FLUX NUMBER";SF
250 IF SF<70 THEN PRINT "DO NOT USE SOLAR FLUX LESS THAN 70":GOTO 240
260 S9=(SQR(.52998-.00356*(63.75-SF))-.728)/.00178
270 S9=INT(S9)
280 IF QC=1 THEN 400
300 INPUT "ENTER DISTANCE TO FIRST HOP IN KM";K
310 NA=K/1.852
320 INPUT "ENTER GMT OF PREDICTION, 0-23 ";TG
330 IF TG<0 OR TG>23 THEN 330
400 PRINT H$
410 PRINT " DATE IS; DAY=";D6;", MONTH=";J$
420 PRINT " SUNSPOT N0.=";S9;" SOLAR FLUX=";SF
450 PRINT " QTH LOCATION IS " ;
460 PRINT " LATITUDE=";L1;", LONGITUDE=";W1
490 IF QC=1 THEN 600
500 GOTO 800
600 PRINT
610 PRINT " POINT LAT=";L2;" DEG";"; LONG=";W2;"DEG" ;"; PATH LENGTH=";DX;" KM"
620 PRINT ,"HOUR","MUF","HOUR","MUF"
630 FOR T5=0 TO 23
640 GOSUB 1140
650 J9=J9*10
660 J9=INT(J9)
670 J9=J9/10
675 IF T5/2-INT (T5/2)=0 THEN PRINT, T5,J9;:GOTO 690
680 PRINT , T5,J9
690 NEXT T5
700 GOTO 3000
800 IF G=1 THEN 1000
810 FOR H=0 TO 350 STEP 10
820 V=SIN((NA/60)*R0)*COS(L1*R0)*COS(H*R0)+COS((NA/60)/R0)*SIN(L1*R0)
830 L2=ATN(V/SQR(1-V*V))*R1
840 L2(H)=L2
850 O=(VC-(SIN(L1*R0)*SIN(L2(H)*R0)))/(COS(L1*R0)*COS(L2(H)*R0))
860 IF ABS(O)=>1-1E-09 THEN O=.999999
870 W2=(P0-ATN(O/SQR(1-O*O)))*R1
880 IF H=<180 THEN W2=-(W2-W1)
890 IF H>180 THEN W2=W2+W1
900 W2(H)=W2
910 NEXT H
920 G0=1
1000 IF QC=1 THEN GOSUB 2640
1010 PRINT " FIRST HOP LENGTH= ";K;" KM"
1030 PRINT " FOR TIME= ";TG;" HOURS GMT"
1040 PRINT ,"BEARING","MUF","BEARING","MUF"
1050 FOR H=0 TO 350 STEP 10
1060 T5=TG
1070 GOSUB 1140
1080 J9=J9*10
1090 J9=INT(J9)
1100 J9=J9/10
1110 IF H/20-INT (H/20)=0 THEN PRINT ,H,J9;:GOTO 1130
1120 PRINT ,H,J9
1130 NEXT H
1135 GOTO 3000
1139 REM MINIMUF 3.5
1140 L1=L1*R0:W1=W1*R0
1145 IF QC=1 THEN K7=SIN(L1)*SIN(L2*R0)+COS(L1)*COS(L2*R0)*COS(W2*R0-W1):GOTO 1160
1150 K7=SIN(L1)*SIN(L2(H)*R0)+COS(L1)*COS(L2(H)*R0)*COS(W2(H)*R0-W1)
1160 IF K7=>-1 THEN 1190
1170 K7=-1
1180 GOTO 1210
1190 IF K7<=1 THEN 1210
1200 K7=1
1210 G1=-ATN(K7/SQR(-K7*K7+1))+P0
1220 K6=1.59*G1
1230 IF K6=>1 THEN 1250
1240 K6=1
1250 K5=1/K6
1260 J9=100
1270 FOR K1=1/(2*K6) TO 1-1/(2*K6) STEP .9999-1/K6
1280 IF K5=1 THEN 1295
1290 K5=.5
1295 IF QC=1 THEN P=SIN(L2*R0):GOTO 1305
1300 P=SIN (L2(H)*R0)
1305 IF QC=1 THEN Q=COS(L2*R0):GOTO 1320
1310 Q=COS(L2(H)*R0)
1320 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1))
1330 B=G1*K1
1340 C=P*COS(B)+Q*SIN(B)*A
1350 D=(COS(B)-C*P)/(Q*SQR(1-C*C))
1360 IF D=>-1 THEN 1390
1370 D=-1
1380 GOTO 1410
1390 IF D<=1 THEN 1410
1400 D=1
1410 D=-ATN(D/SQR(-D*D+1))+P0
1415 IF QC=1 THEN W0=W2*R0+SGN(SIN(W1-W2*R0))*D:GOTO 1430
1420 W0=W2(H)*R0+SGN(SIN(W1-W2(H)*R0))*D
1430 IF W0=>0 THEN 1450
1440 W0=W0+P1
1450 IF W0<P1 THEN 1470
1460 W0=W0-P1
1470 IF C=>-1 THEN 1500
1480 C=-1
1490 GOTO 1520
1500 IF C=<1 THEN 1520
1510 C=1
1520 L0=P0-(-ATN(C/SQR(-C*C+1))+P0)
1530 Y1=.0172*(10+(MON-1)*30.4+D6)
1540 Y2=.409*COS(Y1)
1550 K8=3.82*W0+12+.13*(SIN(Y1)+1.2*SIN(2*Y1))
1560 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24))
1570 IF COS(L0+Y2)>-.26 THEN 1660
1580 K9=0
1590 G0=0
1600 M9=2.5*G1*K5
1610 IF M9<=P0 THEN 1630
1620 M9=P0
1630 M9=SIN(M9)
1640 M9=1+2.5*M9*SQR(M9)
1650 GOTO 1910
1660 K9=(-.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+.001)
1670 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.639437
1680 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
1690 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
1700 C0=ABS(COS(L0+Y2))
1710 T9=9.7*C0^9.6
1720 IF T9>.1 THEN 1740
1730 T9=.1
1740 M9=2.5*G1*K5
1750 IF M9<=P0 THEN 1770
1760 M9=P0
1770 M9=SIN(M9)
1780 M9=1+2.5*M9*SQR(M9)
1790 IF T4<T THEN 1820
1800 IF (T5-T)*(T4-T5)>0 THEN 1830
1810 GOTO 1960
1820 IF (T5-T4)*(T-T5)>0 THEN 1960
1830 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
1840 G9=PI*(T6-T)/K9
1850 G8=PI*T9/K9
1860 U=(T-T6)/T9
1870 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
1880 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
1890 IF G0=>G7 THEN 1910
1900 G0=G7
1910 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
1920 G2=G2*(1-.1*EXP((K9-24)/3))
1930 G2=G2*(1+(1-SGN(L1)*SGN(L2))*.1)
1940 G2=G2*(1-.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
1950 GOTO 2020
1960 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
1970 G8=PI*T9/K9
1980 U=(T4-T6)/2
1990 U1=-K9/T9
2000 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
2010 GOTO 1910
2020 IF G2>J9 THEN 2040
2030 J9=G2
2040 NEXT K1
2050 J9=.93*J9
2060 G=1:L1=L1*R1:W1=W1*R1
2070 RETURN
2640 DY=SIN(L1*R0)*SIN(L2*R0)+COS(L1*R0)*COS(L2*R0)*COS(W1*R0-W2*R0)
2650 DX=60*(P0-ATN(DY/SQR(1-DY*DY)))*57.296
2670 DX=DX*1.852
2680 DX=INT(DX)
2685 RETURN
3000 PRINT "PRESS P=PRINT, Q=QUIT, R=RERUN, A=ANOTHER CONDITION"
3010 INPUT AN$
3020 IF AN$="P"THEN 3200
3030 IF AN$="Q" THEN STOP
3040 IF AN$="R" THEN OG=1:G=0:PRINT H$:GOTO 200
3050 IF AN$="A" THEN OG=1:G=0:QC=0:GOTO 25
3200 PRINT "NOT YET IMPLEMENTED":GOTO 3000
5000 PRINT "ERROR # ";ERR;" AT LINE "ERL:STOP