home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1979-12-31 | 13.8 KB | 584 lines |
- 1 PRINT, "k2uyh ----- modified for ibm pc -----wa2tif":PRINT:
- 2 PRINT,"MODIFIED FOR FREQUENCY DEPENDENT ZS AND ZL"
- 3 PRINT
- 4 PRINT,"DO YOU WISH AN EXPLANATION OF THE PROGRAM. TYPE Y OR N." ;
- 7 INPUT L$
- 10 LET J6=0
- 13 LET J7=0
- 16 IF L$="N" GOTO 115
- 19 PRINT
- 22 PRINT"THIS PROGRAM EVALUATES A MICROWAVE NETWORK OR"
- 25 PRINT"TRANSMISSION LINE CONSISTING OF A SINGLE TWO-PORT"
- 28 PRINT"ELEMENT OR UP TO 15 TWO-PORT ELEMENTS INCLUDING A"
- 31 PRINT"POSSIBLE FEEDBACK PATH. LISTED BELOW ARE THE ELEMENT"
- 34 PRINT"TYPE,DESCRIPTION OF THE ELEMENT, AND THE DATA"
- 37 PRINT"REQUIRED FOR INPUT FOR EACH ELEMENT:"
- 40 PRINT" 1-TRANSMISSION LINE- IMPEDANCE(OHMS)-LENGTH(DEGREES)"
- 43 PRINT" 2-SHORTED SHUNT STUB- IMPEDANCE(OHMS)-LENGTH(DEGREES)"
- 46 PRINT" 3-OPEN SHUNT STUB- IMPEDANCE(OHMS)-LENGTH(DEGREES)"
- 49 PRINT" 4-SHUNT L-SERIES-C- NANOHENRIES-INVERSE PICOFARADS"
- 52 PRINT" 5-SERIES L-SHUNT-C- INVERSE PICOFARADS-NANOHENRIES"
- 55 PRINT" 6-SERIES R-SHUNT G- OHMS-MHOS"
- 58 PRINT" 7-TRANSISTOR- ENTER 2 ZEROS. S-PARAM. WILL BE ASKED"
- 61 PRINT" FOR LATER. (CAN USE ONLY UP TO 5)"
- 64 PRINT" 8-WAVEGUIDE- ENTER THE IMPEDANCE OF THE MEDIUM(377"
- 67 PRINT" FOR AIR) AND THE LENGTH IN DEGREES OF"
- 70 PRINT" WAVELENGTH. THE CUT-OFF FREQ. OF THE"
- 73 PRINT" WAVEGUIDE AND MODE WILL BE ASKED FOR."
- 76 PRINT"THE FOLLOWING DATA OF THE NETWORK WILL BE ASKED FOR:"
- 78 INPUT " PRESS <CR> TO CONTINUE"; A$
- 79 PRINT" ZS-SOURCE IMPEDANCE"
- 82 PRINT" ZL-LOAD IMPEDANCE"
- 85 PRINT" CF-CENTER FREQ. AT WHICH ALL LINE LENGTHS ARE DEFINED"
- 88 PRINT" ALPHA-ATTEN. IN DB/WAVELENGTH AT CF"
- 91 PRINT" NEL-TOTAL NUMBER OF ELEMENTS IN THE NETWORK"
- 92 PRINT" INCLUDING FEEDBACK"
- 94 PRINT" NFREQ-NUMBER OF FREQUENCIES THAT ARE TO BE USED(UP TO 30)"
- 95 PRINT" FINTL-INITIAL FREQUENCY TO BE USED"
- 96 PRINT" EFINL-FINAL FREQUENCY TO BE USED"
- 97 PRINT" FINCR-FREQUENCY INCREMENT"
- 98 PRINT" *NFE-NUMBER OF ELEMENTS IN THE FEEDBACK PATH"
- 100 PRINT" *NFB-ELEMENT NUMBER WHERE FEEDBACK PATH STOPS"
- 103 PRINT" *NFS-ELEMENT NUMBER WHERE FEEDBACK PATH STOPS"
- 106 PRINT" *IF THERE IS NO FEEDBACK PATH, NFE=NFB=NFS=0"
- 107 PRINT" FCS-CUTOFF FREQUENCY OF SOURCE"
- 108 PRINT" FCL-CUTOFF FREQUENCY OF LOAD"
- 109 PRINT"THE OUTPUT CONSISTS OF THE IMPEDANCE IN AND OUT AND THE"
- 112 PRINT"VSWR IN AND OUT OF THE NETWORK AT EACH FREQ."
- 115 PRINT
- 118 PRINT"ENTER ALL DATA IN FREE FORMAT(COMMA BETWEEN EACH"
- 121 PRINT"NUMBER) AND MAKE SURE THAT IT IS IN THE CORRECT ORDER."
- 124 DIM L$(1),F(30),P(15,4),E(30),K(15),S(150,8),I(15)
- 127 DIM A(30),B(30),C(30),D(30),G(30),H(30)
- 130 DIM O(150,5),Q(150,5),U(150,5),V(150,5),W(150,5),X(150,5)
- 133 DIM Y(150,5),Z(150,5)
- 136 DEF FNA(R)=(EXP(R)-(1/EXP(R)))/(EXP(R)+(1/EXP(R)))
- 139 DEF FNB(R,T)=COS(T)*(EXP(R)-(1/EXP(R)))/2
- 142 DEF FNC(R,T)=SIN(T)*(EXP(R)+(1/EXP(R)))/2
- 145 DEF FND(R,T)=COS(T)*(EXP(R)+(1/EXP(R)))/2
- 148 DEF FNE(R,T)=SIN(T)*(EXP(R)-(1/EXP(R)))/2
- 151 PRINT
- 154 PRINT"ENTER--ZS,ZL,CF,ALPHA,NEL,NFE,NFB,NFS"
- 157 INPUT M1,M2,F1,B9,N2,V1,V2,V3
- 158 PRINT"ENTER--FCS,FCL"
- 159 INPUT F4,F5
- 160 LET W1=6.28319*F1
- 163 IF J6=2 GOTO 199
- 166 IF J6=1 GOTO 493
- 169 LET D1=0.0174533
- 172 LET D2=0.0183234
- 174 PRINT
- 175 PRINT"ENTER FINTL,EFINL,FINCR"
- 176 INPUT F6,F7,F8
- 177 REM NFREQ IS CALCULATED
- 178 N1=((F7-F6)/F8)+1
- 179 N1=INT(N1+0.5)
- 180 F(1)=F6
- 181 FOR I=2 TO N1
- 182 F(I)=F(I-1)+F8
- 183 NEXT I
- 184 FOR I9=1 TO N1
- 185 IF F(I9)>F4 AND F(I9)>F5 THEN 188
- 186 PRINT"ALL INPUT FREQUENCIES MUST EXCEED CUTOFF"
- 187 GOTO 175
- 188 LET E(I9)=6.28319*F(I9)
- 190 NEXT I9
- 191 IF J7=1 THEN GOTO 571
- 193 IF J6=3 GOTO 493
- 196 IF J6=1 GOTO 511
- 199 PRINT
- 202 IF J7=1 GOTO 214
- 205 PRINT"ENTER THE ELEMENTS GOING FROM LEFT TO RIGHT ALONG THE"
- 208 PRINT"NETWORK. GIVE ELEMENT TYPE AND THE 2 PIECES OF DATA."
- 211 GOTO 217
- 214 PRINT"ENTER ALL NEW ELEMENTS."
- 217 LET N4=0
- 220 LET M9=0
- 223 FOR I9=1 TO N2
- 224 GOSUB 227
- 225 NEXT I9
- 226 GOTO 355
- 227 INPUT K(I9),P(I9,1),P(I9,2)
- 229 IF K(I9)<>8 GOTO 244
- 232 PRINT"ENTER THE CUT-OFF FREQ.(IN GHZ) FOR THE WAVEGUIDE,"
- 235 PRINT"FOLLOWED BY +1 FOR TM AND -1 FOR TE MODE."
- 238 INPUT P(I9,3),P(I9,4)
- 241 GOTO 352
- 244 IF K(I9)<>7 GOTO 352
- 247 LET N4=N4+1
- 250 LET I(I9)=N4
- 253 PRINT"ENTER THE S-PARAM. FOR THIS TRANSISTOR STARTING WITH"
- 256 PRINT"S11 TO S22. GIVE MAGNITUDE AND ANGLE FOR ALL FOUR"
- 259 PRINT"POINTS. START AT LOWEST FREQ."
- 262 LET K9=M9+1
- 265 LET M9=N4*N1
- 268 FOR J=K9 TO M9
- 271 INPUT S(J,1),S(J,2),S(J,3),S(J,4),S(J,5),S(J,6),S(J,7),S(J,8)
- 274 LET S1=S(J,1)*COS(S(J,2)*D1)
- 277 LET S2=S(J,1)*SIN(S(J,2)*D1)
- 280 LET S3=S(J,3)*COS(S(J,4)*D1)
- 283 LET S4=S(J,3)*SIN(S(J,4)*D1)
- 286 LET S5=S(J,5)*COS(S(J,6)*D1)
- 289 LET S6=S(J,5)*SIN(S(J,6)*D1)
- 292 LET S7=S(J,7)*COS(S(J,8)*D1)
- 295 LET S8=S(J,7)*SIN(S(J,8)*D1)
- 298 LET X1=(S3*S5)+(-S4*S6)+((1+S1)*(1-S7))+(S2*S8)
- 301 LET X2=(S4*S5)+(S3*S6)+S2*(1-S7)-S8*(1+S1)
- 304 LET O(J,N4)=((2*S5*X1)+(2*S6X2))/((2*S5)**2+(2*S6)**2)
- 307 LET Q(J,N4)=((-2*S6*X1)+(2*S5*X2))/((2*S5)**2+(2*S6)**2)
- 310 LET X3=((-S3*S5)+(S4*S6)+((1+S1)*(1+S7))+(-S2*S8))*25
- 313 LET X4=((-S3*S6)+(-S4*S5)+S2*(1+S7)+S8*(1+S1))*25
- 316 LET U(J,N4)=((S5*X3)+(S6*X4))/(S5*S5+S6*S6)
- 319 LET V(J,N4)=((-S6*X3)+(S5*X4))/(S5*S5+S6*S6)
- 322 LET X5=(-S3*S5)+(S4*S6)+((1-S1)*(1-S7))+(-S2*S8)
- 325 LET X6=(-S3*S6)+(-S4*S5)-S2*(1-S7)-S8*(1-S1)
- 328 LET W(J,N4)=((100*S5*X5)+(100*S6*X6))/((100*S5)**2+(100*S6)**2)
- 331 LET X(J,N4)=((-100*S6*X5)+(100*S6*X6))/((100*S5)**2+(100*S6)**2)
- 334 LET X7=(S3*S5)+(-S4*S6)+((1-S1)*(1+S7))+(S2*S8)
- 337 LET X8=(S4*S5)+(S3*S6)-S2*(1+S7)+S8*(1-S1)
- 340 LET Y(J,N4)=((2*S5*X7)+(2*S6*X8))/((2*S5)**2+(2*S6)**2)
- 343 LET Z(J,N4)=((-2*S6*X7)+(2*S5*X8))/((2*S5)**2+(2*S6)**2)
- 346 NEXT J
- 349 PRINT"ALL S-PARAM. ARE IN. FINISH THE NETWORK IF THERE IS MORE."
- 352 RETURN
- 355 LET M9=0
- 358 LET N5=0
- 361 PRINT
- 364 PRINT
- 367 PRINT"ELEMENT NO.","ELEMENT TYPE AND DESCRIPTION"
- 370 LET N6=N2-V1
- 373 FOR L9=1 TO N2
- 376 LET N7=K(L9)
- 379 LET N8=L9-N6
- 382 IF N8<=0 GOTO 397
- 385 IF N5<>0 GOTO 397
- 388 PRINT"THE FOLLOWING ELEMENTS COMPRISE THE FEEDBACK PATH"
- 391 PRINT"STARTING AT ELEMENT NO. ";V2;" TO ELEMENT NO. ";V3
- 394 LET N5=1
- 397 ON N7 GOTO 400,409,418,427,436,445,454,481
- 400 PRINT L9,"1 -TRANSMISSION LINE-";TAB(41);P(L9,1);" OHMS" ;
- 403 PRINT TAB(57);P(L9,2);" DEG."
- 406 GOTO 490
- 409 PRINT L9,"2 -SHORTED SHUNT STUB-";TAB(41);P(L9,1);" OHMS" ;
- 412 PRINT TAB(57);P(L9,2);" DEG."
- 415 GOTO 490
- 418 PRINT L9,"3 -OPEN SHUNT STUB-";TAB(41);P(L9,1);" OHMS" ;
- 421 PRINT TAB(57);P(L9,2);" DEG."
- 424 GOTO 490
- 427 PRINT L9,"4 -SHUNT L-SERIES-C-";TAB(41);P(L9,1);" NH" ;
- 430 PRINT TAB(57);P(L9,2);' 1/PF'
- 433 GOTO 490
- 436 PRINT L9,"5 -SERIES L-SHUNT-C-";TAB(41);P(L9,1);" 1/NH" ;
- 439 PRINT TAB(57);P(L9,2);" PF"
- 442 GOTO 490
- 445 PRINT L9,"6 -SERIES R-SHUNT G-";TAB(41);P(L9,1);" OHMS";
- 448 PRINT TAB(57);P(L9,2);" MHOS"
- 451 GOTO 490
- 454 PRINT L9,"7 -TRANSISTOR-"
- 457 LET K9=M9+1
- 460 LET M9=I(L9)*N1
- 463 FOR J=K9 TO M9
- 466 PRINT ,S(J,1),S(J,3),S(J,5),S(J,7)
- 469 PRINT ,S(J,2),S(J,4),S(J,6),S(J,8)
- 472 PRINT ,"+--------------+--------------+--------------+----------"
- 475 NEXT J
- 478 GOTO 490
- 481 PRINT L9,"8 -WAVEGUIDE-";TAB(41);P(L9,1);" OHMS" ;
- 484 PRINT TAB(57);P(L9,2);" DEG."
- 487 PRINT TAB(41);P(L9,3);" GHZ";TAB(57);P(L9,4);" MODE"
- 490 NEXT L9
- 493 PRINT
- 496 PRINT
- 499 PRINT
- 502 PRINT"SOURCE","LOAD","LINE","CENTER"
- 505 PRINT"IMPEDANCE","IMPEDANCE","ATTEN.","FREQUENCY"
- 508 PRINT M1,M2,B9,F1
- 511 PRINT
- 514 PRINT
- 517 PRINT
- 520 GOSUB 634
- 523 LET J6=0
- 526 PRINT" ","ZIN","ZIN","ZOUT","ZOUT"
- 527 PRINT "FREQ-GHZ","REAL","IMAG","REAL","IMAG"
- 528 PRINT
- 529 FOR M=1 TO N1
- 530 PRINT F(M),A(M),B(M),C(M),D(M)
- 531 NEXT M
- 532 PRINT
- 535 PRINT
- 541 PRINT " ","VSWR","VSWR"
- 542 PRINT "FREQ-GHZ","IN","OUT"
- 543 PRINT
- 544 FOR M=1 TO N1
- 545 PRINT F(M),G(M),H(M)
- 547 NEXT M
- 550 PRINT
- 553 PRINT"DO YOU WISH TO RUN THROUGH THE PROGRAM AGAIN. TYPE Y OR N."
- 556 INPUT L$
- 559 IF L$="N" GOTO 1558
- 562 PRINT"DO YOU WISH TO ENTER A COMPLETELY NEW NETWORK. TYPE Y OR N"
- 565 INPUT L$
- 568 IF L$="Y" GOTO 151
- 571 IF J7=1 GOTO 584
- 572 PRINT
- 573 PRINT"TO CHANGE ZS OR FCS ,TYPE 1"
- 574 PRINT"TO CHANGE ZL OR FCL ,TYPE 2"
- 575 PRINT"TO CHANGE FREQUENCIES, TYPE 3"
- 576 PRINT"TO CHANGE ALPHA, TYPE 4"
- 577 PRINT"TO CHANGE NEL, TYPE 5"
- 578 PRINT"TO CHANGE NFE, TYPE 6"
- 579 PRINT"TO CHANGE NFB OR NFS, TYPE 7"
- 580 PRINT"TO CHANGE ELEMENT DATA, TYPE 8"
- 581 LET J7=1
- 582 PRINT"WHEN FINISHED WITH CHANGES, TYPE 9"
- 583 GOTO 586
- 584 PRINT
- 585 PRINT"TYPE A NUMBER FROM 1 TO 9 AS EXPLAINED";
- 586 INPUT J5
- 587 ON J5 GOTO 588,591,594,598,601,611,614,617,355
- 588 PRINT"ENTER NEW ZS AND FCS";
- 589 INPUT M1,F4
- 590 GOTO 584
- 591 PRINT"ENTER NEW ZL AND FCL";
- 592 INPUT M2,F5
- 593 GOTO 584
- 594 PRINT"ENTER NEW CF,FINTL,EFINL,FINCR";
- 595 INPUT F1,F6,F7,F8
- 596 GOSUB 179
- 597 GOTO 584
- 598 PRINT"ENTER NEW ALPHA";
- 599 INPUT B9
- 600 GOTO 584
- 601 PRINT"ENTER NEW NEL";
- 602 INPUT W9
- 603 IF W9>N2 GOTO 608
- 604 IF W9=N2 GOTO 584
- 605 LET W8=W9+1
- 606 PRINT"OLD ELEMENTS";W8;"TO";N2;" IGNORED"
- 607 GOTO 609
- 608 PRINT"TYPE 8 TO ENTER DATA FOR NEW ELEMENTS";
- 609 LET N2=W9
- 610 GOTO 586
- 611 PRINT"ENTER NEW NFE AND NEL ";
- 612 INPUT V1,W9
- 613 GOTO 603
- 614 PRINT"ENTER NEW NFB AND NFS ";
- 615 INPUT V2,V3
- 616 GOTO 584
- 617 PRINT"ENTER ELEMENT NUMBER ";
- 618 INPUT I9
- 619 PRINT"ENTER ELEMENT TYPE, 2 PIECES OF DATA"
- 620 GOSUB 227
- 621 GOTO 584
- 634 FOR J=1 TO N1
- 637 IF V1=0 GOTO 976
- 640 FOR K9=V2 TO V3
- 643 LET L9=V3+V2-K9
- 646 LET T=E(J)*P(L9,2)*D1/W1
- 649 LET R=B9*T*D2
- 652 GOSUB 1258
- 655 IF K9>V2 GOTO 685
- 658 LET A1=B1
- 661 LET A2=B2
- 664 LET A3=B3
- 667 LET A4=B4
- 670 LET A5=B5
- 673 LET A6=B6
- 676 LET A7=B7
- 679 LET A8=B8
- 682 GOTO 733
- 685 LET C1=A1*B1-A2*B2+A5*B3-A6*B4
- 688 LET C2=A1*B2+A2*B1+A5*B4+A6*B3
- 691 LET C3=A3*B1-A4*B2+A7*B3-A8*B4
- 694 LET C4=A3*B2+A4*B1+A7*B4+A8*B3
- 697 LET C5=A1*B5-A2*B6+A5*B7-A6*B8
- 700 LET C6=A1*B6+A2*B5+A5*B8+A6*B7
- 703 LET C7=A3*B5-A4*B6+A7*B7-A8*B8
- 706 LET C8=A3*B6+A4*B5+A7*B8+A8*B7
- 709 LET A1=C1
- 712 LET A2=C2
- 715 LET A3=C3
- 718 LET A4=C4
- 721 LET A5=C5
- 724 LET A6=C6
- 727 LET A7=C7
- 730 LET A8=C8
- 733 NEXT K9
- 736 LET Z5=A3*A3+A4*A4
- 739 LET Y1=(A3*A7+A4*A8)/Z5
- 742 LET Y2=(A3*A8-A4*A7)/Z5
- 745 LET Z6=A2*A3*A8-A1*A3*A7-A1*A4*A8-A2*A4*A7
- 748 LET Z7=A3*A3*A5+A4*A4*A5
- 751 LET Y3=(Z6+Z7)/Z5
- 754 LET Z8=A1*A4*A7-A2*A4*A8-A1*A3*A8
- 757 LET Z9=A4*A4*A6+A3*A3*A6-A2*A3*A7
- 760 LET Y4=(Z8+Z9)/Z5
- 763 LET Y5=-A3/Z5
- 766 LET Y6=A4/Z5
- 769 LET Y7=(A1*A3+A2*A4)/Z5
- 772 LET Y8=(A2*A3-A1*A4)/Z5
- 775 LET V4=N2-V1+1
- 778 FOR K9=V4 TO N2
- 781 LET L9=N2+V4-K9
- 784 LET T=E(J)*P(L9,2)*D1/W1
- 787 LET R=B9*T*D2
- 790 GOSUB 1258
- 793 IF K9>V4 GOTO 823
- 796 LET A1=B1
- 799 LET A2=B2
- 802 LET A3=B3
- 805 LET A4=B4
- 808 LET A5=B5
- 811 LET A6=B6
- 814 LET A7=B7
- 817 LET A8=B8
- 820 GOTO 871
- 823 LET C1=A1*B1-A2*B2+A5*B3-A6*B4
- 826 LET C2=A1*B2+A2*B1+A5*B4+A6*B3
- 829 LET C3=A3*B1-A4*B2+A7*B3-A8*B4
- 832 LET C4=A3*B2+A4*B1+A7*B4+A8*B3
- 835 LET C5=A1*B5-A2*B6+A5*B7-A6*B8
- 838 LET C6=A1*B6+A2*B5+A5*B8+A6*B7
- 841 LET C7=A3*B5-A4*B6+A7*B7-A8*B8
- 844 LET C8=A3*B6+A4*B5+A7*B8+A8*B7
- 847 LET A1=C1
- 850 LET A2=C2
- 853 LET A3=C3
- 856 LET A4=C4
- 859 LET A5=C5
- 862 LET A6=C6
- 865 LET A7=C7
- 868 LET A8=C8
- 871 NEXT K9
- 874 LET Z5=(A3*A3+A4*A4)
- 877 LET U1=(A3*A7+A4*A8)/Z5
- 880 LET U2=(A3*A8-A4*A7)/Z5
- 883 LET Z6=A2*A3*A8-A1*A3*A7-A1*A4*A8-A2*A4*A7
- 886 LET Z7=A3*A3*A5+A4*A4*A5
- 889 LET U3=(Z6+Z7)/Z5
- 892 LET Z8=A1*A4*A7-A2*A4*A8-A1*A3*A8
- 895 LET Z9=A4*A4*A6+A3*A3*A6-A2*A3*A7
- 898 LET U4=(Z8+Z9)/Z5
- 901 LET U5=-A3/Z5
- 904 LET U6=A4/Z5
- 907 LET U7=(A1*A3+A2*A4)/Z5
- 910 LET U8=(A2*A3-A1*A4)/Z5
- 913 LET E1=Y1+U1
- 916 LET E2=Y2+U2
- 919 LET E3=Y3+U3
- 922 LET E4=Y4+U4
- 925 LET E5=Y5+U5
- 928 LET E6=Y6+U6
- 931 LET E7=Y7+U7
- 934 LET E8=Y8+U8
- 937 LET Z5=E5*E5+E6*E6
- 940 LET P1=(-E5*E7-E6*E8)/Z5
- 943 LET P2=(-E5*E8+E6*E7)/Z5
- 946 LET P3=-E5/Z5
- 949 LET P4=E6/Z5
- 952 LET Z6=-E1*E5*E7+E2*E5*E8-E1*E6*E8
- 955 LET Z7=E3*E5*E5+E3=E6*E6-E2*E6*E7
- 958 LET P5=(Z6+Z7)/Z5
- 961 LET Z8=E1*E6*E7-E2*E6*E8-E1*E5*E8
- 964 LET Z9=E4*E6*E6+E4*E5*E5-E2=E5*E7
- 967 LET P6=(Z8+Z9)/Z5
- 970 LET P7=(-E1*E5-E2*E6)/E5
- 973 LET P8=(E1*E6-E2*E5)/Z5
- 976 LET V5=N2-V1
- 979 LET N5=0
- 982 FOR K9=1 TO V5
- 985 IF N5<=0 GOTO 994
- 988 LET N5=N5-1
- 991 GOTO 1123
- 994 LET L9=V5+1-K9
- 997 LET K7=L9-V3
- 1000 IF K7<>0 GOTO 1036
- 1003 LET B1=P1
- 1006 LET B2=P2
- 1009 LET B3=P3
- 1012 LET B4=P4
- 1015 LET B5=P5
- 1018 LET B6=P6
- 1021 LET B7=P7
- 1024 LET B8=P8
- 1027 LET L9=V2
- 1030 LET N5=V3-V2
- 1033 GOTO 1045
- 1036 LET T=E(J)*P(L9,2)*D1/W1
- 1039 LET R=B9*T*D2
- 1042 GOSUB 1258
- 1045 IF K9>1 GOTO 1075
- 1048 LET A1=B1
- 1051 LET A2=B2
- 1054 LET A3=B3
- 1057 LET A4=B4
- 1060 LET A5=B5
- 1063 LET A6=B6
- 1066 LET A7=B7
- 1069 LET A8=B8
- 1072 GOTO 1123
- 1075 LET C1=A1*B1-A2*B2+A5*B3-A6*B4
- 1078 LET C2=A1*B2+A2*B1+A5*B4+A6*B3
- 1081 LET C3=A3*B1-A4*B2+A7*B3-A8*B4
- 1084 LET C4=A3*B2+A4*B1+A7*B4+A8*B3
- 1087 LET C5=A1*B5-A2*B6+A5*B7-A6*B8
- 1090 LET C6=A1*B6+A2*B5+A5*B8+A6*B7
- 1093 LET C7=A3*B5-A4*B6+A7*B7-A8*B8
- 1096 LET C8=A3*B6+A4*B5+A7*B8+A8*B7
- 1099 LET A1=C1
- 1102 LET A1=C2
- 1105 LET A3=C3
- 1108 LET A4=C4
- 1111 LET A5=C5
- 1114 LET A6=C6
- 1117 LET A7=C7
- 1120 LET A8=C8
- 1123 NEXT K9
- 1124 M5=M1/SQR(1-(F4/F(J))^2)
- 1125 M6=M2/SQR(1-(F5/F(J))^2)
- 1126 LET H1=M6*A1+A3
- 1129 LET H2=M6*A2+A4
- 1132 LET H3=M6*A5+A7
- 1135 LET H4=M6*A6+A8
- 1138 LET H5=H3*H3+H4*H4
- 1141 LET A(J)=(H1*H3+H2*H4)/H5
- 1144 LET B(J)=(H2*H3-H1*H4)/H5
- 1147 LET H1=M5*A7+A3
- 1150 LET H2=M5*A8+A4
- 1153 LET H3=M5*A5+A1
- 1156 LET H4=M5*A6+A2
- 1159 LET H5=H3*H3+H4*H4
- 1162 LET C(J)=(H1*H3+H2*H4)/H5
- 1165 LET D(J)=(H2*H3-H1*H4)/H5
- 1168 LET H1=(A(J)-M5)*(A(J)+M5)+B(J)*B(J)
- 1171 LET H2=B(J)*((A(J)+M5)-(A(J)-M5))
- 1174 LET H3=(A(J)+M5)*(A(J)+M5)+B(J)*B(J)
- 1177 LET G1=H1/H3
- 1180 LET G2=H2/H3
- 1183 LET H1=(C(J)-M6)*(C(J)+M6)+D(J)*D(J)
- 1186 LET H2=D(J)*((C(J)+M6)-(C(J)-M6))
- 1189 LET H3=(C(J)+M6)*(C(J)+M6)+D(J)*D(J)
- 1192 LET G3=H1/H3
- 1195 LET G4=H2/H3
- 1198 LET J1=2
- 1201 LET F3=SQR(G1*G1+G2*G2)
- 1204 IF F3<>1 GOTO 1210
- 1207 LET J1=1
- 1210 IF J1=1 GOTO 1216
- 1213 IF J1=2 GOTO 1222
- 1216 LET G(J)=1E+35
- 1219 GOTO 1225
- 1222 LET G(J)=(1+F3)/(1-F3)
- 1225 LET J1=2
- 1228 LET F3=SQR(G3*G3+G4*G4)
- 1231 IF F3<>1 GOTO 1237
- 1234 LET J1=1
- 1237 IF J1=1 GOTO 1243
- 1240 IF J1=2 GOTO 1249
- 1243 LET H(J)=1E+35
- 1246 GOTO 1252
- 1249 LET H(J)=(1+F3)/(1-F3)
- 1252 NEXT J
- 1255 RETURN
- 1258 LET N4=I(L9)
- 1261 LET N7=K(L9)
- 1264 ON N7 GOTO 1267,1294,1321,1348,1375,1402,1429,1456
- 1267 LET B1=FND(R,T)
- 1270 LET B2=FNE(R,T)
- 1273 LET B3=P(L9,1)*FNB(R,T)
- 1276 LET B4=P(L9,1)*FNC(R,T)
- 1279 LET B5=B3/(P(L9,1)*P(L9,1))
- 1282 LET B6=B4/(P(L9,1)*P(L9,1))
- 1285 LET B7=B1
- 1288 LET B8=B2
- 1291 GOTO 1555
- 1294 LET B1=1
- 1297 LET B2=0
- 1300 LET B3=0
- 1303 LET B4=0
- 1306 LET B5=(1/P(L9,1))*((FNA(R)*(1+TAN(T)^2))/(FNA(R)^2+TAN(T)^2))
- 1309 LET B6=(1/P(L9,1))*((TAN(T)*(FNA(R)^2-1))/(FNA(R)^2+TAN(T)^2))
- 1312 LET B7=1
- 1315 LET B8=0
- 1318 GOTO 1555
- 1321 LET B1=1
- 1324 LET B2=0
- 1327 LET B3=0
- 1329 LET B1=0
- 1330 LET B4=0
- 1333 LET B5=((FNA(R)*(1+TAN(T)^2))/(1+(FNA(R)*TAN(T))^2))/P(L9,1)
- 1336 LET B6=((TAN(T)*(1-FNA(R)^2))/(1+(FNA(R)*TAN(T))^2))/P(L9,1)
- 1339 LET B7=1
- 1342 LET B8=0
- 1345 GOTO 1555
- 1348 LET B1=1
- 1351 LET B2=0
- 1354 LET B3=0
- 1357 LET B4=0
- 1360 LET B5=0
- 1363 LET B6=E(J)/((-E(J)*E(J)*P(L9,1))+1000*P(L9,2))
- 1366 LET B7=1
- 1369 LET B8=0
- 1372 GOTO 1555
- 1375 LET B1=1
- 1378 LET B2=0
- 1381 LET B3=0
- 1384 LET B4=E(J)/((-(E(J)*E(J))*P(L9,2)*0.000999999)+P(L9,1))
- 1387 LET B5=0
- 1390 LET B6=0
- 1393 LET B7=1
- 1396 LET B8=0
- 1399 GOTO 1555
- 1402 LET B1=1+P(L9,1)*P(L9,2)
- 1405 LET B2=0
- 1408 LET B3=P(L9,1)
- 1411 LET B4=0
- 1414 LET B5=P(L9,2)
- 1417 LET B6=0
- 1420 LET B7=1
- 1423 LET B8=0
- 1426 GOTO 1555
- 1432 LET B2=Q(J,N4)
- 1435 LET B3=U(J,N4)
- 1438 LET B4=V(J,N4)
- 1441 LET B5=W(J,N4)
- 1444 LET B6=X(J,N4)
- 1447 LET B7=Y(J,N4)
- 1450 LET B8=Z(J,N4)
- 1453 GOTO 1555
- 1456 LET F2=6.28319*P(L9,3)/E(J)
- 1459 LET A9=1-F2*F2
- 1462 IF A9<0 GOTO 1498
- 1465 LET F3=SQR(A9)
- 1468 IF F3<>0 GOTO 1474
- 1471 LET F3=0
- 1474 LET T=T*F3
- 1477 IF P(L9,4)<0 GOTO 1489
- 1480 LET Z1=P(L9,1)*F3
- 1483 LET Z2=0
- 1486 GOTO 1525
- 1489 LET Z1=P(L9,1)/F3
- 1492 LET Z2=0
- 1495 GOTO 1525
- 1498 LET F3=SQR(-A9)
- 1501 LET R=T*F3
- 1504 LET T=0
- 1507 IF P(L9,4)<0 GOTO 1519
- 1510 LET Z1=0
- 1513 LET Z2=P(L9,1)*F3
- 1516 GOTO 1525
- 1519 LET Z1=0
- 1522 LET Z2=P(L9,1)/F3
- 1525 LET B1=FND(R,T)
- 1528 LET B2=FNE(R,T)
- 1531 LET B3=Z1*FNB(R,T)-Z2*FNC(R,T)
- 1534 LET B4=Z2*FNB(R,T)+Z1*FNC(R,T)
- 1537 LET Z3=Z1*Z1-Z2*Z2
- 1540 LET Z4=2*Z1*Z2
- 1543 LET B5=(B3*Z3+B4*Z4)/(Z3*Z3+Z4*Z4)
- 1546 LET B6=(B4*Z3-B3*Z4)/(Z3*Z3+Z4*Z4)
- 1549 LET B7=B1
- 1552 LET B8=B2
- 1555 RETURN
- 1558 END
-