home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / rf3 / mecap.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1979-12-31  |  13.8 KB  |  584 lines

  1. 1  PRINT, "k2uyh -----  modified for ibm pc -----wa2tif":PRINT:
  2. 2  PRINT,"MODIFIED FOR FREQUENCY DEPENDENT ZS AND ZL"
  3. 3  PRINT
  4. 4  PRINT,"DO YOU WISH AN EXPLANATION OF THE PROGRAM. TYPE Y OR N." ;
  5. 7  INPUT L$
  6. 10  LET J6=0
  7. 13  LET J7=0
  8. 16  IF L$="N" GOTO 115
  9. 19  PRINT
  10. 22  PRINT"THIS PROGRAM EVALUATES A MICROWAVE NETWORK OR"
  11. 25  PRINT"TRANSMISSION LINE CONSISTING OF A SINGLE TWO-PORT"
  12. 28  PRINT"ELEMENT OR UP TO 15 TWO-PORT ELEMENTS INCLUDING A"
  13. 31  PRINT"POSSIBLE FEEDBACK PATH. LISTED BELOW ARE THE ELEMENT"
  14. 34  PRINT"TYPE,DESCRIPTION OF THE ELEMENT, AND THE DATA"
  15. 37  PRINT"REQUIRED FOR INPUT FOR EACH ELEMENT:"
  16. 40  PRINT"  1-TRANSMISSION LINE- IMPEDANCE(OHMS)-LENGTH(DEGREES)"
  17. 43  PRINT"  2-SHORTED SHUNT STUB- IMPEDANCE(OHMS)-LENGTH(DEGREES)"
  18. 46  PRINT"  3-OPEN SHUNT STUB-  IMPEDANCE(OHMS)-LENGTH(DEGREES)"
  19. 49  PRINT"  4-SHUNT L-SERIES-C-  NANOHENRIES-INVERSE PICOFARADS"
  20. 52  PRINT"  5-SERIES L-SHUNT-C-  INVERSE PICOFARADS-NANOHENRIES"
  21. 55  PRINT"  6-SERIES R-SHUNT G-  OHMS-MHOS"
  22. 58  PRINT"  7-TRANSISTOR- ENTER 2 ZEROS. S-PARAM. WILL BE ASKED"
  23. 61  PRINT"                FOR LATER. (CAN USE ONLY UP TO 5)"
  24. 64  PRINT"  8-WAVEGUIDE- ENTER THE IMPEDANCE OF THE MEDIUM(377"
  25. 67  PRINT"               FOR AIR) AND THE LENGTH IN DEGREES OF"
  26. 70  PRINT"               WAVELENGTH. THE CUT-OFF FREQ. OF THE"
  27. 73  PRINT"               WAVEGUIDE AND MODE WILL BE ASKED FOR."
  28. 76  PRINT"THE FOLLOWING DATA OF THE NETWORK WILL BE ASKED FOR:"
  29. 78  INPUT " PRESS <CR> TO CONTINUE"; A$
  30. 79  PRINT"  ZS-SOURCE IMPEDANCE"
  31. 82  PRINT"  ZL-LOAD IMPEDANCE"
  32. 85  PRINT"  CF-CENTER FREQ. AT WHICH ALL LINE LENGTHS ARE DEFINED"
  33. 88  PRINT"  ALPHA-ATTEN. IN DB/WAVELENGTH AT CF"
  34. 91  PRINT"  NEL-TOTAL NUMBER OF ELEMENTS IN THE NETWORK"
  35. 92  PRINT"  INCLUDING FEEDBACK"
  36. 94  PRINT"  NFREQ-NUMBER OF FREQUENCIES THAT ARE TO BE USED(UP TO 30)"
  37. 95  PRINT"  FINTL-INITIAL FREQUENCY TO BE USED"
  38. 96  PRINT"  EFINL-FINAL FREQUENCY TO BE USED"
  39. 97  PRINT"  FINCR-FREQUENCY INCREMENT"
  40. 98  PRINT"  *NFE-NUMBER OF ELEMENTS IN THE FEEDBACK PATH"
  41. 100  PRINT"  *NFB-ELEMENT NUMBER WHERE FEEDBACK PATH STOPS"
  42. 103  PRINT"  *NFS-ELEMENT NUMBER WHERE FEEDBACK PATH STOPS"
  43. 106  PRINT"  *IF THERE IS NO FEEDBACK PATH, NFE=NFB=NFS=0"
  44. 107  PRINT"  FCS-CUTOFF FREQUENCY OF SOURCE"
  45. 108  PRINT"  FCL-CUTOFF FREQUENCY OF LOAD"
  46. 109  PRINT"THE OUTPUT CONSISTS OF THE IMPEDANCE IN AND OUT AND THE"
  47. 112  PRINT"VSWR IN AND OUT OF THE NETWORK AT EACH FREQ."
  48. 115  PRINT
  49. 118  PRINT"ENTER ALL DATA IN FREE FORMAT(COMMA BETWEEN EACH"
  50. 121  PRINT"NUMBER) AND MAKE SURE THAT IT IS IN THE CORRECT ORDER."
  51. 124  DIM L$(1),F(30),P(15,4),E(30),K(15),S(150,8),I(15)
  52. 127  DIM A(30),B(30),C(30),D(30),G(30),H(30)
  53. 130  DIM O(150,5),Q(150,5),U(150,5),V(150,5),W(150,5),X(150,5)
  54. 133  DIM Y(150,5),Z(150,5)
  55. 136  DEF FNA(R)=(EXP(R)-(1/EXP(R)))/(EXP(R)+(1/EXP(R)))
  56. 139  DEF FNB(R,T)=COS(T)*(EXP(R)-(1/EXP(R)))/2
  57. 142  DEF FNC(R,T)=SIN(T)*(EXP(R)+(1/EXP(R)))/2
  58. 145  DEF FND(R,T)=COS(T)*(EXP(R)+(1/EXP(R)))/2
  59. 148  DEF FNE(R,T)=SIN(T)*(EXP(R)-(1/EXP(R)))/2
  60. 151  PRINT
  61. 154  PRINT"ENTER--ZS,ZL,CF,ALPHA,NEL,NFE,NFB,NFS"
  62. 157  INPUT M1,M2,F1,B9,N2,V1,V2,V3
  63. 158  PRINT"ENTER--FCS,FCL"
  64. 159  INPUT F4,F5
  65. 160  LET W1=6.28319*F1
  66. 163  IF J6=2 GOTO 199
  67. 166  IF J6=1 GOTO 493
  68. 169  LET D1=0.0174533
  69. 172  LET D2=0.0183234
  70. 174  PRINT
  71. 175  PRINT"ENTER FINTL,EFINL,FINCR"
  72. 176  INPUT F6,F7,F8
  73. 177  REM NFREQ IS CALCULATED
  74. 178  N1=((F7-F6)/F8)+1
  75. 179  N1=INT(N1+0.5)
  76. 180  F(1)=F6
  77. 181  FOR I=2 TO N1
  78. 182  F(I)=F(I-1)+F8
  79. 183  NEXT I
  80. 184  FOR I9=1 TO N1
  81. 185  IF F(I9)>F4 AND F(I9)>F5 THEN 188
  82. 186  PRINT"ALL INPUT FREQUENCIES MUST EXCEED CUTOFF"
  83. 187  GOTO 175
  84. 188  LET E(I9)=6.28319*F(I9)
  85. 190  NEXT I9
  86. 191  IF J7=1 THEN GOTO 571
  87. 193  IF J6=3 GOTO 493
  88. 196  IF J6=1 GOTO 511
  89. 199  PRINT
  90. 202  IF J7=1 GOTO 214
  91. 205  PRINT"ENTER THE ELEMENTS GOING FROM LEFT TO RIGHT ALONG THE"
  92. 208  PRINT"NETWORK. GIVE ELEMENT TYPE AND THE 2 PIECES OF DATA."
  93. 211  GOTO 217
  94. 214  PRINT"ENTER ALL NEW ELEMENTS."
  95. 217  LET N4=0
  96. 220  LET M9=0
  97. 223  FOR I9=1 TO N2
  98. 224  GOSUB 227
  99. 225  NEXT I9
  100. 226  GOTO 355
  101. 227  INPUT K(I9),P(I9,1),P(I9,2)
  102. 229  IF K(I9)<>8 GOTO 244
  103. 232  PRINT"ENTER THE CUT-OFF FREQ.(IN GHZ) FOR THE WAVEGUIDE,"
  104. 235  PRINT"FOLLOWED BY +1 FOR TM AND -1 FOR TE MODE."
  105. 238  INPUT P(I9,3),P(I9,4)
  106. 241  GOTO 352
  107. 244  IF K(I9)<>7 GOTO 352
  108. 247  LET N4=N4+1
  109. 250  LET I(I9)=N4
  110. 253  PRINT"ENTER THE S-PARAM. FOR THIS TRANSISTOR STARTING WITH"
  111. 256  PRINT"S11 TO S22. GIVE MAGNITUDE AND ANGLE FOR ALL FOUR"
  112. 259  PRINT"POINTS. START AT LOWEST FREQ."
  113. 262  LET K9=M9+1
  114. 265  LET M9=N4*N1
  115. 268  FOR J=K9 TO M9
  116. 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)
  117. 274  LET S1=S(J,1)*COS(S(J,2)*D1)
  118. 277  LET S2=S(J,1)*SIN(S(J,2)*D1)
  119. 280  LET S3=S(J,3)*COS(S(J,4)*D1)
  120. 283  LET S4=S(J,3)*SIN(S(J,4)*D1)
  121. 286  LET S5=S(J,5)*COS(S(J,6)*D1)
  122. 289  LET S6=S(J,5)*SIN(S(J,6)*D1)
  123. 292  LET S7=S(J,7)*COS(S(J,8)*D1)
  124. 295  LET S8=S(J,7)*SIN(S(J,8)*D1)
  125. 298  LET X1=(S3*S5)+(-S4*S6)+((1+S1)*(1-S7))+(S2*S8)
  126. 301  LET X2=(S4*S5)+(S3*S6)+S2*(1-S7)-S8*(1+S1)
  127. 304  LET O(J,N4)=((2*S5*X1)+(2*S6X2))/((2*S5)**2+(2*S6)**2)
  128. 307  LET Q(J,N4)=((-2*S6*X1)+(2*S5*X2))/((2*S5)**2+(2*S6)**2)
  129. 310  LET X3=((-S3*S5)+(S4*S6)+((1+S1)*(1+S7))+(-S2*S8))*25
  130. 313  LET X4=((-S3*S6)+(-S4*S5)+S2*(1+S7)+S8*(1+S1))*25
  131. 316  LET U(J,N4)=((S5*X3)+(S6*X4))/(S5*S5+S6*S6)
  132. 319  LET V(J,N4)=((-S6*X3)+(S5*X4))/(S5*S5+S6*S6)
  133. 322  LET X5=(-S3*S5)+(S4*S6)+((1-S1)*(1-S7))+(-S2*S8)
  134. 325  LET X6=(-S3*S6)+(-S4*S5)-S2*(1-S7)-S8*(1-S1)
  135. 328  LET W(J,N4)=((100*S5*X5)+(100*S6*X6))/((100*S5)**2+(100*S6)**2)
  136. 331  LET X(J,N4)=((-100*S6*X5)+(100*S6*X6))/((100*S5)**2+(100*S6)**2)
  137. 334  LET X7=(S3*S5)+(-S4*S6)+((1-S1)*(1+S7))+(S2*S8)
  138. 337  LET X8=(S4*S5)+(S3*S6)-S2*(1+S7)+S8*(1-S1)
  139. 340  LET Y(J,N4)=((2*S5*X7)+(2*S6*X8))/((2*S5)**2+(2*S6)**2)
  140. 343  LET Z(J,N4)=((-2*S6*X7)+(2*S5*X8))/((2*S5)**2+(2*S6)**2)
  141. 346  NEXT J
  142. 349  PRINT"ALL S-PARAM. ARE IN. FINISH THE NETWORK IF THERE IS MORE."
  143. 352  RETURN
  144. 355  LET M9=0
  145. 358  LET N5=0
  146. 361  PRINT
  147. 364  PRINT
  148. 367  PRINT"ELEMENT NO.","ELEMENT TYPE AND DESCRIPTION"
  149. 370  LET N6=N2-V1
  150. 373  FOR L9=1 TO N2
  151. 376  LET N7=K(L9)
  152. 379  LET N8=L9-N6
  153. 382  IF N8<=0 GOTO 397
  154. 385  IF N5<>0 GOTO 397
  155. 388  PRINT"THE FOLLOWING ELEMENTS COMPRISE THE FEEDBACK PATH"
  156. 391  PRINT"STARTING AT ELEMENT NO. ";V2;" TO ELEMENT NO. ";V3
  157. 394  LET N5=1
  158. 397  ON N7 GOTO 400,409,418,427,436,445,454,481
  159. 400  PRINT L9,"1 -TRANSMISSION LINE-";TAB(41);P(L9,1);" OHMS" ;
  160. 403  PRINT TAB(57);P(L9,2);" DEG."
  161. 406  GOTO 490 
  162. 409  PRINT L9,"2 -SHORTED SHUNT STUB-";TAB(41);P(L9,1);" OHMS" ;
  163. 412  PRINT TAB(57);P(L9,2);" DEG."
  164. 415  GOTO 490
  165. 418  PRINT L9,"3 -OPEN SHUNT STUB-";TAB(41);P(L9,1);" OHMS" ;
  166. 421  PRINT TAB(57);P(L9,2);" DEG."
  167. 424  GOTO 490
  168. 427  PRINT L9,"4 -SHUNT L-SERIES-C-";TAB(41);P(L9,1);" NH" ;
  169. 430  PRINT TAB(57);P(L9,2);' 1/PF'
  170. 433  GOTO 490
  171. 436  PRINT L9,"5 -SERIES L-SHUNT-C-";TAB(41);P(L9,1);" 1/NH" ;
  172. 439  PRINT TAB(57);P(L9,2);" PF"
  173. 442  GOTO 490
  174. 445  PRINT L9,"6 -SERIES R-SHUNT G-";TAB(41);P(L9,1);" OHMS";
  175. 448  PRINT TAB(57);P(L9,2);" MHOS"
  176. 451  GOTO 490
  177. 454  PRINT L9,"7 -TRANSISTOR-"
  178. 457  LET K9=M9+1
  179. 460  LET M9=I(L9)*N1
  180. 463  FOR J=K9 TO M9
  181. 466  PRINT ,S(J,1),S(J,3),S(J,5),S(J,7)
  182. 469  PRINT ,S(J,2),S(J,4),S(J,6),S(J,8)
  183. 472  PRINT ,"+--------------+--------------+--------------+----------"
  184. 475  NEXT J
  185. 478  GOTO 490
  186. 481  PRINT L9,"8 -WAVEGUIDE-";TAB(41);P(L9,1);" OHMS" ;
  187. 484  PRINT TAB(57);P(L9,2);" DEG."
  188. 487  PRINT TAB(41);P(L9,3);" GHZ";TAB(57);P(L9,4);" MODE"
  189. 490  NEXT L9
  190. 493  PRINT
  191. 496  PRINT
  192. 499  PRINT
  193. 502  PRINT"SOURCE","LOAD","LINE","CENTER"
  194. 505  PRINT"IMPEDANCE","IMPEDANCE","ATTEN.","FREQUENCY"
  195. 508  PRINT M1,M2,B9,F1 
  196. 511  PRINT
  197. 514  PRINT
  198. 517  PRINT
  199. 520  GOSUB 634
  200. 523  LET J6=0
  201. 526  PRINT" ","ZIN","ZIN","ZOUT","ZOUT"
  202. 527  PRINT "FREQ-GHZ","REAL","IMAG","REAL","IMAG"
  203. 528  PRINT
  204. 529  FOR M=1 TO N1
  205. 530  PRINT F(M),A(M),B(M),C(M),D(M)
  206. 531  NEXT M
  207. 532  PRINT
  208. 535  PRINT
  209. 541  PRINT " ","VSWR","VSWR"
  210. 542  PRINT "FREQ-GHZ","IN","OUT"
  211. 543  PRINT
  212. 544  FOR M=1 TO N1
  213. 545  PRINT F(M),G(M),H(M)
  214. 547  NEXT M
  215. 550  PRINT
  216. 553  PRINT"DO YOU WISH TO RUN THROUGH THE PROGRAM AGAIN. TYPE Y OR N."
  217. 556  INPUT L$
  218. 559  IF L$="N" GOTO 1558
  219. 562  PRINT"DO YOU WISH TO ENTER A COMPLETELY NEW NETWORK. TYPE Y OR N"
  220. 565  INPUT L$
  221. 568  IF L$="Y" GOTO 151
  222. 571  IF J7=1 GOTO 584
  223. 572  PRINT
  224. 573  PRINT"TO CHANGE ZS OR FCS ,TYPE 1"
  225. 574  PRINT"TO CHANGE ZL OR FCL ,TYPE 2"
  226. 575  PRINT"TO CHANGE FREQUENCIES, TYPE 3"
  227. 576  PRINT"TO CHANGE ALPHA, TYPE 4"
  228. 577  PRINT"TO CHANGE NEL, TYPE 5"
  229. 578  PRINT"TO CHANGE NFE, TYPE 6"
  230. 579  PRINT"TO CHANGE NFB OR NFS, TYPE 7"
  231. 580  PRINT"TO CHANGE ELEMENT DATA, TYPE 8"
  232. 581  LET J7=1
  233. 582  PRINT"WHEN FINISHED WITH CHANGES, TYPE 9"
  234. 583  GOTO 586
  235. 584  PRINT
  236. 585  PRINT"TYPE A NUMBER FROM 1 TO 9 AS EXPLAINED";
  237. 586  INPUT J5
  238. 587  ON J5 GOTO 588,591,594,598,601,611,614,617,355
  239. 588  PRINT"ENTER NEW ZS AND FCS";
  240. 589  INPUT M1,F4
  241. 590  GOTO 584
  242. 591  PRINT"ENTER NEW ZL AND FCL";
  243. 592  INPUT M2,F5
  244. 593  GOTO 584
  245. 594  PRINT"ENTER NEW CF,FINTL,EFINL,FINCR";
  246. 595  INPUT F1,F6,F7,F8
  247. 596  GOSUB 179
  248. 597  GOTO 584
  249. 598  PRINT"ENTER NEW ALPHA";
  250. 599  INPUT B9
  251. 600  GOTO 584
  252. 601  PRINT"ENTER NEW NEL";
  253. 602  INPUT W9
  254. 603  IF W9>N2 GOTO 608
  255. 604  IF W9=N2 GOTO 584
  256. 605  LET W8=W9+1
  257. 606  PRINT"OLD ELEMENTS";W8;"TO";N2;" IGNORED"
  258. 607  GOTO 609
  259. 608  PRINT"TYPE 8 TO ENTER DATA FOR NEW ELEMENTS";
  260. 609  LET N2=W9
  261. 610  GOTO 586
  262. 611  PRINT"ENTER NEW NFE AND NEL ";
  263. 612  INPUT V1,W9
  264. 613  GOTO 603
  265. 614  PRINT"ENTER NEW NFB AND NFS ";
  266. 615  INPUT V2,V3
  267. 616  GOTO 584
  268. 617  PRINT"ENTER ELEMENT NUMBER ";
  269. 618  INPUT I9
  270. 619  PRINT"ENTER ELEMENT TYPE, 2 PIECES OF DATA"
  271. 620  GOSUB 227
  272. 621  GOTO 584
  273. 634  FOR J=1 TO N1
  274. 637  IF V1=0 GOTO 976
  275. 640  FOR K9=V2 TO V3
  276. 643  LET L9=V3+V2-K9
  277. 646  LET T=E(J)*P(L9,2)*D1/W1
  278. 649  LET R=B9*T*D2
  279. 652  GOSUB 1258
  280. 655  IF K9>V2 GOTO 685
  281. 658  LET A1=B1
  282. 661  LET A2=B2
  283. 664  LET A3=B3
  284. 667  LET A4=B4
  285. 670  LET A5=B5
  286. 673  LET A6=B6
  287. 676  LET A7=B7
  288. 679  LET A8=B8
  289. 682  GOTO 733
  290. 685  LET C1=A1*B1-A2*B2+A5*B3-A6*B4
  291. 688  LET C2=A1*B2+A2*B1+A5*B4+A6*B3
  292. 691  LET C3=A3*B1-A4*B2+A7*B3-A8*B4
  293. 694  LET C4=A3*B2+A4*B1+A7*B4+A8*B3
  294. 697  LET C5=A1*B5-A2*B6+A5*B7-A6*B8
  295. 700  LET C6=A1*B6+A2*B5+A5*B8+A6*B7
  296. 703  LET C7=A3*B5-A4*B6+A7*B7-A8*B8
  297. 706  LET C8=A3*B6+A4*B5+A7*B8+A8*B7
  298. 709  LET A1=C1
  299. 712  LET A2=C2
  300. 715  LET A3=C3
  301. 718  LET A4=C4
  302. 721  LET A5=C5
  303. 724  LET A6=C6
  304. 727  LET A7=C7
  305. 730  LET A8=C8
  306. 733  NEXT K9
  307. 736  LET Z5=A3*A3+A4*A4
  308. 739  LET Y1=(A3*A7+A4*A8)/Z5
  309. 742  LET Y2=(A3*A8-A4*A7)/Z5
  310. 745  LET Z6=A2*A3*A8-A1*A3*A7-A1*A4*A8-A2*A4*A7
  311. 748  LET Z7=A3*A3*A5+A4*A4*A5
  312. 751  LET Y3=(Z6+Z7)/Z5
  313. 754  LET Z8=A1*A4*A7-A2*A4*A8-A1*A3*A8
  314. 757  LET Z9=A4*A4*A6+A3*A3*A6-A2*A3*A7
  315. 760  LET Y4=(Z8+Z9)/Z5
  316. 763  LET Y5=-A3/Z5
  317. 766  LET Y6=A4/Z5
  318. 769  LET Y7=(A1*A3+A2*A4)/Z5
  319. 772  LET Y8=(A2*A3-A1*A4)/Z5
  320. 775  LET V4=N2-V1+1
  321. 778  FOR K9=V4 TO N2
  322. 781  LET L9=N2+V4-K9
  323. 784  LET T=E(J)*P(L9,2)*D1/W1
  324. 787  LET R=B9*T*D2
  325. 790  GOSUB 1258
  326. 793  IF K9>V4 GOTO 823
  327. 796  LET A1=B1
  328. 799  LET A2=B2
  329. 802  LET A3=B3
  330. 805  LET A4=B4
  331. 808  LET A5=B5
  332. 811  LET A6=B6
  333. 814  LET A7=B7
  334. 817  LET A8=B8
  335. 820  GOTO 871
  336. 823  LET C1=A1*B1-A2*B2+A5*B3-A6*B4
  337. 826  LET C2=A1*B2+A2*B1+A5*B4+A6*B3
  338. 829  LET C3=A3*B1-A4*B2+A7*B3-A8*B4
  339. 832  LET C4=A3*B2+A4*B1+A7*B4+A8*B3
  340. 835  LET C5=A1*B5-A2*B6+A5*B7-A6*B8
  341. 838  LET C6=A1*B6+A2*B5+A5*B8+A6*B7
  342. 841  LET C7=A3*B5-A4*B6+A7*B7-A8*B8
  343. 844  LET C8=A3*B6+A4*B5+A7*B8+A8*B7
  344. 847  LET A1=C1
  345. 850  LET A2=C2
  346. 853  LET A3=C3
  347. 856  LET A4=C4
  348. 859  LET A5=C5
  349. 862  LET A6=C6
  350. 865  LET A7=C7
  351. 868  LET A8=C8
  352. 871  NEXT K9
  353. 874  LET Z5=(A3*A3+A4*A4)
  354. 877  LET U1=(A3*A7+A4*A8)/Z5
  355. 880  LET U2=(A3*A8-A4*A7)/Z5
  356. 883  LET Z6=A2*A3*A8-A1*A3*A7-A1*A4*A8-A2*A4*A7
  357. 886  LET Z7=A3*A3*A5+A4*A4*A5
  358. 889  LET U3=(Z6+Z7)/Z5
  359. 892  LET Z8=A1*A4*A7-A2*A4*A8-A1*A3*A8
  360. 895  LET Z9=A4*A4*A6+A3*A3*A6-A2*A3*A7
  361. 898  LET U4=(Z8+Z9)/Z5
  362. 901  LET U5=-A3/Z5
  363. 904  LET U6=A4/Z5
  364. 907  LET U7=(A1*A3+A2*A4)/Z5
  365. 910  LET U8=(A2*A3-A1*A4)/Z5
  366. 913  LET E1=Y1+U1
  367. 916  LET E2=Y2+U2
  368. 919  LET E3=Y3+U3
  369. 922  LET E4=Y4+U4
  370. 925  LET E5=Y5+U5
  371. 928  LET E6=Y6+U6
  372. 931  LET E7=Y7+U7
  373. 934  LET E8=Y8+U8
  374. 937  LET Z5=E5*E5+E6*E6
  375. 940  LET P1=(-E5*E7-E6*E8)/Z5
  376. 943  LET P2=(-E5*E8+E6*E7)/Z5
  377. 946  LET P3=-E5/Z5
  378. 949  LET P4=E6/Z5
  379. 952  LET Z6=-E1*E5*E7+E2*E5*E8-E1*E6*E8
  380. 955  LET Z7=E3*E5*E5+E3=E6*E6-E2*E6*E7
  381. 958  LET P5=(Z6+Z7)/Z5
  382. 961  LET Z8=E1*E6*E7-E2*E6*E8-E1*E5*E8
  383. 964  LET Z9=E4*E6*E6+E4*E5*E5-E2=E5*E7
  384. 967  LET P6=(Z8+Z9)/Z5
  385. 970  LET P7=(-E1*E5-E2*E6)/E5
  386. 973  LET P8=(E1*E6-E2*E5)/Z5
  387. 976  LET V5=N2-V1
  388. 979  LET N5=0
  389. 982  FOR K9=1 TO V5
  390. 985  IF N5<=0 GOTO 994
  391. 988  LET N5=N5-1
  392. 991  GOTO 1123
  393. 994  LET L9=V5+1-K9
  394. 997  LET K7=L9-V3
  395. 1000  IF K7<>0 GOTO 1036
  396. 1003  LET B1=P1
  397. 1006  LET B2=P2
  398. 1009  LET B3=P3
  399. 1012  LET B4=P4
  400. 1015  LET B5=P5
  401. 1018  LET B6=P6
  402. 1021  LET B7=P7
  403. 1024  LET B8=P8
  404. 1027  LET L9=V2
  405. 1030  LET N5=V3-V2
  406. 1033  GOTO 1045
  407. 1036  LET T=E(J)*P(L9,2)*D1/W1
  408. 1039  LET R=B9*T*D2
  409. 1042  GOSUB 1258
  410. 1045  IF K9>1 GOTO 1075
  411. 1048  LET A1=B1
  412. 1051  LET A2=B2
  413. 1054  LET A3=B3
  414. 1057  LET A4=B4
  415. 1060  LET A5=B5
  416. 1063  LET A6=B6
  417. 1066  LET A7=B7
  418. 1069  LET A8=B8
  419. 1072  GOTO 1123
  420. 1075  LET C1=A1*B1-A2*B2+A5*B3-A6*B4
  421. 1078  LET C2=A1*B2+A2*B1+A5*B4+A6*B3
  422. 1081  LET C3=A3*B1-A4*B2+A7*B3-A8*B4
  423. 1084  LET C4=A3*B2+A4*B1+A7*B4+A8*B3
  424. 1087  LET C5=A1*B5-A2*B6+A5*B7-A6*B8
  425. 1090  LET C6=A1*B6+A2*B5+A5*B8+A6*B7
  426. 1093  LET C7=A3*B5-A4*B6+A7*B7-A8*B8
  427. 1096  LET C8=A3*B6+A4*B5+A7*B8+A8*B7
  428. 1099  LET A1=C1
  429. 1102  LET A1=C2
  430. 1105  LET A3=C3
  431. 1108  LET A4=C4
  432. 1111  LET A5=C5
  433. 1114  LET A6=C6
  434. 1117  LET A7=C7
  435. 1120  LET A8=C8
  436. 1123  NEXT K9
  437. 1124  M5=M1/SQR(1-(F4/F(J))^2)
  438. 1125  M6=M2/SQR(1-(F5/F(J))^2)
  439. 1126  LET H1=M6*A1+A3
  440. 1129  LET H2=M6*A2+A4
  441. 1132  LET H3=M6*A5+A7
  442. 1135  LET H4=M6*A6+A8
  443. 1138  LET H5=H3*H3+H4*H4
  444. 1141  LET A(J)=(H1*H3+H2*H4)/H5
  445. 1144  LET B(J)=(H2*H3-H1*H4)/H5
  446. 1147  LET H1=M5*A7+A3
  447. 1150  LET H2=M5*A8+A4
  448. 1153  LET H3=M5*A5+A1
  449. 1156  LET H4=M5*A6+A2
  450. 1159  LET H5=H3*H3+H4*H4
  451. 1162  LET C(J)=(H1*H3+H2*H4)/H5
  452. 1165  LET D(J)=(H2*H3-H1*H4)/H5
  453. 1168  LET H1=(A(J)-M5)*(A(J)+M5)+B(J)*B(J)
  454. 1171  LET H2=B(J)*((A(J)+M5)-(A(J)-M5))
  455. 1174  LET H3=(A(J)+M5)*(A(J)+M5)+B(J)*B(J)
  456. 1177  LET G1=H1/H3
  457. 1180  LET G2=H2/H3
  458. 1183  LET H1=(C(J)-M6)*(C(J)+M6)+D(J)*D(J)
  459. 1186  LET H2=D(J)*((C(J)+M6)-(C(J)-M6))
  460. 1189  LET H3=(C(J)+M6)*(C(J)+M6)+D(J)*D(J)
  461. 1192  LET G3=H1/H3
  462. 1195  LET G4=H2/H3
  463. 1198  LET J1=2
  464. 1201  LET F3=SQR(G1*G1+G2*G2)
  465. 1204  IF F3<>1 GOTO 1210
  466. 1207  LET J1=1
  467. 1210  IF J1=1 GOTO 1216
  468. 1213  IF J1=2 GOTO 1222
  469. 1216  LET G(J)=1E+35
  470. 1219  GOTO 1225
  471. 1222  LET G(J)=(1+F3)/(1-F3)
  472. 1225  LET J1=2
  473. 1228  LET F3=SQR(G3*G3+G4*G4)
  474. 1231  IF F3<>1 GOTO 1237
  475. 1234  LET J1=1
  476. 1237  IF J1=1 GOTO 1243
  477. 1240  IF J1=2 GOTO 1249
  478. 1243  LET H(J)=1E+35
  479. 1246  GOTO 1252
  480. 1249  LET H(J)=(1+F3)/(1-F3)
  481. 1252  NEXT J
  482. 1255  RETURN
  483. 1258  LET N4=I(L9)
  484. 1261  LET N7=K(L9)
  485. 1264  ON N7 GOTO 1267,1294,1321,1348,1375,1402,1429,1456
  486. 1267  LET B1=FND(R,T)
  487. 1270  LET B2=FNE(R,T)
  488. 1273  LET B3=P(L9,1)*FNB(R,T)
  489. 1276  LET B4=P(L9,1)*FNC(R,T)
  490. 1279  LET B5=B3/(P(L9,1)*P(L9,1))
  491. 1282  LET B6=B4/(P(L9,1)*P(L9,1))
  492. 1285  LET B7=B1
  493. 1288  LET B8=B2
  494. 1291  GOTO 1555
  495. 1294  LET B1=1
  496. 1297  LET B2=0
  497. 1300  LET B3=0
  498. 1303  LET B4=0
  499. 1306  LET B5=(1/P(L9,1))*((FNA(R)*(1+TAN(T)^2))/(FNA(R)^2+TAN(T)^2))
  500. 1309  LET B6=(1/P(L9,1))*((TAN(T)*(FNA(R)^2-1))/(FNA(R)^2+TAN(T)^2))
  501. 1312  LET B7=1
  502. 1315  LET B8=0
  503. 1318  GOTO 1555
  504. 1321  LET B1=1
  505. 1324  LET B2=0
  506. 1327  LET B3=0
  507. 1329  LET B1=0
  508. 1330  LET B4=0
  509. 1333  LET B5=((FNA(R)*(1+TAN(T)^2))/(1+(FNA(R)*TAN(T))^2))/P(L9,1)
  510. 1336  LET B6=((TAN(T)*(1-FNA(R)^2))/(1+(FNA(R)*TAN(T))^2))/P(L9,1)
  511. 1339  LET B7=1
  512. 1342  LET B8=0
  513. 1345  GOTO 1555
  514. 1348  LET B1=1
  515. 1351  LET B2=0
  516. 1354  LET B3=0
  517. 1357  LET B4=0
  518. 1360  LET B5=0
  519. 1363  LET B6=E(J)/((-E(J)*E(J)*P(L9,1))+1000*P(L9,2))
  520. 1366  LET B7=1
  521. 1369  LET B8=0
  522. 1372  GOTO 1555
  523. 1375  LET B1=1
  524. 1378  LET B2=0
  525. 1381  LET B3=0
  526. 1384  LET B4=E(J)/((-(E(J)*E(J))*P(L9,2)*0.000999999)+P(L9,1))
  527. 1387  LET B5=0
  528. 1390  LET B6=0
  529. 1393  LET B7=1
  530. 1396  LET B8=0
  531. 1399  GOTO 1555
  532. 1402  LET B1=1+P(L9,1)*P(L9,2)
  533. 1405  LET B2=0
  534. 1408  LET B3=P(L9,1)
  535. 1411  LET B4=0
  536. 1414  LET B5=P(L9,2)
  537. 1417  LET B6=0
  538. 1420  LET B7=1
  539. 1423  LET B8=0
  540. 1426  GOTO 1555
  541. 1432  LET B2=Q(J,N4)
  542. 1435  LET B3=U(J,N4)
  543. 1438  LET B4=V(J,N4)
  544. 1441  LET B5=W(J,N4)
  545. 1444  LET B6=X(J,N4)
  546. 1447  LET B7=Y(J,N4)
  547. 1450  LET B8=Z(J,N4)
  548. 1453  GOTO 1555
  549. 1456  LET F2=6.28319*P(L9,3)/E(J)
  550. 1459  LET A9=1-F2*F2
  551. 1462  IF A9<0 GOTO 1498
  552. 1465  LET F3=SQR(A9)
  553. 1468  IF F3<>0 GOTO 1474
  554. 1471  LET F3=0
  555. 1474  LET T=T*F3
  556. 1477  IF P(L9,4)<0 GOTO 1489
  557. 1480  LET Z1=P(L9,1)*F3
  558. 1483  LET Z2=0
  559. 1486  GOTO 1525
  560. 1489  LET Z1=P(L9,1)/F3
  561. 1492  LET Z2=0
  562. 1495  GOTO 1525
  563. 1498  LET F3=SQR(-A9)
  564. 1501  LET R=T*F3
  565. 1504  LET T=0
  566. 1507  IF P(L9,4)<0 GOTO 1519
  567. 1510  LET Z1=0
  568. 1513  LET Z2=P(L9,1)*F3
  569. 1516  GOTO 1525
  570. 1519  LET Z1=0
  571. 1522  LET Z2=P(L9,1)/F3
  572. 1525  LET B1=FND(R,T)
  573. 1528  LET B2=FNE(R,T)
  574. 1531  LET B3=Z1*FNB(R,T)-Z2*FNC(R,T)
  575. 1534  LET B4=Z2*FNB(R,T)+Z1*FNC(R,T)
  576. 1537  LET Z3=Z1*Z1-Z2*Z2
  577. 1540  LET Z4=2*Z1*Z2
  578. 1543  LET B5=(B3*Z3+B4*Z4)/(Z3*Z3+Z4*Z4)
  579. 1546  LET B6=(B4*Z3-B3*Z4)/(Z3*Z3+Z4*Z4)
  580. 1549  LET B7=B1
  581. 1552  LET B8=B2
  582. 1555  RETURN
  583. 1558  END
  584.