mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-02 01:30:40 +00:00
193 lines
5.0 KiB
QBasic
193 lines
5.0 KiB
QBasic
|
||
100 REM SCATR3 - ALPHA PARTICLE TRAJECTORIES
|
||
105 REM COPYRIGHT 1973 - STATE UNIVERSITY OF NEW YORK
|
||
110 REM MODELS DEVELOPED BY J. BRESMAN, A. CAGGIANO, AND D. SCARL
|
||
115 REM PROGRAMMED BY C. LOSIK, M. WEISNER, D. SCARL, AND T. BLOOM
|
||
120 REM SCATER IS A SET OF ASSOCIATED PROGRAMS CONTAINING SCATR1,
|
||
125 REM SCATR2, AND SCATR3
|
||
130 REM LATEST REVISION:12-12-73
|
||
135 DIM Z(3),B(6),X(6),A(3,15),L(9)
|
||
140 REM ELECTRON REST ENERGY (MEV)
|
||
145 LET B4=.511
|
||
150 REM VELOCITY OF LIGHT (FEMTOMETERS/FEMTOSECOND)
|
||
155 LET C4=3E8
|
||
160 REM CLASSICAL ELECTRON RADIUS (FM)
|
||
165 LET D4=2.8
|
||
170 REM ALPHA PARTICLE CHARGE
|
||
175 LET Z4=2
|
||
180 REM ALPHA PARTICLE REST ENERGY (MEV)
|
||
185 LET M4=3720
|
||
190 REM TARGET ATOM RADIUS (FM)
|
||
195 LET R4=2E5
|
||
200 REM ATOMIC NUMBER OF (1=CU,2=AG,3=AU)
|
||
205 LET Z(1)=21
|
||
210 LET Z(2)=47
|
||
215 LET Z(3)=79
|
||
220 LET E4=5.3
|
||
225 LET S=3
|
||
230 LET G=8
|
||
235 FOR P=7 TO 9
|
||
240 LET L(P)=0
|
||
245 NEXT P
|
||
250 LET N1=0
|
||
255 PRINT
|
||
260 PRINT
|
||
265 PRINT"INSTRUCTIONS (0=NO,1=YES)";
|
||
270 INPUT I
|
||
275 IF I=0 THEN315
|
||
280 IF I<>1 THEN 265
|
||
285 PRINT"SCATR3 PLOTS THE TRAJECTORIES OF ALPHA"
|
||
290 PRINT"PARTICLES SCATTERED FROM INDIVIDUAL HEAVY ATOMS."
|
||
295 PRINT"INPUTS ARE: ALPHA PARTICLE ENERGY (BETWEEN 2 AND 8 MEV),"
|
||
300 PRINT"TARGET MATERIAL (1=COPPER,2=SILVER,3=GOLD),"
|
||
305 PRINT"AND THREE DIFFERENT PERPENDICULAR DISTANCES BETWEEN THE"
|
||
310 PRINT"INCIDENT ALPHA PATH AND THE CENTER OF THE TARGET ATOM."
|
||
315 PRINT"ALPHA ENERGY=";E4;
|
||
320 INPUT I
|
||
325 IF (I-2)*(8-I)>=0 THEN 340
|
||
330 PRINT "2<=ALPHA ENERGY<=8"
|
||
335 GOTO 315
|
||
340 LET E4=I
|
||
345 PRINT"TARGET MATERIAL=";S;
|
||
350 INPUT I
|
||
355 IF (I-1)*(3-I)>=0 THEN 370
|
||
360 PRINT "1=CU, 2=AG, 3=AU"
|
||
365 GOTO 345
|
||
370 LET S=I
|
||
375 REM DELETE THE NEXT LINE TO MODIFY MAGNIFICATION EXPONENT
|
||
380 GOTO415
|
||
385 PRINT"MAGNIFICATION=2.5E";G;" 2.5E";
|
||
390 INPUT I
|
||
395 IF (I-8)*(11-I)>=0 THEN 410
|
||
400 PRINT "8<=MAG. EXPONENT<=11"
|
||
405 GOTO 385
|
||
410 LETG=I
|
||
415 LET G1=10^(12-G)
|
||
420 LET G2=25*G1
|
||
425 LET G3=3.2*G1
|
||
430 LET G5=7*G3
|
||
435 LET R4=R4/G3
|
||
440 LET R3=R4^2
|
||
445 IF N1<>0 THEN 465
|
||
450 FOR P=1 TO 3
|
||
455 LET X(P)=G1*(2*P-28)
|
||
460 NEXT P
|
||
465 PRINT"CHOOSE X() BETWEEN";-.8*G2;"AND";.8*G2;"(FEMTOMETERS)"
|
||
470 FOR P=1 TO 3
|
||
475 PRINT"X(";P;")=";X(P);
|
||
480 INPUT I
|
||
485 IF .8*G2-ABS(I)<0 THEN 475
|
||
490 LET X(P)=I
|
||
495 LET X(P+3)=I
|
||
500 NEXT P
|
||
505 PRINT
|
||
510 PRINT
|
||
515 REM RADIAL ACCELERATION CONSTANT
|
||
520 LET A1=Z4*Z(S)*B4*D4*C4^2/M4
|
||
525 REM DISTANCE OF CLOSEST APPROACH
|
||
530 LET D=Z4*Z(S)*B4*D4/E4
|
||
535 REM INITIAL VELOCITY
|
||
540 LET V4=C4*SQR(2*E4/M4)
|
||
545 FOR P=1 TO 3
|
||
550 FOR J=1 TO 15
|
||
555 LET A(P,J)=0
|
||
560 NEXT J
|
||
565 NEXT P
|
||
570 FOR P=1TO3
|
||
575 IF X(P)<>0 THEN 590
|
||
580 LET Q=3.14159
|
||
585 GOTO 595
|
||
590 LET Q=ABS(2*ATN(D/(2*X(P))))
|
||
595 LET N1=SGN(X(P))*SGN(1.57079-Q)
|
||
600 FOR Y1=1TO8
|
||
605 LET A(P,Y1)=INT(ABS(X(P)/G1)+.5)*SGN(X(P))+26
|
||
610 NEXT Y1
|
||
615 IF ABS(Q-1.57079)>.03 THEN630
|
||
620 LET A(P,8)=A(P,8)/100+25*SGN(X(P))+26
|
||
625 GOTO 715
|
||
630 IF Q<1.57079 THEN645
|
||
635 LET Y=1
|
||
640 GOTO 650
|
||
645 LET Y=15
|
||
650 FOR Y1=8TOY STEP SGN(1.57079-Q)
|
||
655 LET X=X(P)+G3*(Y1-8)*ABS(SIN(Q)/COS(Q))*N1
|
||
660 IF Y1=8 THEN 670
|
||
665 LET A(P,Y1)=A(P,Y1)/100+INT(ABS(X/G1)+.5)*SGN(X)+26
|
||
670 IF ABS(X)>G2 THEN 685
|
||
675 NEXT Y1
|
||
680 GOTO 715
|
||
685 IFABS(G2-ABS(X))<=ABS(G2-ABS(INT(A(P,Y1-1))-26)*G1)THEN705
|
||
690 LET N=Y1-SGN(1.57079-Q)
|
||
695 LET A(P,Y1)=(A(P,Y1)-INT(A(P,Y1)))*100
|
||
700 GOTO 710
|
||
705 LET N=Y1
|
||
710 LET A(P,N)=A(P,N)-INT(A(P,N))+25*SGN(X)+26
|
||
715 NEXT P
|
||
720 PRINT TAB(13);"ALPHA ENERGY:";E4;"MEV";TAB(43);"TARGET ";
|
||
725 PRINT"CHARGE:";Z(S)
|
||
730 PRINT
|
||
735 PRINTTAB(10);"X(1)=";X(1);TAB(30);"X(2)=";X(2);TAB(50);"X(3)=";X(3)
|
||
740 PRINT
|
||
745 PRINT TAB(31);"(FEMTOMETERS)"
|
||
750 PRINT TAB(8);"X=";TAB(15);-20*G1;TAB(25);-10*G1;TAB(35);" 0";
|
||
755 PRINT TAB(45);10*G1;TAB(55);20*G1
|
||
760 PRINT"Y=";
|
||
765 GOSUB 935
|
||
770 FOR Y=1 TO 15
|
||
775 IF Y<>8 THEN 785
|
||
780 LET L(7)=26
|
||
785 IF ABS(Y-8)>R4 THEN 800
|
||
790 LET L(8)=INT(3.2*SQR(R3-(Y-8)^2)+.5)+26
|
||
795 LET L(9)=52-L(8)
|
||
800 FOR P=1 TO 3
|
||
805 LET L(P)=INT(A(P,Y))
|
||
810 LET L(P+3)=INT((A(P,Y)-L(P))*100+.5)
|
||
815 NEXT P
|
||
820 PRINT G3*(Y-8);TAB(10);"I";
|
||
825 LETJ=62
|
||
830 FOR P=1 TO 9
|
||
835 IF ABS(L(P)-J/2)>=J/2 THEN 850
|
||
840 LET J=INT(L(P)+.5)
|
||
845 LET I=P
|
||
850 NEXT P
|
||
855 IFJ=62THEN950
|
||
860 LET L(I)=0
|
||
865 PRINT TAB(10+J);
|
||
870 IF Y<>8THEN 880
|
||
875 IF J=26 THEN 910
|
||
880 IF (I-1)*(I-4)<>0 THEN 890
|
||
885 PRINT "1";
|
||
890 IF (I-2)*(I-5)<>0 THEN 900
|
||
895 PRINT "2";
|
||
900 IF (I-3)*(I-6)<>0 THEN 910
|
||
905 PRINT "3";
|
||
910 IF I<>7 THEN 920
|
||
915 PRINT "N";
|
||
920 IF I<8 THEN 825
|
||
925 PRINT "B";
|
||
930 GOTO 825
|
||
935 PRINT TAB(11);"-----I---------I---------I---------I";
|
||
940 PRINT "----------I-----"
|
||
945 RETURN
|
||
950 PRINT
|
||
955 IFY=15 THEN 965
|
||
960 PRINT
|
||
965 NEXT Y
|
||
970 GOSUB 935
|
||
975 FORP=1TO3
|
||
980 PRINTTAB(23*(P-1));"ANGLE(";P;")=";
|
||
985 IF X(P)<>0 THEN 1000
|
||
990 PRINT 180;
|
||
995 GOTO1005
|
||
1000 PRINT INT(ABS(360/3.14159*ATN(D/(2*X(P))))*100)/100;
|
||
1005 NEXTP
|
||
1010 PRINT
|
||
1015 PRINT
|
||
1020 PRINT"1=NEW DISTANCES, 2=NEW ENERGY OR TARGET, 3=END PROGRAM";
|
||
1025 INPUT I
|
||
1030 PRINT
|
||
1035 IF I=1 THEN 470
|
||
1040 IF I=2 THEN 315
|
||
1045 IF I<>3 THEN 1020
|
||
1050 END
|
||
x*U*=$B$$BB$$BB$$BL |