File LAUCKI.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

1000 REM      ***BURP LANGUAGE PROGRAM ADAPTED FROM "FRAME"
1010 REM      ***(H. YAKOWITZ,R.L.MYKLEBUST,K.F.J.HEINRICH)
1020 REM      ***U.S.NATIONAL BUREAU OF STANDARDS
1030 REM      ***OMIT ALL REM STATEMENTS TO SAVE SPACE
1040 DIM A(3,3),B(3,9),C(8),E(8),F(8),G(3),H(2,2),K(8),L(8)
1050 DIM M(8),P(2,3),R(8),S(8),U(4),V(2,10),W(12),X(92),Z(8)
1060 REM      ***DEFINE VARIABLE AND READ IN CONSTANTS
1070 REM      ***A(3,3) ARE DATA FOR KA,LA,MA ENERGY CALC
1080 FOR I=1 TO 3
1090 FOR J=1 TO 3
1100 READ A(J,I)
1110 NEXT J
1120 NEXT I
1130 DATA -1.88608E-2,2.21859,-5.17083
1140 DATA -.123941,3.29533,-9.75836
1150 DATA -.47555,6.84662,-20.0833
1160 REM      ***B(3,9) ARE DATA FOR ABS. EDGE CALC
1170 FOR I=1 TO 9
1180 FOR J=1 TO 3
1190 READ B(J,I)
1200 NEXT J
1210 NEXT I
1220 DATA -3.97931E-2,2.423,5.5091
1230 DATA -.033916,2.82526,9.03526
1240 DATA -8.65397E-2,3.32315,10.2505
1250 DATA -.228343,4.31172,12.0025
1260 DATA 1.25179,-7.838,-11.5803
1270 DATA .834903,-4.14925,-3.33802
1280 DATA .442217,-.979241,3.15348
1290 DATA .25141,.931913,8.03561
1300 DATA .272951,.688906,7.4243
1310 REM      ***C(8) ARE CONCENTRATIONS OF ELEMENTS
1320 REM      ***D IS GEOMETRY FACTOR
1330 REM      ***E(8) ARE EMISSION LINE ENERGIES OF ELEMENTS
1340 REM      ***F(8) ARE ABSORPTION EDGE ENERGIES OF ELEMENTS
1350 REM      ***G(3) ARE ABS EDGE JUMP RATIOS
1360 FOR I=1 TO 3
1370 READ G(I)
1380 NEXT I
1390 DATA .88,.75,.5
1400 REM      ***H(2,2) USED IN FLUOR YIELD CALC.
1410 FOR I=1 TO 2
1420 FOR J=1 TO 2
1430 READ H(J,I)
1440 NEXT J
1450 NEXT I
1460 DATA 2.373,-8.902
1470 DATA 2.946,-13.94
1480 REM      *** I IS INDEX OF ELEMENT BEING CALCULATED
1490 REM      *** J IS INDEX OF MATRIX ELEMENT
1500 REM      *** K(8) ARE NORMALIZED INTENSITIES
1510 REM      ***L(8) ARE LINES ANALYZED 1=K,2=L,2=M,0=BY DIFF
1520 REM      ***M(8) ARE USED FOR ABS COEFF
1530 REM      ***N1=TOTAL NO. ELEM,N2=N0. ANALYZED,N3=# ITERATION
1540 REM      ***P(2,3)=FACTORS FOR INTERLINE FLUORESCENCE
1550 FOR I=1 TO 2
1560 FOR J=1 TO 3
1570 READ P(I,J)
1580 NEXT J
1590 NEXT I
1600 DATA 1,.24,.02
1610 DATA 4.2,1,.02
1620 REM      ***Q1 IS PARTIAL CONCENTRATION SUM
1630 REM      ***R(8) ARE USED FOR BACK SCATTER FACTORS
1640 REM      ***S(8) ARE USED FOR STOPPING POWERS
1650 REM      ***T0,T1,...,T9 ARE TEMPORARY SCRATCHPAD
1660 REM      ***U(4) ARE EXPONENTS IN MASS ABS COEFF CALC.
1670 REM      ***V(2,10) ARE DATA FOR MASS ABS COEFF CALC
1680 FOR I=1 TO 2
1690 FOR J=1 TO 10
1700 READ V(I,J)
1710 NEXT J
1720 NEXT I
1730 DATA 1,1,1.17,1.63,1,1.16,1.4,1.621,1.783,1
1740 DATA 1,2,2,2,3,3,3,3,3,4
1750 REM      *** W(12)-DATA FOR MASS ABS COEFF CALC
1760 FOR I=1 TO 12
1770 READ W(I)
1780 NEXT I
1790 DATA -.232229,-.254471,.256216,1.35917
1800 DATA 4.07005,4.76925,1.15119,-9.49212
1810 DATA -6.22075,-10.3788,-5.68485,18.6408
1820 REM      ***X(92) ARE ATOMIC WEIGHTS
1830 FOR I=1 TO 92
1840 READ X(I)
1850 NEXT I
1860 DATA 1.008,4.004,6.94,9.013,10.82,12.011
1870 DATA 14.007,16,19,20.18,22.99,24.31
1880 DATA 26.98,28.09,30.97,32.06,35.45,39.95
1890 DATA 39.1,40.08,44.96,47.9,50.94,52
1900 DATA 54.94,55.85,58.93,58.71,63.54,65.37
1910 DATA 69.72,72.59,74.92,78.96,79.91,83.8
1920 DATA 85.47,87.62,88.91,91.22,92.91,95.94
1930 DATA 99,101.1,102.9,106.4,107.9,112.4
1940 DATA 114.8,118.7,121.8,127.6,126.9,131.3
1950 DATA 132.9,137.3,138.9,140.1,140.9,144.2
1960 DATA 145,150.4,152,157.2,158.9,162.5
1970 DATA 164.9,167.3,168.9,173,175,178.5
1980 DATA 180.95,183.85,186.2,190.2,192.2,195.1
1990 DATA 196.97,200.6,204.4,207.2,209,210
2000 DATA 210,222,223,226,227,232,231,238
2010 REM      ***Y IS FLUORESCENCE CORR.
2020 REM      ***Z(8) ARE AT. NO.'S OF ELEMENTS
2030 DEF FNE(Y)=Y^1.66667
2040 DEF FNF(Y)=1+Y+.05*Y*Y
2050 REM      *** INPUT KV, SURFACE TILT, TAKEOFF ANGLE
2060 PRINT "KV=";
2070 INPUT V
2080 PRINT "   S=";
2090 INPUT T1
2100 PRINT "   T=";
2110 INPUT D
2120 PRINT
2125 LET D2=D
2130 LET D=COS(1.74533E-2*T1)/SIN(1.74533E-2*D)
2140 REM      ***INPUT KLM LINE DESIG. & NORMALIZED INTENSITES
2150 PRINT "ELEM(Z)","LINE","K-RATIO"
2160 FOR N1=1 TO 8
2170 INPUT Z(N1)
2180 REM      ***Z=0 INDICATES ALL DONE
2190 IF Z(N1)=0 THEN 2290
2200 PRINT ,;
2210 INPUT L(N1)
2220 REM      ***L=0 INDICATES BY DIFFERENCE
2230 IF L(N1)=0 THEN 2320
2240 PRINT ,;
2250 INPUT K(N1)
2260 PRINT
2270 NEXT N1
2280 GOTO 2300
2290 LET N1=N1-1
2300 LET N2=N1
2310 GOTO 2330
2320 LET N2=N1-1
2330 LET N3=1
2340 LET Q=0
2341 PRINT "KV=","S=","T="
2342 PRINT V,T1,D2
2343 PRINT
2344 PRINT
2350 REM      ***CALC ENERGIES
2360 FOR I=1 TO N2
2370 LET Z=LOG(Z(I))
2380 LET T2=L(I)*L(I)
2390 LET E(I)=EXP(A(1,L(I))*Z*Z+A(2,L(I))*Z+A(3,L(I)))
2400 LET F(I)=EXP(B(1,T2)*Z*Z+B(2,T2)*Z-B(3,T2))
2410 LET C(I)=K(I)
2420 LET Q=Q+C(I)
2430 NEXT I
2440 IF N1=N2 THEN 2490
2450 IF Q=<1 THEN 2470
2460 LET Q=.99
2470 LET K(N1)=1-Q
2480 LET C(N1)=K(N1)
2490 LET Q=0
2500 REM      ***CALC Z CORR
2510 FOR I=1 TO N2
2520 FOR J=1 TO N1
2530 LET T6=V/F(I)
2540 LET T7=.00873*T6^3-.1669*T6^2+.9662*T6+.4523
2550 LET T8=.002703*T6^3-.05182*T6^2+.302*T6-.1836
2560 LET T9=.887-3.44/T6+9.33/T6^2-6.43/T6^3
2570 LET R(J)=T7-T8*LOG(T9*Z(J)+25)
2580 LET T2=9.76*Z(J)+58.5*Z(J)^(-.19)
2590 LET S(J)=2*Z(J)/X(Z(J))/(V+F(I))*LOG(583*(V+F(I))/T2)
2600 LET E=E(I)
2610 LET Z=Z(J)
2620 GOSUB 3310
2630 LET M(J)=T3
2640 NEXT J
2650 REM      ***CALC. A CORR
2660 LET T2=.000003*(FNE(V)-FNE(F(I)))
2670 LET T3=T2*M(I)*D
2680 LET T3=FNF(T3)
2690 LET T4=T3
2700 LET T7=0
2710 LET T8=0
2720 LET T9=0
2730 FOR J=1 TO N1
2740 LET T7=T7+C(J)*S(J)
2750 LET T8=T8+C(J)*R(J)
2760 LET T9=T9+C(J)*M(J)
2770 NEXT J
2780 LET T3=T2*T9*D
2790 LET T3=FNF(T3)
2800 REM      ***COMBINE Z &A CORR
2810 LET T2=R(I)*T3*T7/S(I)/T8/T4
2820 REM      ***CALC F CORR
2830 LET Y=0
2840 FOR J=1 TO N1
2850 LET Z=LOG(Z(J))
2860 LET T4=1
2870 LET E=EXP(A(1,T4)*Z*Z+A(2,T4)*Z+A(3,T4))
2880 IF E<F(I) THEN 3480
2890 IF E>F(I)+5 THEN 3480
2900 LET T7=.5*EXP(H(1,T4)*LOG(Z(J))+H(2,T4))
2910 LET T8=0
2920 FOR T6=1 TO N1
2930 LET Z=Z(T6)
2940 GOSUB 3310
2950 LET T8=T8+T3*C(T6)
2960 NEXT T6
2970 LET T6=T9*D/T8
2980 LET T5=333000/(FNE(V)-FNE(F(I)))/T8
2990 LET T6=LOG(1+T6)/T6+LOG(1+T5)/T5
3000 LET Z=Z(I)
3010 GOSUB 3310
3020 LET Z=LOG (Z(J))
3030 LET E=EXP(B(1,T4*T4)*Z*Z+B(2,T4*T4)*Z-B(3,T4*T4))
3040 LET T5=FNE((V/E-1)/(V/F(I)-1))*P(T4,L(I))*G(L(I))
3050 LET Y=Y+C(J)*T7*T5*T3*T6*X(Z(I))/X(Z(J))/T8
3060 NEXT J
3070 REM      ***CALC CONC & NEXT APPROX
3080 LET T2=C(I)/T2*(1+Y)
3090 LET C(I)=(K(I)*C(I)*(1-T2))/(K(I)*(C(I)-T2)+T2*(1-C(I)))
3100 LET Q=Q+C(I)
3110 NEXT I
3120 IF N1=N2 THEN 3180
3130 IF Q=<1 THEN 3160
3140 LET C(N1)=0
3150 GOTO 3180
3160 LET C(N1)=(1-Q)
3170 LET Q=1
3180 IF N3=3 THEN 3240
3190 LET N3=N3+1
3200 FOR I=1 TO N1
3210 LET C(I)=C(I)/Q
3220 NEXT I
3230 GOTO 2490
3237 PRINT
3240 PRINT
3241 PRINT "ELEM(Z)","LINE","K-RATIO"
3242 FOR I=1 TO N1
3243 PRINT Z(I),L(I),K(I)
3244 NEXT I
3245 PRINT
3246 PRINT
3250 PRINT "ELEM(Z)","%"
3260 FOR I=1 TO N1
3270 PRINT Z(I),100*C(I)
3280 NEXT I
3290 STOP
3300 REM      ***SUBR. FOR ABS. COEFF. ENERGY E IN ELEM. Z
3310 LET T3=LOG(Z)
3320 LET U(1)=EXP(-4.5522E-3*T3*T3-6.8535E-3*T3+1.07018)
3330 LET U(2)=2.73
3340 LET U(3)=2.6
3350 LET U(4)=2.22
3360 IF Z<42 THEN 3380
3370 LET U(2)=EXP(-.113159*T3*T3+.836883*T3-.545969)
3380 LET T1=1
3390 IF T1=10 THEN 3420
3400 LET T0=EXP(B(1,T1)*T3*T3+B(2,T1)*T3-B(3,T1))
3410 IF E<T0 THEN 3460
3420 LET T0 =W(V(2,T1))*T3*T3+W(V(2,T1)+4)*T3+W(V(2,T1)+8)
3430 LET T0 =EXP(T0)/V(1,T1)
3440 LET T3=T0*(12.398/E)^U(V(2,T1))
3450 RETURN
3460 LET T1=T1+1
3470 GOTO 3390
3480 IF T4=2 THEN 3060
3490 LET T4=2
3500 GO TO 2870
3510 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search