Title :XEDSDETECT Keywords :XEDS Computer :DEC VAX-11/730 - 11/785 or higher series Operating System :VMS Programming Language :Fortran IV Hardware Requirements :NONE Author(s) :Nestor J. Zaluzec Correspondence Address :Electron Microscopy Center, Materials Science, :Argonne Nat. Lab, Argonne, IL. 60439 USA :Email: Zaluzec @ ANLEMC (BITNET) Abstract: XEDSDETECTis a general program which computes the relative detector efficiency of Si(Li) and HP Ge EDS detector systems. The user inputs as parameters the thickness of the respective detector absorbing layers (Parylene, Al, Be, Au, Dead Layer and Active Layer) as well as the energy range and increment for the calculation. Output is in simple tabular form listing energy and relative efficiency for the chosen parameters. ------------------------------------------------------------------------------ Title :XEDSDETECT Keywords :XEDS Computer :DEC VAX-11/730 - 11/785 or higher series Operating System :VMS Programming Language :Fortran IV Hardware Requirements :NONE Author(s) :Nestor J. Zaluzec Correspondence Address :Electron Microscopy Center, Materials Science, :Argonne Nat. Lab, Argonne, IL. 60439 USA : Email: Zaluzec @ ANLMST (BITNET) DOCUMENTATION: The compliation procedure on a Vax system is: Fortran XEDSDETECT LINK XEDSDETECT RUN XEDSDETECT References for absorption coefficeints are in the source code: An example of the input/output of the program is: RUN DETECT XEDS Detector Efficiency Calculation ----------------------------------- Enter Parameters for Calculation Enter Pyrolyene Thickness in Angstroms: 1000 Enter Aluminium Light Barrier Thickness in Angstroms: 1000 Enter Beryllium Thickness in Microns: 0 Enter Gold Electrical Contact Thickness in Angstroms: 200 Enter Detector Dead Layer Thickness in Angstroms: 3000 Enter Detector Active Layer Thickness in MM: 3 Enter Start Energy (eV) 200 Enter End Energy (eV) 3000 Enter Increment Energy (eV) 100 Energy (ev) Si(Li) HpGe 200.000 0.0017 0.0000 300.000 0.0218 0.0000 400.000 0.0883 0.0027 500.000 0.2161 0.0308 600.000 0.3515 0.1049 700.000 0.4630 0.2062 800.000 0.5488 0.3090 900.000 0.6331 0.4140 1000.000 0.6983 0.5049 1100.000 0.7489 0.5810 1200.000 0.7886 0.6436 1300.000 0.8200 0.2065 1400.000 0.8452 0.2740 1500.000 0.8682 0.2912 1600.000 0.7951 0.3181 1700.000 0.8224 0.3783 1800.000 0.8451 0.4349 1900.000 0.6982 0.4872 2000.000 0.7313 0.5348 2100.000 0.7600 0.5779 2200.000 0.7849 0.6166 2300.000 0.7550 0.6097 2400.000 0.7777 0.6429 2500.000 0.7978 0.6729 2600.000 0.8156 0.6998 2700.000 0.8314 0.7241 2800.000 0.8308 0.7332 2900.000 0.8444 0.7537 3000.000 0.8566 0.7723 Change the Iteration Loop [N] N Detector Paramters Used in this Calculation Pyrolene = 1.0000E+03 Angstroms Aluminium= 1.0000E+03 Angstroms Beryllium= 0.0000E+00 Microns Gold = 2.0000E+02 Angstroms Dead = 3.0000E+03 Angstroms Active = 3.0000E+00 MM Angle = 0.0000 Degrees FORTRAN STOP ------------------------------------------------------------------------------ Title :XEDSDETECT Keywords :XEDS Computer :DEC VAX-11/730 - 11/785 or higher series Operating System :VMS Programming Language :Fortran IV Hardware Requirements :NONE Author(s) :Nestor J. Zaluzec Correspondence Address :Electron Microscopy Center, Materials Science, :Argonne Nat. Lab, Argonne, IL. 60439 USA : Email: Zaluzec @ ANLMST (BITNET) Abstract: XEDSDETECT is a general program which computes the relative detector efficiency of Si(Li) and HP Ge EDS detector systems. The user inputs as parameters the thickness of the respective detector absorbing layers (Parylene, Al, Be, Au, Dead Layer and Active Layer) as well as the energy range and increment for the calculation. Output is in simple tabular form listing energy and relative efficiency for the chosen parameters. ------------------------------------------------------------------------------ SOURCE CODE: ----------------------------------------------------------------------------- Program XEDSDETECTOR C C This program calculates the releative detector C efficiency of Si(Li) and HP Ge Detectors over the C User supplied Energy Range C the Operator is asked to input the Detector Parameters. C Write (7,1) 1 format (' XEDS Detector Efficiency Calculation',/, c '------------------------------------',/, c ' Enter Parameters for Calculation',//) write (7,400) 400 format ($,' Enter Pyrolyene Thickness in Angstroms: ') read (5,20) Tpy Write (7,401) 401 format ($,' Enter Aluminium Light Barrier Thickness in Angstroms: ') read (5,20) Tal Write (7,402) 402 format($,' Enter Beryllium Thickness in Microns: ') read (5,20) Tbe Write (7,403) 403 format( $,' Enter Gold Electrical Contact Thickness in Angstroms: ') read (5,20) Tau Write (7,404) 404 format ($,' Enter Detector Dead Layer Thickness in Angstroms: ') read (5,20) Tsid write (7,405) 405 format ($,' Enter Detector Active Layer Thickness in MM: ') read (5,20) Tsia c c now convert everything into units of CM c Tpy=Tpy*1e-08 Tal=Tal*1e-08 Tbe=Tbe*1e-04 Tau=Tau*1e-08 Tsid=Tsid*1e-08 Tsia=Tsia*1e-01 c c assume Si Dead layer and Ge Dead layer are the same to simplify c the number of input questions c Tged=Tsid c c assume Si Active and Ge Active are the same c Tgea=Tsia C c assume xray's have normal incidence to the crystal c Alpha=0. 9 write (7,10) 10 format (' Enter Start Energy (eV) ') read (5,20) elow if (elow.lt.100.) elow =100. 20 format (1f10.0) write (7,30) 30 format (' Enter End Energy (eV)') read (5,20) ehigh if (ehigh.gt.100000.) ehigh=100000. write (7,40) 40 format(' Enter Increment Energy (eV)') read (5,20) einc if (einc.lt.1.) einc=1. c c start the loop c write (7,41) 41 format(' Energy (ev) Si(Li) HpGe') do 50 i=int(elow),int(ehigh),int(einc) en=float(i) e=en/1000. c c call the library routines for the calculation c call deffsi(e,tpy,tal,tbe,tau,tsid,tsia,alpha,effsi) call deffge(e,tpy,tal,tbe,tau,tged,tgea,alpha,effge) write (7,60) en,effsi,effge 60 format(1x,1f10.3,2x,1f7.4,2x,1f7.4) 50 continue write (7,70) 70 format (/,$,' Change the Iteration Loop [N] ') read (5,80) ans 80 format (1a1) if ((ans.eq.'Y').or.(ans.eq.'y')) go to 9 write (7,90) 1e8*Tpy,1e8*Tal,1e4*Tbe,1e8*Tau,1e8*Tsid,10*Tsia,alpha 90 format(' Detector Paramters Used in this Calculation',//, c' Pyrolene = ',1pe12.4, ' Angstroms',/, c' Aluminium= ',e12.4, ' Angstroms',/, c' Beryllium= ',e12.4, ' Microns',/, c' Gold = ',e12.4, ' Angstroms',/, c' Dead = ',e12.4, ' Angstroms',/, c' Active = ',e12.4, ' MM',/, c' Angle = ',0pf12.4, ' Degrees'//) stop end SUBROUTINE DEFFGE(E,TPY,TAL,TBE,TAU,TGE,TGEA,ALPHA,EFF) C C SUBROUTINE TO CALCULATE DETECTOR EFFICIENCIES C USING NEW PARAMETERIZATION OF ABSORPTION COEFFICIENTS C FROM THE HENKE & EBISU DATA FOR BE,C,O,AL, & SI C FOR E> 1.5KEV USE THE THINH & LEROUX PARAMETERIZATION C C E = X-RAY ENERGY (KEV) C TPY = THICKNESS OF PARYLENE N LAYER (CM) C TAL = THICKNESS OF AL LAYER (CM) C TBE = THICKNESS OF BE WILNDOW (CM) C TGE = " GE DEAD LAYER (CM) C TAU = " AU FILM (CM) C TGEA = " GE ACTIVE AREA (CM) C ALPHA = ANGLE OF INCIDENCE OF X-RAY TO DETECTOR C EFF = CALCULATED EFFICIENCY C IF(E.LE.0.05) GO TO 99 ! CAN'T DO , 50 EV WL=12.3981/E COSA=COS(ALPHA/57.296) AC=ABSCOF(6.,WL) !CARBON AH=ABSCOF(1.,WL) !HYDROGEN ABE=ABSCOF(4.,WL) !BERYLLIUM AAL=ABSCOF(13.,WL) !ALUMINIUM ASI=ABSCOF(14.,WL) !SILICON AAU=ABSCOF(79.,WL) !GOLD AGE=ABSCO(32.,WL) !GERMANIUM IF(E.LE.1.486) GO TO 10 C C MASS ABSORPTION COEFFICIENTS FROM THINH & LERoUX C FOR C,O,AL,BE,SI,AU GOOD FOR 1>E(KEV)>40. C CAU=19.4943 !GOLD AAU=CAU*0.7588*WL**2.393 EN=E IF(EN.GT.2.2057) AAU=CAU*2.2057*WL**2.2 IF(EN.GT.2.2911) AAU=CAU*2.2911*WL**2.4 IF(EN.GT.2.743) AAU=CAU*2.743*WL**2.4471 IF(EN.GT.3.1478) AAU=CAU*3.1478*WL**2.4471 IF(EN.GT.3.4249) AAU=CAU*3.4249*WL**2.575 IF(EN.GT.11.9187)AAU=CAU*11.9187*WL**2.3554 IF(EN.GT.13.7336)AAU=CAU*13.7336*WL**2.61439 IF(EN.GT.14.3528)AAU=CAU*14.3528*WL**2.650 CSI=9.1309 !SILICON IF(EN.GT.0.1487) ASI=CSI*0.1487*WL**2.79 IF(EN.GT.1.8389) ASI=19.57*WL**2.7345 IF(EN.GT.5.9) ASI=CSI*1.8389*WL**2.94 ABE=2.4604*0.111*WL**3.03 !BERYLLIUM AC=2.19*WL**2.7345 !CARBON IF(EN.GT.1.75) AC=3.8531*0.2838*WL**3.094 AAL=8.5946*0.1177*WL**2.805 !ALUMINIUM IF(EN.GT.1.5596) AAL=16.16*WL**2.7345 IF(EN.GT.6.2) AAL=8.5946*1.5596*WL**2.953 AO2=4.61*WL**2.7345 !OXYGEN IF(EN.GT.3.)AO2=5.3268*0.532*WL**3.041 IF(EN.GT.1.)AH=3.0353*WL**0.01460 !HYDROGEN IF(EN.GT.2.)AH=3.5000*WL**0.05890 IF(EN.GT.3.5)AH=3.5000*WL**0.07434 IF(EN.GT.4.) AH=2.9370*WL**0.27795 IF(EN.GT.6.) AH=0.6270*WL**0.43231 IF(EN.GT.9.2)AH=0.0890*WL**0.44767 10 APY=0.0774*AH + 0.9226*AC !PARYLENE N = C8H8 OR 92%C 7%H BY WEIGHT AAPY=-APY*1.11*TPY/COSA !DENSITY PARYLENE=1.11 AAAL=-AAL*DEN(13.)*TAL/COSA AABE=-ABE*DEN(4.)*TBE/COSA AASI=-ASI*DEN(14.)*TSI/COSA AAAU=-AAU*DEN(79.)*TAU/COSA AAGE=-AGE*DEN(32.)*TGE/COSA AGEA=-AGE*DEN(32.)*TGEA EFF=EXP(AAPY+AAAL+AABE+AAAU+AAGE)*(1.-EXP(AGEA)) RETURN 99 EFF=0. RETURN END FUNCTION PARTITION(IZ,L) C C Z=ATOMIC NUMBER C L=LINE 1=k 2=l 3=m C C C CALCULATION OF A/A+B RATIOS C C Z=IZ IF((11.LE.IZ).AND.(IZ.LE.19)) AK=1.052 - 4.39E-04*Z**2 IF((20.LE.IZ).AND.(IZ.LE.29)) AK=.8960 - 6.575E-04*Z IF((30.LE.IZ).AND.(IZ.LE.60)) C AK=1.0366 - 6.82E-03*Z + 4.815E-05*Z**2 IF(L.EQ.1) GO TO 7 IF((27.LE.IZ).AND.(IZ.LE.50)) AK=1.617 - 0.0398*Z + 3.766E-04*Z**2 IF((51.LE.IZ).AND.(IZ.LE.92)) C AK=.609-1.619E-3*Z-.03248*SIN(.161*(IZ-51)) IF(L.EQ.2) GO TO 7 AK=0.65 7 PARTITION=AK RETURN END C C C C C FUNCTION FYIELD(IZ,L) C C CALCULATION OF X-RAY FLUORESCENCE YIELDS C Z= ATOMIC NUMBER L= SHELL 1=K 2=L 3=M C C EXPERIMENTAL VALUES USED WHEN FIT DOESNOT YIELD C GOOD RESULTS RELATIVE TO EXPERIMENTAL DATA C Z=IZ A=0.015 + 0.0327*Z -0.64E-06*Z**3 A=A**4 WK=A/(1+A) IF(L.EQ.2) WK=YIELD(Z,2) IF(L.EQ.3) WK=YIELD(Z,3) IF(Z.EQ.3) WK=1.06E-4 !XRAY VALUE IF(Z.EQ.4) WK=3.04E-4 !XRAY VLAUE IF(Z.EQ.5) WK=6.4E-4 !AVERAGE VALUE FROM XRAY IF(Z.EQ.6) WK=0.00269 !EXP. DATA. FREUND X-RAY SPECT. VOL4 IF(Z.EQ.7) WK=0.00473 !1975 PAGE 90-91 IF(Z.EQ.8) WK=0.00645 !OR BAMBYNEK ETAL REV. MOD. PHYS. IF(Z.EQ.9) WK=0.0067 !VOL.44.,NO.4, 1972 716-813 AV. XRAY IF(Z.EQ.10) WK=1.55E-2 IF(Z.EQ.11) WK=WK IF(Z.EQ.12) WK=0.02475 !AVERAGE X-RAY IF(Z.EQ.13) WK=0.0380 IF(Z.EQ.14) WK=0.043 IF(Z.EQ.15) WK=0.058 !AVERAGE X-RAY IF(Z.EQ.16) WK=0.0795 IF(Z.EQ.17) WK=0.1 IF(Z.EQ.18) WK=0.1225 IF(Z.EQ.22) WK=.209 IF(Z.EQ.23) WK=.256 IF(Z.EQ.24) WK=.273 IF(Z.EQ.25) WK=.319 IF(Z.EQ.26) WK=.350 IF(Z.EQ.27) WK=.391 IF(Z.EQ.28) WK=.432 IF(Z.EQ.29) WK=.472 IF(Z.EQ.30) WK=.499 IF(Z.EQ.32) WK=.583 IF(Z.EQ.47) WK=.834 FYIELD=WK RETURN END C C C C C SUBROUTINE DEFF6(E,TPY,TAL,TBE,TSI,TAU,TSIA,ALPHA,EFF) C C SUBROUTINE TO CALCULATE DETECTOR EFFICIENCIES C USING NEW PARAMETERIZATION OF ABSORPTION COEFFICIENTS C FROM THE HENKE & EBISU DATA FOR BE,C,O,AL, & SI C FOR E> 1.5KEV USE THE THINH & LEROUX PARAMETERIZATION C C E = X-RAY ENERGY (KEV) C TPY = THICKNESS OF PARYLENE N LAYER (CM) C TO2 = THICKNESS OF AL LAYER (CM) C TBE = THICKNESS OF BE WILNDOW (CM) C TSI = " SI DEAD LAYER (CM) C TAU = " AU FILM (CM) C TSIA = " SI ACTIVE AREA (CM) C ALPHA = ANGLE OF INCIDENCE OF X-RAY TO DETECTOR C EFF = CALCULATED EFFICIENCY C IF(E.LE.0) GO TO 99 WL=12.3981/E COSA=COS(ALPHA/57.296) AC=ABSCOF(6.,WL) !CARBON AH=ABSCOF(1.,WL) !HYDROGEN ABE=ABSCOF(4.,WL) !BERYLLIUM AAL=ABSCOF(13.,WL) !ALUMINIUM ASI=ABSCOF(14.,WL) !SILICON AAU=ABSCOF(79.,WL) !GOLD IF(E.LE.1.486) GO TO 10 C C MASS ABSORPTION COEFFICIENTS FROM THINH & LERoUX C FOR C,O,AL,BE,SI,AU GOOD FOR 1>E(KEV)>40. C CAU=19.4943 !GOLD AAU=CAU*0.7588*WL**2.393 EN=E IF(EN.GT.2.2057) AAU=CAU*2.2057*WL**2.2 IF(EN.GT.2.2911) AAU=CAU*2.2911*WL**2.4 IF(EN.GT.2.743) AAU=CAU*2.743*WL**2.4471 IF(EN.GT.3.1478) AAU=CAU*3.1478*WL**2.4471 IF(EN.GT.3.4249) AAU=CAU*3.4249*WL**2.575 IF(EN.GT.11.9187)AAU=CAU*11.9187*WL**2.3554 IF(EN.GT.13.7336)AAU=CAU*13.7336*WL**2.61439 IF(EN.GT.14.3528)AAU=CAU*14.3528*WL**2.650 CSI=9.1309 !SILICON IF(EN.GT.0.1487) ASI=CSI*0.1487*WL**2.79 IF(EN.GT.1.8389) ASI=19.57*WL**2.7345 IF(EN.GT.5.9) ASI=CSI*1.8389*WL**2.94 ABE=2.4604*0.111*WL**3.03 !BERYLLIUM AC=2.19*WL**2.7345 !CARBON IF(EN.GT.1.75) AC=3.8531*0.2838*WL**3.094 AAL=8.5946*0.1177*WL**2.805 !ALUMINIUM IF(EN.GT.1.5596) AAL=16.16*WL**2.7345 IF(EN.GT.6.2) AAL=8.5946*1.5596*WL**2.953 AO2=4.61*WL**2.7345 !OXYGEN IF(EN.GT.3.)AO2=5.3268*0.532*WL**3.041 IF(EN.GT.1.)AH=3.0353*WL**0.01460 !HYDROGEN IF(EN.GT.2.)AH=3.5000*WL**0.05890 IF(EN.GT.3.5)AH=3.5000*WL**0.07434 IF(EN.GT.4.) AH=2.9370*WL**0.27795 IF(EN.GT.6.) AH=0.6270*WL**0.43231 IF(EN.GT.9.2)AH=0.0890*WL**0.44767 10 APY=0.0774*AH + 0.9226*AC !PARYLENE N = C8H8 OR 92%C 7%H BY WEIGHT AAPY=-APY*1.11*TPY/COSA !DENSITY PARYLENE=1.11 AAAL=-AAL*DEN(13.)*TAL/COSA AABE=-ABE*DEN(4.)*TBE/COSA AASI=-ASI*DEN(14.)*TSI/COSA AAAU=-AAU*DEN(79.)*TAU/COSA ASIA=-ASI*DEN(14.)*TSIA EFF=EXP(AAPY+AAAL+AABE+AASI+AAAU)*(1.-EXP(ASIA)) RETURN 99 EFF=0. RETURN END SUBROUTINE DEFFSI(E,TPY,TAL,TBE,TAU,TSI,TSIA,ALPHA,EFF) C C SUBROUTINE TO CALCULATE DETECTOR EFFICIENCIES C USING NEW PARAMETERIZATION OF ABSORPTION COEFFICIENTS C FROM THE HENKE & EBISU DATA FOR BE,C,O,AL, & SI C FOR E> 1.5KEV USE THE THINH & LEROUX PARAMETERIZATION C C E = X-RAY ENERGY (KEV) C TPY = THICKNESS OF PARYLENE N LAYER (CM) C TAL = THICKNESS OF AL LAYER (CM) C TBE = THICKNESS OF BE WILNDOW (CM) C TSI = " SI DEAD LAYER (CM) C TAU = " AU FILM (CM) C TSIA = " SI ACTIVE AREA (CM) C ALPHA = ANGLE OF INCIDENCE OF X-RAY TO DETECTOR C EFF = CALCULATED EFFICIENCY C IF(E.LE.0) GO TO 99 WL=12.3981/E COSA=COS(ALPHA/57.296) AC=ABSCOF(6.,WL) !CARBON AH=ABSCOF(1.,WL) !HYDROGEN ABE=ABSCOF(4.,WL) !BERYLLIUM AAL=ABSCOF(13.,WL) !ALUMINIUM ASI=ABSCOF(14.,WL) !SILICON AAU=ABSCOF(79.,WL) !GOLD IF(E.LE.1.486) GO TO 10 C C MASS ABSORPTION COEFFICIENTS FROM THINH & LERoUX C FOR C,O,AL,BE,SI,AU GOOD FOR 1>E(KEV)>40. C CAU=19.4943 !GOLD AAU=CAU*0.7588*WL**2.393 EN=E IF(EN.GT.2.2057) AAU=CAU*2.2057*WL**2.2 IF(EN.GT.2.2911) AAU=CAU*2.2911*WL**2.4 IF(EN.GT.2.743) AAU=CAU*2.743*WL**2.4471 IF(EN.GT.3.1478) AAU=CAU*3.1478*WL**2.4471 IF(EN.GT.3.4249) AAU=CAU*3.4249*WL**2.575 IF(EN.GT.11.9187)AAU=CAU*11.9187*WL**2.3554 IF(EN.GT.13.7336)AAU=CAU*13.7336*WL**2.61439 IF(EN.GT.14.3528)AAU=CAU*14.3528*WL**2.650 CSI=9.1309 !SILICON IF(EN.GT.0.1487) ASI=CSI*0.1487*WL**2.79 IF(EN.GT.1.8389) ASI=19.57*WL**2.7345 IF(EN.GT.5.9) ASI=CSI*1.8389*WL**2.94 ABE=2.4604*0.111*WL**3.03 !BERYLLIUM AC=2.19*WL**2.7345 !CARBON IF(EN.GT.1.75) AC=3.8531*0.2838*WL**3.094 AAL=8.5946*0.1177*WL**2.805 !ALUMINIUM IF(EN.GT.1.5596) AAL=16.16*WL**2.7345 IF(EN.GT.6.2) AAL=8.5946*1.5596*WL**2.953 AO2=4.61*WL**2.7345 !OXYGEN IF(EN.GT.3.)AO2=5.3268*0.532*WL**3.041 IF(EN.GT.1.)AH=3.0353*WL**0.01460 !HYDROGEN IF(EN.GT.2.)AH=3.5000*WL**0.05890 IF(EN.GT.3.5)AH=3.5000*WL**0.07434 IF(EN.GT.4.) AH=2.9370*WL**0.27795 IF(EN.GT.6.) AH=0.6270*WL**0.43231 IF(EN.GT.9.2)AH=0.0890*WL**0.44767 10 APY=0.0774*AH + 0.9226*AC !PARYLENE N = C8H8 OR 92%C 7%H BY WEIGHT AAPY=-APY*1.11*TPY/COSA !DENSITY PARYLENE=1.11 AAAL=-AAL*DEN(13.)*TAL/COSA AABE=-ABE*DEN(4.)*TBE/COSA AASI=-ASI*DEN(14.)*TSI/COSA AAAU=-AAU*DEN(79.)*TAU/COSA ASIA=-ASI*DEN(14.)*TSIA EFF=EXP(AAPY+AAAL+AABE+AASI+AAAU)*(1.-EXP(ASIA)) RETURN 99 EFF=0. RETURN END C C C C FUNCTION ABSCOF(Z,WL) C C NEW FUNCTION TO CALUCULATE MASSABSORPTION COEFFICIENT C OF X-RAY OF WAVELENGTH (WL) IN ELEMENT OF ATOMIC NUMBER (Z) C WL(ANGSTROMS)=12.3981/E(KEV) C BASED ON THE PARAMETERIZATION OF R.HOLTON OF THE HENKE & EBISU C TABLES USING THE PROGRAM UPFIT (NJZ) JAN 1984 C C THE CURRENT ROUTINE CALCULATES THE MASS ABSORPTION COEFFICIENT C FOR THE WL RANGE (8.34 TO 72.2 ANGSTROMS) = 1487 TO 172 EV C I.E. X-RAYS FOR THE ELEMENTS BORON-ALUMINIUM K-SHELL C C FOR THE ELEMENTS H, BE, C, O, AL, SI, AU C C THIS ROUTINE IS MAINLY INTENDED FOR CALCULATION OF UTW DETECTOR C EFFICIENCY FACTORS C C ABSCOF=0.0 !ELEMENT NOT IN LIST RETURN COEFF AS ZERO IF(Z.EQ.1.) GO TO 10 IF(Z.EQ.4.) GO TO 40 IF(Z.EQ.6.) GO TO 60 IF(Z.EQ.8.) GO TO 80 IF(Z.EQ.13.) GO TO 130 IF(Z.EQ.14.) GO TO 140 IF(Z.EQ.79.) GO TO 790 RETURN C C HYDROGEN C 10 IF(WL.GE.8.34) ABSCOF=0.001472*WL**3.359 IF(WL.GE.18.3) ABSCOF=0.001816*WL**3.285 IF(WL.GE.31.4) ABSCOF=0.002138*WL**3.231 RETURN C C BERYLLIUM C 40 IF(WL.GE.8.34) ABSCOF=.3102*WL**3.001 IF(WL.GE.18.3) ABSCOF=.506*WL**2.831 IF(WL.GE.44.7) ABSCOF=2.248*WL**2.419 RETURN C C CARBON C 60 IF(WL.GE.8.34) ABSCOF=1.966*WL**2.788 IF(WL.GE.17.6) ABSCOF=4.129*WL**2.529 IF(WL.GE.44.7) ABSCOF=0.2572*WL**2.404 RETURN C C OXYGEN C 80 IF(WL.GE.8.34) ABSCOF=6.998*WL**2.573 IF(WL.GE.23.6) ABSCOF=0.481*WL**2.479 RETURN C C ALUMINIUM C 130 IF(WL.GE.8.34) ABSCOF=1.286*WL**2.712 IF(WL.GE.27.4) ABSCOF=10.65*WL**2.071 RETURN C C SILICON C 140 IF(WL.GE.8.34) ABSCOF=1.759*WL**2.706 IF(WL.GE.18.3) ABSCOF=2.568*WL**2.574 IF(WL.GE.31.4) ABSCOF=26.2*WL**1.888 RETURN C C GOLD C 790 IF(WL.GE.8.34) ABSCOF=41.17*WL**1.906 IF(WL.GE.16.0) ABSCOF=-4.411E-04*WL**5+9.878E-2*WL**4 C -8.218*WL**3+3.02E2*WL**2-4.466E3*WL+2.966E4 RETURN END C FUNCTION ABSCO(Z,W) IF(Z.LE.10) GO TO 4 DO 1 I=1,9 IF(W-EDGE(Z,I))2,1,1 1 CONTINUE CON=COEF(Z,10) EX=2.22 GO TO 3 2 CON=COEF(Z,I) EX=EXPON(Z,I) 3 ABSCO=CON*W**EX RETURN 4 IF(Z.LE.3.) ABSCO=0.135*W**2.88 IF(Z.EQ.4.) ABSCO=0.350*W**2.86 IF(Z.EQ.5.) ABSCO=0.74*W**2.85 IF(Z.EQ.6.) ABSCO=1.35*W**2.84 IF(Z.EQ.7.) ABSCO=2.21*W**2.83 IF(Z.EQ.8.) ABSCO=3.34*W**2.82 IF(Z.EQ.9.) ABSCO=4.90*W**2.81 IF(Z.EQ.10.)ABSCO=6.77*W**2.80 RETURN END FUNCTION COEF(Z,N) GO TO(1,2,3,4,5,6,7,8,9,10),N 1 COEF=-.6396+Z*(.4649-Z*(.1357-Z*(2.404E-2-Z*(9.382E-4-Z*(1.937E-5 1-Z*1.552E-7))))) GO TO 11 2 COEF=-.2887+Z*(.1264-Z*(2.218E-2-Z*(1.985E-3-Z*(3.189E-5 1-Z*(3.272E-7-Z*1.41E-9))))) GO TO 11 3 COEF=-9.885+Z*(1.749-Z*(.1142-Z*(4.301E-3-Z*(6.378E-5-Z*(5.325E-7 1-Z*1.884E-9))))) GO TO 11 4 COEF=-10.531+Z*(1.833-Z*(.119-Z*(4.277E-3-Z*(6.621E-5-Z*(5.606E-7 1-Z*1.974E-9))))) GO TO 11 5 COEF=56.0595-Z*(8.3133-Z*(.48688-Z*(1.436E-2-Z*(2.3126E-4 1-Z*(1.8852E-6-Z*6.1809E-9))))) GO TO 11 6 COEF=93.4532-Z*(12.0904-Z*(.63557-Z*(1.7339E-2-Z*(2.626E-4 1-Z*(2.0483E-6-Z*6.4866E-9))))) GO TO 11 7 COEF=79.245-Z*(10.2893-Z*(.54254-Z*(1.4837E-2-Z*(2.2494E-4 1-Z*(1.7553E-6-Z*5.557E-9))))) GO TO 11 8 COEF=68.993-Z*(9.0531-Z*(.48183-Z*(1.3277E-2-Z*(2.0225E-4 1-Z*(1.5824E-6-Z*5.0123E-9))))) GO TO 11 C 9 COEF=2.676E-2-Z*(1.955E-3-Z*(3.973E-6+Z*(5.973E-5+Z*(1.19E-7 1-Z*(6.135E-10-Z*1.532E-12))))) GO TO 11 10 COEF=-385.7058+Z*(37.148-Z*(1.4501-Z*(2.9444E-2-Z*(3.2486E-4 1-Z*(1.8472E-6-Z*4.2113E-9))))) 11 IF(COEF)12,13,13 12 COEF=0. 13 RETURN END C FUNCTION EXPON(Z,N) GO TO(1,2,2,2,4,4,4,4,5,6),N 1 EXPON=2.9308262+Z*(-.020468343+Z*(.0010586311+Z*(-3.7419260E-05+ 1Z*(7.2044980E-07-5.7357248E-09*Z)))) GO TO 3 2 EXPON=2.7376804+Z*(-.0020643454+Z*(1.4651705E-04+ 1Z*(-3.5898183E-06+Z*(2.8732263E-08-8.1864238E-11*Z)))) 3 EXPON=FLOAT(IFIX(100.*EXPON+.5))/100. RETURN 4 EXPON=2.60 RETURN 5 EXPON=2.33 RETURN 6 EXPON=2.22 RETURN END C C FUNCTION DEN(Z) DIMENSION AD(100) DATA AD /.071,.126,.53,1.85,2.34,2.26,.81,1.14,1.505,1.2 1,.97,1.74,2.70,2.33,1.82,2.07,1.56,1.40,.86,1.55 2,3.,4.51,6.1,7.19,7.43,7.86,8.9,8.9,8.96,7.14 3,5.91,5.32,5.72,4.79,3.12,2.6,1.53,2.6,4.47,6.49 4,8.41,10.2,11.5,12.2,12.4,12.,10.5,8.65,7.31,7.3 5,6.62,6.24,4.94,3.06,1.9,3.5,6.17,6.67,6.77,7. 6,999.,7.54,5.26,7.89,8.27,8.54,8.8,9.05,9.33,6.98 7,9.84,13.1,16.6,19.3,21.,22.6,22.5,21.4,19.3,13.6 8,11.85,11.4,9.8,9.2,999.,999.,999.,5.,999.,11.7 9,15.4,19.07,19.5,999.,11.7,999.,999.,999.,999.,999./ I=Z DEN=AD(I) RETURN END C FUNCTION YIELD(Z,L) C THIS FUNCTION CALCULATES THE FLUORESCENCE YIELD OF ELEMENT Z FOR C LINE L GO TO (1,2,3,1,2,3),L 1 D=-0.037948+Z*(0.034256-Z*Z*0.116342E-05) GO TO 4 2 D=-0.111065+Z*(0.013680-Z*Z*0.217720E-06) GO TO 4 3 D=-0.00036+Z*(0.00386+Z*Z*0.20101E-06) 4 D=D**4. YIELD=D/(1.+D) RETURN END C FUNCTION EDGE(Z,N) C C THIS FUNCTION CALCULATES THE WAVELENGTH OF CHARACTERISTIC C ABSORPTION EDGE OF ELEMENTZ, N=1-9 CORRESPONDS TO K,L1,L2,L3,M1,M2,M3, C M4,M5 WAVELENGTH IN ANGSTROMS. GO TO (1,2,3,4,5,6,7,8,9,10),N 1 EDGE=-1.3047E-2+Z*(6.0888E-3-Z*(5.5706E-4-Z*(1.1428E-4 1-Z*(4.3872E-6-Z*(8.3315E-8-Z*6.1105E-10))))) GO TO 11 2 EDGE=1.3466E-2-Z*(2.9704E-3-Z*(2.801E-4-Z*(7.1603E-6-Z*(2.E-7 1-Z*(2.2743E-9-Z*9.7452E-12))))) GO TO 11 3 EDGE=-3.5441E-2+Z*(5.6833E-3-Z*(3.1012E-4-Z*(1.1498E-5 1-Z*(1.1217E-7-Z*(3.6034E-10+Z*9.0739E-13))))) GO TO 11 4 EDGE=-9.3211E-2+Z*(1.5753E-2-Z*(9.5002E-4-Z*(3.1576E-5 1-Z*(4.492E-7-Z*(3.1953E-9-Z*8.9014E-12))))) GO TO 11 5 EDGE=-.54974+Z*(6.8436E-2-Z*(3.3998E-3-Z*(8.6866E-5-Z*(1.1779E-6 1-Z*(8.2E-9-Z*2.2796E-11))))) GO TO 11 6 EDGE=-.64464+Z*(7.7538E-2-Z*(3.74E-3-Z*(9.2964E-5-Z*(1.2345E-6 1-Z*(8.4477E-9-Z*2.3158E-11))))) GO TO 11 7 EDGE=-.97256+Z*(.1103-Z*(5.0823E-3-Z*(1.221E-4-Z*(1.5894E-6 1-Z*(1.0735E-8-Z*2.933E-11))))) GO TO 11 8 EDGE=-.98122+Z*(.109385-Z*(4.9342E-3-Z*(1.1555E-4-Z*(1.4681E-6 1-Z*(9.6993E-9-Z*2.5961E-11))))) GO TO 11 9 EDGE=-.73755+Z*(8.2784E-2-Z*(3.7622E-3-Z*(8.8875E-5-Z*(1.1372E-6 1-Z*(7.5702E-9-Z*2.0419E-11))))) GO TO 11 10 EDGE=6.2696E-2-Z*(7.5868E-3-Z*(3.5136E-4-Z*(8.2023E-6 1-Z*(1.0477E-7-Z*(6.6909E-10-Z*1.7612E-12))))) 11 EDGE=1./EDGE IF(N-1) 12,12,15 12 IF(Z-57.) 15,15,13 13 EDGE=0.00000001 14 RETURN 15 IF(EDGE) 16,14,17 16 EDGE=999. 17 IF(EDGE-999.) 18,14,16 18 IF(Z-2.*(2*N-1)) 16,16,14 RETURN END