10 'TRANSIT : Analyzes Transmitted Ions from TRIM. 20 '--------------------------------------------------------- 30 MAXNUMB=2000 40 DIM ENERGY(MAXNUMB),PANGLE(MAXNUMB),PLATERAL(MAXNUMB),ANGLE(MAXNUMB),LATERAL(MAXNUMB) 50 DIM E(100), A(100), L(100), N(100) 60 WIDTH 80: KEY OFF: COLOR 15: CLS: PRINT: LOCATE ,,0,0,8 70 PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 80 PRINT " º Analysis of Transmitted Ions from TRIM º" 90 PRINT " ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ":COLOR 11 100 PRINT " º This program analyzes the data in file º" 110 PRINT " º TRANSMIT which contains Energy/Angle data. º" 120 PRINT " ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ":COLOR 14 130 PRINT " º Show INPUT data while reading ? (N) º" 140 PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"; 150 Y=CSRLIN : LOCATE Y-1,45,1 160 A$=INKEY$:IF A$="" GOTO 160 ELSE IF A$="Y" OR A$="y" THEN SKIP=1 170 LOCATE ,,0 180 OPEN "TRANSMIT.TXT" FOR INPUT AS #1 190 LINE INPUT#1, A$ : LINE INPUT#1, A$: LINE INPUT#1, A$ 200 LINE INPUT #1, A$ 210 ION$=MID$(A$,13,2): M1=VAL(MID$(A$,17,7)): E0KEV=VAL(MID$(A$,26,12)) 220 FOR I=1 TO 8: INPUT#1, A$: NEXT I 'Comments in File 230 COLOR 12: IF SKIP > 0 GOTO 280 ELSE LOCATE 10,1,0 240 PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 250 PRINT " º Reading Line : º" 260 PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 270 GOTO 340 280 LOCATE 10,1,0: COLOR 12 290 PRINT " Polar Polar Projected Projected" 300 PRINT " Ion Energy Angle Lateral Angle Lateral " 310 PRINT " Number (keV) (deg) Distance (deg) Distance " 320 PRINT " -------- ---------- ------- ---------- ------- ----------" 330 A$= " ###### ########## ###.### ########.# ###.### ########.#" 340 COLOR 14 350 FOR I=1 TO MAXNUMB 360 IF EOF(1)=-1 GOTO 420 370 INPUT#1, NUMB,ENERGY(I),PANGLE(I),PLATERAL(I), ANGLE(I), LATERAL(I) 380 IF SKIP =0 THEN LOCATE 11,32: PRINT NUMB: GOTO 410 390 LOCATE 14,1,0 400 PRINT USING A$;NUMB;ENERGY(I);PANGLE(I);PLATERAL(I);ANGLE(I);LATERAL(I) 410 NEXT I 420 CLOSE 430 NTOTAL=I-1 440 ANGLEMAX=0 450 FOR I=1 TO NTOTAL 460 ANGLE(I) = ABS(ANGLE(I)) 'Use Absolute Angles 470 IF ANGLE(I) > ANGLEMAX THEN ANGLEMAX = ANGLE(I) 480 NEXT I 490 COLOR 13 : LOCATE 15,,0 500 PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 510 PRINT " º This data shows a Maximum deflection of : º": COLOR 14 520 PRINT USING " º ##.### degrees . º";ANGLEMAX: COLOR 13 530 PRINT " º º" 540 PRINT " º Input DEGREE increments for Analysis : º" 550 PRINT " º [ ] º" 560 PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ"; 570 IF ANGLEMAX < 1 THEN ANG=.1 : GOTO 610 580 IF ANGLEMAX < 2 THEN ANG=.25: GOTO 610 590 IF ANGLEMAX < 5 THEN ANG=.5 : GOTO 610 600 IF ANGLEMAX <10 THEN ANG=2! ELSE ANG=5 610 Y=CSRLIN-1 : LOCATE Y,24,0,0,8: COLOR 14: PRINT USING "##.##";ANG; 620 LOCATE Y,36,1: COLOR 14: INPUT "",DANG$ 630 IF VAL(DANG$)<=0 THEN DANG=ANG ELSE DANG=VAL(DANG$) 640 NBIN=INT(ANGLEMAX/DANG) 650 FOR J=1 TO NTOTAL 660 AA=CINT(ANGLE(J)/DANG): IF AA>100 THEN AA=100 'Angle Bin 670 A(AA)=A(AA)+1 ' Ion Bin 680 N(AA)=N(AA)+1 ' Ion Bin 690 E(AA)=E(AA)+ENERGY(J) ' Energy Bin 700 L(AA)=L(AA)+ABS(LATERAL(J)) ' Lateral Bin 710 ANGMEAN#=ANGMEAN#+ABS(ANGLE(J)) ' Mean Final Angle 720 ANG2SUM#=ANG2SUM#+ANGLE(J)*ANGLE(J) ' Final Angle Straggle 730 EMEAN#=EMEAN#+ENERGY(J) ' Mean Final Energy 740 E2SUM#=E2SUM#+ENERGY(J)*ENERGY(J) ' Final Energy Straggle 750 NEXT J 760 ANGMEAN#=ANGMEAN#/NTOTAL ' Mean Final Angle 770 ANGSTRAG=SQR(ABS((ANG2SUM#/NTOTAL)-ANGMEAN#^2)) ' Final Angle Straggle 780 EMEAN#=EMEAN#/NTOTAL ' Mean Final Energy 790 ESTRAG=SQR(ABS((E2SUM#/NTOTAL)-EMEAN#^2)) ' Final Energy Straggle 800 FOR J=0 TO NBIN 810 A(J)=A(J)/NTOTAL 'Mean Ions vs. Angle 820 IF N(J)=0 GOTO 850 830 E(J)=E(J)/N(J) 'Mean Energy vs. Angle 840 L(J)=L(J)/N(J) 'Mean Lateral vs. Angle 850 NEXT J 860 CLS 870 OPEN "TRANS" FOR OUTPUT AS #2 880 COLOR 14: PRINT " Output is in file ";: COLOR 12: PRINT "TRANS ." 890 COLOR 15: ION$=LEFT$(ION$,2) 900 PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 910 PRINT USING "º Ion = \\, Mass = ###.###, Incident Energy = ####### keV º";ION$;M1;E0KEV 920 PRINT "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹" 930 COLOR 11 940 PRINT USING "º Mean Final Angle =##.## degree º Mean Final Energy =########, keV º";ANGMEAN#;EMEAN# 950 PRINT USING "º Final Angle Straggle =##.## degree º Final Energy Straggle = #######, keV º";ANGSTRAG;ESTRAG 960 PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 970 PRINT#2, "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 980 PRINT#2,USING "º Ion = \\, Mass = ###.###, Incident Energy = ####### keV º";ION$;M1;E0KEV 990 PRINT#2, "ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹" 1000 PRINT#2,USING "º Mean Final Angle =##.## degree º Mean Final Energy =########, keV º";ANGMEAN#;EMEAN# 1010 PRINT#2,USING "º Final Angle Straggle =##.## degree º Final Energy Straggle = #######, keV º";ANGSTRAG;ESTRAG 1020 PRINT#2, "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 1030 COLOR 12 1040 PRINT ">>>>>>> Averaged Values for Various Degrees of Deflection ----------" 1050 PRINT#2,">>>>>>> Averaged Values for Various Degrees of Deflection ----------" 1060 PRINT "Deflect Number Energy Lateral Fraction Fraction per" 1070 PRINT#2,"Deflect Number Energy Lateral Fraction Fraction per" 1080 PRINT "Angle of Loss Spread of Ions Unit Solid Angle" 1090 PRINT#2,"Angle of Loss Spread of Ions Unit Solid Angle" 1100 PRINT "(deg) Ions (keV) (A) (Rel. to Zero) " 1110 PRINT#2,"(deg) Ions (keV) (A) (Rel. to Zero) " 1120 PRINT "-------- ------- -------- ------- ---------- --------------" 1130 PRINT#2,"-------- ------- -------- ------- ---------- --------------" 1140 AREA0= 3.1416*(DANG/2)*(DANG/2) 'Area of diameter DANG degrees 1150 '' AREA0= 3.1416*.5*.5 'Area of 0.5 degrees 1160 FLUX0= A(0) / AREA0 1170 COLOR 15 1180 FOR K=0 TO NBIN 1190 PRINT USING"##.## "; K*DANG; 1200 PRINT#2, USING"##.## "; K*DANG; 1210 PRINT USING" #######"; N(K); 1220 PRINT#2, USING" #######"; N(K); 1230 ECHANGE=E0KEV-E(K): IF E(K)=0 THEN ECHANGE=0 1240 PRINT USING"########.## "; ECHANGE; 1250 PRINT#2, USING"########.## "; ECHANGE; 1260 PRINT USING"###### "; L(K); 1270 PRINT#2, USING"###### "; L(K); 1280 PRINT USING"####.##### "; A(K);: FLUXTOT=FLUXTOT+A(K) 1290 PRINT#2, USING"####.##### "; A(K);: FLUXTOT=FLUXTOT+A(K) 1300 AREA=3.1416*((K*DANG+DANG/2)^2-(K*DANG-DANG/2)^2) 1310 ''''AREA=3.1416*((K+.5)^2-(K-.5)^2): IF K=0 THEN AREA=AREA0 1320 IF K=0 THEN AREA=AREA0 1330 '------------------ Calculate RELATIVE Flux compared to central flux. 1340 IF FLUX0 <=0 THEN PRINT " Insufficient Data": GOTO 1380 1350 FLUX=A(K)/AREA/FLUX0 1360 PRINT USING"####.#####"; FLUX+.00001 1370 PRINT#2, USING"####.#####"; FLUX+9.999999E-06 1380 NEXT K 1390 CLOSE 1400 COLOR 14: PRINT "Output is in file ";: COLOR 12: PRINT "TRANS ."