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 EF(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