home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mininec
/
mininec1
/
mininec.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
15KB
|
309 lines
1 CLS : PRINT " *************************************"
2 PRINT " * MININEC *"
3 PRINT " *REFERENCE-JULIAN ET AL, NOSC TD 516*"
4 PRINT " * PROGRAM MODIFIED BY *"
5 PRINT " * R.P.HAVILAND, W4MB *"
7 PRINT " *************************************"
10 REM PROGRAM 33-33A
20 PRINT : PRINT "THIS PROGRAM SOLVES WIRE ANTENNAS FOR Z-IN,I-DISTRIBUTION AND PATTERNS"
30 PRINT " FOR UP TO 10 WIRES IN 50 SEGMENTS"
35 PRINT "GROUND IS X-Y PLANE,VERTICAL IS Z AXIS"
40 PRINT " AZMUITH ANGLE IS FROM X, VERTICAL FROM Z"
45 PRINT " DIMENSIONS ARE IN METERS": PRINT
50 PRINT "THE REFERENCE IS AVAIALBLE AS"
55 PRINT " NATIONAL TECHNICAL INFORMATION SERVICE HD-H 121 535"
60 PRINT "SEE ALSO IEEE AP-NEWSLETTER,FEB. 1984"
65 PRINT " THE PROGRAM IS COMPLEX; THE REFERENCES ARE RECOMMENDED, WITH AMPLE"
70 PRINT " PRACTICE ON SIMPLE ANTENNAS."
80 PRINT : PRINT "PRESS A KEY TO CONTINUE"
90 Q$ = INKEY$: IF Q$ = "" GOTO 90
95 PRINT : PRINT "WAIT PROCESSING...."
96 DIM R(50, 50), N(50), X(70), Y(70), Z(70), E(50), L(50), M(50), D(10), F(10), A(10)
97 DIM C(50, 2), H(50), I(50), J(50), K(50), Q(14), W(10), B(50, 50), G(10), S(10), P(50)
100 GOTO 950
110 X3 = T * D(P4): Y3 = T * F(P4): Z3 = F * T * G(P4)
140 D = D0 - 2 * F3 * (X3 * X2 + Y3 * Y2 + Z3 * Z2) + X3 * X3 + Y3 * Y3 + Z3 * Z3
150 D = SQR(D): IF I6 = H0 THEN 330
170 D3 = D * D - A2: B = D3 / (D3 + 4 * A2): V1 = W(1): V2 = W(6)
210 B1 = 1: B2 = -36: FOR L2 = 2 TO 5: B2 = B2 / (L2 - 1)
250 IF B < 10 ^ (B2) THEN 300
260 B1 = B1 * B: V1 = V1 + W(L2) * B1: V2 = V2 + W(L2 + 5) * B1: NEXT L2
300 V = (V1 - V2 * LOG(B)) * SQR(1 - B): D3 = SQR(D3) / 8 / A(P4)
320 T3 = T3 + (LOG(D3) + V) / P / A(P4) - 1 / D
330 B1 = D * W
340 T3 = T3 + COS(B1) / D: T4 = T4 - SIN(B1) / D: RETURN
370 IF P1 - INT(P1) = H0 THEN 500
380 I4 = INT(P1 + 1): I5 = INT(P1)
400 X1 = (X(I4) + X(I5)) / 2: Y1 = (Y(I4) + Y(I5)) / 2: Z1 = (Z(I4) + Z(I5)) / 2
430 X2 = X1 - X(P2): Y2 = Y1 - Y(P2): Z2 = Z1 - Z(P2) * F
460 X3 = X1 - X(P3): Y3 = Y1 - Y(P3): Z3 = Z1 - Z(P3) * F: GOTO 590
500 I4 = INT(P2 + 1): IF P2 - INT(P2) = H0 THEN I4 = P2
520 I5 = INT(P2): X2 = X(P1) - (X(I4) + X(I5)) / 2
540 Y2 = Y(P1) - (Y(I4) + Y(I5)) / 2: Z2 = Z(P1) - F * (Z(I4) + Z(I5)) / 2
560 X3 = X(P1) - X(P3): Y3 = Y(P1) - Y(P3): Z3 = Z(P1) - F * Z(P3)
590 D0 = X2 * X2 + Y2 * Y2 + Z2 * Z2: D3 = X3 * X3 + Y3 * Y3 + Z3 * Z3
610 S4 = (P3 - P2) * S(P4): F2 = 1: N3 = 7: T1 = H0: T2 = T1
660 T = S(P4) + .001 * A(P4): A2 = A(P4) * A(P4): IF SQR(D3) + SQR(D0) > T THEN 740
690 I6 = 16 * A(P4) / S(P4): IF P1 - INT(P1) > 0 THEN F2 = 2
710 I6 = F2 * (1 + LOG(I6)) * S(P4) / P / A(P4) / 2
720 IF P1 - INT(P1) > 0 THEN S4 = S(P4) / 2
730 GOTO 780
740 T = SQR(D0) / ABS(S4): IF T > 3 THEN N3 = 3
760 IF T > 5 THEN N3 = 1
770 I6 = H0
780 I5 = N3 * 2: D0 = D0 + A2: L = N3
810 T3 = H0: T4 = T3: T = S4 * (Q(L) + .5): GOSUB 110
850 T = S4 * (.5 - Q(L)): GOSUB 110
870 L = L + 1: T1 = T1 + Q(L) * T3: T2 = T2 + Q(L) * T4: L = L + 1: IF L < I5 THEN 810
920 T1 = F2 * T1 * S4 + I6: T2 = F2 * T2 * S4
940 RETURN
950 P = 4 * ATN(1): P0 = P / 180
990 READ Q(1), Q(2), Q(3), Q(4), Q(5), Q(6), Q(7), Q(8), Q(9), Q(10), Q(11), Q(12)
1000 READ Q(13), Q(14), G0, W(1), W(2), W(3), W(4), W(5), W(6), W(7), W(8), W(9), W(10)
1010 DATA .288675135,.5,.430568156,.173927423,.1699990522,.326072577
1020 DATA .481044928,.050614268,.398333239,.111190517
1030 DATA .262766205,.156853323,.091717321,.181341892,29.979221
1040 DATA 1.38629436,.09666344,.03590092,.03742563713,.01451196
1050 DATA .5,.12498594,.06880249,.0332836,.0041787
1051 PRINT : INPUT "ENTER ANT. NAME,DATE"; NA$, DA$
1060 PRINT "***************************"
1070 PRINT " MININEC RPH NOV 1984"
1080 PRINT "**************************ó"
1090 PRINT "ENTER ANTENNA GEOMETRY"
1100 INPUT "NO. OF WIRES"; W
1102 PRINT : PRINT "ENTER CONNECTIONS FOR WIRE #"; W: PRINT " 0=NC": PRINT " THIS #=GND"
1104 PRINT "- A PREVIOUS #= ENDS 1-1 OR 2-2"
1106 PRINT "+ A PREVIOUS #= ENDS 1-2 OR 2-1": PRINT
1110 N = 0
1120 FOR I = 1 TO W
1130 PRINT "WIRE NO. "; I: INPUT "NO. SEGMENTS"; S1
1140 INPUT "END ONE COORDS,X,Y,Z, METERS"; X1, Y1, Z1
1150 INPUT "END 1 TO #,OR 0=NC,OR -WIRE #=GND"; I1
1160 INPUT "END TWO COORDS,X,Y,Z, METERS"; X2, Y2, Z2
1170 INPUT "END 2 TO #,OR 0=NC,OR -WIRE #=GND"; I2
1180 INPUT "WIRE RADIUS, METERS"; A(I): PRINT
1280 X3 = X2 - X1: Y3 = Y2 - Y1: Z3 = Z2 - Z1
1310 D = X3 * X3 + Y3 * Y3 + Z3 * Z3: D = SQR(D)
1330 D(I) = X3 / D: F(I) = Y3 / D: G(I) = Z3 / D: S(I) = D / S1
1370 N1 = N + 1: N = N1 + S1
1390 IF I1 = 0 THEN N = N - 1
1400 IF I2 = 0 THEN N = N - 1
1410 FOR J = N1 TO N: C(J, 1) = I: C(J, 2) = I: NEXT J
1450 C(N1, 1) = I1: C(N, 2) = I2: I1 = N1 + 2 * (I - 1)
1480 I3 = I1: X(I1) = X1: Y(I1) = Y1: Z(I1) = Z1
1520 IF C(N1, 1) = 0 THEN 1600
1530 I2 = ABS(C(N1, 1)): F3 = SGN(C(N1, 1)) * S(I2)
1550 IF C(N1, 1) = -C(N1, 2) THEN F3 = S(I2)
1560 X(I1) = X(I1) - F3 * D(I2)
1570 Y(I1) = Y(I1) - F3 * F(I2)
1580 Z(I1) = Z(I1) - F3 * G(I2)
1590 I3 = I3 + 1
1600 I5 = I1 + 1: I6 = N + 2 * I
1620 FOR I4 = I5 TO I6: J = I4 - I3
1640 X(I4) = X1 + J * X3 / S1
1650 Y(I4) = Y1 + J * Y3 / S1
1660 Z(I4) = Z1 + J * Z3 / S1
1670 NEXT I4: IF C(N, 2) = 0 THEN 1760
1690 I2 = ABS(C(N, 2)): F3 = SGN(C(N, 2)) * S(I2)
1710 I3 = I6 - 1: IF I2 = C(N, 1) THEN F3 = S(I2)
1730 X(I6) = X(I3) + F3 * D(I2)
1740 Y(I6) = Y(I3) + F3 * F(I2)
1750 Z(I6) = Z(I3) + F3 * G(I2)
1760 NEXT I
1761 INPUT "FREQ.,MHZ"; F
1763 PRINT : PRINT , "******** ANTENNA DATA ********": PRINT , "NAME "; NA$
1764 PRINT , "DATE "; DA$: PRINT , "NO. ELEMENTS"; W
1765 PRINT , "RADIUS 1-"; A(1)
FOR I = 2 TO W
IF A(I) <> A(1) THEN PRINT "/"; I; "-"; A(I);
NEXT I
PRINT
1766 PRINT , "FREQUENCY,MHZ"; F: PRINT , "NO. SEGMENTS"; N: PRINT
1770 PRINT : PRINT "ANTENNA GEOMETRY": PRINT
1780 PRINT "PULSE CONNECT COORDINATES-METERS"
1790 PRINT " # E1 E2 X Y Z"
1810 I1 = 0: FOR I = 1 TO N: J = C(I, 2): IF C(I, 2) < C(I, 1) THEN J = C(I, 1)
1850 I1 = I1 + 1: IF C(I, 2) <= 0 THEN 1880
1870 IF C(I, 1) < C(I, 2) THEN I1 = I1 + 1
1880 PRINT I; C(I, 1); C(I, 2), LEFT$(STR$(X(I1)), 7), LEFT$(STR$(Y(I1)), 7), LEFT$(STR$(Z(I1)), 7)
1890 IF C(I, 2) < C(I, 1) THEN I1 = I1 + 1
1900 IF C(I, 1) = 0 THEN C(I, 1) = C(I, 2)
1910 IF C(I, 2) = 0 THEN C(I, 2) = C(I, 1)
1920 NEXT I
1930 INPUT "CHANGE GEOMETRY Y/N"; A$: IF A$ = "Y" THEN 1090
1960 H0 = 0: PRINT "PROGRAM CONTROL": PRINT
2000 W = 299.8 / F: M = 4.77783352# * W
2020 PRINT "WAVELENGTH "; W; " METERS": W = 2 * P / W: W2 = W * W / 2
2050 INPUT "LOCATION,1=FREE SPACE,2= NEAR EARTH"; G: IF G < 1 OR G > 2 THEN 2050
2090 INPUT "NO. OF EXCITATIONS"; E3: FOR I = 1 TO E3
2120 INPUT "PULSE NO.,VOLTAGE MAG., PHASE(DEG)"; E(I), I2, I3
2140 L(I) = I2 * COS(I3 * P0): M(I) = I2 * SIN(I3 * P0): NEXT I
2170 INPUT "CURRENT PRINTOUT, Y/N"; B$
2190 IF H0 = 1 THEN 4110
2200 INPUT "PATTERN VALUES Y/N"; C$: IF C$ = "N" THEN 2300
2230 INPUT "ZENITH ANGLE:INITIAL,INCREMENT,NO."; Q2, G2, G3
2240 INPUT "AZIMUTH ANGLE:INITIAL,INCREMENT,NO."; Q1, M2, M3
2270 IF H0 = 1 THEN 2365
2300 INPUT "NO. OF LOADS"; W4: IF W4 = H0 THEN GOTO 2365
2310 FOR I = 1 TO W4: INPUT "PULSE NO., RESISTANCE, REACTANCE"; N(I), I2, I3
2340 H(I) = I3 / M: I(I) = -I2 / M: NEXT I
2365 PRINT "WAIT-PROCESSING"
2370 FOR I = 1 TO N: P(I) = H0: FOR J = 1 TO N: R(I, J) = H0: B(I, J) = H0: NEXT J: NEXT I: I = H0
2450 I = I + 1: J = H0
2470 J = J + 1: I1 = ABS(C(I, 1)): I2 = ABS(C(I, 2)): J4 = I2
2510 IF I1 > I2 THEN J4 = I1
2520 F4 = SGN(C(I, 1)) * S(I1): F5 = SGN(C(I, 2)) * S(I2)
2540 IF C(I, 1) <> -C(I, 2) THEN 2570
2550 F4 = S(I1): F5 = S(I2)
2570 T5 = F5 * D(I2) + F4 * D(I1): T6 = F5 * F(I2) + F4 * F(I1): T7 = F5 * G(I2) + F4 * G(I1)
2600 J1 = ABS(C(J, 1)): J2 = ABS(C(J, 2))
2620 J3 = J2: IF J1 > J2 THEN J3 = J1
2640 F4 = SGN(C(J, 1)): F5 = SGN(C(J, 2)): IF C(J, 1) <> -C(J, 2) THEN 2690
2670 F4 = 1: F5 = F4
2690 K = H0
2700 K = K + 1: IF C(J, 1) <> -C(J, 2) THEN 2730
2720 IF K > 1 THEN 3390
2730 IF K > 1 THEN 2750
2740 IF R(I, J) <> 0 THEN 3260
2750 F = 3 - 2 * K: P1 = 2 * J4 + I - 1: P2 = 2 * J3 + J - 1: P3 = P2 + .5: P4 = J2: F3 = F5: GOSUB 370
2820 U1 = T1 * F5: U2 = T2 * F5: P3 = P2: P2 = P2 - .5: P4 = J1: F3 = F4
2880 IF K > 1 THEN 2910
2890 IF J1 <> J2 THEN 2910
2900 IF I = J THEN 2920
2910 GOSUB 370
2920 X3 = U1 * D(J2) + F4 * T1 * D(J1)
2930 Y3 = U1 * F(J2) + F4 * T1 * F(J1)
2940 Z3 = (U1 * G(J2) + F4 * T1 * G(J1)) * F
2950 D1 = (X3 * T5 + Y3 * T6 + Z3 * T7) * W2
2960 X3 = U2 * D(J2) + F4 * T2 * D(J1)
2970 Y3 = U2 * F(J2) + F4 * T2 * F(J1)
2980 Z3 = (U2 * G(J2) + F4 * T2 * G(J1)) * F
2990 D2 = (X3 * T5 + Y3 * T6 + Z3 * T7) * W2
3000 P1 = P1 + .5: P2 = P3: P3 = P3 + 1: P4 = J2: F3 = F5: GOSUB 370
3060 U1 = -T1: U2 = -T2: P1 = P1 - 1: GOSUB 370
3100 U1 = (U1 + T1) / S(J2): U2 = (U2 + T2) / S(J2)
3120 P1 = P1 + 1: P3 = P2: P2 = P2 - 1: P4 = J1: F3 = F4: GOSUB 370
3180 U3 = T1: U4 = T2: P1 = P1 - 1: GOSUB 370
3220 U1 = U1 + (U3 - T1) / S(J1): U2 = U2 + (U4 - T2) / S(J1)
3240 R(I, J) = R(I, J) + F * (D1 + U1): B(I, J) = B(I, J) + F * (D2 + U2)
3260 IF K > 1 THEN 3390
3270 IF J < I THEN 3390
3280 IF J1 <> J2 THEN 3390
3290 IF I1 * I2 <> J1 * J2 THEN 3390
3300 R(J, I) = R(I, J): B(J, I) = B(I, J): P1 = J + 1
3330 IF P1 > N THEN 3390
3340 IF ABS(C(P1, 2)) <> ABS(C(J, 2)) THEN 3390
3350 P2 = I + 1: IF P2 > N THEN 3390
3370 R(P2, P1) = R(I, J): B(P2, P1) = B(I, J)
3390 IF K < G THEN 2700
3400 IF J < N THEN 2470
3410 IF I < N THEN 2450
3420 H0 = 1: IF W4 = P(1) THEN 3490
3440 FOR I = H0 TO W4: J = N(I): R(J, J) = R(J, J) + H(I): B(J, J) = B(J, J) + I(I): NEXT I
3490 FOR I = H0 TO N: S1 = 0: FOR J = H0 TO N
3520 IF P(J) = H0 THEN 3610
3530 FOR K = H0 TO N: IF P(K) = H0 THEN 3600
3550 S2 = R(J, K) * R(J, K) + B(J, K) * B(J, K)
3560 IF (S1 - S2) > 0 THEN 3600
3570 I1 = J: I2 = K: S1 = R(J, K) * R(J, K) + B(J, K) * B(J, K)
3600 NEXT K
3610 NEXT J
3620 P(I2) = P(I2) + 1: IF I1 = I2 THEN 3720
3640 FOR L = H0 TO N: S1 = R(I1, L): S2 = B(I1, L)
3670 R(I1, L) = R(I2, L): B(I1, L) = B(I2, L): R(I2, L) = S1: B(I2, L) = S2: NEXT L
3720 H(I) = I1: I(I) = I2: S1 = R(I2, I2): S2 = B(I2, I2)
3760 T = S1 * S1 + S2 * S2: R(I2, I2) = H0: B(I2, I2) = 0
3790 FOR L = H0 TO N: H1 = (R(I2, L) * S1 + B(I2, L) * S2) / T
3810 B(I2, L) = (B(I2, L) * S1 - R(I2, L) * S2) / T
3820 R(I2, L) = H1: NEXT L
3840 FOR L = H0 TO N: IF I2 = L THEN 3950
3860 S1 = R(L, I2): S2 = B(L, I2): R(L, I2) = 0: B(L, I2) = R(L, I2)
3900 FOR J = H0 TO N: H1 = R(L, J) - (R(I2, J) * S1 - B(I2, J) * S2)
3920 B(L, J) = B(L, J) - (R(I2, J) * S2 + B(I2, J) * S1)
3930 R(L, J) = H1: NEXT J
3950 NEXT L: NEXT I
3970 FOR I = H0 TO N: L = N + 1 - I: IF H(L) = I(L) THEN 4100
4000 I1 = H(L): I2 = I(L): FOR K = H0 TO N: S1 = R(K, I1): S2 = B(K, I1)
4050 R(K, I1) = R(K, I2): B(K, I1) = B(K, I2): R(K, I2) = S1: B(K, I2) = S2: NEXT K
4100 NEXT I
4110 FOR I = H0 TO N: J(I) = 0: K(I) = J(I): NEXT I
4150 FOR I = H0 TO E3: I1 = H0: IF C(E(I), 1) = -C(E(I), 2) THEN I1 = 2
4180 J(E(I)) = I1 * M(I) / M: K(E(I)) = -I1 * L(I) / M: NEXT I
4210 FOR I = H0 TO N: H(I) = 0: I(I) = H(I): FOR J = H0 TO N
4250 H(I) = H(I) + R(I, J) * J(J) - B(I, J) * K(J)
4260 I(I) = I(I) + R(I, J) * K(J) + B(I, J) * J(J)
4270 NEXT J: NEXT I
4280 IF P$ = "Y" THEN OPEN "LPT1" FOR OUTPUT AS #4
4290 PRINT : PRINT "***** SOURCE DATA *****": O1 = 0
4320 FOR I = H0 TO E3: J = E(I): I1 = H0: IF C(E(I), 1) = -C(E(I), 2) THEN I1 = 2
4330 H1 = -K(J) * M / I1: H2 = J(J) * M / I1
4360 T = H(J) * H(J) + I(J) * I(J): T1 = (H1 * H(J) + H2 * I(J)) / T
4380 T2 = (H2 * H(J) - H1 * I(J)) / T: O1 = O1 + (H1 * H(J) + H2 * I(J)) / 2
4400 PRINT "PULSE "; J; "VOLTAGE=("; L(I); ","; M(I); "J)"
4410 PRINT , "CURRENT="; H(J); ","; I(J); "J"
4420 PRINT , "IMPEDANCE=("; T1; ","; T2; "J)"
4430 NEXT I
4440 PRINT "POWER="; O1; "WATTS": IF B$ = "N" THEN 4540
4460 PRINT "***** CURRRENT DATA *****"
4470 PRINT "PULSE REAL IMAG. MAG. PHASE"
4480 PRINT " NO. AMP. AMP. AMP. DEG."
4490 FOR I = H0 TO N: S1 = SQR(H(I) * H(I) + I(I) * I(I))
4510 S2 = ATN(I(I) / H(I)) / P0: M9 = 10000: IF S2 <= 0 THEN 4518
4514 IF H(I) + I(I) < 0 THEN S2 = S2 - 180
4516 GOTO 4520
4518 IF H(I) < 0 THEN S2 = S2 + 180
4520 PRINT I; INT(H(I) * M9) / M9, INT(I(I) * M9) / M9, INT(S1 * M9) / M9, INT(S2 * M9) / M9: NEXT I
4540 PRINT : IF C$ = "N" THEN 5505
4560 K9 = .016678 / O1: PRINT "***** PATTERN DATA *****"
4570 PRINT "ANGLE, DEGREES ** PATTERN VALUES,DB"
4590 PRINT "ZENITH", "AZIMUTH", "HOR.", "VERT."
4600 M1 = Q1: FOR I1 = H0 TO M3: G1 = Q2: FOR I2 = H0 TO G3: U3 = M1 * P0: U4 = G1 * P0
4660 V1 = -SIN(U3): V2 = COS(U3): R3 = COS(U4)
4690 T1 = R3 * V2: T2 = -R3 * V1: T3 = -SIN(U4)
4720 R1 = -T3 * V2: R2 = T3 * V1: FOR K = H0 TO G: IF K = H0 THEN 4830
4760 R3 = -R3: X3 = X1: Y3 = Y1: Z3 = Z1
4800 X4 = X2: Y4 = Y2: Z4 = Z2
4830 X1 = 0: Y1 = X1: Z1 = X1
4860 X2 = X1: Y2 = X1: Z2 = X1: FOR I = H0 TO N: IF K = H0 THEN 4920
4910 IF C(I, 1) = -C(I, 2) THEN 5230
4920 L = C(I, 2): IF L < C(I, 1) THEN L = C(I, 1)
4940 J = 2 * L - 1 + I: I3 = 3: F3 = H0: F4 = F3
4980 IF ABS(C(I, H0)) = ABS(C(I, 2)) THEN 5030
4990 I3 = 2: F4 = I3
5010 F3 = SGN(C(I, I3)): L = ABS(C(I, I3))
5030 O = -(R1 * D(L) + R2 * F(L) + R3 * G(L)) * F3
5040 S1 = W * S(L) / 2: IF ABS(O) < .0000001 THEN 5070
5060 GOTO 5090
5070 O = (2 - O * O * S1 * S1 / 3) * S1: GOTO 5100
5090 O = 2 * SIN(O * S1) / O
5100 S2 = W * (X(J) * R1 + Y(J) * R2 + Z(J) * R3)
5110 S1 = COS(S2): S2 = SIN(S2)
5130 B1 = (S1 * H(I) - S2 * I(I)) * O / F4: B2 = (S1 * I(I) + S2 * H(I)) * O / F4
5150 X1 = X1 + B1 * D(L) * F3: X2 = X2 + B2 * D(L) * F3
5170 Y1 = Y1 + B1 * F(L) * F3: Y2 = Y2 + B2 * F(L) * F3
5190 Z1 = Z1 + B1 * G(L) * F3: Z2 = Z2 + B2 * G(L) * F3
5210 I3 = I3 - H0: IF I3 = H0 THEN 5010
5230 NEXT I: IF K = H0 THEN 5310
5250 X1 = X3 - X1: X2 = X4 - X2
5270 Y1 = Y3 - Y1: Y2 = Y4 - Y2
5290 Z1 = Z3 + Z1: Z2 = Z4 + Z2
5310 NEXT K
5320 H2 = (X1 * T1 + Y1 * T2 + Z1 * T3) * G0
5330 H1 = (X2 * T1 + Y2 * T2 + Z2 * T3) * G0
5340 X4 = (X1 * V1 + Y1 * V2) * G0
5350 X3 = (X2 * V1 + Y2 * V2) * G0
5360 P1 = (X3 * X3 + X4 * X4) * K9: IF P1 > 1E-30 THEN 5400
5380 P1 = -999: GOTO 5410
5400 P1 = 4.343 * LOG(P1)
5410 P2 = K9 * (H1 * H1 + H2 * H2)
5420 IF P2 > 1E-30 THEN 5450
5430 P2 = -999: GOTO 5460
5450 P2 = 4.343 * LOG(P2)
5460 PRINT INT(G1 * M9) / M9, INT(M1 * M9) / M9, INT(P1 * M9) / M9, INT(P2 * M9) / M9
5470 G1 = G1 + G2: NEXT I2: M1 = M1 + M2: NEXT I1: PRINT
5500 PRINT : PRINT "PRESS R TO RERUN, ANY OTHER KEY FOR TO END"
5504 Q$ = INKEY$: IF Q$ = "" THEN 5504
5505 IF Q$ = "R" OR Q$ = "r" THEN RUN
5510 END