home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / rf / minimuf / muf.asc < prev    next >
Text File  |  1996-06-30  |  6KB  |  218 lines

  1. 41 REM MININUF 3.5 FROM NOSC TO KE6UY TO H4UH TO W4MB 15 OCT 87
  2. 10 ON ERROR GOTO 5000
  3. 18 H$="****************************************"
  4. 19 QC=0:QD=0:OG=O:G=0
  5. 20 DIM M$(37),A$(94),M(12),H(40),L2(360),W2(360)
  6. 21 DATA 31,28,31,30,31,30,31,31,30,31,30,31
  7. 22 FOR X=1 TO 12:READ M(X):NEXT X
  8. 23 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
  9. 24 PRINT :PRINT 
  10. 25 PRINT "MINIMUF 3.5 PROPAGATION PREDICTION"
  11. 26 PRINT "   INPUT 1-4 FOR TYPE OF RUN WANTED"
  12. 27 PRINT "           W4MB QTH                           ANOTHER QTH"
  13. 28 PRINT "      1-360 DEGREE AT AN HOUR            3-360 DEGREE AT AN HOUR"
  14. 29 PRINT "      2-W4MB TO A POINT, 24 HOUR         4- THE QTH TO A POINT, 24 HOUR"
  15. 31 INPUT I$: IF I$<"1" OR I$>"4" THEN 31
  16. 32 IF I$="2" THEN QC=1
  17. 33 IF I$="4" THEN QC=1
  18. 34 IF I$>"2" THEN INPUT "ENTER OTHER QTH LAT (+/-90), LONG (+/-360) ";L1,W1: GOTO 50
  19. 43 L1=29.1583:W1=81.025:QD=1 ' IS W4MB
  20.  
  21. 50 PI=3.14159265#
  22. 60 R0=PI/180
  23. 70 P1=2*PI
  24. 80 R1=180/PI
  25. 90 P0=PI/2
  26. 100 IF QC=0 THEN 200
  27. 110 INPUT"ENTER  THE POINT LAT (+/-90), LONG (+/-360)  ";L2,W2
  28. 120 IF L2<-90 OR L2>90 THEN 110
  29. 130 IF W2<-360 OR W2>360 THEN 10
  30. 140 GOSUB 2640
  31.  
  32. 200 INPUT "ENTER DAY (1-31), MONTH (1-12)";D6,MON
  33. 210 IF MON<1 OR MON>12 THEN PRINT  "INVALID MONTH": GOTO 200
  34. 220 IF M(MON)-D6<0 THEN PRINT  "INVALID DAY":GOTO 200
  35. 230 J$=MID$(M$,3*MON-2,3)
  36. 240 INPUT" ENTER SOLAR FLUX NUMBER";SF
  37. 250 IF SF<70 THEN PRINT "DO NOT USE SOLAR FLUX LESS THAN 70":GOTO 240
  38. 260 S9=(SQR(.52998-.00356*(63.75-SF))-.728)/.00178
  39. 270 S9=INT(S9)
  40. 280 IF QC=1 THEN 400
  41.  
  42. 300 INPUT "ENTER DISTANCE TO FIRST HOP IN KM";K
  43. 310 NA=K/1.852
  44. 320 INPUT "ENTER GMT OF PREDICTION, 0-23 ";TG
  45. 330 IF TG<0 OR TG>23 THEN 330
  46.  
  47. 400 PRINT H$
  48. 410 PRINT " DATE IS;   DAY=";D6;",   MONTH=";J$
  49. 420 PRINT "  SUNSPOT N0.=";S9;"  SOLAR FLUX=";SF
  50. 450 PRINT "   QTH LOCATION IS " ;
  51. 460 PRINT "    LATITUDE=";L1;",   LONGITUDE=";W1
  52. 490 IF QC=1 THEN 600
  53. 500 GOTO 800
  54.  
  55. 600 PRINT
  56. 610 PRINT "     POINT LAT=";L2;" DEG";"; LONG=";W2;"DEG" ;"; PATH LENGTH=";DX;" KM" 
  57. 620 PRINT ,"HOUR","MUF","HOUR","MUF"
  58.  
  59. 630  FOR T5=0 TO 23
  60. 640 GOSUB 1140
  61. 650 J9=J9*10
  62. 660 J9=INT(J9)
  63. 670 J9=J9/10
  64. 675 IF T5/2-INT (T5/2)=0 THEN PRINT, T5,J9;:GOTO 690
  65. 680 PRINT , T5,J9
  66. 690 NEXT T5
  67. 700 GOTO 3000
  68.      
  69. 800 IF G=1 THEN 1000
  70. 810 FOR H=0 TO 350 STEP 10
  71. 820 V=SIN((NA/60)*R0)*COS(L1*R0)*COS(H*R0)+COS((NA/60)/R0)*SIN(L1*R0)
  72. 830 L2=ATN(V/SQR(1-V*V))*R1
  73. 840 L2(H)=L2
  74. 850 O=(VC-(SIN(L1*R0)*SIN(L2(H)*R0)))/(COS(L1*R0)*COS(L2(H)*R0))
  75. 860 IF ABS(O)=>1-1E-09 THEN O=.999999
  76. 870 W2=(P0-ATN(O/SQR(1-O*O)))*R1
  77. 880 IF H=<180 THEN W2=-(W2-W1)
  78. 890 IF H>180 THEN W2=W2+W1
  79. 900 W2(H)=W2
  80. 910 NEXT H
  81. 920 G0=1
  82. 1000 IF QC=1 THEN GOSUB 2640
  83. 1010 PRINT "     FIRST HOP LENGTH= ";K;" KM"
  84.  
  85. 1030 PRINT "      FOR TIME= ";TG;" HOURS GMT"
  86. 1040 PRINT ,"BEARING","MUF","BEARING","MUF"
  87. 1050 FOR H=0 TO 350 STEP 10
  88. 1060 T5=TG
  89. 1070 GOSUB 1140
  90. 1080 J9=J9*10
  91. 1090 J9=INT(J9)
  92. 1100 J9=J9/10
  93. 1110 IF H/20-INT (H/20)=0 THEN PRINT ,H,J9;:GOTO 1130
  94. 1120 PRINT ,H,J9
  95.  
  96. 1130 NEXT H
  97. 1135 GOTO 3000
  98.  
  99. 1139 REM MINIMUF 3.5
  100. 1140 L1=L1*R0:W1=W1*R0
  101. 1145 IF QC=1 THEN K7=SIN(L1)*SIN(L2*R0)+COS(L1)*COS(L2*R0)*COS(W2*R0-W1):GOTO 1160
  102. 1150 K7=SIN(L1)*SIN(L2(H)*R0)+COS(L1)*COS(L2(H)*R0)*COS(W2(H)*R0-W1)
  103. 1160 IF K7=>-1 THEN 1190
  104. 1170 K7=-1
  105. 1180 GOTO 1210
  106. 1190 IF K7<=1 THEN 1210
  107. 1200 K7=1
  108. 1210 G1=-ATN(K7/SQR(-K7*K7+1))+P0
  109. 1220 K6=1.59*G1
  110. 1230 IF K6=>1 THEN 1250
  111. 1240 K6=1
  112. 1250 K5=1/K6
  113. 1260 J9=100
  114. 1270 FOR K1=1/(2*K6) TO 1-1/(2*K6) STEP .9999-1/K6
  115. 1280 IF K5=1 THEN 1295
  116. 1290 K5=.5
  117. 1295 IF QC=1 THEN P=SIN(L2*R0):GOTO 1305
  118. 1300 P=SIN (L2(H)*R0)
  119. 1305 IF QC=1 THEN Q=COS(L2*R0):GOTO 1320
  120. 1310 Q=COS(L2(H)*R0)
  121. 1320 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1))
  122. 1330 B=G1*K1
  123. 1340 C=P*COS(B)+Q*SIN(B)*A
  124. 1350 D=(COS(B)-C*P)/(Q*SQR(1-C*C))
  125. 1360 IF D=>-1 THEN 1390
  126. 1370 D=-1
  127. 1380 GOTO 1410
  128. 1390 IF D<=1 THEN 1410
  129. 1400 D=1
  130. 1410 D=-ATN(D/SQR(-D*D+1))+P0
  131. 1415 IF QC=1 THEN W0=W2*R0+SGN(SIN(W1-W2*R0))*D:GOTO 1430
  132. 1420 W0=W2(H)*R0+SGN(SIN(W1-W2(H)*R0))*D
  133. 1430 IF W0=>0 THEN 1450
  134. 1440 W0=W0+P1
  135. 1450 IF W0<P1 THEN 1470
  136. 1460 W0=W0-P1
  137. 1470 IF C=>-1 THEN 1500
  138. 1480 C=-1
  139. 1490 GOTO 1520
  140. 1500 IF C=<1 THEN 1520
  141. 1510 C=1
  142. 1520 L0=P0-(-ATN(C/SQR(-C*C+1))+P0)
  143. 1530 Y1=.0172*(10+(MON-1)*30.4+D6)
  144. 1540 Y2=.409*COS(Y1)
  145. 1550 K8=3.82*W0+12+.13*(SIN(Y1)+1.2*SIN(2*Y1))
  146. 1560 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24))
  147. 1570 IF COS(L0+Y2)>-.26 THEN 1660
  148. 1580 K9=0
  149. 1590 G0=0
  150. 1600 M9=2.5*G1*K5
  151. 1610 IF M9<=P0 THEN 1630
  152. 1620 M9=P0
  153. 1630 M9=SIN(M9)
  154. 1640 M9=1+2.5*M9*SQR(M9)
  155. 1650 GOTO 1910
  156. 1660 K9=(-.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+.001)
  157. 1670 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.639437
  158. 1680 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
  159. 1690 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
  160. 1700 C0=ABS(COS(L0+Y2))
  161. 1710 T9=9.7*C0^9.6
  162. 1720 IF T9>.1 THEN 1740
  163. 1730 T9=.1
  164. 1740 M9=2.5*G1*K5
  165. 1750 IF M9<=P0 THEN 1770
  166. 1760 M9=P0
  167. 1770 M9=SIN(M9)
  168. 1780 M9=1+2.5*M9*SQR(M9)
  169. 1790 IF T4<T THEN 1820
  170. 1800 IF (T5-T)*(T4-T5)>0 THEN 1830
  171. 1810 GOTO 1960
  172. 1820 IF (T5-T4)*(T-T5)>0 THEN 1960
  173. 1830 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
  174. 1840 G9=PI*(T6-T)/K9
  175. 1850 G8=PI*T9/K9
  176. 1860 U=(T-T6)/T9
  177. 1870 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
  178. 1880 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
  179. 1890 IF G0=>G7 THEN 1910
  180. 1900 G0=G7
  181. 1910 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
  182. 1920 G2=G2*(1-.1*EXP((K9-24)/3))
  183. 1930 G2=G2*(1+(1-SGN(L1)*SGN(L2))*.1)                          
  184. 1940 G2=G2*(1-.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
  185. 1950 GOTO 2020
  186. 1960 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
  187. 1970 G8=PI*T9/K9
  188. 1980 U=(T4-T6)/2
  189. 1990 U1=-K9/T9
  190. 2000 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
  191. 2010 GOTO 1910
  192. 2020 IF G2>J9 THEN 2040
  193. 2030 J9=G2
  194. 2040 NEXT K1
  195. 2050 J9=.93*J9
  196. 2060 G=1:L1=L1*R1:W1=W1*R1
  197. 2070 RETURN
  198. 2640 DY=SIN(L1*R0)*SIN(L2*R0)+COS(L1*R0)*COS(L2*R0)*COS(W1*R0-W2*R0)
  199. 2650 DX=60*(P0-ATN(DY/SQR(1-DY*DY)))*57.296
  200. 2670 DX=DX*1.852
  201. 2680 DX=INT(DX)
  202. 2685 RETURN
  203. 3000 PRINT "PRESS P=PRINT, Q=QUIT, R=RERUN, A=ANOTHER CONDITION"
  204. 3010 INPUT AN$
  205. 3020 IF AN$="P"THEN 3200
  206. 3030 IF AN$="Q" THEN STOP
  207. 3040 IF AN$="R" THEN OG=1:G=0:PRINT H$:GOTO 200
  208. 3050 IF AN$="A" THEN OG=1:G=0:QC=0:GOTO 25
  209. 3200 PRINT "NOT YET IMPLEMENTED":GOTO 3000
  210. 5000 PRINT  "ERROR # ";ERR;" AT LINE  "ERL:STOP
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.