Changes to NJOY 97.0 To Make 97.115                  03 Sept 2000
-----------------------------------                  ------------

See Readme0 for general information on NJOY 97.
This file just discusses the changes between 97.0 and 97.115.
Also note some information on YsK and for DOS/Windows users 
near the end.

These updates affect the following modules:
njoy,reconr,broadr,unresr,heatr,thermr,groupr,errorr,
covr,moder,matxsr,acer,viewr,purr,gaspr,wimsr,plotr,leapr,
ccccr.

The following lines were taken from the file up115, and
explanatory comments were added as indented paragraphs.

*ident up1
*/ reconr -- 04jul98 
*/   fix an error made in enhancing the equality tests in 
*/   reconr when building njoy97.  this error causes the code 
*/   to miss discontinuities, such as those at the ends of 
*/   resonance ranges, where it normally tries to put in points 
*/   just below and just above the discontinuity.  problem 
*/   noticed by little (lanl).

   ENDF evaluations normally have double energy points describing
   discontinuities in the cross sections at the boundaries of
   the resonance ranges.  NJOY represents these discontinuities
   by moving the upper point up by one in the seventh significant
   figure and moving the lower point down by the same amount.  It
   is important to find these steps.  If one of the points should
   be omitted, the code could end up interpolating across an
   energy region incorrectly.  As noted by Bob Little, NJOY 97.0
   was doing this at the boundary at the top of the unresolved
   range in Pu-238.  Investigation showed that this was due to
   mistakenly changing an IF statement in RECONR.  This problem
   will probably show up in other materials also.

*/ reconr -- 04jul98
*/   change the wide constant to prevent infinite loops
*/   (this showed up for u-232).

   Both NJOY 94 and NJOY 97 have a problem with U-232 from
   ENDF/B-VI that results in getting stuck in an infinite loop.
   This is due to a conflict between the value of "wide," which
   is 3, and the energy grid, which contains 100 and 300 eV.
   The code just keeps trying 300 eV over and over.  We really
   should try to fix up the nest of conditionals that guides the
   code, but a quick fix is just to make the value of wide
   incommensurate with any likely energy grid, hence, wide=3.01.

*/ reconr -- 02jul98 
*/   fix up some mistakes in the use of the cmplx intrinsic 
*/   function, fix some variables left as real when they should 
*/   be double, and make sure that the complex variables go to 
*/   double precision properly when requested.

*/ reconr -- 02jul98
*/   fix up the use of float.  for double precision version, 
*/   float will put out a real*4, which is not what we want
*/   when the user has asked for "*set sw".

   One of the main features of NJOY 97 is its explicit use of
   double precisioning.  However, people brought up with "real"
   64-bit computers (Crays) sometimes don't really understand the
   intricancies of real*8!  It is tempting to assume that generic
   functions always do the right thing with mixed-mode arithmetic,
   but it is clear that functions like real, float, or cmplx
   don't know that you really want a double precision results just
   because you gave them double precision arguments.  You have to
   explicitly use dble or dcmplx to get the right accuracy for the
   result.  Also, you have to be careful that the two arguments
   for cmplx or dcmplx have exactly the same "kind" property.
   The "float" function has survived in some regions of very old
   coding.  It is easiest just to use proper mixed mode expression,
   and these can be written to preserve the full accuracy of the
   integers when they are promoted into the appropriate floating type.

   The consequences of these changes vary from machine to machine.
   In a very few cases, the compiler complains.  In most cases,
   there would be just a small loss in the accuracy of the results
   due to changes in the sixth or seventh place of some values.

*/ reconr -- 02jul98
*/   fix some places where mixed integer and real variables 
*/   could cause problems.

   This fixes a few places where we should have used the NINT
   statement to assure that real representations of integers
   convert to the correct values.  We are not aware of any
   problems that these statements have caused in the past.

*ident up2
*/ broadr -- 4jul98
*/   patches an error in the calculation of the thermal
*/   quantities involving fission, and then further
*/   improves the energy integrals so that the values 
*/   computed in broadr match those that would be 
*/   computed by groupr.  we also print out the
*/   1/v-equivalent version of k1, that is, the k1
*/   integral times 2 over sqrt(pi).

   One of the convenient features added to NJOY 97 was an
   automatic calculation of various thermal parameters for the
   cross section set being processed.  Parameters like
   the thermal fission cross section, Wescott G-factor,
   thermal alpha, K1, and resonance integrals are used
   widely to characterize evaluations for their usefulness
   in thermal reactor calculations.  Unfortunately, there was 
   an error in NJOY 97.0 that distorted the thermal integrals
   involving fission by about a percent, and this patch repairs
   it.  In the past, the thermal and resonance integrals were 
   computed using GROUPR in a one-group mode.  In the process
   of fixing the error in BROADR, we also enhanced the energy
   integrations used in order to make the results from BROADR 
   agree with those from GROUPR.  Also note that two different
   values are given for K1, the direct integral over the 
   Maxwellian spectrum, and that value multiplied by 2/sqrt(pi)
   to get a 1/v equivalent that can be compared with values
   computed from the thermal cross sections and G factors.

*ident up3
*/ heatr -- 02jul98
*/   fix some variables inadvertantly typed as real.  
*/   they should become double if "*set sw" was used.

   This careless typing of variables would cause real*4
   values to be used in some expressions, leading to some
   small losses in accuracy in the sixth or seventh decimal
   place.  They are probably only of significance when
   comparing versions of NJOY run with "*set sw" on 32-bit
   machines against versions run on true 64-bit machines.

*/ heatr -- 02jul98
*/   fix some places where mixed integer and real variables
*/   could cause problems.

   This fixes a few places where we should have used the NINT
   statement to assure that real representations of integers
   convert to the correct values.  We are not aware of any
   problems that these statements have caused in the past.

*/ heatr -- 02jul98
*/   change the name of the 939 mev constant.  it should
*/   an implicit floating type.

   One of the many systematic changes made while building NJOY 97
   was to isolate constants into data statements and to provide
   both real and double versions.  This was required because
   using a constant in a formula like 939.512 only gives you
   the real*4 value for the constant, not 939.5120000000.  Due
   to some vagary of Fortran, the code seems to know that
   "data mc2/939.512d0/" produces a floating value for mc2,
   but it seems best to change the name to "emc2" to agree with 
   the normal implicit typing used in NJOY.

*ident up4
*/ groupr -- 19jun98
*/   fix a bad write format and a bad message.

*/ groupr -- 02jul98
*/   fix problems with complex arithmetic when double 
*/   precisioning is used.

*/ groupr -- 02jul98
*/   fix some variables inadvertantly typed as real.  
*/   they should become double if desired.

*/ groupr -- 02jul98
*/   fix some places where mixed integer and real variables 
*/   could cause problems.

*/ groupr -- 02jul98 
*/   change the name of the mev constant.

   Here again, it seems best to use a name that follows the
   normal implicit typing rules used in NJOY.

*ident up5
*/ acer -- 04jul98 
*/   fix an uninitialized variable that always used to come
*/   through as zero on the type1 xsdir "stub" cards.

   This problem comes from too many years of relying on Cray
   Fortran!  It leads to some columns on the XSDIR stub card
   containing *****.  If you need to patch existing results,
   just edit the card to change the stars to "    0".  There
   are no other consequences.

*/ acer -- 22may98
*/   improve the printout, especially for secondary photons.
*/   there are no differences in calculated values caused
*/   by this change.  requested by frankle, lanl/x-ci.

   These changes print out some parameters, such as the number
   of energies being printed, that were only implicit previously.

*/ acer -- 22may98
*/   fix reaction names on plots for inelastic cross sections.  
*/   we're having trouble with quotes insides quotes, so we will 
*/   leave the classical ace stars, e.g., (n,n*2).
*/   fix one bad y-axis label where the quotes were omitted.
*/   fix the line type for the resonance fission plots.

   Quotes inside quotes are sure hard to figure out.  In previous
   versions of NJOY that used our own free-form input routine, the
   Hollerith delimiter was *.  Now that we are using quotes, this
   problem arises.  The easiest thing for the reaction names is
   just to leave out the quotes and go back to the old style names
   that were used before ASCII introduced the quote into Fortran.
   There is some real history in this code.

*/ acer -- 19jun98 
*/   be sure to compute enough legendre polynomials for 
*/   the required limits.
*/   fix a bad message format.

   These are small patches without many real consequences.

*/ acer -- 02jul98 
*/   fix some variables inadvertantly typed as real.  they 
*/   should become double if desired.

   They consequence of these errors is to use real*4 versions
   of some values in formulas.  This can lead to errors in the
   sixth or seventh decimal place.

*/ acer -- 02jul98
*/   change the name of the mev constant.

   As discussed above, NJOY 97 tries to put constants into
   data statements and provide both single and double precision
   versions.  This is important in ACER because we are using
   a large number of digits to represent energies.  If we
   converted from eV to MeV using "e=e/1.e6", all the energy
   values would be shifted slightly in the sixth or seventh
   decimal place, and comparisons between files produced on
   32-bit and 64-bit machines would become difficult.  Although
   Fortran somehow seemed to know the "data mev/1.e6/" meant
   that mev had type real, it seems safer to change the name
   of the constant to "emev" in order to be consistant with the
   normal implicit typing rules used in NJOY.

*/ acer -- 02jul98
*/   fix some places where mixed integer and real variables 
*/   could cause problems.

*/ acer -- 02jul98
*/   fix up the use of float.  for double precision version, 
*/   float will put out a real*4, which is not what we want.
*/   these floats were left over from the old days.

   These two kinds of problems were discussed above.  We
   haven't seen any specific consequences of either in our
   NJOY 97 runs to date.

*ident up6
*/ purr -- 26may98
*/   add the capability of producing conditional probabilities 
*/   for heating in the probability tables.  these are best 
*/   if partial heating cross sections are available for
*/   elastic (MT=302), fission (318), and capture (402). The
*/   coding will leave the heating unselfshielded if only the
*/   total heating (mt=301) is present.

*ident up7
*/ acer -- 26may98
*/   adjust acer to accept the new probability tables that 
*/   contain a conditional probability for heating.

   These two idents add a new capability to NJOY 97.  Although
   the preparation of unresolved resonance probability tables
   for the MCNP Monte Carlo code was working in 97.0, the
   conditional probabilities for heating were not being
   entered.  With this patch, heating in the unresolved energy
   range can be properly self shielded.  However, please note
   that it is necessary to provide partial kerma factors for
   capture and fission to get the right results.  Here is an
   example of the correct NJOY input cards to get unresolved
   heating values:

        ...
        broadr
        20 22 23
        9228 9 0 1/
        .001/
        300 400 600 800 1000 1200 1600 2000 3000/
        0/
        heatr
        20 23 24/
        9228 4/
        302 318 402 443/
        purr
        20 24 25
        9228 9 7 20 4/
        300 400 600 800 1000 1200 1600 2000 3000/
        1e10 1e4 1e3 300 100 30 10/
        0/
        thermr
        0 25 26
        ...

   Note that heatr is run before purr, and that partial
   heating values for 302 (elastic), 318 (fission), and
   402 (capture) are requested.

*ident up8
*/ acer -- 20jul98
*/   fix an error introduced by up5.  this problem damages the
*/   list of photon production yield mt values.

   You can see this error in action by looking at the end of
   the ACE file or the listing file.  Here you should see the 
   MT numbers for the reactions that are needed to use with 
   photon production yields.

*/ acer -- 6aug98 
*/   fix some problems with the ace files for photon angular
*/   distributions and with the corresponding output listing.
*/   noted by bob little (lanl).

   The numbers describing anisotropic photon angular distributions
   were shifted by one place in the file.  We have also fixed the
   format of the output listing to be the same as the listing for
   neutron angular distributions (8 columns).

*ident up9
*/ gaspr -- 14aug98
*/   fix an error in the construction of the new file1
*/   dictionary on the pendf tape after the insertion of the 
*/   gas production reactions.  this problem doesn't affect 
*/   the numbers in file3.

   This problem showed up in the online ENDF browser on
   http://t2.lanl.gov/data.  The reaction links were coming
   out wrong for MT values above 207.  Most codes really don't
   pay much attention to the File 1 directory.

*ident up10
*/ reconr -- 15aug98
*/   modify the reconstruction process in both lunion and resxs
*/   to use a tighter tolerance than err in the thermal range.
*/   this means that the .0253 ev cross section will be computed
*/   better, and the thermal parameters generated in broadr can
*/   be computed more accurately.  requested by lubitz (kapl).
*/ reconr -- 20aug98
*/   fix problem with reading in user's energy grid.  this is
*/   a rarely used option.

   The integral properties of large thermal systems, such as
   k-eff, have accuracies that push the tolerances used in
   normal reconstruction.  By doing things a little bit more
   accurately at thermal, we can help to keep the processing
   uncertainties down closer to the experimental uncertainties.

*ident up11
*/ broadr -- 15aug98
*/   modify the reconstruction tests to use a tighter
*/   tolerance in the thermal range to be consistent with
*/   the changes to reconr in up10.  change the upper limit
*/   for the thermal maxwellian integration to a more
*/   reasonable value.  change the display of the thermal
*/   parameters so that it only appears if the temperature
*/   is close to 293.6 K (0.0253 ev).

   The reconstruction change is made to match the changes in
   RECONR from up10.  A fairly recent change to NJOY was a
   capability to compute some commonly used thermal parameters,
   such as the thermal (.0253 eV) cross sections, the .0253-eV 
   Maxwellian average cross sections, the Wescott G-factors,
   common ratio like alpha and eta, the K1 parameter, and the
   capture and fission resonance integrals.  In order to make
   it harder to misuse these results, we now only produce them
   when BROADR is running close to 293.6K (.0253 eV).

*/ broadr -- 18aug98
*/   modify the doppler-broadening method to extrapolate
*/   below the lowest energy point assuming a 1/v cross section
*/   rather than a constant.  this is consistent with the newer
*/   versions of the sigma1 method from red cullen.  otherwise,
*/   the 1/v cross sections at the lowest energies have a
*/   tendency to sag slightly from the 1/v shape.

   This change has little practical impact, but it is reassuring
   to be able to compare the results of different codes without
   seeing confusing differences.

*ident up12
*/ unresr -- 18aug98
*/   fix error made in rdunf3 when eliminating an arithmetic if.
*/ unresr -- 18aug98
*/   fix the temperature format to allow for 293.6 degrees.
*/ unresr -- 24aug98
*/   fix the wide parameter to match reconr.

*ident up13
*/ purr -- 18aug98
*/   increase the storage space to make room for endf/b-vi pu-239.
*/   patch purr for elemental evaluations, and allow space for
*/   more spin sequences to handle the case of endf/b-vi mo-nat.
* purr -- 18aug98
*/   change the temperature format to allow for 293.6.
*/ purr -- 24aug98
*/   fix the wide parameter to match reconr.

*ident up14
*/ acer -- 24aug98
*/   don't divide the heating by 1e6 ev when it is really
*/   a factor.  this results in unresolved heating values too 
*/   small by a factor of 1e6 for two endf/b-vi materials.  
*/   found by little (los alamos).
*/ acer -- 24aug98
*/   fix some problems in the length of strings in common
*/ acer -- 22sep98
*/   fix the initialization of e for gety2 for subsections after
*/   the first.  this was a byproduct of taking constants out of 
*/   subroutine calls.  it causes problems for materials with
*/   anisotropic photons, such as n and o from endf/b-vi.
*/ acer -- 22sep98
*/   fix the logic for identifying which photon an angular
*/   distribution corresponds to.  the old scheme only used
*/   energy, and if two different reactions produced photons
*/   with the same energy, the angular distribution would
*/   always be indexed to the first photon in the list with
*/   that energy.
*/ acer -- 22sep98
*/   allow for more angles in the contour plots to handle the case
*/   of endf/b-vi oxygen.

   The last few changes in this block were discovered while
   processing the few ENDF materials that describe anisotropic
   photon emission.

*ident up15
*/ covr -- 23sep98
*/   fix some problems with the covariance plots that arose when
*/   we changed to using quotes to delimit character strings.
*/   the reaction names containing "prime" do not print out 
*/   right.  we remove the prime, counting on the level subscript
*/   do tell the user that it is an inelastic reaction.  also,
*/   change the blank labels to ".".  this is a flag to viewr
*/   to use a blank label, but to go ahead with the numbering
*/   of the axis.  these problems are visible in the file plot05
*/   from the original njoy97 test set.  noted by muir (iaea).

*ident up16
*/ viewr -- 23sep98
*/   when using quotes as character delimiters, it is hard to
*/   tell the difference between a blank label and a "default"
*/   label.  we change the input so that a label of '.' results
*/   in a blank label on the plot with numbering on the axis
*/   ticks.  a label of ' ' results in a "default" label, that
*/   is, no text label, and no axis numbering.  these features
*/   are used for the covariance plots from covr (see up15).

   The changes in up15 and up16 fix some problems with the
   covariance plots.  The symptoms are (1) missing numeric
   labels on the axis tic marks, and (2) incomplete reaction
   names for the (n,n') levels.

*ident up17
*/ thermr -- 23sep98
*/   modify output format to allow for 4-digit temperatures.

   Several of the updates above change formats to allow the
   new standard temperature of 293.6K to be printed out.

*ident up18
*/ acer -- 24sep98
*/   move some of the legend blocks so that they don't interfere
*/   with the curves as much.  this only works for curves with
*/   very predictable locations.
*/ acer -- 24sep98
*/   fix the expanded resonance plots to be more clever about
*/   the energy ranges plotted.  check the number of points in
*/   each decade.  if is is more than some cutoff, make a plot
*/   showing that decade.
*/ acer -- 24sep98
*/   separate out the gas-production reactions onto their own page

   These changes improve the graphs automatically generated by ACER.

*/ acer -- 24sep98
*/   fix another variable that is not defined except for type2
*/   format.  see up5 for the other one.

    The symptom of this is stars in one of the fields of
    the xsdir card.

*/ acer -- 24sep98 
*/   fix a numerical problem that shows up for endf/b-vi h-2.
*/ acer -- 24sep98
*/   fix the temperature print format to allow for 293.6k.

*ident up19
*/ thermr -- 24sep98
*/   fix a numerical problem, and allow for larger data sets
*/   (e.g., h in zrh from endf/b-vi rel. 3).

*ident up20
*/ njoy -- 25sep98
*/   fix some typing errors in njoy

*ident up21
*/ errorr -- 25sep98
*/   permit user energies above 20 mev in errorr when iread=0
*/   and correct a related minor code bug

*ident up22
*/ covr -- 25sep98
*/   fix two additional places where a space needs to be a dot
*/   in order to get axis values labeled.  See up15 for others.
*/ covr -- 25sep98
*/   restore a deleted line and fix a typing error in covr

   This makes sure that the numerical values are printed for
   the contour plot color legends.

*ident up23
*/ moder -- 21jun98 
*/   add new ltt=3 format.  this format modification was introduced 
*/   to help with adding high-energy data to endf evaluations.  
*/   it allows for the use of legendre polynomials for elastic 
*/   scattering at lower incident energies, with a change to
*/   tabulated distributions at higher energies.

   The ltt3 format was added for high-energy evaluations, and it
   is used in the LA150 library.  Most NJOY users won't have to
   be too concerned with this patch.

*ident up24
*/ heatr -- 21jun98
*/   add new ltt=3 format to heatr. 
*/ heatr -- 21jun98
*/   make more room for lo=2 gammas and provide a protective
*/   error message.

   The ltt=3 patch appears in three places.  See up23, 24, 25.
   The lo=2 representation for photon production gives braching
   probabilities at each level.  As more complex evaluations are
   generated, we need to provide for space.

*ident up25
*/ groupr -- 21jun98
*/   add new ltt=3 format to groupr. 
*/ groupr -- 21jun98
*/   make more room for lo=2 gammas and provide a protective 
*/   error message.

   See above.

*ident up26
*/ njoy -- 25sep98
*/   fix the typing errors in njoy again.

   We did it wrong again in up22!

*ident up27
*/ acer -- 11oct98
*/   add the word ptable to the xsdir cards when unresolved
*/   probability tables are present
*/   add more storage space to take care of the large probability
*/   tables in endf/b-vi pu-239.

   Probability tables are a new feature being added to the MCNP
   Monte Carlo code to allow self shielding the the unresolved
   energy range.

*ident up28
*/ purr -- 15oct98
*/   fix some tests that are supposed to protect the sqrt
*/   function against small negative arguments.

   These tests are rarely activated.

*ident up29
*/ covr -- 5nov98
*/   correct typos in 2 reaction names and add 7 new names.
*/   contributed by muir (iaea).
*/ covr -- 5nov98
*/   correct error in color plot option (muir, iaea).
*/ covr -- 12nov98
*/   correct diagnostic for empty plots and fix shading
*/   for color plots, b-w plots, and ndiv greater than 1.

   These changes improve the operation of the COVR module.

*ident up30
*/ njoy -- 5nov98
*/   add a comment-card capability for njoy input decks.  any
*/   lines starting with "-- " will be ignored (from muir, iaea).
*/ njoy -- 2nov98
*/   increase size of field in storage-error diagnostic (muir, iaea)

   It is often convenient to put comment cards in an NJOY input
   deck to help you remember what it is for, or what special
   features are included.  Just put --(space) at the beginning
   of a line to make it a comment.  These comments can only
   appear when the code expects a module name.  Don't put
   comments inside the block of input being read by a module.
   This option is also handy to "comment out" a part of an
   NJOY input file during testing, or to remove the first part
   of a deck for a rerun of a later part.

*ident up31
*/ reconr -- 5nov98
*/   fix typographical error (noted by p.deleege, tu/delft)
*ident up32
*/ unresr -- 5nov98
*/   fix misplaced update from up12.  Noticed by
*/   pelloni (psi) and deleege (tu/delft).
*ident up33
*/ purr -- 5nov98
*/   fix misplaced update from up13.  Noticed by
*/   pelloni (psi) and deleege (tu/delft).

   Several problems that only show up when running in the
   64-bit mode (for example, on a Cray, or under VMS on a 
   DEC alpha).

*ident up34
*/ reconr -- 5nov98 
*    allow for more unresolved-range grid energies to handle
*/   the case of fe-56 from eff-3.0 (fendl-2.0).  it corrects
*/   a fatal error when the ur range exceeds 100 kev.  this 
*/   patch was provided by trkov (ijs/slovenia).
*ident up35
*/ unresr -- 5nov98
*/   corresponding changes to unresr (see up35)
*ident up36
*/ purr -- 5nov98
*/   corresponding changes to purr (see up35)

   The EFF-3 evaluation for Fe-56 has a large region of 
   unresolved fluctuations at relatively high energies.  These
   high energies have never occured before for the relatively
   heavy isotopes treated using unresolved resonances.  The
   energy grid of standard unresolved energies is simply
   extended to higher values.  Note that this shows up in
   3 modules, and it has to be done for the 32-bit and 64-bit
   versions of each.

*ident up37
*/ groupr -- 5nov98
*/   the addition of the logic to automatically determine the
*/   version of endf being used damaged the writing of the id
*/   record on the gendf file.  in addition, the count for the
*/   title field was undefined from subroutine ruinb.  this
*/   patch was provided by trkov (ijs/sovenia). 

   This problem shows up with binary gendf output files.
 
*/ groupr -- 5nov98
*/   fix a problem with the input of a weighting function.
*/   it was introduced by the changeover from infree to read*.
*/   discovered by trkov (ijs/slovenia).

   This one shows up any time you try to read in a
   special weight function.

*ident up38
*/ acer -- 5nov98 
*/   previous versions of acer converted cm legendre polynomials
*/   in file6/law1 into kalbach distributions, but this does not
*/   always provide a good representation of the evaluator's
*/   intent.  this patch converts these data into a laboratory
*/   file6/law7 form instead.  it is needed for fe-56 from
*/   eff-3.1.  the patch was contributed by trkov (ijs/slovenia).
*/   mcnp-4 will provide direct sampling from the original cm
*/   distribution, and this patch will no longer be effective.

   The treatment of coupled energy-angle distributions is still
   evolving in MCNP.  This patch is very useful for some
   current EFF evaluations, but we hope to have an even better
   approach available for MCNP 4.

*ident up39
*/ acer -- 5nov98 
*/   in up14, the length of the hz string in common/mis1 was
*/   set to 13 in preparation for the new mcnpx format, but 
*/   it also needs to be set in other routines.  this was
*/   being done in the mcnp4/mcnpx jumbo acer patch (to be
*/   released later), but these changes are being moved here
*/   to keep the compilers happy while waiting for the
*/   jumbo patch.  recommended by trkov (ijs/slovenia).

*ident up40
*/ wimsr -- 5nov98
*/   the following wimsr updates were provided by a.trkov,
*/   (ijs/slovenia).  define nfid from rdfid, and make
*/   sure that some flags are consistent.
*/ wimsr -- 5nov98
*/   extend absorption and multiple neutron emission reactions.
*/ wimsr -- 5nov98
*/   improve input instructions for burnup data.
*/   add delimiter records when burnup data are present.

*ident up41
*/ acer -- 05nov98
*/   fix a problem with the dimensions of two arrays that was
*/   discovered by broeders (fzk).

*ident up42
*/ plotr -- 17nov98
*/   fix some problems noted in plotr by m.mattes (u.stuttgart).
*/   the values of xtag and ytag are not being read in.  factx and
*/   and facty are being applied to the x and y values in plotr,
*/   so they need to be reset to unity before going on to viewr.
*/   this is necessary to prevent the factors from being applied
*/   to the coordinates twice.

   The patch on xtag and ytag allows you to properly position
   curve tags or legend blocks on your graphs.  You can use
   factx and facty for nice purposes like changing the horizontal
   scale to MeV and the vertical scale to millibarns.  But
   you don't want to apply them twice!

*ident up43
*/ unresr -- 20nov98
*/   the changes to the unresolved energy grid in up34 were
*/   not quite correct for the sw machines.  trkov.
*ident up44
*/ purr -- 20nov98
*/   the changes to the unresolved energy grid in up35 were
*/   not quite correct for the sw machines.  trkov.
*ident up45
*/ covr -- 20nov98
*/   one change was left out of muir's covr patches in up29.
*/   it is needed to get correct labels for plots of the
*/   high threshold reactions.

   These three idents fix some problems with the recent 
   updates leading to the release of 97.42.

*ident up46
*/ njoy -- 4dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision, and that any conversion
*/   of real numbers to integers is explicitly flagged for
*/   truncation or for nearest integer. 

*ident up47
*/ reconr -- 4dec98
*/   make sure this step factor is not a multiple of 2.
*/   without this patch, the if statement can be sensitive
*/   to differences in the 10th or 11th place, thus giving 
*/   different results with different compilers.

*/ reconr -- 4dec98
*/   at low energies in nonfissionable materials, the r-function
*/   in csrmat is obtained from a degenerate r matrix that is very
*/   close to unity.  this leads to difficult numerics for low
*/   incident energies.  this patch rearranges the terms to allow
*/   unit terms to cancel out, thus giving better results for the
*/   total and capture cross sections for materials in the
*/   fe,ni,cr range.  the old approach could show differences
*/   between different machines starting in the 6th significant
*/   figure of the capture cross section.  these differences are
*/   only significant when comparing results from different systems.

*/ reconr -- 4dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.

*ident up48
*/ broadr -- 11dec98
*/   make sure this step factor is not a multiple of 2.
*/   without this patch, the if statement can be sensitive
*/   to differences in the 10th or 11th place, thus giving 
*/   different results with different compilers.

*/ broadr -- 11dec98
*/   tighten tolerance for printing thermal quantities.
*/   fix problem in capture resonance integrals.

*/ broadr -- 11dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.

*ident up49
*/ unresr -- 11dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.
*/   the common with the unit numbers was changed to be the
*/   same in every subroutine to avoid confusion.

*ident up50
*/ heatr -- 11 dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.

*ident up51
*/ thermr -- 15dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.
*/   in addition, any conversion of real numbers to integers is 
*/   explicitly flagged for truncation or for nearest integer. 

*ident up52
*/ groupr -- 14dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.
*/   in addition, any conversion of real numbers to integers is 
*/   explicitly flagged for truncation or for nearest integer. 

*ident up53
*/ leapr -- 2dec98
*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.
*/   in addition, any conversion of real numbers to integers is 
*/   explicitly flagged for truncation or for nearest integer. 
*/   an error in mixed-mode conversion was fixed that affects
*/   the statistical factor for cold hydrogen or deuterium.

*ident up54
*/ gaspr -- 2dec98
*/   increase the maximum energy grid size.

*/   fix various issues raised by ftnchek.  these changes make
*/   sure that there are no 4-byte constants in statements that
*/   might lead to a loss in precision.  we have even eliminated
*/   occurences of "0." for completeness, even though this value
*/   probably doesn't lead to problems with known compilers.
*/   in addition, any conversion of real numbers to integers is 
*/   explicitly flagged for truncation or for nearest integer. 
*/   also, add more fortran block structures, including do blocks.

  These patches were developed while trying to explain some
  small differences between the results of running the test
  problems with different compilers reported by Giancarlo
  Panini.  Sometimes these differences appear in the second
  or third significant figure if the numbers are small.
  Most of the problems basically result from differences in
  the seventh place between real*4 and real*8 values.  A
  few resulted from poorly constructed differences that
  actually depended on differences in the 10 or 11th place
  in real*8 numbers for compilers that used very difference
  arithmetic (e.g., Cray vs IEEE).  As described in the above
  comments, we tried to remove all statements that converted
  real*4 constants into real*8 variables--even for "0.".
  This leads to a large numbers of changes, most of which
  have no effect on the results.  However, we have included
  both the trivial and the useful ones for consistency.

*ident up55
*/ reconr -- 13jan99
*/   fix a typographical error in up47
*/ reconr -- 13jan99
*/   make trange incommensurable with normal grid energies
*/   to help in getting the same grid on different machines
*/ reconr -- 14jan99
*/   fix errors made in up47 while eliminating real*4
*/   constants from the code.  from mattes (ike-stuttgart).
*/ reconr -- 15jan99
*/   fix an incorrect comment line, and replace one
*/   last real*4 constant in an if (trkov, ijs slovenia).

                IMPORTANT IMPORTANT IMPORTANT
  The error made for up47 is very important.  It causes 
  resonance cross sections in Reich-Moore format to be seriously 
  in error.  Using the ENDF Reich-Moore uranium and plutonium 
  evaluations with this error in place led to keff values of 0.8 
  in some calculations.

  The other changes in this ident are not too important, but 
  they do help to give identical energy grids when running on
  either Cray or Sun, even though the arithmetic in these
  machines is somewhat different.  Matching grids allows one
  to run diff to compare two PENDF or ACE files.  Convenient.

*ident up56
*/ broadr -- 13jan99
*/   make trange incommensurable with normal grid energies
*/   to help in getting the same grid on different machines

  This one also helps to give the same energy grid on
  different machines.

*ident up57
*/ acer -- 13jan99
*/   fix an error in up38.  this update introduced a conversion
*/   to law=7 format for file 6 cm or lab tabulated or legendre 
*/   data (needed for jef iron).  unfortunately, the conversion
*/   is running for endf kalbach data also!

                IMPORTANT IMPORTANT IMPORTANT
  This error cause ENDF evaluations using the Kalbach approach
  to be processed incorrectly for MCNP libraries--this includes 
  the uranium and plutonium "Big 3," so be careful not to run 
  with those older versions of NJOY.

*ident up58
*/ heatr -- 14jan99
*/   add initialization for zero.
*/   found by both deleege (dlft) and muir (iaea).
*ident up59
*/ groupr -- 14jan99
*/   fix an error introduced by up52.  the 64-bit versions of the
*/   constants bgam2 and tgam2 were clobbered by some of the
*/   other revised constants.  this does not effect "sw" versions.
*/   noted by deleege (delft).

  These problems were caused by the changes designed to remove
  real*4 literal constants from some of the NJOY modules.
  Sorry for the carelessness.

*ident up60
*/ wimsr -- 15jan99
*/   add additional space for fission products and fix the
*/   consistency between the container array size and dimensions.
*/   requested by trkov (ijs, slovenia).

  These changes could be useful for the wims community.

*ident up61
*/ njoy -- 15jan99
*/   make a change recommended by trkov (ijs slovenia) that
*/   prevents an infinite loop for some pc compilers.

   This problem showed up with the Lahey compiler, but
   nobody else has mentioned it as yet.  It may also
   occur in other situations.

*ident up62
*/ matxsr -- 15jan99
*/   remove some obsolete coding.  this shouldn't affect
*/   answers, but it stops a few annoying compiler messages.

*ident up63
*/ njoy -- 27jan99
*/   fix a typing error when adding double constants.
*/   reported by mattes, muir, panini.
*ident up64
*/ broadr -- 27jan99
*/   fix a typing error when adding double constants.
*/   only affects 64-bit installations.  from mattes.
*ident up65
*/ unresr -- 27jan99
*/   fix a typing error when adding double constants.
*/   only affects 64-bit installations.  from mattes.
*ident up66
*/ heatr -- 27jan99
*/   fix a typing error when adding double constants.
*/   only affects 64-bit installations.  from mattes.
*ident up67
*/ groupr -- 27jan99
*/   fix a typing error when adding double constants.
*/   only affects 64-bit installations.  from mattes.
*ident up68
*/ purr -- 27jan99
*/   fix a typing error when adding double constants.
*/   only affects 64-bit installations.  from mattes.

   This group of idents fixes typing problems with
   the introduction of double precision data constants.
   In most of these errors, a "d" was typed instead of
   an "e" in one of the data lines for use with 
   64-bit machines.

*ident up69 
*/ groupr -- 28jan99
*/   add a missing save variable.  this variable is an
*/   index to a scratch area, and the problem can be
*/   intermittent, depending on the machine.  it only
*/   occurs for discrete levels (mt=51,52,...) when
*/   given in file 6.  noticed by frankle (lanl).

   This has only shown up on the Cray so far.  The
   unsaved variable points outside of the memory area
   when the getfle subroutine is reentered.

*ident up70
*/ dtfr -- 28jan99
*/   fix a problem with the graphics file for the
*/   neut-phot matrix from dtfr.  it shows up in viewr.

   This one shows up as a read error in viewr.

*ident up71
*/ matxsr -- 28jan99
*/   set uninitialized variables in mtxdat.

   This one caused a failure in matxsr on the Cray.  Some
   machines automatically set these variables to zero,
   and they don't see this problem.

*ident up72
*/ thermr -- 28jan99
*/   fix a typing error in one of the data statements

   This would affect the 32-bit calculation of thermal data
   for benzine between 296 and 400K.

*ident up73
*/ reconr -- 1feb99
*/   watch out for histogram gamma yields and add extra
*/   grid points above and below the mf12 energies.

   When there are steps in the photon production, you really
   should have the same steps in the energy grid for the
   heating.  In the cases that we saw, this problem occured for
   capture in the energy range where it is small, so the practical
   impact of this change may not be large.  However, it does help
   to get good agreement between different computer systems that
   round numbers differently.

*ident up74
*/ heatr -- 1feb99
*/   add two missing save variables.

   This kind of problem can lead to erratic results, even when
   the job seems to run OK.  It also depends on how the compiler
   handles dynamic storage allocation in its heap area.  Of course,
   this one doesn't matter for static systems.

*ident up75
*/ leapr -- 5feb99
*/    resolve some problems with constants for the cold hydrogen
*/    calculation.  there is a data item, cct=.01381, which is
*/    actually bk*ev=.01380658, except for some factors of ten
*/    that were left out of the original constants because of
*/    cancellation.  we take cct out of the equations.  in
*/    addition, different values of the rotational level
*/    spacing were use to compute rotational energies
*/    (.0147 for h, .0074 for d) and the average bond length
*/    (1.5 and .71, with pesky factors of ten treated differently.
*/    We will change the average bond length calculation to
*/    agree with the level spacing values.

   It is nice to base calculations on a few fundamental constants
   that are the same every place in the code.  This change helps.

*ident up76
*/ heatr -- 5feb99
*/   improve the treatment of the damage threshold.  the atomic
*/   displacement energy "ed" appears in two places in a damage
*/   calculation: (1) in the damage function, displacement damage
*/   is zero for primary recoils with energy below "ed", and
*/   (2) in converting damage energy to dpa, you divide by twice
*/   the displacement energy "ed".  the latter function is
*/   performed outside of njoy, but the former uses an internal
*/   default value of 25 ev.  this update provides a table of
*/   default values for "ed" that varies from element to
*/   element, and it allows the user to enter a special value
*/   of the displacement energy, if desired.  requested by
*/   ornl to improve the agreement between njoy and the current
*/   iron damage standard in the 1 keV to 1 MeV range.

   The default constants used are the ones from the NJOY manual.
   This is a change in the HEATR input for people who don't
   terminate this card with a slash.  So check your decks.
   The old default value for iron was 25 eV, but it is now 40 eV.
   The effect of this is to change the elastic damage as it
   starts up in the keV region.  You may want to reprocess your
   important materials with this patch in place if radiation
   damage is important to you.

*ident up77
*/ acer -- 13feb99
*/   fix a problem with reading in file6,law7 as used for
*/   the endf 9be evaluation.

   This shows up as a read error from topfil.

*ident up78
*/ wimsr -- 19feb99
*/   fix a problem with reopening scratch files.  the usage of scratch
*/   files varies on different machines, and this problem didn't
*/   show up for most systems tested.  however, on dec alpha machines,
*/   test problem 11 is going to terminate with an end-of-file
*/   message from xseco.  diagnosed by roberto orsi (enea, bologna).

*ident up79
*/ thermr -- 19feb99
*/   the value of the neutron mass used for calculating bragg edges
*/   in sigcoh is currently 1.00866489 amu, but the endf standard is
*/   1.0086652 amu.  this change affects the bragg energies and the
*/   corresponding cross sections by only one digit in the last place
*/   for some of the values, and it has no practical consequences.
*/   making it now will improve consistency between njoy97 and
*/   future versions that use more consistent constants.  similarly,
*/   we add more digits to pi.  in some cases, it is necessary to hold
*/   10 or 11 digits to get perfect agreement in the seventh place
*/   because of roundoff, e.g., x.xxxxxx4999 and x.xxxxxx5001 will
*/   differ by 1 in the seventh place when printed out.  this happens!
*/   these changes only affect thermal coherent scatterers like
*/   graphite, be, and beo.

   We are working toward using consistent physical constants
   throughout NJOY.  This is one step in that direction.

*ident up80
*/ heatr -- 24feb99
*/   update the physical constants in heatr to agree with the
*/   standard constants to be used with the next version of njoy.
*/   this helps when making comparisons.  emc2 uses the endf
*/   value for the neutron amu (1.0086652) and codata for the
*/   amu, c, and the ev conversion.

*ident up81
*/ reconr -- 24feb99
*/   update the physical constants in reconr to agree with the
*/   standard constants to be used with the next version of njoy.
*/   this helps when making comparisons.  cwaven uses the endf
*/   value for the neutron amu (1.0086652) and codata for the
*/   amu, hbar, and the ev conversion.

*ident up82
*/ unresr -- 24feb99
*/   update the physical constants in unresr to agree with the
*/   standard constants to be used with the next version of njoy.
*/   this helps when making comparisons.  cwaven uses the endf
*/   value for the neutron amu (1.0086652) and codata for the
*/   amu, hbar, and the ev conversion.

   Additional steps towards using consistent physical constants
   throughout the NJOY code.

*ident up83
*/ thermr -- 24feb99
*/   fix an indexing problem when writing out the thermal scattering
*/   data.  it results in the highest e' point having a bad 
*/   scattering probability value (should be zero).
*/ thermr -- 24feb99
*/   improve the accuracy of a constant for better comparisons
*/   to newer versions of njoy.   c is just the sqrt(4*pi).

   The first part of this correction fixes an actual, but small,
   error.  The second part continues the updating of the physical
   constants.

*ident up84
*/ groupr -- 25feb99
*/   fix an error in a data statement.  this affects the
*/   epri-cell-lwr flux around .09 ev on short-word machines.

   This is a fairly small difference in the weighting flux
   and it leads to differences in only the highest significant
   figures for the multigroup fluxes and cross sections.

*/ groupr -- 25feb99
*/   improve the accuracy of a constant for better comparisons
*/   to newer versions of njoy.   rp4 is just the sqrt(pi/4).
*/ groupr -- 25feb99
*/   the double and single versions of some of the quadrature sets
*/   are not quite consistent with each other.  This can effect
*/   the high order digits for intermachine comparisons.

   These two things also only affect the high-order significant
   figures.  They won't change results for practical applications,
   but they are needed to minimize "diffs" between different
   versions of NJOY running on different machines.

*/ groupr -- 25feb99
*/   set a sometimes unitialized variable.  the bad values for
*/   this variable can show up on gendf files.

   This variable isn't actually used by any of the current
   applications, but its random contents sure make for funny diffs
   on gendf files!

*/ groupr -- 25feb99
*/   change the approach used to reduce the precision of some small
*/   quantities.  in some cases, small numbers (such as higher
*/   legendre moments) are computed as differences between larger
*/   numbers, and they don't have as much numerical precision as
*/   the larger numbers.  njoy97 has some logic designed to
*/   reduce the number of significant figures in such numbers in
*/   order to make machines using different arithmetic produce
*/   consistent results.  this is currently done at the cross-section
*/   level in displa.  we are now moving it to the feed-function
*/   level, where the truncation can be done using methods more
*/   appropriate to each particular quantity.  truncated cross
*/   sections are currently fairly obvious because they end in
*/   several zeros.  this feature is lost, but comparisons between
*/   different machines should still be consistent.
*/ groupr -- 25feb99
*/   use sigfig to adjust the weight-function enext points to
*/   get the same grid on different machines.  

   These are more steps intended to get all the diffs pushed out
   to the last significant figure.  An ever present problem is how
   to handle results that are differences between large numbers.
   One way is to try to reduce the number of significant figures
   in the differences to reflect the actual precision expected.

*/ groupr - 26feb99
*/   eliminate excess gendf send cards for reactions where the
*/   threshold is higher than the upper limit of the group structure.

   These extra SEND cards have been in the gendf output forever.
   They don't seem to cause any problems, but it is high time
   to fix the problem.

*/ groupr -- 28feb99
*/   add three more save variables.  this can cause erratic
*/   behavior on some machines.
*i groupr.5635
      save elo,ehi,intt

   I wish the flint programs would check for unsaved variables!
   They are so easy to miss.

*/ groupr -- 28feb99
*/   truncate the quadrature energy to match the existing energy
*/   grid points.  otherwise, additional panels sometimes occur.

   The quadrature energies go into interpolation routines, such as
   terpa, and it is important to have the input energy consistent
   with the grid energies inside terpa.  this, along with the
   change to sigfig below, helps to assure that on very different
   machines (e.g., cray vs sun).

*ident up85
*/ njoy -- 26feb99
*/   on the cray, sigfig(x,n,0) produces a number that is very
*/   slightly less than what is desired.  for example, with x=.009,
*/   sigfig produces .00899999999999962.  this can cause problems
*/   with searching for interpolation ranges.  we change sigfig
*/   to make the results slightly larger than the target value.

   We are trying to make sigfig produce numbers slightly higher
   than the target value on all machines.

*ident up86
*/ reconr -- 26feb99
*/   fix the tests in emerge.  they should be fraction tests, not
*/   tests on 1e-10 barns difference!

   These incorrect tests resulted in loosing an (n,2n) threshold
   when we modified sigfig.

*/ reconr -- 26feb99
*/   for slbw, the small elastic cross sections in the interference
*/   minima are computed as differences and lose precision.  this
*/   change truncates the two parts to 8 significant figures before
*/   calculating the difference.  the small differences then have
*/   fewer significant figures, and intermachine comparisions look
*/   better.  there is no effect on practical applications.

   The interference dips in the SLBW resonance representation aren't
   very true to nature anyway.  But it is nice to get the same
   values on different machines.

*ident up87
*/ acer -- 28feb99
*/   fix the threshold logic so that the damage threshold is
*/   at the minimum energy, even with an error in the heatr grid.

   The symptom of this is a threshold energy of 1.125e-11 for
   the damage.  This is a result of a long standing problem in
   the HEATR grid, which gives 1.000010e-5 as the first energy
   instead of 1.000001e-5.  We really should fix that someday....

*/ acer -- 28feb99
*/   change the tests used for thinning angular distributions
*/   to allow the thinning to be turned off with a small
*/   enough tolerance value.  this makes it easier to do
*/   comparisions with newer versions of acer that don't thin.

   Future versions of NJOY will not attempt to thin the
   incident energy grid for angle and energy distributions.
   This fix allows you to turn off thinning now by putting in
   a very small tolerance.  We really did it to allow easier
   checking of the new versions of NJOY against the older ones.

*ident up88
*/ heatr -- 28feb99
*/   make sure that sixbar can find the highest energy point
*/   for the new representation of the energy with the
*/   new bias added to sigfig.

   This is related to the change in sigfig above.  With the
   sigfig energies on the high side of the target on all
   machines, it is easy to miss the max energy of the grid.

*/ heatr -- 28feb99
*/   rationalize the numbers before printing to help make them
*/   come out the same on different machines.

   Now that all the sigfig energies are on the high side of
   the target, using it on numbers before printing them avoids
   the problem of numbers close to x.xxx5... printing one way
   on the cray an another on the cray.  A diff of the two
   files doesn't give you as many trivial diffs in the last
   significant figure.

*ident up89
*/ broadr -- 29mar99
*/   use sigfig on the input maximum energy for broadening and
*/   thinning.  the old coding results in the break energy 
*/   being included in the broadening for some machines, and 
*/   not being included for others. the effects of this change
*/   will usually be in the seventh digit at the break energy.

   This shows up as a slight difference at the 1 MeV point in
   Test Problem 1, because 1 MeV is the breakpoint for broadening
   and it also happens to be a grid point.

*ident up90
*/ acer -- 29mar99
*/   the scratch tape containing the converted endf cross sections
*/   is not properly terminated.  this results in a read error
*/   in some cases.
*/ acer -- 29mar99
*/   reduce the precision of the some calculated values
*/   in order to get the same results using binary or ascii.

   The ACE format prints out 12 digits, but we don't use them all!
   This patch helps to minimize the differences between linking
   the pendf file into acer in binary mode or ASCII mode.

*ident up91
*/ groupr -- 29mar99
*/   use more digits for the lethargy constants for the gam-ii 
*/   structure (suggested by muir, iaea).
*/ groupr -- 29mar99
*/   protect against division by zero.  this can occur for
*/   the recoil nucleus.  noted by vladimirov (kurchatov).
*/ groupr -- 29mar99
*/   fix groupr to handle the lct=3 option.  this had been
*/   done before for heatr and acer, but groupr was omitted.
*/   noted by vladimirov (kurchatov).  remember that lct=1
*/   means lab, lct=2 means cm, and lct means cm for particles
*/   from alpha down, and lab for heavier particles.

*ident up92
*/ viewr -- 29mar99
*/   reduce the size of the legend block to make it easier
*/   to fit on plots without obscuring the curves.  also,
*/   fix the axis labeling to allow non-integer values for
*/   the lower and upper limits without mislabeling (e.g.,
*/   1.5 to 4.5 by steps of 1.0).  from muir (iaea).

   We have a tendency to choose integers for the ends of
   scales--thanks to Doug for pushing the envelope and
   finding this error.

*ident up93
*/ heatr -- 29mar99
*/   use 6 significant figures for heating values larger
*/   than 1e10 to make the binary and ascii pendf files
*/   equivalent.  helps with diffs in acer.

   This only occurs when the cross section is pretty large.
   The diffs between the two different ways of running ACER
   a trivial, but there are an annoying number of them!

*ident up94
*/ njoy -- 30mar99
*/   when a tab1 starts with a zero followed by a discontinuity,
*/   such as the kind of things found at resonance range boundaries
*/   or when photon production starts artificially as in MF13, shade
*/   xnext down slightly so that the threshold is not missed.
*/   for an example, check the threshold of mt51 in out08.
*/   found by frankle and little (lanl).

   In Ni-61 from ENDF/B-VI, the cross sections are set to zero
   below the upper end of the resonance range at 70 keV to
   avoid the complexities of putting competition into the
   resonance representation.  A double energy point giving the
   discontinuity at 70 keV is provided in each channel.  See
   MT=51 for an example.  This double energy point near the
   threshold was confusing ACER into putting out zero for the
   cross section at 70.00001 keV, and this caused oversampling
   in MCNP.

*ident up95
*/ unresr -- 30mar99
*/   reorder some arithmetic to give better values for
*/   the infinitely-dilute transport cross section.

   This fixes differences in MF2/MT252 that appeared on pend02.
   It also helps with out02 and gend02 differences.

*ident up96
*/ njoy -- 14apr99
*/   the bias factor must be real*8

   This affects the performance of sigfig, which truncates
   numbers to have a well defined number of significant figures.

*ident up97
*/ heatr -- 14apr99
*/   fix a typo from up88.  it only affects the listing.

   The heatr results are correct, but the listing is wrong.

*ident up98
*/ groupr -- 14apr99
*/   this attempt to improve the numerics causes some machines
*/   to go into a infinite loop.  restore the old way.
*/ groupr -- 15apr99
*/   add the xmas group structure.  requested by the nea.
*/   this structure contains about 80 thermal groups and is
*/   used in Europe for thermal reactor neutronics calculations.

*ident up99
*/ reconr -- 12may99
*/   don't extrapolate for the unresolved cross section.  this
*/   can occur for elemental evaluations when the upper limit
*/   of the resolved ranges is greater than the upper limit of
*/   the unresolved ranges.  an example is jeff zr-nat.

*ident up100
*/ matxsr -- 13may99
*/   set uninitialized variable.  reported by mattes.
*/   causes a storage exceeded message for binary mode.

*ident up101
*/ ccccr -- 13may99
*/   fix up the pointers for delayed-neutron processing.
*/   patch provided by broeders and kiefhaber, fzk.

*ident up102
*/ groupr -- 29aug97
*/   enhance activation processing and provide an option
*/   to automatically process all the mats on the endf input tape.

    Modern activation libraries, such as EAF, the European
    Activation File, are very extensive.  They have typically
    used dedicated codes to process the evaluated data into
    the forms used for various activation codes.  More recently,
    it has been suggested that these libraries be recast into
    a format more like ENDF in order to take advantage of standard
    processing systems like NJOY.  In this format, "File 8" is
    used to provide an index to the reactions and file types that
    produce activation; for example, implicit File 3 activation,
    MF9 activation cross sections, MF10xMF3 activation yields, or
    MF6xMF3 activation yields.  Once this file is present, these
    modifications to GROUPR allow an automatic production of all
    the activation cross sections.  This work is currently
    experimental.

*ident up103
*/ acer -- 13may99
*/   the complex procedure used to break the two subsections of
*/   the f-19 (n,2n) reaction up into two separate reactions
*/   (mt6 and mt46) is not really needed to make proper mcnp runs.
*/   we are removing it for simplicity.
*/ acer -- 13may99
*/   add an additional consistency check for the gamma production
*/   sum.  make sure it is equal to the gamma production (gpd).
*/ acer -- 13may99
*/   provide additional scratch space for endf f-19.

*ident up104
*/ groupr -- 28jan00
*/   fix a typographical error in up102
*/   this causes groupr to fail for automatic input

*ident up105
*/ heatr -- 30jan00
*/ add missing external statement

    This change, and the similar changes in the following two
    idents, are needed for Lahey-Fujitsu LF95, which has an
    intrinsic named "error" that conflicts with NJOY's error
    subroutine.

*ident up106
*/ groupr -- 30jan00
*/ add missing external statement
*/ groupr -- 30jan00
*/ fix problem with finding the correct interpolation range
*/ in getunr.  causes glitch at resolved-unresolved boundary
*/ on some machines.  see the 200 eV region in test problem 2.

    This patch improves the portability of NJOY97 by eliminating
    a problem that leads to some small differences at the 
    resolved-unresolved boundary on some machines.  It is 
    visible as differences in group 13 for Test Problem 2.

*ident up107
*/ wimsr -- 30jan00
*/ add missing external statement

*ident up108
*/ groupr -- 28mar00
*/ fix a problem introduced with the activation patch.
*/ add some statements to fix problems when running
*/ without static mode under g77 on linux.  fix a problem
*/ identified by pelloni (psi) with tabulated delayed
*/ neutron data.  these problems show up when doing
*/ delayed-neutron spectra with various evaluations.

*/ groupr -- 28 mar 00
*/ fix the indexing for the 172-group xmas structure

*ident up109
*/ acer -- 03apr00
*/ increase the available storage to handle the very large
*/ mf6/mt16 tabulation in JEFF-3 Be-9.

*/ acer -- 03apr00
*/ adjust the fix6 routine to handle cm distributions that do not
*/ span the entire range of lab angles.

*ident up110
*/ leapr -- 04apr00
*/ fix an error made in up53 that destroys the calculations for
*/ cold parahydrogen, orthodeuterium, and paradeuterium.  The
*/ evidence is too large cross sections at high energies (such
*/ as 0.5 eV).  It was just a typing problem, but it didn't get
*/ caught until we tried the calculations with NJOY99.

*ident up111
*/ acer -- 30may00
*/ more work on handling file 6 cm distributions by conversion
*/ to the lab angle-energy representation.  add the jacobian
*/ for the transformation, and fix the check that makes sure 
*/ that the outgoing energies are increasing.  this is not a 
*/ perfect way to do this conversion because it doesn't 
*/ reconstruct the energy grid to provide a faithful 
*/ representation in the lab.  this patch is needed for several 
*/ jef-2.2 evaluations.

    When correlated energy-angle distributions were introduced for
    ENDF/B-VI, it took some time to update the sampling routines in
    MCNP to handle them.  In interests of getting something working,
    only the Kalbach representation for tabulated distributions and
    the angle-energy lab representation were implemented.  As 
    additional new evaluations in ENDF-6 format began to appear,
    other legal ENDF-6 evaluations began to be used.  Because MCNP
    could not handle these representations directly, NJOY made an
    attempt to convert them into the representations that did work.
    This was always somewhat unsatisfactory, and several attempts
    were made.  Finally, with MCNP4C and NJOY99, the need for
    conversions is gone.  In order to keep some backward compatibility,
    we are still trying to patch the older approach, and this update
    is one more attempt at this.  JEF-2.2 makes quite a bit of use of
    tabulated distributions in the CM, and we are currently converting
    them to the "law=7" angle-energy format in the lab.  The grids 
    being used are not as good as could be, and the results for energies
    where the full angular range in the lab is not covered are weak.
    But at least, the jobs run through.

*/ fix the unit for photon production consistency messages

    The messages were coming out on the console instead of on the
    regular output listing.

*ident up112
*/ viewr -- 30may00
*/ increase the allowed size of 3d plots

    The current space reserved for preparing 3-D plots sometimes
    is insufficient, resulting in messages about 3-D plots being
    truncated.  For JEF-2.2 Pb-0, the 3-D plots from ACER are so 
    large that memory is clobbered.  Therefore, we have increased
    the space used for these plots.

*ident up113
*/ acer -- 27jun00
*/  add missing line for the sequential (n,2n) reactions for be-9.
*/  this line was accidentally removed in njoy 94.19 (jan96).  the
*/  error was continued through njoy 97 and 99.  discovered by
*/  bob little (lanl).

*/ acer -- 26jun00
*/  patches provides by bokyn seo (kaeri) to add a missing
*/  external statement and to fix an uninitialized variable in
*/  our recent update up111.

*/ acer -- 26jun00
*/  fix an error in the reaction naming.  it affects mt=44 (n,n2p) and
*/  mt=45 (n,npa).  this problem was introduced in may of 1995.
*/  examples of cases that use these reactions are later releases of
*/  endf/b-vi al-27 and o-16.

*ident up114
*/ leapr -- 27jun00
*/  fix two incorrect constants in leapr.  one affects cases with
*/  diffusive effects, and it has been incorrect since njoy97.0
*/  (oct 97).  the other affects cold hydrogen calculations, and it
*/  has been incorrect since njoy97.53 (dec98).

*ident up115
*/ reconr -- 03sep00
*/ add changes provided by Nancy Larson at Oak Ridge for the
*/ new convention added to the Reich-Moore format that uses the
*/ sign of AJ to indicate which of the two channel spins is
*/ to be used.

   This supports a new format accepted at the 1999 CSEWG meeting.  
   There are no evaluations that use it as yet, but it is expected to
   appear in a new evaluation for Al-27 from ORNL.

NJOY Y2K Problem
----------------

The machine-dependent files upsun and uplinux use idate to get
the fields need to construct the date printed on the NJOY listing.
For older versions, the year field was computed using "-1900".  
Change it to 2000.  Or add the line 

      if (iarray(3).gt.99) iarray(3)=iarray(3)-100

if you plan to time travel back to 1999.

NEW INFORMATION FOR X86/DOS/Windows USERS
-----------------------------------------

We have set up NJOY97 to work with two current DOS compilers: Absoft F90
and Lahey-Fujitsu LF95.  The Lahey product compiles very fast and is
inexpensive in its "Express" version, but that version does not contain
a make program.  We have provided some additional batch files to ease
the installation and update process on LF95.  We have also provided
batch files to run the test problems for both compiler systems.  The
following new files are available:

   upabs              machine-dependent updates for Absoft F90
   uplf95             machine-dependent updates for Lahey LF95
   makef.abs          make file for Absoft F90
   install.bat        install script for Lahey LF95
   load.bat           load script for Lahey LF95
   runXX.bat          batch file to run Test Problem #XX (01 to 12)
   inXX.dat           input file for Test Problem #XX (01 to 12)

The following are new instructions for using these two compilers
on X86/DOS/Windows machines:

 -----------------------------------------------------------------------

 << installation on DOS/Windows machines using Lahey LF95 >> 
 
 For the initial installation...

   Open DOS command window and change the active directory
   to the NJOY99 working directory.

   Make sure that your working directory for NJOY99 contains the
   following files:

      src
      up114
      uplf95
      upd.for
      install.bat
      load.bat

      (combine up114 and uplf90 into upn)
      copy up114+uplf90 upn

      (make sure that upn contains "*cmp all" and "*set sw")

      (compile upd)
      lf95 upd.for -out upd.exe

      (make the module.for files)
      upd

      (compile and load all the modules)
      install

   The final executable code will be njoy.exe.

 To run the test problems ...

   Create a subdirectory in your NJOY working directory called test.
   Move the in*.dat and run*.bat files into test.  Make sure the
   following data files are available in your working directory (that
   is, the directory that contains test):

      t322
      t404
      t511
      eni61
      gam23
      gam27

   Using a DOS window, cd into test, and type "run01".  Continue
   for run02, run03, etc.  The result files, such as out01, out02,
   etc., will appear in the test directory.  Compare the result files
   in the test directory with the one from the original distribution.

 To make changes to NJOY97 in the Lahey LF95 environment ...

   Edit upn to add the new upd "ident" and to list which
   modules need to be updated; for example,

      *cpl groupr
      *ident fixbug
      */ fix a hypothetical bug in groupr
      *d groupr.444,445
      *ident vers
      ...

   Run upd from a DOS window. Run the compiler on the new deck
   or decks:

      lf95 -c deck.f 

   Run the load script to rebuild the binary njoy.exe:

      load

 -----------------------------------------------------------------------

 << installation on DOS/Windows machines using Absoft f90 >>
 
 For the initial installation...
 
   Make sure the following files are in your working directory:

      makef.abs 
      upd.f
      src
      up114
      upabs

   and do the following:

      copy makef.abs Makefile
      f90 -o upd.exe upd.f
      copy up0+upabs upn
      (check upn to make sure that the following lines are present
       at the start of the upn file: "*cpl all" and "*set sw")
      upd
      amake

      njoy.exe is your executable file
      module.f is a fortran compiler input file
      module.lst is a listing file
      module.obj is an object deck

   To make a change to NJOY 97 ...
 
   Make sure the following files are available:

      upd (the executable version)
      upn (the expanded version)
      src
      Makefile
      module.f files
      module.obj files
      previous njoy.exe

   Edit upn to add the new upd "ident" and to list which
   modules need to be updated; for example,

      *cpl groupr
      *lst groupr
      *noid
      *set sw
      *ident fixbug
      */ fix a hypothetical bug in groupr
      *d groupr.444,445
      *ident vers
      ...

   Then just do the following:

      upd
      amake

   Versions of the test problem input files in for dos are
   given in two parts, a runXX.bat file, and an inXX.dat file
   that is used by the batch file.  To run the test problems, 
   move the input scripts to a test directory created in the 
   directory that contains the njoy.exe file, and then simply
   type

      run01

   and so on.  Various output, pendf, ace, and Postscript files
   will be generated in the test directory.

----------------------------------------------------------------

    Little Known Facts: the official symphony for the NJOY
    project is Beethoven's Ninth, the text of which comes
    from the well known poem of Schiller: Ode to NJOY.

ryxm@lanl.gov