[return to mcnp.lanl.gov home page]






Correcting the bug for photon Doppler broadening: Instructions for download & installation of revised photon libraries mcplib63 and mcplib84, and revised xsdir files

New references:

B.C. Kiedroski, F.B. Brown, M.C. White, D.K.Parsons, "Testing for the Photon Doppler Broadening Data Sampling Bug in MCNP5/X", LA-UR-12-00121

M.C. White, "Further Notes on MCPLIB03/04 and New MCPLIB63/84 Compton Broadening Data For All Versions of MCNP5", LA-UR-12-00018


Email from the MCNP Forum, describing 2 bugs (with links to references)

Photon Doppler broadening - incorrect sampling of interaction shell


The Nuclear Data Team has determined that there is NOT a problem with the S(alpha,beta) data files from endf70sab for the RSICC release of MCNP5-1.51 and subsequent versions.

The previous report of missing elastic data for some endf70sab datasets should be disregarded.

While some of the working files used at LANL did indeed have missing elastic data in a few cases, those problems had been identified and corrected in 2008, prior to the release of the ENDF/B-VII.0 data libraries for MCNP that have been distributed by RSICC.

To be more direct, this reported "bug" is NOT a bug. There is no missing data.


Email from the MCNP Forum, describing 2 bugs (with links to references)

Missing data in some thermal neutron S(alpha,beta) files


Bug & Fix for Isotopic Mesh Tallies

A new feature introduced in MCNP5-1.60 for performing mesh tallies of reaction rates for specific nuclides has a bug. In matching the nuclide ZAID specified in the material on an FM card, to see if the nuclide is present in a mesh region, only the ZA number was checked; the version number was not checked.

For example, the isotopic mesh tally specified by

         fmesh10004:n   geom=xyz    . . . . . .
         m1000   92235.70c  1.0   92235.71c 1.0
         +fm10004  -1  1000    -6
is intended to tally U235 fissions in mesh cells, with the 293.6K cross-sections used in regions containing 92235.70c, and 600K cross-sections used in regions containing 92235.71c. For either cross-section, the tally should be made only if the nuclide is actually present in a region, and the corresponding number density in the actual material in the region should be used. For more details on isotopic mesh tallies, see the report: B.C. Kiedrowski, F.B. Brown, J.S. Bull, et al., "MCNP5-1.60 Feature Enhancements and Manual Clarifications" , LA-UR-10-06217 (2010) available on the mcnp.lanl.gov website.

The bug for this type of mesh tally was that only the ZA portion of the ZAID specified was checked, and the version (suffix) was not checked. For the above example, both instances of 92235 would match & be tallied, when only one (depending on region) was desired. The bug is present in MCNP5-1.60 and in the MCNP6-Beta-2 release.

It is expected that most users are not affected by this bug, since it only impacts problems where different versions of cross-sections for a particular nuclide are used.

Users with MCNP5-1.60 source code and the ability to recompile the code can correct this bug easily. Only a few lines of code need correction. The corrections are shown below in the output from the linux diff command. There is only one source file affected, fmesh_mod.F90. In the diff output below, lines flagged as"+" are to be added, while lines flagged by "-" are to be removed.

bash: diff -U 5   fmesh_mod.F90_original fmesh_mod.F90
--- fmesh_mod.F90_original      2012-02-28 11:38:03.000000000 -0700
+++ fmesh_mod.F90       2012-02-28 11:38:07.000000000 -0700
@@ -2815,10 +2815,11 @@
       do i=1, nmesh
         if ( fm(i)%isotopic_reac_rate_fm_tal == 0 ) then
         m2 = fm(i)%mat
+        if( associated(isotopes(m1,m2)%atom_fraction) ) cycle
         length_m2 = jmd(m2+1) - jmd(m2)
         allocate ( isotopes(m1,m2)%atom_fraction(length_m2),stat = is )
         if ( is /= 0 ) then
           call get_mem_alloc_error('isotopic_mod','sub setup_atom_fractions')
@@ -2830,11 +2831,13 @@
             count_m2 = count_m2 + 1
             iex_k2 = lme(particle,k2)
             if ( iex_k1 == 0 .or. iex_k2 == 0 ) then
-            if ( ixl(1,iex_k1) == ixl(1,iex_k2) .and. ixl(2,iex_k1) == ixl(2,iex_k2) )  then
+            if ( ixl(1,iex_k1) == ixl(1,iex_k2) .and. &
+              &  ixl(2,iex_k1) == ixl(2,iex_k2) .and. &
+              &  ixl(3,iex_k1) == ixl(3,iex_k2)          )  then
               isotopes(m1,m2)%atom_fraction(count_m2) = fme(k1)




Corrrecting the bug for photon Doppler broadening: Instructions for download and installation of revised photon libraries mcplib63 and mcplib84, and revised xsdir files

  1. When you installed MCNP5 and its data libraries, the default installers stored the cross-section datafiles in one of these folders on your computer:

    Windows:                           C:\MCNP\MCNP_DATA

    Linux, MacOSX, Unix:      $HOME/LANL/MCNP/MCNP_DATA

  2. In the discussion below, we will refer to the data folders above as MCNP_DATA.

  3. Download these 2 files and copy them both to your MCNP_DATA folder:

    mcplib63 - same data as mcplib03, with corrected photon Doppler data

    mcplib84 - same data as mcplib04, with corrected photon Doppler data

    [Depending on your browser and work habits: You could just click on the link, so that the file would be downloaded, and then locate & drag the file into the MCNP_DATA folder. Or, in your browser, select the link and "download linked file as ...", and then select the MCNP_DATA folder as the target location.]

  4. In the past 10 years, there have been 3 different releases of the MCNP5 data libraries:
    1. In 2003 with the MCNP5-1.14 and MCNP5-1.20 releases, the data libraries were based on ENDF/B-VI data (along with older libraries).
    2. In 2004 with the MCNP5-1.30 release and in 2005 with the MCNP5-1.40 release, the data libraries were based on ENDF/B-VI data plus the "T16 data", a preliminary version of ENDF/B-VII.0 for some nuclides (plus older libraries)
    3. In 2009 with the MCNP5-1.51 release and in 2010 & 2011 with the MCNP5-1.60 release, the data libraries were based on ENDF/B-VII.0 data (plus older libraries)

    Based on which MCNP5 release you last installed on your computer, pick one of the following files, download it, and copy it to the MCNP_DATA folder:

    For MCNP5-1.14 & MCNP5-1.20: xsdir-mcnp5-1.14-new

    For MCNP5-1.30 & MCNP5-1.40: xsdir-mcnp5-1.30-new

    For MCNP5-1.51 & MCNP5-1.60: xsdir-mcnp5-1.51-new

Then go to the MCNP_DATA folder and

Rename the old existing xsdir file to xsdir_previous

Rename the new xsdir-mcnp5-... file that you just downloaded to the name xsdir

Notes on input files for photon problems:

If your input files for photon problems make use of explicit ZAID extensions of ".03p", then you need to change those extensions to ".63p"

If your input files for photon problems make use of explicit ZAID extensions of ".04p", then you need to change those extensions to ".84p".

If your input files for photon problems do not use explicit version extensions on the ZAIDs, then you do not need to modify your input files. (That is, you are not using ".03p" or ".04p" on your ZAIDs)

Notes on results for photon problems:

If explicit extensions on ZAIDs are not used, MCNP5 obtains the cross-section version suffixes from the xsdir file. Previously, the default versions for photon data were ".04p" extensions. After installing the new, corrected libraries, the default extensions for photon data obtained from the (new) xsdir file become ".84p".

Using the new libraries mcplib63 or mcplib84, corrected data will be used for the photon Doppler broadening, and results will change for problems using photons (ie, "mode p", "mode n p", "mode n p e", "mode p e").

Using the corrected photon data libraries, results will change from previous results. Photon Doppler broadening primarily affects lower energy photons, in the 10-100s of KeV range, and has no noticable effect on higher energy results.For many photon problems, the changes in tally results will be small and within statistics. Results for calculations of overall photon leakage or total energy deposition should not be significantly affected; while the spectrum shifts, the averages under the curve are staying essentially the same. However, photon problems focused on obtaining detailed spectra at low energies may show differences in the detailed shape of the photon spectra. One example is shown below from the MCNP Forum email from 2011-12-21.

We have run over 30 different comparison problems with photon spectra in many different materials, and are assembling the results and plots. Those will be posted on this web site soon.



From the MCNP Forum email on 2011-12-21

Subject: Bug-Info: Photon-doppler-broadening and thermal-neutron-S(a,b)-data

MCNP users--

Newly-found bugs:

(1) Thanks to a very diligent MCNP user, we have discovered a problem with the photon Doppler broadening treatment and data. While initial testing indicates that the impact onresults is very small and limited to low-energy photons, a modified photon library will be provided to correct the problem.

(2) Thanks to the Nuclear Data Team, we have discovered that some thermal neutron scattering data is missing in the S(alpha,beta) datasets for: al27, fe56, u/o2, o2/u

Both of these problems are discussed below, in as much detail as we can provide for now. We will be providing more information, test results, and modified photon libraries on our website.

Because LANL is closed for the holiday break from Dec 31 - Jan 2 and many people are already on vacation, the additional material will not appear on the website until the first week in January 2012. We will send email to the MCNP Forum when additional material is posted at mcnp.lanl.gov

For now, please read the detailed explanations below to see if any of your applications are affected.



There is a bug in the photon Doppler broadening treatment in MCNP5/X, involving the dopplerp routine in MCNP5/X and the mcplib03 and mcplib04 photon data libraries.


The photon Doppler energy broadening treatment for incoherent scattering in MCNP can be significant for low-energy photon transport. Incoherent scattering of an incident photon can occur with a bound electron in a shell of a material and will generate a Compton electron and a scattered photon. The electron binding effects become important when the incident photon energy is a few hundred KeV or less. The result of the binding effects on the angle and energy of the scattered photon must be taken into account for accurate simulation of low-energy photon transport. The photon Doppler broadening treatment involves coding in the MCNP routine "dopplerp" [1,2,5] and data contained in the MCNP photon data libraries mcplib03 and mcplib04 [3,4]. The photon Doppler broadening treatment has been included in all versions of MCNP5, versions of MCNPX beginning with 2.5, and early beta versions of MCNP6 (beta1, beta2).


The first action in dopplerp is to select the shell to be used for the photon doppler broadening. There is a binary search performed on the "CDF data" to select a shell for subsequent interaction physics. Unfortunately, the coding (and comments within the coding) assume that the data for sampling the shells is CDF data (cumulative); in fact, the data stored in mcplib03 and mcplib04 is PDF data (probabilities). A binary search of PDF data is wrong; while a valid shell will be determined, the sampling results will not reflect the proper probabilities for each shell. The error is present for all elements (all Z numbers). As a result of the mismatch between coding and data, the shell is not selected properly, and all photon calculations with ANY version of MCNP (5,x,6beta) that invoked the photon Doppler broadening will be incorrect.


A detailed assessment of the potential effects on computed results is in progress. The effects of this bug are of course application-dependent. It is expected that the bug impacts only low-energy photon problems ( a few 100 KeV or less); has very little impact on overall flux, dose, or heating results; and primarily affects applications such as detectors or medical physics where detailed flux spectra at low energies are needed.

As one example, we investigated an application where an 88 KeV photon source hits a Si-Li detector, with the problem run in "mode p e". Changes in overall flux, capture, and leakage were inconsequential. The attached figure shows the detailed flux spectra in the range of 60-70 KeV, with no photon Doppler broadening, with the bug, and after correction. For this case, it appears that the bug has little to no effect on the detailed spectra. We are, of course, continuing to investigate other applications, since one encouraging result is not sufficient for assessing the impact.


This bug will be fixed in the upcoming "beta-2" release of MCNP6 and subsequent versions. Currently there are no plans for further releases of MCNP5 and MCNPX. To accommodate users of MCNP5 and MCNPX, we plan to post revised versions of mcplib03 and mcplib04 on the MCNP website. That is, the data contained in mcplib03 for selecting the electron shell will be converted from PDF to CDF form for all elements, and the revised library will be called "mcplib63". SImilarly, mcplib04 will be revised and called "mcplib84". Both of these revised photon libraries will be posted soon on the MCNP website, mcnp.lanl.gov, along with a revised version of the xsdir file, so that MCNP5/X users can run corrected calculations without having to reinstall or recompile their codes.


This problem was discovered by Laura Bartol (University of Wisconsin, Medical Radiation Research Center).


  1. Avneet Sood, "Doppler Energy Broadening for Incoherent Scattering in MCNP5, Part I," LA-UR-04-0487 (2004).
  2. Avneet Sood and Morgan C. White, "Doppler Energy Broadening for Incoherent Scattering in MCNP5, Part II," LA-UR-04-0488 (2004).
  3. Morgan C White, "Photoatomic Data Library MCPLlB03: An Update to MCPLlB02 Containing Compton Profiles for Doppler Broadening of Incoherent Scattering", LA-UR-03-0787 (2003).
  4. Morgan C. White, "Photoatomic Data Library MCPLIB04: A New Photoatomic Library Based On Data from ENDF/B-VI Release 8", LA-UR-03-1019 (2003).
  5. Avneet Sood, "Testing of Photon Doppler Broadening in MCNP5.1.50 and MCNP5.1.51", LA-UR-09-0467 (2009).





The Nuclear Data Team at Los Alamos has discovered that 4 of the 20 of the S(alpha,beta) thermal scattering materials are missing their thermal elastic scattering . The four affected materials are:

All of these materials were introduced for the first time into MCNP data with the release of endf70sab in 2008 for the RSICC release of MCNP5-1.51 and subsequent versions.

In all cases, it is only the thermal elastic scattering that is missing - the thermal inelastic scattering is included. The thermal elastic scattering cross sections have the jagged Bragg edges and are important only at low temperatures (e.g., room temperature).

In the near future, the Nuclear Data Team will be releasing a new library for all 20 materials using a continuous S(alpha,beta) treatment - rather than the discrete treatment currently used by MCNP. Corrected files for Al27, Fe56, U in UO2, and O in UO2 using the current discrete treatment will also be generated and added to endf70sab library.

[1] H. Trellue, R. Little, "Release of New MCNP S(a,b) Library ENDF70SAB Based on ENDF/B-VII.0", LA-UR-08-3628 (2008).