NJOY2012.50 17 February 2015 ----------------------------------------------------------------------- This file describes updates to NJOY2012. See Readme0 for more general information on NJOY2012, installation, test problems, and so on. *ident up1 */ 21mar2013 */ - acefc */ - coding in subroutine first may read a TAB1 function without */ checking if the allocated space is sufficient. revise to */ make sure the minimum necessary space is allocated. *ident up2 */ 06may2013 */ - groupr */ - coding in njoy99.379 to replace use of an expansion for the */ complementary error function with the more accurate SLATEC */ "erfc" routine was implemented incorrectly. */ - we fix that here, plus delete some no longer needed code. */ - thanks to NRG/Petten (Hogenbirk) and LLNL (Mattoon) for */ uncovering this error. *ident up3 */ 24may2013 */ - mixr */ - need to make a number of variables global. */ - original deficiency reported by Studsvik/Idaho (Wemple). */ - while we're at it, change from hardwired dimension and do loop */ limits to parameter statements. */ - allows for easy future increase on input limits. */ - fix overloading of hollerith and real variables so User file 1 */ comment appears properly in the output file. *ident up4 */ 7jun2013 */ - groupr */ - need to make some local variables global for the flux calculator; */ - need to make some fixed arrays allocatable (fixed size was ok */ when nsigz was restricted to .le. 10). */ - these deficiencies reported by Studsvik/Idaho (Wemple). */ - need global initialization test for panel; *ident up5 */ 7aug2013 */ - groupr */ - make unr deallocation conditional (AWE, Cornock) */ - resolve flux calculator issues (Studsvik, Wemple) */ - include additional test in getfwt when searching for e on ninwt */ after 200 continue to overcome possible near duplicate energies */ at the top of the energy mesh; */ - if test revision in up4.68 needs to occur for line groupr.3883; */ - move coding to update el, wl and xl within the 210 continue loop */ to assure correct values are passed to terp1 after 230 continue. *ident up6 */ 8aug2013 */ - purr */ - correct unit number variable used in tab1io and moreio calls */ for urr energy-dependent scattering radius data (Trkov, IJS). *ident up7 */ 8aug2013 */ - samm */ - need to make a test for possible energy-dependent scattering */ radius more specific (Trkov, IJS). *ident up8 */ 8aug2013 */ - groupr */ - make sure we write the last multigroup record to ngout2 even */ when its data are zero, as has always been done in the past */ (issue reported by Martin, Sandia). */ - an improvement in moving from njoy99 to njoy2012 was a */ little too zealous is skipping over groups with zero data. *ident up9 */ 22aug2013 */ - groupr */ - provide more robust testing for initial and final multigroup number */ in getdis. previous coding could exceed the maximum multigroup and */ produce spurious results (issue reported by Sublet, CCFE). *ident up10 */ 3sept2013 */ - gaspr */ - need better checking for allocatable arrays when processing */ files with multiple temperatures (Vanhanen, Aalto U) *ident up11 */ 4sept2013 */ - groupr */ - need more storage space for tmp in getsed (Vanhanen, Aalto U). */ - new algorithm starts with a large allocation request and */ tests the allocation status, reducing the array size until */ the request is successful. */ - also tweak identical error message text to make them unique. *ident up12 */ 5sept2013 */ - covr */ - need to make sure the array we deallocate was really allocated. */ (Vanhanen, Aalto U). *ident up13 */ 19sept2013 */ - errorr */ - increase nwds in covout to match njoy99. */ - increase scr space in colaps to always be at least npage+50. */ - fixes unexplained stop reported by Vanhanen, Aalto U. *ident up14 */ 19sept2013 */ - purr */ - increase nsamp to match njoy99. */ - make sure 1 .ge. ibin .ge. nsamp in unrest *ident up15 */ 26sept2013 */ - samm */ - there is some confusion in the coding between the maximum */ Legendre order and the number of Legendre orders. This */ change also fixes the message about the maximum Legendre */ order from reconr (rem). *ident up16 */ 26sept2013 */ - reconr */ - delete coding that closes unit nscrl in rexsx. this unit holds */ elastic scattering (mf4/mt2) data that needs to be accessed if */ the logical variable, "Want_Angular_Dist" is changed to .true. */ - still need to close this unit though ... add coding in reconr */ to do so (ack). *ident up17 */ 01oct2013 */ - endf */ - allow more flexibility in findf when searching a gendf tape. *ident up18 */ 02oct2013 */ - errorr */ - if the user groupr structure extends beyond the range of the */ weight function, then the grpav routine may return with "nan" */ for some cross sections. add coding to (i) warn the user of */ the group structure/weight function mis-match, and (ii) set */ those multigroup cross sections to zero. */ - fixes "nan" issue reported by Vanhanen, Aalto U. */ - indicies used in grpav's scr aren't quite right when the number */ of union groups exceeds npage, we fix them now (ack). *ident up19 */ 03oct2013 */ - util */ - delete a couple of redundant lines in closz *ident up20 */ 08oct2013 */ - acer */ - the apparent number of photons can differ for jobs using binary */ tapes versus ascii tapes (Trumbull, KAPL). */ - loss of significant digits when working with ascii tapes makes */ this tricky, particularly when trying to extract the original */ primary photon energy from the sum of primary photon plus */ incident particle energy. This patch works for 1h which has */ a single primary photon over the 20 MeV incident neutron energy */ range while also seeing the two distinct secondary photons of */ 2.112370 MeV and 2.11238 MeV in 50V mt16. */ - NOTE: we strongly recommend use of binary tapes in all njoy */ jobs to maximize the number of significant digits that are */ saved when passing pendf data among the various modules. *ident up21 */ 09oct2013 */ - samm */ - make sure lllmax is defined. needed for array allocation if the */ "Want_Angular_Dist" logical variable is changed from its default */ false value to true. we start with a value believed to always be */ large enough, but after the real, problem dependent, value is */ determined also check that the initial allocation was sufficient. *ident up22 */ 21oct2013 */ - purr */ - need to make sure "init" in unrest is reset to zero when */ executing purr multiple times in the same job, or when */ processing multiple materials (issue reported by Koscheev, */ IPPE). */ - need additional tests to make sure we deallocate all previously */ defined allocatable arrays prior to exiting or prior to reallo- */ cating them with the current nbin, ntemp and nsig0 values. */ - rewind the scratch tape before processing each matd. */ - prior to this last patch, if multiple matd's are processed in */ the same purr job and the ntemp, nsigz and nbin values are the */ same for the first and later matd's it was the first matd's */ data that were retrieved from the scratch tape. *ident up23 */ 24oct2013 */ - samm */ - revise per updates in the ORNL SAMRML code. */ - impacts the RML resonance calculations for */ endf/b-vii.1 35Cl (rem). *ident up24 */ 18mar2014 */ - acedo */ - fix error message if desired temperature is not found on */ the input tape (Trkov, IAEA); */ - need additional logic to update the xss(lsig...) array if */ multiple sub-sections exist for a specific mf=10/mt (ack). */ - previously the code could crash or, depending upon compiler */ options, run silently to completion. */ - NOTE: If code had run to completion, the resulting ACE */ file will correctly include all sub-sections but */ the standard output will only include the first */ sub-section. */ - increase nmax (the maximum number of mt values that can be */ processed) from 100 to 350. needed when processing selected */ eaf-2010 files. */ - also check if nmax is exceeded; current code runs silently */ to completion but the .##y file contains invalid pointers */ causing an immediate mcnp crash. *ident up25 */ 07apr2014 */ - errorr */ - we failed to allocate egn for all possible multigroup options */ (reported by Becker, KIT) *ident up26 */ 07apr2014 */ - groupr */ - cm2lab is running out of space (Orsi, ENEA) */ - an if test in f6cm can be true due to round-off, */ causing epnext to be set to zero and leading to */ an infinite loop in cm2lab. Make the test less */ sensitive. *ident up27 */ 08apr2014 */ - purr */ - a simple typo when reading urr data from endf/b-vi 233u */ (the only Adler-Adler format evaluation left, we believe). *ident up28 */ 15apr2014 */ - heatr */ - need a patch in h6cm similar to what we did in groupr's */ f6cm (ack). *ident up29 */ 29apr2014 */ - groupr */ - we increased tmp array space in up11 but still need more */ (for jeff-3.2 238u, for example). */ - a difference between njoy2012 and njoy99 is that njoy2012, */ by default (ismooth=1), will expand the low energy portion */ of emission spectra defined in histogram format. we insert */ additional energy points to allow the spectrum to more closely */ follow a sqrt(E) profile. when processing delayed neutron */ spectra (mt=455 only, spectra from other mt values are ok) */ we failed to update a pointer needed to properly define the */ starting location in the tmp array for the now larger TAB1 */ function. */ - both issues reported by wemple/studsvik. */ - we also include additional array bounds tests to assure the */ new TAB1 function fits within the allocated tmp space (ack). *ident up30 */ 1may2014 */ - groupr */ - when dealing with astrophysics (1.e9 degK) temperatures */ the target nuclide za value was set to zero on the output */ gendf tape. also at these highly elevated temperatures, */ unresolved resonance data, if present, was ignored. */ (Conlin, LANL) *ident up31 */ 1may2014 */ - acefc */ - need more scratch space in acelcp (ack). *ident up32 */ 2may2014 */ - groupr */ - the "extending lin-lin as sqrt(E) ..." algorithm in getmf6 */ can produce a zero only emission spectrum under the rare */ condition of an original spectrum defined at two energy */ points, where there is a non-zero probability at zero */ emission energy and zero probability at the maximum allowed */ non-zero energy. subsequently an infinite loop condition */ may occur. */ - we expand the existing "patching low-energy distribution ..." */ algorithm to avoid this issue. (Orsi, ENEA) *ident up33 */ 27jun2014 */ - thermr */ - reduce the delta-temperature tolerance when comparing the user */ requested temperature versus the temperature being read from */ the input tape; allows for creating S(a,b) files on a finer */ temperature grid (ack). */ - a similar change follows in up34 for acefc and aceth. */ ***************************************************************** */ *** NOTE: This tighter tolerance means that test01 with its *** */ *** 300 degK input temperature will fail. We change it *** */ *** to 296 degK to better match the temperature found *** */ *** on the S(a,b) input tape. This will cause changes *** */ *** in the test01 output files. *** */ ***************************************************************** *ident up34 */ 02jul2014 */ - acefc & aceth */ - reduce the delta-temperature tolerance when comparing the user */ requested temperature versus the temperature being read from */ the input tape; allows for creating S(a,b) files on a finer */ temperature grid. */ - these changes made in coordination with up33 (ack). */ - aceth */ - current coding to get nxs(1) in continuous formatted files */ is off by one. a comparison with 99.113, when continuous kernel */ file capability was first introduced, shows a couple of code */ differences which we eliminate now. *ident up35 */ 05sept2014 */ - unresr */ - eliminate a fixed size array allocation with a calculation */ of the true needed space (issue reported by Orsi, ENEA) *ident up36 */ 05sept2014 */ - groupr */ - add missing allocation statements in gengpn (issue reported */ by Wemple, Studsvik). */ - need more space in getgyl for some JEFF-3.2 evaluations */ (issue reported by Orsi, ENEA). *ident up37 */ 05sept2014 */ - resxsr */ - fix a couple of njoy99-to-njoy2012 conversion issues */ (reported by Wemple, Studsvik). *ident up38 */ 18sept2014 */ - groupr */ - revise argument list passed in displa to be consistent with */ the declared array dimensions (resolves halt in g95 if compiled */ with array bounds checking turned on); */ - NOTE: problems run with an executable produced by the Intel */ Fortran compiler yield the same matricies with or */ without this patch, as the original array allocation */ is correct for the user's problem size. */ - expand the logic in getgyl that checks for constant production */ over low energies to account for histogram interpolation. */ - include logic in getgyl that sets econst to zero when dealing */ with file 13 photon data. *ident up39 */ 18sept2014 */ - acefc */ - coding introduced in up1 to determine the necessary allocation */ for scr when reading file 6 tab1 records is incomplete. this */ modification assures that the largest tab1 size is identified. */ - this issue identified while processing a candidate 235u cielo */ file from ornl (Leal). *ident up40 */ 14oct2014 */ - reconr */ - correct a message text typo (Koning, Petten). */ - successful execution of the cross section calculation algorithm */ in csunr2 can depend upon failing a "do while" test where we */ expect two real numbers to be equal. due to finite computer */ precision this test can remain true when the comparison is */ false. we revise the test to eliminate this very rare */ false positive condition (Wemple, Studsvik). *ident up41 */ 04dec2014 */ - acefc */ - previous coding assumes if a mf3/mt5 section exists, then light */ particle emission spectra will be found in mf6/mt5. */ - if this is not true, pointers in the ace file will be */ incorrect and a subsequent viewr job to plot the ace data */ can enter an infinite write loop (reported by Koning, Petten). */ - we provide coding revisions that define light particle flags */ while processing mt=5 to overcome this deficiency. */ - include an extra contio to up1 coding to read the end-of-section */ record when checking for the laregest tab1 function in mf6. *ident up42 */ 05jan2015 */ - acedo */ - mcnp's ace file specification for dosimetry files with multiple */ interpolation ranges says to write the NR NBT values followed */ by the NR INT values but we have always written the NR NBT,INT */ values as pairs. issue identified by Milocco (JET,UK), */ Trkov (IAEA) & Brown (LANL). */ **************************************************************** */ * NOTE: This error has existed in ALL past versions of NJOY * */ **************************************************************** */ * NOTE: All dosimetry files found in the production mcnp_data * */ * 531dos, 532dos and llldos files only contain a single * */ * interpolation interval and therefore are UNAFFECTED * */ * by this error. Also user generated dosimetry files * */ * whose endf source data only contain a single interpo- * */ * lation interval are UNAFFECTED. * */ **************************************************************** *ident up43 */ 08jan2015 - 10feb2015 */ - heatr */ - the variables used when calculating the photon energy "kick" */ are computed in multiple locations. we redefine these as */ global variables and only calculate them once (in nheat). */ - hgam102, introduced to calculated heating when the 1h capture */ data were moved from mf12 to mf6, only included the recoil */ energy. we should have included the photon "kick" to get */ more accurate heating and damage values, particularly at low */ energy, and do so now (issue reported by Konno, JAEA). */ ******************************************************** */ *** NOTE: This error has existed since endf/b-vii.0 *** */ *** files were released, but ONLY for 1h. *** */ ******************************************************** *ident up44 */ 12jan2015 */ - samm */ - reposition an integer declaration statement (mostly a cosmetic */ change as we typically declare integers prior to reals but had */ not done so in this instance; and especially when some of those */ integers appear in subsequent real declaration statements). */ - keeps the Visual Digital Fortran 6.6A compiler happy (per */ Cabellos, NEA). *ident up45 */ 12jan2015 */ - acefc */ - even though we now allocate many arrays there are still fixed */ array dimensions that become too small over time. we increase */ a couple of them here to support efforts related to the CIELO */ Project and the IAEA pfns crp (Trkov, IAEA). *ident up46 */ 27jan2015 */ - groupr */ - tweak array definition coding in getmf6 so usage is consistent */ with similar coding elsewhere in this routine. */ - revise array specification for p(7) in f6cm to be consistent */ with njoy99. depending upon compiler options, users specifying */ lord>6 in their input may have suffered a silent array overflow */ (both issues reported by Bunde, DOE/Idaho). *ident up47 */ 29jan2015 */ - heatr */ - we recently noticed that some evaluated nuclear data files */ contain photon production data for a given mt in both mf6 */ and one or more of mf12 through mf15. this causes njoy to */ incorrectly combine the "direct" and "energy-balance" methods */ when calculating heating. we set a flag when reading mf6 */ photon production data so that the corresponding mt in one or */ more of mf12 through mf15 is not processed. */ - an information message identifying the mf/mt section is */ included in njoy's standard output. *ident up48 */ 5feb2015 */ - acefc */ - in unionx we open scratch units iold and inew, and leave them */ open for subsequent use in gamsum (where they are closed). if */ there are no photon data, gamsum is not called and these units */ remain open. if a later module tries to open these unit numbers */ we crash. */ - add conditional coding in unionx to make sure these units */ are closed (issue reported by Cabellos, NEA). *ident up49 */ 10feb2015 */ - errorr */ - an array overflow error was observed when attempting to process */ the tendl-2013 83Kr file (reported by Cabellos, NEA). */ - the issue appears to be a evaluation error as the mf2/mt151 */ urr region data are given for 2 l-states while the mf32/mt151 */ urr region data are given for 3 l-states. njoy utilizes the */ mf2/mt151 l-state value when reading mf32/mt151 and so can't */ properly read this section. */ - we add a test and error stop when encountering this condition. */ - we also allow the mf32 nls be less than mf2, but advise the */ user that these covariance data are incomplete. *ident up50 */ 12feb2015 */ - acefc */ - the suite of standard ace plots is sometimes incomplete with some */ emitted neutron angular distribution and secondary neutron spectra */ plots missing (reported by Trkov, IAEA). */ - a global variable used to keep track of the number of neutron */ emitting reactions was erroneously used as a local variable */ for delayed neutron related data processing. this does not */ impact the underlying ace file since we have already written */ out the correct value and associated arrays, but did impact */ the do loop range used to control production of selected ace */ file plots.