home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
w4mb
/
vol2
/
basic
/
wgdt.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
23KB
|
508 lines
2 ON ERROR GOTO 60000
3 CLS
10 PRINT " ***************************************************************"
20 PRINT " * WAVEGUIDE DATA *"
30 PRINT " * REFERENCE- MORENO, MICROWAVE TRANSMISSION DESIGN DATA *"
40 PRINT " * ITT, REFERENCE DATA FOR RADIO ENGINEERS *"
50 PRINT " * PROGRAM BY R.P. HAVILAND, W4MB *"
60 PRINT " * COPYRGHT 1990 *"
70 PRINT " * MINILAB BOOKS, DAYTONA BEACH, FL 32121-1086 *"
80 PRINT " ***************************************************************"
90 DEF FNP (X) = INT(100 * X + .5) / 100
100 PI = 3.141592
110 DIM MODE$(25), UCON(25), RTABL(5, 18), CTABL(2, 13)
120 PRINT " THIS PROGRAM ASSUMES USE OF COMMERCIAL PIPE FOR DESIGNS,"
130 PRINT " WITH THE NEAREST EIA AND MIL TYPES BEING INDICATED."
140 PRINT " DESIGNS ARE USUALLY BASED ON THE DOMINANT PROPAGATION MODES,"
150 PRINT " TE01 FOR RECTANGULAR AND TE11 FOR CIRCULAR GUIDE."
160 PRINT " ROUTINE 11 ALLOWS CHANGE OF MODES AND"
170 PRINT " ROUTINES 6 AND 11 CHANGE OF GUIDE SIZE."
200 FOR N = 1 TO 25
210 READ MODE$(N)
220 NEXT N
230 FOR N = 1 TO 25
240 READ UCON(N)
250 NEXT N
260 FOR N = 1 TO 18
270 FOR M = 1 TO 5
280 READ RTABL(M, N)
290 NEXT M
300 NEXT N
310 FOR N = 1 TO 13
320 FOR M = 1 TO 2
330 READ CTABL(M, N)
340 NEXT M
350 NEXT N
400 PRINT " ENTER DESIGN CENTER FREQUENCY, MHZ";
410 IF FO <> 0 THEN PRINT ", 0=NO CHANGE"
420 INPUT FTEM
430 IF FTEM < 320 OR FTEM > 33000! THEN PRINT " BEYOND RANGE OF TABLES": GOTO 400
440 IF FTEM <> 0 THEN FO = FTEM
450 LAM = 29980 / FO: LAMIN = LAM / 2.54'CM,IN
460 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
470 PRINT " ="; FNP(LAMIN); "INCHES"
480 INPUT " ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
490 IF TG$ <> "R" AND TG$ <> "C" THEN 430
500 TN = 1
510 IF TG$ = "C" THEN 550
520 IF TN > 18 THEN PRINT "BEST SIZE IS BEYOND TABLES": TN = 18: GOTO 540
530 IF LAMIN < RTABL(2, TN) THEN TN = TN + 1: GOTO 520
540 ADIM = RTABL(2, TN) - 2 * RTABL(3, TN): BDIM = RTABL(1, TN) - 2 * RTABL(3, TN): GOTO 580
550 IF TN > 13 THEN PRINT "BEST SIZE IS BEYOND TABLES:TN=13:GOTO 570"
560 IF LAMIN < CTABL(1, TN) / 2 THEN TN = TN + 1: GOTO 550
570 RAD = CTABL(1, TN) / 2 - CTABL(2, TN)
580 IF TG$ = "R" THEN PRINT " DESIGN GUIDE ="; BDIM; "BY"; ADIM; "INCHES, INSIDE"
590 IF TG$ = "C" THEN PRINT " DESIGN GUIDE RADIUS="; RAD; "INCHES, INSIDE"
600 INPUT " ENTER MODE VALUES, M,N: 0,0 SETS DOMINANT MODE"; MMODE, NMODE
610 IF MMODE > 0 OR NMODE > 0 THEN 640
620 IF TG$ = "R" THEN MMODE = 1: NMODE = 0: MODT$ = "E"
630 IF TG$ = "C" THEN MMODE = 1: NMODE = 1: MODT$ = "E"
640 PRINT
800 PRINT " THE FOLLOWING ROUTINES ARE AVAILABLE"
810 PRINT " 1- ATTENUATION"
820 PRINT " 2- BELOW-CUTOFF ATTENUATION"
830 PRINT " 3- BENDS IN GUIDES"
840 PRINT " 4- WINDOWS"
850 PRINT " 5- CUTOFF, ETC"
860 PRINT " 6- DIMENSION TABLE"
870 PRINT " 7- UNITS CONVERT"
880 PRINT " 8- COUPLING IRISES"
890 PRINT " 9- POWER CAPACITY"
900 PRINT " 10- RESONATORS"
910 PRINT " 11- CHANGE PARAMATERS"
920 PRINT " 12- QUIT"
930 INPUT " ENTER ROUTINE TO USE"; RS
940 ON RS GOSUB 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 64000
950 CLS
960 GOTO 800
1000 CLS
1010 IF LGIN = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
1020 IF TG$ = "C" THEN 1100
1030 IF MODT$ = "M" THEN 1070
1040 IF NMODE = 0 THEN GOTO 1200
1050 IF MMODE = 1 THEN GOTO 1300
1060 PRINT " BEYOND PROVIDED CALCULATION RANGE": GOTO 1990
1070 IF MMODE = 0 THEN GOTO 1200
1080 IF NMODE = 1 AND MMODE = 1 THEN GOTO 1400
1090 PRINT " BEYOND PROVIDED CALCULATION RANGE": GOTO 1990
1100 IF MODT$ = "M" THEN GOTO 1140
1110 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1500
1120 IF MMODE = 1 AND NMODE = 1 THEN GOTO 1600
1130 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1700
1140 PRINT " BEYOND PROVIDED CALCULATION RANGE- SEE REFERENCES": GOTO 1990
1150 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1500
1160 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1600
1170 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1700
1180 PRINT " BEYOND PROVIDED CALCULATION RANGE- SEE REFERENCES": GOTO 1990
1200 ATTN = 1.1095 / ADIM ^ 1.5 * (.5 * ADIM / BDIM * (FO / FC) ^ 1.5 + (FO / FC) ^ -.5)
1210 ATTN = ATTN / SQR((FO / FC) ^ 2 - 1)
1220 GOTO 1800
1300 ATTN = 1.1095 / ADIM ^ 1.5
1310 ATTN = ATTN * (ADIM / BDIM * (A + ADIM / BDIM) * (FO / FC) ^ 1.5 + (1 + (ADIM / BDIM) ^ 3) * (FO / FC) ^ -1 / 2)
1320 ATTN = ATTN / (1 + (ADIM / BDIM) ^ 2) ^ .75 * SQR((FO / FC) ^ 2 - 1)
1330 GOTO 1800
1400 ATTN = 1.1095 / ADIM ^ 1.5
1410 ATTN = ATTN * ((1 + BDIM / ADIM) ^ 3) * (FO / FC) ^ 1.5
1420 ATTN = ATTN / (1 + (BDIM / ADIM) ^ 2) ^ .75 / SQR((FO / FC) ^ 2 - 1)
1430 GOTO 1800
1500 ATTN = .4846 / RAD ^ 1.5
1510 ATTN = ATTN * (FO / FC) ^ 1.5 / SQR((FO / FC) ^ 2 - 1)
1520 GOTO 1900
1600 ATTN = .4237 / RAD ^ 1.5 * ((FO6FC) ^ 1.5 + 1 / 2.38 * (FO / FC) ^ 1.5)
1610 ATTN = ATTN / SQR((FO / FC) ^ 2 - 1)
1620 GOTO 1900
1700 ATTN = .6127 / RAD ^ 1.5 * (FO / FC) ^ -.5 / (SQR((FO / FC) ^ 2 - 1))
1710 GOTO 1900
1800 PRINT " FOR RECTANGULAR COPPER GUIDE"; ADIM; "BY"; BDIM; "INCHES"
1810 PRINT " AND MODE "; CNAM$
1820 PRINT "ATTENUATION/100 FEET= "; FNP(ATTN); "DB"
1830 PRINT " FOR BRASS MULTIPLY BY 1.4"
1840 GOTO 1990
1900 PRINT " FOR CIRCULAR COPPER GUIDE, DIAMETER="; 2 * RAD; "INCHES"
1910 PRINT " AND MODE "; CNAM$
1920 PRINT "ATTENUATION/100 FEET= "; FNP(ATTN); "DB"
1930 PRINT " FOR BRASS MULTIPLY BY 1.4"
1990 INPUT " PRESS RETURN TO CONTINUE"; T$
1999 RETURN
2000 CLS
2010 IF CWCM = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
2100 INPUT "ENTER FREQUENCY, MHZ, 0 EQUALS NO CHANGE"; FTEM
2110 IF FTEM = 0 THEN FTEM = FO
2120 LTEM = 29980 / FTEM
2130 ATTN = 8.689999 * SQR((2 * PI / CWCM) ^ 2 - (2 * PI / LTEM) ^ 2)
2140 PRINT
2200 PRINT "ATTENUATION="; FNP(ATTN); "DB PER CM"
2210 PRINT " ="; FNP(2.54 * ATTN); "DB PER INCH"
2220 PRINT " ="; FNP(30.48 * ATTN); "DB PER FOOT"
2230 PRINT
2290 INPUT " PRESS RETURN TO CONTINUE"; T$
2999 RETURN
3000 CLS : IF TG$ = "C" THEN PRINT " NOT IMPLEMENTED": GOTO 3600
3010 IF CWCM = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
3020 PRINT " THIS ROUTINE PROVIDES DATA FOR A 'TWO CUT' CORNER, TO CHANGE"
3030 PRINT " THE DIRECTION OF A RECTANGULAR WAVEGUIDE RUN IN ONE PLANE"
3040 INPUT " ENTER THE AMOUNT OF DIRECTION CHANGE, DEGREES"; DCHG
3050 IF DCHG > 90 THEN PRINT "USE TWO CORNERS OF"; DCHG / 2; "DEGREES:GOTO 3040"
3060 INPUT " ENTER BEND PLANE, E (NARROW) OR H (BROAD FACE)"; BPL$
3080 IF BPL$ = "E" THEN LRA = .25: GOTO 3200
3090 IF BPL$ = "H" THEN LRA = .288: GOTO 3200
3100 GOTO 3060
3200 CLS
3210 PRINT " SAW CUT ANGLE 1="; DCHG / 4; "DEGREES FROM ACROSS-GUIDE DIRECTION,"
3220 IF BPL$ = "H" THEN PRINT " ON THE BROADEST GUIDE FACE"
3230 IF BPL$ = "E" THEN PRINT " ON THE NARROWEST GUIDE FACE"
3240 PRINT
3300 PRINT " SAW CUT ANGLE 2="; -DCHG / 4; "DEGREES FROM ACROSS-GUIDE DIRECTION,"
3310 IF BPL$ = "H" THEN PRINT " ON THE BROAD GUIDE FACE"
3320 IF BPL$ = "E" THEN PRINT " ON THE NARROW GUIDE FACE"
3330 PRINT
3400 PRINT " DISTANCE BETWEEN CUTS AT GUIDE CENTERLINE=";
3410 PRINT FNP(LRA * LGIN); "INCHES"
3420 PRINT " =";
3430 PRINT FNP(LRA * LGCM); "CM"
3500 PRINT
3510 PRINT " ASSEMBLE TO MAKE DESIRED CORNER ANGLE, CLAMP AND"
3520 PRINT " SOLDER CAREFULLY TO KEEP INTERIOR SMOOTH."
3600 INPUT " PRESS RETURN TO CONTINUE"; T$
3999 RETURN
4000 CLS
4010 IF ZG = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
4020 IF TG$ = "C" THEN 4500
4030 PRINT " FOR THIN WINDOWS SYMMETICAL TO CENTER-LINE OF GUIDE ONLY"
4040 INPUT " ENTER 1= INDUCTIVE, 2= CAPACITIVE, 3=RESONANT WINDOW"; TEM
4050 ON TEM GOTO 4100, 4200, 4300, 4000
4100 INPUT " ENTER WINDOW WIDTH AS FRACTION OF INSIDE WIDTH OF GUIDE"; WWID
4110 FAC = PI * WWID * (1 / SQR(1 - (2 * ADIM / 3 / LAMIN) ^ 2) - 1)
4120 FAC1 = 1 + .75 * SIN(FAC) * SIN(FAC)
4130 FAC = PI / 2 * WWID * FAC1
4140 XL = ADIM / LGIN * TAN(FAC) * TAN(FAC) * ZG
4150 PRINT " WINDOW INDUCTIVE REACTANCE="; FNP(XL); "OHMS"
4160 GOTO 4990
4200 PRINT "NOT IMPLEMENTED, SEE REFERENCES"
4260 GOTO 4990
4300 INPUT " ENTER WIDTH OF THIN RESONANT WINDOW, INCHES, 0=QUIT"; WWID
4310 IF WWID = 0 THEN 4999
4320 IF LAMIN >= 2 * WWID THEN PRINT " IMPOSSIBLE CONDITION": GOTO 4300
4330 FAC = ADIM / BDIM * SQR(1 - (LAMIN / 2 / ADIM) ^ 2)
4340 FAC1 = SQR(1 - (LAMIN / 2 / WWID) ^ 2)
4350 WHT = WWID * FAC1 / FAC
4360 PRINT " WINDOW HEIGHT FOR RESONANCE="; WHT; "INCHES"
4370 GOTO 4990
4500 PRINT "NOT IMPLEMENTED, SEE IRISES"
4560 GOTO 4990
4990 INPUT "PRESS RETURN TO CONTINUE"; T$
4999 RETURN
5000 CLS
5010 INPUT " ENTER MODE VALUES, M,N: 0,0 SETS DOMINANT MODE"; MMODE, NMODE
5020 IF MMODE > 0 OR NMODE > 0 THEN 5050
5030 IF TG$ = "R" THEN MMODE = 1: NMODE = 0: GOTO 5060
5040 IF TG$ = "C" THEN MMODE = 1: NMODE = 1: GOTO 5060
5050 INPUT "MODE TYPE, E OR M"; MODT$
5060 IF TG$ = "C" THEN 5500
5200 CWIN = 2 / SQR((MMODE / ADIM) ^ 2 + (NMODE / BDIM) ^ 2)'INCHES
5210 IF CWIN < LAMIN THEN PRINT " MODE IS BELOW CUTOFF": GOTO 5990
5220 CWCM = CWIN * 2.54
5230 FC = 299.8 / CWCM
5240 ZG = 377 * LGIN / LAMIN * 2 * BDIM / ADIM
5250 CNAM$ = "TE" + CHR$(MMODE + 48) + CHR$(NMODE + 48)
5260 LGIN = LAMIN / SQR(1 - (LAMIN / CWIN) ^ 2)
5270 LGCM = LGIN * 2.54
5300 PRINT
5310 PRINT " FOR GUIDE"; ADIM; "BY"; BDIM; "INCHES"
5320 PRINT " OPERATING IN MODE "; CNAM$
5330 PRINT " CUTOFF WAVELENGTH="; CWCM; "CM"
5340 PRINT " AT FREQUENCY OF"; FO; "MHZ"
5350 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
5360 PRINT " ="; FNP(LAMIN); "INCHES"
5370 PRINT " WAVELENGTH IN GUIDE="; FNP(LGCM); "CM"
5380 PRINT " ="; FNP(LGIN); "IN"
5390 GOTO 5990
5500 N = 0
5510 CNAM$ = MODT$ + CHR$(MMODE + 48) + CHR$(NMODE + 48)
5520 N = N + 1: IF N = 19 THEN PRINT "BEYOND TABLES": GOTO 5990
5530 IF MODE$(N) <> CNAM$ THEN 5520
5540 CWIN = 2 * PI * RAD / UCON(N)
5550 IF CWIN < LAMIN THEN PRINT " MODE IS BELOW CUTOFF": GOTO 5990
5560 CWCM = CWIN * 2.54
5570 FC = 299.8 / CWCM
5580 LGIN = LAMIN / SQR(1 - (LAMIN / CWIN) ^ 2)
5590 LGCM = LGIN * 2.54
5900 PRINT
5910 PRINT " FOR GUIDE"; 2 * RAD; "INCHES IN DIAMETER"
5920 PRINT " OPERATING IN MODE "; "T" + CNAM$
5930 PRINT " CUTOFF WAVELENGTH="; CWCM; "CM"
5940 PRINT " AT FREQUENCY OF"; FO; "MHZ"
5950 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
5960 PRINT " ="; FNP(LAMIN); "INCHES"
5970 PRINT " WAVELENGTH IN GUIDE="; FNP(LGCM); "CM"
5980 PRINT " ="; FNP(LGIN); "IN"
5990 INPUT " PRESS RETURN TO CONTINUE"; T$
5999 RETURN
6000 INPUT "ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
6010 IF TG$ <> "R" AND TG$ <> "C" THEN 6000
6020 INPUT "SEE S=SPECIFIC SIZE OR T= COMPLETE TABLE "; TABL$
6030 IF TABL$ <> "T" AND TABL$ <> "S" THEN 6020
6040 IF TG$ = "C" AND TABL$ = "S" THEN 6200
6050 IF TG$ = "R" AND TABL$ = "T" THEN 6600
6060 IF TG$ = "R" AND TABL$ = "S" THEN 6800
6100 CLS
6110 PRINT " COMMERCIAL CIRCULAR COPPER TUBING SIZES"
6120 PRINT " DIMENSIONS IN INCHES"
6130 PRINT "DIAMETER", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
6140 FOR N = 1 TO 13
6150 PRINT CTABL(1, N), CTABL(2, 4), 3.1 * CTABL(1, N), 3.6 * CTABL(1, N)
6160 NEXT N
6170 GOTO 6990
6200 CLS
6210 PRINT "*** CAUTION - THIS ROUTINE CHANGES INITIAL GUIDE SELECTION"
6220 INPUT "ENTER CIRCULAR GUIDE DIAMETER,INCHES"; DIA
6330 RAD = DIA / 2
6340 TN = 1
6350 IF TN >= 13 THEN PRINT "SIZE NOT LISTED": GOTO 6990
6360 IF CTABL(1, TN) <> RAD THEN TN = TN + 1: GOTO 6340
6370 PRINT "DIAMETER", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
6380 PRINT CTABL(1, TN), CTABL(2, TN), 3.1 * CTABL(1, TN), 3.6 * CTABL(1, TN)
6390 PRINT " INITIAL WAVEGUIDE SELECTION NOW CHANGED TO THIS SIZE"
6400 GOTO 6990
6600 CLS
6610 PRINT " COMMERCIAL RECTANGULAR COPPER TUBING SIZES"
6620 PRINT "A-HEIGHT", "B-WIDTH", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
6630 FOR N = 1 TO 18
6640 PRINT RTABL(1, N), RTABL(2, N), RTABL(3, N), 2.1 * RTABL(2, N), 3.3 * RTABL(2, N)
6650 NEXT N
6660 GOTO 6970
6800 CLS
6810 PRINT "*** CAUTION - THIS ROUTINE CHANGES INITIAL GUIDE SELECTION"
6820 INPUT "ENTER RECTANGULAR GUIDE WIDTH (B-DIMENSION), INCHES"; TEMP
6830 TN = 1
6840 IF TN >= 18 THEN PRINT "SIZE NOT LISTED": GOTO 6990
6850 IF RTABL(2, TN) <> TEMP THEN TN = TN + 1: GOTO 6840
6860 PRINT "A-HEIGHT", "B-WIDTH", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
6870 PRINT RTABL(1, TN), RTABL(2, TN), RTABL(3, TN), 2.1 * RTABL(2, TN), 3.3 * RTABL(2, TN)
6880 PRINT " INITIAL WAVEGUIDE SELECTION NOW CHANGED TO THIS SIZE"
6890 PRINT " ALSO DESIGNATED AS EIA-"; RTABL(4, TN)
6900 PRINT " OR RG-"; RTABL(5, TN); "/U"
6910 ADIM = RTABL(1, TN)
6920 BDIM = RTABL(2, TN)
6930 GOTO 6990
6970 PRINT " LARGER SIZES ARE AVAILABLE IN EIA AND JAN SERIES."
6980 PRINT " FOR RECTANGULAR GUIDE USE 'PC-BOARD' TO CONSTRUCT GUIDE"
6990 INPUT " PRESS RETURN TO CONTINUE"; T$
6999 RETURN
7000 CLS
7010 PRINT "CONVERSIONS, INPUT TO OUTPUT"
7020 PRINT " ENTER 1 FOR INCHES TO CENTIMETERS"
7030 PRINT " 2 FOR FEET TO CENTIMETERS"
7040 PRINT " 3 FOR CENTIMETERS TO INCHES"
7050 PRINT " 4 FOR CENTIMETERS TO FEET"
7060 PRINT " 5 FOR FREQUENCY, MHZ TO WAVELENGTH, CM"
7070 PRINT " 6 FOR WAVELENGTH, CM TO FREQUENCY, MHZ"
7100 INPUT TEM
7110 ON TEM GOTO 7200, 7250, 7300, 7350, 7400, 7450, 7010
7200 INPUT "INCHES"; INV
7210 PRINT "CM="; 2.54 * INV
7220 GOTO 7980
7250 INPUT "FEET"; INV
7260 PRINT "CM="; 30.48 * INV
7270 GOTO 7980
7300 INPUT "CENTIMETERS"; INV
7310 PRINT "INCHES="; INV / 2.54
7320 GOTO 7980
7350 INPUT "CENTIMETERS"; INV
7360 PRINT "FEET="; INV / 30.48
7370 GOTO 7980
7400 INPUT "FREQUENCY,MHZ"; INV
7410 PRINT "WAVELENGTH, CM="; 29980 / INV
7420 GOTO 7980
7450 INPUT "WAVELENGTH, CM"; INV
7460 PRINT "FREQUENCY,MHZ="; 29980 / INV
7470 GOTO 7980
7980 INPUT "ENTER C- ANOTHER CONVERSION, OR RETURN TO FINISH"; T$
7990 IF T$ = "C" THEN 7010
7999 RETURN
8000 CLS
8010 IF ZG = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
8020 IF TG$ = "C" THEN 8800
8030 PRINT " FOR DOMINANT MODE RECTANGULAR GUIDE ONLY"
8040 INPUT " ENTER DIAMETER OF CENTERED HOLE, INCHES"; HDIA
8050 XL = ZG * 2 * PI / 3 * HDIA ^ 3 / ADIM / BDIM / LGIN
8060 ATTN = 20 * LOG(ZG / XL / 2) / 2.303
8070 PRINT " ENTER 1= IN-GUIDE COUPLING"
8080 PRINT " 2= B-FACE COUPLING, 2 GUIDES, BOTH ONE END SHORTED"
8090 PRINT " 3= B-FACE COUPLING, 2 GUIDES, ONE SHORTED, ONE MATCHED"
8100 PRINT " 4= B-FACE COUPLING, 2 GUIDES, ONE SHORTED, ONE MATCHED"
8110 INPUT TEM
8120 ON TEM GOTO 8200, 8300, 8400, 8500, 8060
8200 PRINT " HOLE INDUCTIVE REACTANCE="; FNP(XL); "OHMS"
8210 PRINT " COUPLING ATTENUATION="; FNP(ATTN); "DB"
8220 PRINT " IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
8230 GOTO 8990
8300 ATTN = ATTN + 20 * LOG(4 * (ADIM / LGIN) ^ 2) / 2.3
8310 PRINT " COUPLING ATTENUATION="; FNP(ATTN); "DB"
8320 PRINT " IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
8330 GOTO 8990
8400 ATTN = ATTN + 20 * LOG(8 * (ADIM / LGIN) ^ 2) / 2.3
8410 PRINT " COUPLING ATTENUATION="; FNP(ATTN); "DB"
8420 PRINT " IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
8430 GOTO 8990
8500 PRINT " COUPLING ATTENUATION="; FNP(ATTN); "DB"
8510 PRINT " IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
8530 GOTO 8990
8800 PRINT " FOR DOMINANT MODE CIRCULAR WAVEGUIDE"
8810 INPUT " ENTER DIAMETER OF CENTERED HOLE, INCHES"; HDIA
8820 XL = 4 * RAD / LGIN / (5.71 * RAD ^ 3 / HDIA ^ 4 - 2.344)
8830 ATTN = 10 * LOG((1 / XL) ^ 2 / 4 + 1) / 2.303
8840 PRINT " NORMALIZED HOLE INDUCTIVE REACTANCE="; FNP(XL)
8850 PRINT " COUPLING ATTENUATION="; FNP(ATTN); "DB"
8860 PRINT " IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
8990 INPUT " PRESS RETURN TO CONTINUE"; T$
8999 RETURN
9000 IF TG$ = "C" THEN 9500
9010 IF LGIN = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
9020 IF MMODE <> 1 AND NMODE <> 0 THEN PRINT " DATA NOT AVAILABLE": GOTO 9990
9030 PB = .000663 * ADIM * BDIM * LAMIN / LGIN * (30000 * 2.54) ^ 2
9040 PRINT " IDEAL SEA-LEVEL BREAKDOWN POWER="; INT(PB); "WATTS"
9050 PRINT " AND DROPS BY HALF FOR EACH 10000 FEET ABOVE SEA-LEVEL"
9060 PRINT " SAFETY FACTORS OF 3-10 ARE DESIRABLE"
9070 GOTO 9990
9500 IF MMODE <> 1 AND NMODE <> 1 THEN PRINT " DATA NOT AVAILABLE": GOTO 9990
9510 PB = .00199 * ADIM * RAD * RAD / LGIN * (30000 * 2.54) ^ 2
9520 PRINT " IDEAL SEA-LEVEL BREAKDOWN POWER="; INT(PB); "WATTS"
9530 PRINT " AND DROPS BY HALF FOR EACH 10000 FEET ABOVE SAE-LEVEL"
9540 PRINT " SAFETY FACTORS OF 3-10 ARE DESIRABLE"
9990 INPUT "PRESS RETURN TO CONTINUE"; T$
9999 RETURN
10000 CLS : IF LGIN = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
10010 PRINT " ENTER 1= WAVEGUIDE RESONATOR"
10020 PRINT " 2= RECTANGULAR RESONATOR"
10030 PRINT " 3= CYLINDRICAL RESONATOR"
10040 INPUT TEM
10050 ON TEM GOTO 10200, 10400, 10600, 10010
10200 INPUT "ENTER NUMBER OF HALF=WAVES OF RESONATOR LENGTH, >0"; RLN
10210 IF RLN <= 0 THEN 10200
10220 RLN = INT(RLN)
10230 RLN = RLN * LGIN / 2
10240 PRINT " RESONATOR LENGTH="; FNP(RLN); "INCHES"
10250 PRINT " ="; FNP(2.54 * RLN); "CM"
10260 GOTO 10990
10400 INPUT " ENTER RESONATOR DIMENSIONS, X,Y,Z, INCHES"; RX, RY, RZ
10410 PRINT " RESONANT MODES MAY BE IDENTICAL, TWO IDENTICAL, OR DIFFERENT,"
10420 PRINT " BUT ONLY ONE MAY BE ZERO."
10430 INPUT " ENTER NUMBER OF X,Y,Z HALF-WAVES AT RESONANCE"; LR, MR, NR
10440 CR = 4 / SQR((LR / RX) ^ 2 + (MR / RY) ^ 2 + (NR / RZ) ^ 2)
10450 PRINT " RESONANT WAVELENGTH="; FNP(CR); "INCHES"
10460 PRINT " ="; FNP(2.54 * CR); "CM"
10470 PRINT " RESONANT FREQUENCY="; FNP(29980 / 2.54 / CR); "MHZ"
10480 GOTO 10990
10600 INPUT " ENTER RESONATOR LENGTH, INCHES"; RZ
10610 INPUT " ENTER NUMBER OF HALF-WAVES OF LENGTH AT RESONANCE"; NR
10620 INPUT "ENTER RESONATOR DIAMETER, INCHES"; RD
10630 PRINT " RESONANCES OCCUR AT WAVELENGTHS AND FRQUENCIES OF"
10640 PRINT "MODE", " WAVELENGTH", "FREQUENCY"
10650 PRINT , "INCHES", " CM", " MHZ"
10660 FOR N = 1 TO 25
10670 RLAM = 4 / SQR((NR / RZ) ^ 2 + (4 * UCON(N) / PI / RD) ^ 2)
10680 PRINT "T" + MODE$(N), FNP(RLAM), FNP(2.54 * RLAM), FNP(29980 / 2.54 / RLAM)
10690 IF N = 15 THEN INPUT " PRESS RETURN TO CONTINUE"; T$
10700 NEXT N
10990 INPUT " PRESS RETURN TO CONTINUE"; T$
10999 RETURN
11000 CLS
11010 PRINT " INPUT PARAMETER TO CHANGE"
11020 PRINT " 1- FREQUENCY "
11030 PRINT " 2- GUIDE TYPE"
11040 PRINT " 3- PROPAGATION TYPE"
11050 PRINT " 4- MODES (M,N VALUES)"
11060 PRINT " 5- SELECT SMALLER/LARGER SIZE"
11070 PRINT " 6- GUIDE SIZE NOT IN TABLES"
11080 PRINT " OTHER-CONTINUE"
11090 INPUT TYP: IF TYP < 0 OR TYP > 6 THEN 11999
11100 ON TYP GOSUB 11200, 11300, 11400, 11500, 11600, 11800, 11000
11120 GOTO 11000
11200 INPUT " ENTER NEW FREQUENCY,MHZ"; FTEM
11210 IF FTEM < 320 OR FTEM > 33000! THEN PRINT " BEYOND TABLE RANGE": GOTO 11200
11220 FO = FTEM: LAM = 29980 / FO: LAMIN = LAM / 2.54
11230 GOTO 11990
11300 INPUT " ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
11310 IF TG$ = "R" OR TG$ = "C" THEN 11990
11320 GOTO 11300
11400 INPUT " ENTER PROPAGATION TYPE, E=ELECTRIC, M=MAGNETIC"; MODT$
11410 GOSUB 5000
11420 GOTO 11990
11500 PRINT " CURRENT MODE VALUES M,N ARE"; MMODE, NMODE
11510 INPUT "ENTER NEW VALUES FOR M,N"; MMODE, NMODE
11520 GOTO 11990
11600 PRINT " CURRENT GUIDE TYPE IS ";
11610 IF TG$ = "R" THEN PRINT "RECTANGULAR"
11620 IF TG$ = "C" THEN PRINT "CIRCULAR"
11630 PRINT " CURRENT GUIDE SIZE IS ";
11640 IF TG$ = "R" THEN PRINT RTABL(2, TN); "INCHES WIDTH": MAX = 18
11650 IF TG$ = "C" THEN PRINT CTABL(1, TN); "INCHES DIAMETER": MAX = 18
11660 INPUT "ENTER -1 FOR SMALLER, 1 FOR LARGER, 0=NO CHANGE"; TEM
11670 IF TEM = 0 THEN 11990
11680 IF TEM > 0 THEN TN = TN - 1: IF TN < 1 THEN TN = 1
11690 IF TEM < 0 THEN TN = TN + 1: IF TN > MAX THEN TN = MAX
11700 IF TG$ = "C" THEN 11750
11710 IF TN < 1 OR TN > 18 THEN PRINT "SIZE IS BEYOND TABLES": GOTO 11630
11720 ADIM = RTABL(2, TN) - 2 * RTABL(3, TN): BDIM = RTABL(1, N) - 2 * RTABL(3, N)
11730 PRINT " *** CAUTION- GUIDE SIZE IS CHANGED"
11740 GOTO 11630
11750 IF TN < 1 OR TN > 13 THEN PRINT "SIZE IS BEYOND TABLES": GOTO 11630
11760 RAD = CTABL(1, N) - CTABL(2, N)
11770 PRINT " *** CAUTION- GUIDE SIZE IS CHANGED-USE ROUTINE 5, ETC"
11780 GOTO 11630
11800 IF TG$ = "C" THEN 11840
11810 INPUT " ENTER RECTANGULAR GUIDE INSIDE WIDTH, INCHES"; BDIM
11820 INPUT " HEIGHT, INCHES"; ADIM
11830 GOTO 11990
11840 INPUT " ENTER CIRCULAR GUIDE INSIDE DIAMETER, INCHES"; DIA
11850 RAD = DIA / 2
11860 GOTO 11990
11990 INPUT "PRESS RETURN TO CONTINUE"; T$
11999 RETURN
12000 END
50000 DATA "E11","M01","E21","M11","E01","E31","M21","E41","E12"
50010 DATA "M02","M31","E51","E22","M12","E02","E61","M41","E32"
50020 DATA "M22","E13","E71","M03","M51","E42","E81"
50030 DATA 1.841,2.405,3.054,3.832,3.832,4.201,5.136,5.318,5.332
50040 DATA 5.520,6.380,6.416,6.706,7.016,7.016,7.501,7.588,8.016
50050 DATA 8.417,8.536,8.578,8.654,8.771,9.283,9.647
50100 DATA 11.75,23.25,.125,2300,290
50110 DATA 10.75,21.25,.125,2100,291
50120 DATA 9.25,18.25,.125,1800,201
50130 DATA 7.75,15.25,.125,1500,202
50140 DATA 6,11.75,.125,1150,203
50150 DATA 5.125,10,.125,975,204
50160 DATA 4.1,7.95,.125,770,205
50170 DATA 3.41,6.66,.08,650,69
50180 DATA 2.31,4.46,.08,430,104
50190 DATA 1.86,3.56,.08,340,112
50200 DATA 1.5,3,.081,284,48
50210 DATA 1,2,.064,187,49
50220 DATA .75,1.5,.064,137,50
50230 DATA .625,1.25,.064,112,51
50240 DATA .5,1,.064,90,52
50250 DATA .375,.75,.064,0,0
50260 DATA .25,.5,.04,42,53
50270 DATA .25,.4375,.05,34,0
50400 DATA 12.125,.28
50410 DATA 10.125,.25
50420 DATA 8.125,.2
50430 DATA 6.125,.14
50440 DATA 5.125,.125
50450 DATA 4.125,.11
50460 DATA 3.125,.09
50470 DATA 2.125,.07
50480 DATA 1.625,.06
50490 DATA 1.125,.05
50500 DATA .875,.045
50510 DATA .625,.04
50520 DATA .5,.035
54520 DATA 8.125,.2
60000 PRINT "ERROR"; ERR; "AT LINE"; ERL
60010 IF ERR = 11 THEN PRINT "MODE AND SIZE OF GUIDE INCOMPATABLE"
60020 IF ERL = 2130 THEN PRINT " GUIDE IS ABOVE CUTOFF AT SPECIFIED FREQUENCY"
60030 RESUME 800
64000 STOP