NJOY 94.105 ------------------------------------------------- 30 Jul 1997 This is NJOY 94.105. It provides a number of patches to 94.0 and several new capabilities, such as gas production and color graphics. NJOY 94.0 was a major new release that included all the changes in NJOY 91.118, the PostScript plotting package, the new LEAPR module for computing thermal scattering laws, and a major update to PURR. To help the user, the following sections start with specific key phrases; use your editor to search for the desired topics. << changes in 94.105 >> << distribution files >> << documentation >> << version control with upd >> << installation on UNICOS machines at Los Alamos >> << installation on UNICOS machines at NERSC or SDSC>> << preparing a Sun version >> << preparing a VAX version >> << LEAPR >> << GASPR >> << Postscript Plotting >> This version has been tested on a Cray YMP with both static and stack-based memory allocation, on a Sun Ultra in 32-bit and 64-bit modes (-r8), and on a Pentium 90 using linux g77 (32-bits with stack-based memory allocation). Supporting files for other systems have not been updated, and VMS, RS 6000, and Dec Alpha users will have to pay attention to selecting the appropriate machine constants for the slatec routines and adding the appropriate lines to upvms, uprs6k, and updecau. See upsun and upsun8 as examples, and check the sample machine constants given in up86. ---------------------------------------------------------------------- << changes in 94.105 >> *ident up1 */ heatr -- 8feb95 -- fix error in heating that occurs when iprint=0 *ident up2 */ njoy -- 30may95 -- fix problem in messages */ njoy -- 30may95 -- fix typo in definition *ident up3 */ heatr -- 30may95 -- define yields for more MT numbers *ident up4 */ groupr -- 30may95 -- define yields for more MT numbers */ groupr -- 30may95 -- define some new reaction names Some existing MT numbers weren't included, and names and yields were needed for some new MT numbers recently introduced into the ENDF format. *ident up5 */ acer -- 30may95 -- define multiplicities for more MT numbers */ acer -- 30may95 -- add some new reaction names Same reasons as above. */ acer -- 30may95 -- include mt91 in reference frame check This check was mistakenly omitted, but it is important. */ acer -- 31may95 -- fix mispositioned statement This statement started in column 6, but some compilers handled it OK! *ident up6 */ thermr -- 14jun95 -- fix ordering of declarations LINUX is a little more critical of the ordering of declarations than Cray or Sun Fortran. *ident up7 */ errorr -- 14jun95 -- fix incorrect calls *ident up8 */ acer -- 22jun95 -- fix problem with zaid *ident up9 */ acer -- 01jul95 -- fix error introduced in 91.104 that causes the */ elastic ang. dist. to be omitted for h-1. This is fairly important mistake. Rerun any jobs produced with the incorrect versions. */ acer -- 01jul95 -- fix problem with shifting of points for */ mf6 generalized yield. This problem only occurs for high-energy evaluations, such as the 100 MeV files generated at Los Alamos. */ acer -- 01jul95 -- still trying to get the changes made for */ mf6,law7 in 91.104 and 91.117 right! */ acer -- 01jul95 -- use more cosines for converting mf6 to */ law7 angle-energy format. */ acer -- 14jul95 -- provide for container storage Some of these ACE files are pretty big! *ident up10 */ njoy -- 20jul95 -- use coarser tolerances for functions *ident up11 */ groupr -- 11sep95 -- allow auto to find gas production reactions With these changes, you can run all the gas production reactions (MT=201 through 207) found on the PENDF files using "3/" in your input deck. See below for more on gas production. */ groupr -- 11sep95 -- process radioactivity cross sections. */ reactions on gendf are labeled with 10*iza+iso. */ 10/ automatically selects reactions given in mf8 */ using the mfd 90 and 100 series. *ident up12 */ matxsr -- 11 sep 95 -- radioactive isotope production. */ 10*iza+iso for the product is available. */ naming scheme for production reactions (6 char): */ cxxxxx for capture reactions (selfshielded), */ rxxxxx for other reactions, where */ xxxxx is a 5 character string iza+100*iso. There are problems with representing radioactive isotope production cross sections for elemental evaluations in the ENDF format. This patch takes some liberty with the MF8, 9, and 10 files originally designed to give isomer production cross sections for isotopes. *ident up13 */ acer -- 2 oct 94 -- turn on gas-production reactions Previously, the ACE files ignored any MT203 to 207 sections found on the input PENDF file. They are now made available to be used for activity tallies. See below for more on gas production. *ident up14 */ njoy -- 28nov95 -- add gas production module Only a few current evaluations contain gas production cross sections in MT203 through 207 (H-1, H-2, H-3, He-3, and He-4, respectively). Rather than go through an exhaustive process to add gas production to all the existing evaluations, we are providing a new NJOY module that will add gas-production sections to the PENDF tape in the same way that we add thermal cross sections or heating. The module goes through the reactions and finds all the contributions to the gas production, including the light residual nuclei. It also handles File 6 reactions, including energy-dependent particle yields. Any existing gas production sections on the input file are replaced with the new values. The only input to GASPR is the ENDF, old PENDF, and new PENDF tape numbers. The printed output gives a table showing how each reaction MT contributes to the gas production. *ident up15 */ njoy -- 8jan96 -- fix gami function. */ this problem only affects materials that use */ the madland-nix fission law in mf5, such as */ am241 from endf/b-vi.3. *ident up16 */ groupr -- 8jan96 -- allow for more mf12 gammas. */ the previous limit of 100 discrete gammas */ is ok for endf/b-vi, but it causes trouble */ for a local evaluation with especially */ detailed mt102 gammas. *ident up17 */ broadr -- 8jan96 -- fix problem with mt4. */ this problem occurs when there is resolved */ unresolved overlap in an elemental evaluation */ (e.g., endf/b-vi wnat), and it shows up as */ bogus numbers in MT4 for the overlap range. *ident up18 */ dtfr -- 9jan96 -- make sure that chi is written out. */ the problem occurs for materials with energy */ independent fission matrices and no delayed */ fission (e.g., pa233 and np239 in endf/b-vi). *ident up19 */ acer -- 9jan96 -- add damage to the ace file. */ this just requires looking for mt444, */ providing a name string for damage, */ and updating the plotting routine. With this patch, the MT444 cross section is available for tallying in MCNP. MT444 is a non-standard value used by NJOY for the damage-energy production cross section. It is tabulated in units of MeV-barns for MCNP. The MCNP user will have to use the MCNP tally input cards to divide it by twice the atomic displacement energy (in MeV) (with a possible efficiency correction) to get a DPA tally. Sample values for the displacement energy (in eV) for normal materials are given in the NJOY report. */ acer -- 9jan96 -- add expanded plots of resonance data */ acer -- 9jan96 -- combine continuum, disappearance and gas */ production plots. change the vertical scale */ for lin-lin plots. These changes improve the ACER plotting output. */ acer -- 9jan96 -- fix control over translation to lf=7 format. */ this error causes problems for be-9. *ident up20 */ viewr -- 11jan96 -- fix incorrect offsets for landscape mode. */ the effect is that characters don't line up */ with line elements correctly. */ viewr -- 11jan96 -- fix subscript problem. */ the level of the text doesn't recover */ properly after a subscript. */ viewr -- 11jan96 -- change the default size for subscripts */ and superscripts to make them more readable. */ viewr -- 11jan96 -- don't put log labels too close. */ this logic will space close labels like */ every other power of ten, every third */ power, etc., depending on sizes. */ viewr -- 11jan96 -- fix errors in linear scales. */ the old way sometimes produced labels like */ 0, 1, 1, 2, 2, 3x10-3. */ viewr -- 11jan96 -- fix the background grids for 3d plots. */ the problem shows up for the grid in the */ xz plane at the far end of the y axis. These changes improve the appearance of all of the NJOY graphics output. *ident up21 */ groupr -- 25jan96 -- fix errors introduced in up4. */ note that mth was used instead of mtd. */ these lines of up4 also appear in 91.128. */ reported independently by de leege (Delft) */ and konno (jaeri). *ident up22 */ acer -- 25jan96 -- fix bad reaction name string. this was */ reported by brian palmer (bwfc). this line */ appears in up25 of njoy91. */ acer -- 25jan96 -- make sure resonance plot range doesn't go to zero *ident up23 */ heatr -- 25jan96 -- fix typo in heatr. this problem was introduced */ in 91.103, and it was noticed by konno (jaeri). *ident up24 */ heatr -- 31jan96 -- modify tabsq6 to allow for discrete photons. *ident up25 */ broadr -- 10feb96 -- fix erfc in funky. the previous */ formula didn't have a good enough */ fractional accuracy far out on the wings. */ this probem caused errors of up to */ 0.3 percent in some broadened 1/v xsecs. This problem was first observed by Lubitz (KAPL) as a failure in the constancy of 1/v cross sections with changes in temperature for hydrogen capture at 1400 K. The variations between the computed cross sections around .0253 eV and the correct value were about 0.2% for a reconstruction tolerence of 0.1%. The errors increase to about 0.3% at 1 megaK. The new function is good to about .00001% for the range of the argument used in BROADR, and it reduces the errors due to erfc to about .02% for the hydrogen capture case. For the best accuracy, use your system's erfc instead of erfcc in FUNKY. *ident up26 */ njoy -- 23feb96 -- fix bad argument lists for tosend, */ tofend, and tomend in the new gaspr */ module. noticed by broeders (kfk) */ when compiling with linux. The incorrect version still works on some machines. *ident up27 */ groupr -- 21mar96 -- fix typo in radioactivity work */ (from piet de leege, delft) This probably won't affect anyone as yet. *ident up28 */ viewr -- 21mar96 -- must use two single quotes for portability */ (from nordborg, nea data bank) Some compilers allow double quotes inside single quotes, but the FORTRAN standard does not. *ident up29 */ heatr -- 22mar96 -- make sure that subdivision interval does not */ decrease to zero on short-word machines */ (noticed by trkov, enea bologna) */ heatr -- 22mar96 -- make h6cm more consistent with f6cm in groupr */ to help prevent infinite loops on short-word machines */ and to avoid undefined values of yt */ (suggested by trkov, enea bologna) These problems first showed themselves because HEATR went into an infinite loop on an RS6000 machine. Some of the fixes stop the infinite loop, and some of them clean up the routine. *ident up30 */ groupr -- 22mar96 -- make sure that subdivision interval does not */ decrease to zero on short-word machines */ (noticed by trkov, enea bologna) This is the same patch made above, except it is applied to the corresponding routine in GROUPR. *ident up31 */ covr -- 22mar96 -- fix some format statements to remove compilation warnings (provided by trkov, enea bologna) *ident up32 */ leapr -- 22mar96 -- fix a format statement to remove compilation warning */ (provided by trkov, enea bologna) These changes improve portability, but they do not affect answers. *ident up33 */ reconr -- 22mar96 -- fix pseudo threshold processing. */ the original logic for removing small cross sections */ to obtain a pseudo threshold didn't allow for cases */ where the interpolation law changes before the */ pseudo threshold or where there are too many energy */ points below the new threshold. these cases */ occured for JEF-2.2. */ (patch developed by trkov, enea bologna) This problem only shows up for a couple of JEF evaluations. *ident up34 */ njoy -- 22mar96 -- for gaspr, fix the preparation of the new */ directory for cases where old gas production */ mt-s were removed. This problem shows up when the original evaluations contains gas production reactions, and when the number of gas production reactions generated by GASPR is different from the number in the original evaluation. The only example known is ENDF/B-VI Ti. *ident up35 */ heatr -- 22mar96 -- fix q value of charged-particle levels in mf6 This problem will only show up if the evaluation uses MF=6 and MT=600-849. The q value being used included the level energy. It should have only included the mass-difference effect. The error was visible in the HEATR diagnostics. *ident up36 */ thermr -- 29mar96 -- fix interpolation special cases and warn user */ when too far outside of temperature range. */ this logic allows extrapolation up to 10 pc */ above and below the given range or value. This helps the case where just one temperature is given and machine precision makes it difficult to input exactly the right number. *ident up37 */ acer -- 29mar96 -- fix numerical problems in finding equal prob */ bin values for tabulated ang distribs that */ are very close to isotropic. this arises now */ because more bins are being used for the */ conversion of lab MF6 to LAW7 (see up9). */ The error showed up as a floating point */ fault for ENDF/B-VI lead isotopes on Crays. */ acer -- 31mar96 -- fix problem with plotting ENDF/B-VI mo-nat. */ the evaluation has silly numbers in the nth */ location of a histogram. don't use them to */ calculate zmin and zmax. see mf15/mt102. *ident up38 */ njoy -- 17apr96 -- fix gety1 and gety2 to treat the last point */ as a discontinuity. this only affects cases */ where the cross sections runs out before the */ group structure (some cp cases). Some of the new charged-particle evaluations from Los Alamos have different upper energy limits for different reactions. This fix makes sure that these upper limits are treated as discontinuities, but the user will have to be careful to use these data appropriately. *ident up39 */ groupr -- 17apr96 -- provide fixes for the case where the */ incident energy range ends before the */ group structure ends. this is common */ in lanl charged-particle files. Charged-particle cross sections are not always given to energies as high as those used for neutrons, both because of problems with modeling the reactions, and because emitted heavier particles have lower energies than neutrons. However, we normally use the same group structure for neutrons and charged particles. That is why this patch is needed. *ident up40 */ reconr -- 16jul96 -- arrange to have all the subsections */ of mf10 merged onto the union grid. MF10 contains production cross sections for radionuclides. It is important to have it unionized, just like the other cross sections. *ident up41 */ dtfr -- 20jul96 -- add self-shielding for nu*sigf and the capture */ and fission parts of the gamma prod matrix. DTFR is not the best way to handle selfshielded cross sections using NJOY. The MATXS/TRANSX path provides much better capabilities. However, DTFR can be used to prepare simple selfshielded cross sections for a single value of the background cross section, sigma-zero. XTM personnel observed that the fission nu*sigf was not being shielded. During our efforts to patch this problem, we also found that the neutron-photon matrix was not being shielded. *ident up42 */ gaspr -- 23jul96 -- include some rare reactions (rel. 3 al-27) */ and fix a few other problems. The new Al-27 evaluation from T-2 includes a number of new or rarely used reaction identifiers, MT. The specifications for the light particles emitted by these reactions had to be added to GASPR to get the correct gas production. This problem was discovered by Bob Little (LANL). *ident up43 */ groupr -- 23jul96 -- add more space for auto reaction lists The new evaluations now coming out of T-2 are very detailed, and we had to increase the size of the lists that keep track of the reaction MT numbers being used. *ident up44 */ reconr -- 11sep96 -- fix trkov patch in up33 In up33, we made some changes suggested by Andrej Trkov to fix problems with the "pseudo threshold" logic for oddly formatted sections of some JEF-II evaluations. Unfortunately, this had the side effect of damaging the processing of some of our regular ENDF/B-VI materials (noticed for O-16). This patch repairs this problem. *ident up45 */ acer -- 11sep96 -- fix to prevent overflows and underflows when */ calculating equiprobable bins for int=4. */ contributed by harm wienke, iaea. */ acer -- 11sep96 -- allow the backward angle limit for the */ equiprobable bins to be greater than -1.0 */ acer -- 11sep96 -- improve the error messages in pttab The changes proposed by Wienke rearrange the arithmetic in some statements to make it behave better on 32-bit machines. The work on the error messages was done to indicate the energy where the problem was occuring, and to standardize the format. At high neutron energies, angular distributions become very forward peaked. MCNP uses 32 equally probable cosine bins to represent these angular distributions. If the backward cosine is always -1.0 (as in all current sets), but most of the distribution is concentrated near cosines of 1.0, 3% of the scattering will be into back angles where there is very little actual scattering possible. This problem can be alleviated by allowing the backward limit to be some value higher than -1.0. This patch detects cases where the integral from -1.0 to mu is very small, and it chooses a new backward limit such that this integral is less than aback=1.e-4. A larger value might be preferable for this limit. Tests on several materials show that this change in the backward limit only shows up for incident energies greater than 20 MeV. *ident up46 */ heatr -- 21sep96 -- fix lang and kinematics for tabulated law2 in mf6 */ heatr -- 21sep96 -- prevent infinite loop on mu for sw machines */ heatr -- 21sep96 -- don't print small balance errors */ heatr -- 21sep96 -- add new option for the reference system lct. */ if lct=3, the light particles (n thru alpha) */ are in the cm system, but the heavy particles */ (recoil nuclei) are in the lab. this option */ only affects law=1. it is used for high-energy */ evaluations, such as those from los alamos. */ heatr -- 11sep96 -- increase quadrature order to handle 200 mev Los Alamos is in the process of preparing evaluations for neutron and proton cross sections to 150 MeV in support of some accelerator applications projects. These high-energy evaluations have very forward-peaked angular distributions that cannot be handled using the normal ENDF limit of 20 Legendre orders. The evaluators initially chose to get around this limit by using tabulated angular distributions. However, this exposed some problems in the processing code. It turned out that tabulated distributions were being treated incorrectly for LAW=2 of File 6. The use of the LANG flag and the kinematics formulas had to be changed slightly. Once this was done, it was discovered that 32-bit machines went into an infinite loop because of round-off errors in calculating the next energy to process. This was fixed by setting a minimum spacing between mu values for the adaptive angle integration. Other angle integrals in HEATR are performed using Gauss-Legendre quadrature. It was necessary to increase the order of the quadrature sets from 20 to 64. Testing showed that these changes also affected cross sections at 20 MeV slightly. We also modified the upper limit on Legendre order to allow up to order 64. This violates the ENDF procedures, but we will propose a modification. It becomes more and more difficult to calculate the energy spectrum of heavy residuals from nuclear reactions as energies approach 150 MeV. The angle-energy distribution in the CM has to be carried to very high order to make it possible to get a sensible LAB distribution by transformation. However, most applications don't require angular information for the LAB distribution. Thus, it is more compact to give the recoil spectra in the LAB frame, even while the particle spectra are still given in the CM to take advantage of the compactness of Kalbach systematics. The methods for generating the LAB recoil distributions to 150 MeV were developed by Mark Chadwick. We are proposing a modification to the ENDF File 6 format to add a new value for the reference-frame parameter, LCT. Using LCT=3 would indicate that all the light particles (n through alpha) are given in the CM, but that recoils (masses heavier than alpha) are in the laboratory frame. The coding needed to support this option was added, and the new evaluations were run successfully. The values of energy printed out by HEATR's kinematic checks indicated that that the LCT=3 option was acting correctly. *ident up47 */ acer -- 23sep96 -- allow for tabulated distributions in mf6, law2. */ also allow for legendre orders to 64. */ acer -- 23sep96 -- cope with the new lct=3 These changes are related to those discussed for up46. It turned out that ACER would not process LAW=2 tabulated angular distributions from File 6 at all. A fairly extensive revision of the ordering of loops and subroutines was required to fix this. At the same time, the changes required to allow Legendre representations to order 64 were made. We also made the minor changes needed to support the LCT=3 option described above. *ident up48 */ acer -- 25sep96 -- allow for anisotropic gammas (endf c and o) Two ENDF/B-VI materials have data for anisotropic photon production, namely C-nat and O-16. These data have been ignored by ACER for some time, even though the ACE format does allow for such anisotropy. This fairly extensive patch adds the logic needed to extract the data from ENDF and load it into the ACE arrays, and the logic needed to print the photon angular distributions on the output listing. *ident up49 */ acer -- 30sep96 -- check for e' greater than e in energy */ distributions. patch and/or warn. Some evaluations from ENDF and other evaluated libraries will sometimes exhibit outgoing neutron energies E' greater than the incident energy E for non-fission channels. This causes a a fatal error in the current version of MCNP. In one known case, this happens due to a real positive Q value for the neutron emitting reaction. For MT=5 in File 6, it occurs in some cases because fission channels for high energies are included in MT=5. It also occurs legally for isomeric targets, such as Am-242m. In all the other cases, it occurs because the discrete nature of binning in nuclear model codes wasn't adjusted carefully to match the energy end point of the spectrum. It is very difficult to come up with logic to properly test and/or correct this problem in a way that is consistent with the tests made in MCNP and faithfull to the physics. We have decided to do the following. If the distribution is given in MF=5, we will check the Q value. If Q is positive, E'>E will be allowed. If Q is negative, the tail over E will be cut off and the distribution will be renormalized. If the distribution is in File 6, we will check Q, MT, and target mass. If Q is positive and MT is not equal to 5, the distribution will be passed as is. If Q is negative and MT is not 5, the distribution will be trucated at E and renormalized. If MT=5 and the target mass is greater than 180, we will leave the upscatter in place (assuming fission or other positive Q reactions are possible) and warn the user to check on the problem. If MT=5 and the target mass is less than 180, will will truncate the distribution at $E$ and renormalize. *ident up50 */ njoy --31sep96 -- undo the changes up up38. evaluators will have */ to make sure that reactions that end early take */ themselves to zero at the upper energy limit. The previous patch caused trouble at the upper energy limit of normal evaluations. *ident up51 */ matxsr -- 29nov96 -- add up separate contributions to production */ reactions used for radioactive nuclides. */ matxsr -- 9dec96 -- fix common name loc to avoid conflict */ with reserved word (neadb) In an elemental evaluation, it is possible that two different reactions will produce the same radionuclide. This patch makes sure that these different contributions in the output from GROUPR are added together on the MATXS files so that each possible product shows up only once. *ident up52 */ acer -- 3dec96 -- fix problem with finding bins for tabulated */ distributions. if the area of the last cosine */ range or two is very small, the binning can */ stop before the cosine list is finished, */ thus leaving a bad value for the top of the */ last bin. couldn't resist some cleaning up. */ acer -- 3dec96 -- fix the recently added test for ep>e. the */ units ev and mev are being confused. */ acer -- 3dec96 -- fix unset variable suff (panini, neadb) */ acer -- 4dec96 -- close a unit so that it can be reused. */ acer -- 9dec96 -- turn off coding connected with ace type 3 */ acer -- 9dec96 -- remove an unused message Most of this update corrects careless mistakes in previous recent updates. The problem in finding equally probable bins showed up for some of the strongly backward peaked distributions in the elastic scattering of iron. Because the integral area in the last bin or two was so small, the binning would terminate early, leaving identical numbers for the last two or three bin cosines. This in turn caused a floating point overflow when the code attempted to divide by the bin width. The new version of the coding solves this problem, and it is slightly cleaner. *ident up53 */ groupr -- 4dec96 -- make sure function returns its value for */ the initialization entry to keep the */ compilers happy. */ groupr -- 9dec96 -- use generic max function (neadb) *ident up54 */ heatr -- 4dec96 -- the patch in up46 has the side effect of */ ruining the calculations for law3, i.e., */ isotropic discrete scattering. */ heatr -- 4dec96 -- remove unreferenced coding (protsik, ge) */ heatr -- 4dec96 -- delete references to two unused values. */ also, make sure that function values are */ returned by initialization entry. */ heatr -- 4dec96 -- check on index range (carminati, cern) */ heatr -- 9dec96 -- fix typo (panini, neadb) */ heatr -- 9dec96 -- increase storage container size for */ jef (carminati, cern) */ heatr -- 9dec96 -- make comparison safer for risc machine */ (carminati, cern) The first problem shows up for materials that use isotropic LAW=3 in file 6 to represent discrete scattering, e.g., ENDF/B-VI Fe-57. The rest of the changes improve portability by eliminating warning messages from the compiler on some systems. They probably do not influence any NJOY results. *ident up55 */ moder -- 4dec96 -- fix string length for error message. It's pretty bad when an error message causes a fatal error! *ident up56 */ thermr -- 4dec96 -- make sure function returns a value to */ keep the compilers happy. This is another portability improvement that eliminates a compiler warning message. *ident up57 */ errorr -- 4dec96 -- the temperature is no longer available in file 3. */ the code must search in file 1. (carminati, cern) */ errorr -- 9dec96 -- fix out-of-bound error in mtname */ (panini, neadb) ENDF/B-V and earlier version had a little-used option to put the temperature in the C1 field of the second card in File 3. For ENDF/B-VI, this was changed in order to allow the consistent use of two Q values. The temperature was moved to File 1. Temperatures are usually found only for processed PENDF files, and this patch makes it possible for ERRORR to find the correct Doppler-broadened material when necessary. *ident up58 */ njoy -- 4dec96 -- provide more digits for storag messages Messages from the STORAG system used by NJOY for dynamic memory allocation now consistently allow 6 digits. *ident up59 */ leapr -- 9dec96 -- sw fixes from panini, neadb *ident up60 */ broadr -- 9dec96 -- use generic max function These two updates fix portability problems. *ident up61 */ ccccr -- 9dec96 -- fix mistyped variable (neadb) The variable upmax was not being set correctly from the input file. *ident up62 */ heatr -- 19dec96 -- fix error in correcting error. */ repairs bad results for tabulated ang. dist. */ this is a problem for the lanl high-energy */ evaluations, but most evaluations below 20 mev */ use polynomials and won't be affected. */ noticed by chadwick, lanl. In baseball, it is "three strikes, and yer out". Hope this is OK! *ident up63 */ njoy -- 19dec96 -- fix error made in up58. this problem only */ messes up the storag messages. it doesn't affect */ answers. found by trkov (ijs slovenia). This puts the current storage size on a line by itself, thus messing up the appearance of the printed page and causing lots more lines of diff output when checking the test problems. *ident up64 */ broadr -- 19dec96 -- a step value of 2.0 often matches the energy */ step in the evaluation. this can lead to */ problems with an if test where some machines */ can take one branch, and some the other. this */ can be prevented by using an unusual value */ for step. discovered by trkov on dec alpha. */ this is not a problem unless fairly coarse */ tolerances are used for reconstruction */ (for example, test problem 1). This was a very subtle error, which caused lots of differences between runs made at single precision on an alpha and double precision results. It made it look like single precision agreed with the Cray results better, but that was false, because more grid points were being used with the double precision runs due to the effects of the ambiguous if statement. We will have to be very careful with if statements on the alpha--they behave differently than on most other machines. *ident up65 */ acer -- 19dec96 -- fix a bad calling sequence. this normally */ causes no problem, but compilers notice. *ident up66 */ powr -- 19dec96 -- fix a bad calling sequence. this normally */ causes no problem, but compilers notice. These two coding problems were noticed when compiling on linux. *ident up67 */ thermr -- 3mar97 -- fix problems with temperature interpolation */ when there is only one temperature by allowing */ a small band of temperatures to work. */ this patches errors made in up36. *ident up68 */ acer -- 25mar97 -- keep all the charged particle reactions */ in the ace file to use for particle production */ acer -- 5mar97 -- fill in the name string for damage */ that was omitted in up19 */ acer -- 25mar97 -- allow for isotropic photons at some energies */ acer -- 28mar97 -- watch out for a special case in the numerics */ for equally probable bins (aneed close to zero) */ acer -- 28apr97 -- provide more storage for thermal file six ACER normally did not include cross sections that were not used by MCNP. In some cases, MCNP needed reactions that were to be multiplied by gamma-ray yields, and these reactions were included. Now, we also want to be able to compute charged-particle production. Therefore, just about every reaction has to be included, including all the charged-particle levels with numbers like 600, 601, etc. *ident up69 */ reconr -- 4apr97 -- fix a special case for evaluations with upper */ energy greater than 20 mev. if eresh=20e6, */ the 20 mev point gets removed, which can */ spoil any discontinuity that might appear */ there when matching high-energy data to the */ older low-energy data. the result is a */ glitch in the total and the reactions with */ a starting singularity at 20 mev (eg, mt=5). */ the logic to remove eresh is really there for */ ordinary resonance ranges, and it is safe */ to leave it there at 20 mev. *ident up70 */ groupr -- 1dec96 -- modify thermal interpolation */ to expose the interpolated points */ and to use unit base at low energies The current thermal interpolation method tries to interpolate along lines of constant energy transfer. However, this causes problems in the triangle at low energies. There we change over to a unit-base interpolation method. This update adjusts the methods used there and makes sure that all the thermal energies are included. There is a commented-out print statement that can be used to check out the method by getting out numbers to be plotted. *ident up71 */ plotr -- 15oct96 -- provide automatic reaction loops If you request mtd=0 instead of an actual reaction mt number, plotr will automatically generate plots for all the reactions on the input file. Normally, there will be one page per reaction, but in the resonance range, the code may break up the energy range and spread the resonance cross sections out over several pages. */ plotr -- 15oct96 -- thin e grid for angular distributions. */ if the energy step is fairly large, don't thin. */ if the difference between this distribution and */ the last is large, don't thin. The following updates add a color graphics capability for plotr, dtfr, covr, and heatr. The input instructions for plotr and viewr are adjusted to be as identical as possible to make it easy to link the plot outputs from various codes into either plotr or viewr. */ plotr -- 15oct -- add color to the plots (see also up51). */ make input consistent with viewer. *ident up72 */ viewr -- 15oct96 -- add color for plots. */ make input consistent with plotr. */ viewr -- 15oct96 -- adjust the zero position on the paper. */ viewr -- 19dec96 -- fix bad parameter list *ident up73 */ dtfr -- 15oct96 -- adapt to the new viewr format *ident up74 */ covr -- 15oct96 -- adjust to use new viewr format */ covr -- 15oct96 -- reposition elements on the page *ident up75 */ acer -- 15oct96 -- adapt acer to new viewr features *ident up76 */ heatr -- 15oct96 -- adapt for new viewr input specs. The color plots allow for curves and plots to use darkish colors, while the window inside the axes and the page outside the axes can use different lightish colors. The titles and axes always use black. The color routines also allow curves that close to be filled with one of a range of colors. This is used to make colored contour plots where the colors indicate the value of the contour region. See the plots of covariances for an example. Check the revised input instructions for viewr, plotr, dtfr, covr, heatr, acer for more information on the details of making graphs with NJOY. *ident up77 */ njoy -- 10jul97 -- fix the format fixed in up63 again! *ident up78 */ broadr -- 10jul97 -- fix the calculation of "term" in hnab, */ which was numerically ill-posed, and */ could cause overflows on short-exponent */ machines (trkov, ijs slovenia) *ident up79 */ groupr -- 10jul97 -- fix the calculation of "term" in hnab, */ which was numerically ill-posed, and */ could cause overflows on short-exponent */ machines (trkov, ijs slovenia) *ident up80 */ matxsr -- 10jul97 -- remove the capital "m" that eroneously */ appeared during up51 (trkov) *ident up81 */ gaminr -- 10jul97 -- make variable "rndoff" correct for */ short-word machines. this caused an */ infinite loop for test problem 3 on */ an hp machine (trkov) *ident up82 */ wimsr -- 10jul97 -- extensive improvements to the wimsr module */ based on the work of a.trkov, inst.j.stefan, */ ljubljana, slovenia, in connection with an */ international effort on wims and wims data. */ */ These three update were provided by Trkov, and his comments */ are included. We have not tested them, but there has been */ quite a bit of testing, and there is some international */ agreement on the code and format extensions. REM *ident up83 */ wimsr -- 10jul97 -- continuation of trkov's wimsr changes *ident up84 */ wimsr -- 10jul97 -- continuation of trkov's changes to wimsr Look in the up105 file to see more details on the changes contributed for WIMSR by Trkov's project. *ident up85 */ broadr -- 10jul97 -- change broadr to use the slatec erfc *ident up86 */ njoy -- 11jul97 -- provide more accurate math functions */ from the publicly available slatec library Doppler broadening is especially sensitive to the accuracy of the error function used. We upgraded the erfc function in up25, but we were interested in having even more accuracy available. We also wanted to use coding that had no restrictions on its distribution. Both of these goals are achieved by using code from the SLATEC library, which is freely available from the internet. We modified the subroutines that we needed to match the NJOY coding style and to use the NJOY error and message routines. We also changed some names slightly to interface the routines to the generic NJOY function calls and to work with NJOY's methods for going back and forth between 32-bit and 64-bit machines. The SLATEC library attempts to run on a very large variety of machines. In order to tailor the numerics to each machine, it uses a subroutine containing the basic numerics for many different computers, all with a comment flag in column 1. The intent was to uncomment your particular machine. We choose to use our machine-dependent updates (e.g., upsun, upvax, upuni-la, uplinux) to insert the necessary lines into the SLATEC routine. When writing a new upxxx for a new machine, check s1mach and d1mach in the source code to see if parameters are already available for your machine. *ident up87 */ viewr -- 15jul97 -- fix problem with right-hand log axes (kapl) *ident up88 */ plotr -- 15jul97 -- fix right-hand axis option (barnett, kapl) *ident up89 */ acer -- 15jul97 -- fix photon reaction list (kosako, sumitomo) *ident up90 */ broadr -- 27jul97 -- compute and write out various thermal */ integrals, thermal cross sections, and */ resonance integrals when broadening to */ the first temperature. For thermal applications, it is convenient to characterize evaluations using a few simple quantities. Typically these include the thermal cross section at .0253 eV, the integrals over a Maxwellian spectrum, the G-factors that describe the effect of a deviation from a 1/v shape, and the resonance integrals. To make is easier to refer to such quantities, we are now computing them in BROADR while doing the first temperature (e.g., 300K). Note that the input had to be changed slightly to make the ENDF file available for nubar. */ broadr -- 27jul97 -- make sure to save needed variables This patch is needed to run with stack-based memory allocation. *ident up91 */ groupr -- 27jul97 -- allow particle production matrices to be */ computed when the reactions are given as */ charged-particle discrete levels fully */ described using mf4/mt600-850 (or 700-799), */ and not by mf6. proposed by trkov. */ fix some other problems with auto loops. For some time, GROUPR has had a capability to prepare matrices like (n,p) or (n,recoil) to describe the production of charged particles. Andrej Trkov noticed that the logic was handling particles given in File 6 and MT=2 and 51-90 given in File 4, but it wasn't processing charged-particle levels in reactions like MT=600, 601, etc. While fixing this, we also noticed that automatic reaction loops, such as "26/" to compute all sections that produce A>4, weren't working properly. The code should now work more consistently for charged-particle production matrices. Note that reactions like MF4/MT91 or MF4/MT649 cannot be used to calculate charged-particle production matrices--NJOY issues warning and error messages for such cases. */ groupr -- 27jul97 -- be careful of comparisons at bragg edges This particular if statement failed to find the edge on some machines, so a little margin was added. */ groupr -- 27jul97 -- remove unused variable */ groupr -- 27jul97 -- be careful to save needed variables */ groupr -- 27jul97 -- fix a special case that can lead to */ uninitialized values of sig. This fixes were made to allow operation with stack-based memory allocation, which is very sensitive to uninitialized variables! *ident up92 */ gaspr -- 28jul97 -- flag be-8 residuals to turn into two alphas. */ this is to fix the alpha production for */ be9(n,2n) in endf. a more general solution */ that carefully looks for differences between */ the gases implied by the mt number and what */ is given explicitly in mf6 would be desireable. In reviewing gas production results, we noticed that the results for ENDF/B-VI Be-9 were omitting the two alpha particles from the (n,2n) reaction. They were explicitly called out in File 6, but it is a very complicated process to check File 6 against the implicit particle-production from the MT number and to find all the conflicts and incomplete representations. This patch will find MT numbers that indicate that Be-8 is produced, and add two alphas to the gas production. It handles the current cases in ENDF/B-VI, but it is still possible that new evaluations would use complex descriptions of particle production in File 6 that would not be detected. *ident up93 */ purr -- 28jul97 -- put the missing sort and search routines */ into purr. simple-minded coding. */ move the random numer routine to njoy */ since they tend to be machine dependent. */ purr -- 28jul97 -- fix limit tests on the variances */ purr -- 28jul97 -- fix some problems with the directory *ident up94 */ acer -- 28jul97 -- add unresolved tables to ace files by reading */ the special section mt=153 added by purr. */ acer -- 28jul97 -- minor fixes and unused variables */ acer -- 28jul97 -- increase storage to allow for unresolved */ acer -- 28jul97 -- fix bad parameter lists in calls */ acer -- 30jul97 -- remove some obsolete coding that causes */ trouble due to unset variables. *ident up95 */ moder -- 28jul97 -- allow moder to process mf2/mt153 from purr */ for unresolved-range probability tables PURR is used to compute unresolved-range probability tables for use in MCNP. We are now in the process of reactivating and standardizing this capability so make it available to all of the MCNP users. Additional changes in PURR and ACER are expected in the near future as this capability is tested and validated. *ident up96 */ dtfr -- 28jul97 -- use real variables for all hollerith quantities. */ many workstations do integer arithemetic only */ with 32 bits, which leads to problems when */ integer hollrith fields are used with compiler */ options like "-r8". *ident up97 */ matxsr -- 28jul97 -- make sure all hollerith variables are real */ for use on workstations (see above). *ident up98 */ resxsr -- 28jul97 -- make sure all hollerith variables are real */ for use on workstations (see above). On a true 64-bit machine, like a Cray, each word can contain 8 Hollerith characters, and it doesn't usually make any difference whether you use an integer variable or a real variable. On 32-bit workstations, we used to always choose REAL*8 through the "*set sw" mechanism for Hollerith variables. This also gives 8 characters per variable. However, we are now beginning to get workstation compilers that support 64-bit arithmetic either on 64-bit chips (Sun Ultra), through compiler options like "-r8" or "-dbl", or through various combinations. The 64-bit workstation compilers still act like 32-bit compilers with 64-bit extensions rather than the true 64-bit modes available on machines like the Cray. Specifically, many machines use 32-bit arithmetic on integer variables and 64-bit arithmetic on real variables. This can clobber half of every word of text information. Some machines align integers on 32-bit boundaries rather than 64-bit boundaries. These extra options make it difficult to provide good portable code that contains Hollerith data. (Note: Hollerith is still necessary in some cases where text data is mixed in with numeric data, such as CCCC formats). Our current approach is to use real variables consistently for Hollerith. They can be promoted to 8 characters using a compiler option (-r8) or by using an "IMPLICIT REAL*8" command. What we have now moves easily between Sun and Cray, and we will wait for feedback on other systems. *ident up99 */ unresr --28jul97 -- fix problem with the generation of the complex */ probability integral table that can lead to */ differences on different machines. */ make sure word alignment is ok in common. *ident up100 */ reconr -- 28jul97 -- fix problem with the generation of the complex */ probability integral table that can lead to */ differences on different machines. The original if statement is really wrong, but it worked OK on the Cray! This version makes a correct version of the w table on both Sun and Cray. *ident up101 */ njoy -- 28jul97 -- njoy gets its energy grids by dividing ranges */ in half. make sure rounding behavior in sigfig */ rounds numbers ending in 5 down to help keep */ the energy grids consistent on different machines. With this small fix, the energy grids as produced on a Sun using the -r8 compiler option and 7 significant figures agree very closely with those from the Cray. */ njoy -- 28jul97 -- fix obsolete comments about code conversion */ njoy -- 28jul97 -- make this patch from the upmachines file permanent *ident up102 */ heatr -- 28jul97 -- make the energy grid in the heatr listing */ come out the same on different machines. Not all less than tests are equal! */ heatr -- 28jul97 -- be sure that variables are properly saved */ heatr -- 28jul97 -- fix uninitialized variables *ident up103 */ errorr -- 30jul31 -- update the save statements needed to run */ errorr without static memory allocation. *ident up104 */ gaminr -- 30jul97 -- fix up save statements to allow */ gaminr to work without static allocation Most of the development work on NJOY over the years has used static memory allocation where all variables in a subroutine are available unchanged if the subroutine is reentered. The newer stack-based memory allocation throws away any variables that are not specifically named in a SAVE statement when you exit the subroutine. For this version, we have gone through and tried to find missing SAVEs and tested the results using the "-a stack" option of the Cray and g77 on Linux. These tests also revealed a few improperly initialized variables. *ident up105 */ leapr -- 30jul97 -- remove unused variables Not very important, but it does remove some compiler messages. << distribution files >> The distribution files for NJOY 94.105 are as follows: README105 this information file src upd source file (contains *deck cards) up105 upd directives input file for 94.105 upvms specialized updates for VAX/VMS upsun specialized updates for Sun workstations upsun8 specialized updates for Sun using -r8 option upuni-la specialized updates for UNICOS at Los Alamos upuni-sd specialized updates for UNICOS at San Diego Supercomputer Center upnersc specialized update for UNICOS at NERSC uprs6k specialized updates for IBM RS/6000 machines updecau specialized updates for DEC alpha unix machines uplinux specialized updates for linux using f77 upuser upd file to extract the user input instructions userin user input instructions extracted from src makef.uni UNICOS make file for maintaining njoy makef.sun Sun make file for maintaining njoy makef.sun8 Sun make file for for -r8 option (see upsun8) makef.linux make file for linux using the g77 compiler loadnjoy UNICOS segldr input (used by makefile) loadnoseg same as above but no segmentation is used. Install UNICOS or Sun installation script in1 test problem decks and results out1 . pend1 . in2 . out2 . in3 . out3 . in4 . out4 . in5 . in6 . in7 . out7 . in8 . out8 . gam23 input data for test problem gam27 input data for test problem t322 input data for test problem t404 input data for test problem t511 input data for test problem eni61 input data for test problem upd.f version-control code for updating njoy (updated here to allow for larger update files) << documentation >> New documentation for NJOY 94 is not available. The NJOY 91 report, R. E. MacFarlane and D. W. Muir, "The NJOY Nuclear Data Processing System, Version 91," Los Alamos National Laboratory report LA-12740-M (Oct. 94), is still a good reference for most things. Some notes on the changes in plotting and the new LEAPR module are provided below. See the user input instructions for more details. << version control with upd >> Previous versions of NJOY were maintained with CDC or Cray UPDATE, or with the UPEML update emulator from Sandia National Laboratory. This approach had the problems that not everybody had UPDATE and that UPEML wasn't exactly compatible with UPDATE for changes made upon earlier changes. For these reasons, NJOY now has its own version control program called UPD. This program performs the same functions as UPDATE, but it is very simple in order to make it easier to transport the code to a variety of computer systems. The original text of NJOY 94 is given in a file called "src", which contains "*deck module" cards at the start of each NJOY module (njoy, reconr, etc.). No binary program library is used. UPD directives are given in the file "upn". Each set of directives starts with the statement "*ident name" and contains additional statements like "*i address" or "*d address" followed by the text to be inserted or deleted. The UPD addresses can have forms like the following: reconr.151 groupr.522,533 matxsr.111,up20.33 The NJOY Quality Assurance program requires that idents be added to the upn file in strict sequence. The first card after each "*ident name" card must be a comment card giving the module, date, and purpose for the the change in the form */ groupr -- 30 Mar 95 -- fix problem with c.p. elastic */ reported by NEA-DB An ident should contain changes for only one module. Once an ident has been finished, dated, and released, it should never be changed directly. It should only be changed by some subsequent ident using line numbers like "up20.33". The conventional name for "official" idents are "up1", "up2", "up3", and so on. The corresponding version names would be "94.1", "94.2", "94.3", and so on. The last ident in upn is always "*ident vers", which has the following form: *ident vers *d njoy.8 c * version 94.0 -- 15 mar 95 * *d njoy.326 data vers/' 94.0'/ This ident is changed as each ident is added to reflect the current version number and date. The result of this procedure is that it is always possible to determine what version was used to run a particular problem, and knowing the version, it it possible to determine the exact configuration of the code for any run. Code changes for different computer systems are handled by UPD in two ways. Generic changes are handled by "*if" constructs in the source file. Currently, two such options are implemented. Add the card "*set sw" at the start of upn for "short-word" machines (32-bit words). Add the card "*set diss" to enable DISSPLA graphics for covr, dtfr, and plotr. More specific system changes are included in a machine ident that must be copied onto the end of the upn file. Examples are given in the distribution (see upctss, upibm, upvms, upsun, upuni-la, upuni-sd). These updates normally do things like change the names of the local time and date routines and personalize the NJOY "banner" for the specific laboratory. It is usually easy to transport UPD between different computer systems. Unit 6 is intended for writing on the screen or an equivalent log file. This is the default for many systems. For CTSS, a special OPEN statement is provided to connect unit 6 to 'tty'. This statement should be commented out if not needed. << installation on UNICOS machines at Los Alamos >> For the initial installation... Make sure the following files are in your working directory: install makef.uni loadnjoy upd.f upuni-la src up0 and do the following: cp makef.uni Makefile [edit to uncomment the right loader commands] cf77 -o upd upd.f cat up0 upuni-la > upn edit upn to contain *cpl module *lst module chmod +x install install xnjoy is your executable file module.f is a fortran compiler input file module.o is an object deck module.l is a listing file for the printer module.7 is a cft output file to examine for problems To make a change to NJOY 94.0 Make sure the following files are available: upd (the executable version) upn (the expanded version) src Makefile loadnjoy module.f files module.o files previous xnjoy Edit upn to add the new upd "ident"; for example, *cpl module *lst module *ident fixbug */ fix a hypothetical bug in groupr *d groupr.444,445 *ident vers ... make groupr make xnjoy (the "make module" lines are only need for decks changed in the new idents in upn) Versions of the test problem input files in unix script for are included in the distribution of NJOY 94.0. To run the test problems, move the input scripts to a test directory, make sure the scripts are executable by doing chmod +x in1 and then simply type "in1". And so on. << installation on UNICOS machines at NERSC or SDSC >> Follow the Los Alamos UNICOS instructions, except use upnersc or upuni-sd. Edit the make.uni file to comment out the Los Alamos section and open up the appropriate NERSC or SDSC sections. Segmented loading doesn't seem to work right at NERSC; the "loadnoseg" file takes care of that. << preparing a Sun version >> Follow the UNICOS instructions, except... Use "f77" instead of "cf77" to compile upd. Be sure to add "*set sw" to your upn file. Use "upsun" in the upn file for Sun-dependent features. Use makef.sun for your Makefile. To make a 64-bit Sun version, do not add the "*set sw" line to upn. Use upsun8 instead of upsun. Use makef.sun8 instead of makef.sun. This procedure uses the "-r8" compiler option. Warning: the "-dbl" option doesn't work when optimization is on with the current Sun compiler! << preparing a VAX/VMS version >> Make sure that the following files are on your VAX/VMS working directory. Make sure that they have all been converted to upper case. SRC.DAT UP0. UPVMS. UPD.FOR Make an executable version of upd as follows: FOR UPD LINK UPD Use your favorite editor to create the file UPN.DAT containing UP0 followed by UPVMS. Make sure that "*CPL MODULE", "*LST MODULE", and "*SET SW" cards have been inserted at the beginning of the file. Next, edit the UPN.DAT file, changing MODULE to NJOY in the first two lines. Then, do the following: RUN UPD messages from upd REN CPL.DAT NJOY.FOR REN LST.DAT NJOY.LST FOR NJOY Repeat this process for all the modules of NJOY (namely, NJOY, RECONR, BROADR, UNRESR, HEATR, THERMR, GROUPR, GAMINR, ERRORR, COVR, MODER, DTFR, CCCCR, MATXSR, RESXSR, ACER, POWR, WIMSR, PLOTR, VIEWR, MIXR, PURR, and LEAPR). At this point, ".OBJ" files have been made for all the modules. Finish the NJOY executable by typing LINK NJOY,RECONR,BROADR,UNRESR,HEATR,THERMR,GROUPR,- GAMINR,ERRORR,COVR,MODER,DTFR,CCCCR,MATXSR,RESXSR,- ACER,POWR,WIMSR,PLOTR,VIEWR,MIXR,PURR,LEAPR To run the test problems, delete the unix script stuff of the beginning and end of each test problem. Convert to upper case. Then use COPY T404.DAT TAPE20.DAT ASSIGN IN2. FOR005 ASSIGN OUT2. FOR006 RUN NJOY to run test problem 2. << LEAPR >> One of the new features available in NJOY 94 is the LEAPR module, which can be used to prepare thermal scattering-law files in ENDF format to be used with THERMR. Documentation on the theory used in LEAPR and examples of how to prepare input decks will be found in the following report: R. E. MacFarlane, "New Thermal Neutron Scattering Files for ENDF/B-VI Release 2," Los Alamos National Laboratory report LA-12639-MS (ENDF 356) (March 1994), which can be requested by email to ryxm@lanl.gov. A convenient online version is available from the T-2 Nuclear Information Service (use ftp or gopher to t2.lanl.gov and get /pub/publications/thermal.ps, or use a WWW browser to URL http://t2.lanl.gov/ and follow the link to Publications). << GASPR >> A new feature provided by these updates adds gas production cross sections to a PENDF file. The results are then available for multigroup averaging, plotting, or to be put into a Monte Carlo library file. GASPR uses the implicit particle production information in the MT number to identify the gases produced in each reaction (gases has A<=4), including any gases implicit in the residual nucleus for the reaction. LR flags are recognized. If MF6/MT5 is present, the code properly recognizes energy-dependent particle production given there. The results are written on the PENDF tape using MT=203, 204, etc. If gas production is already on the PENDF tape, it is removed. At present, the GASPR module is attached to the end of the NJOY module. It will be moved into a proper separate "deck" during the next major update. << Postscript Plotting >> An attractive feature of NJOY 94 is its ability to produce graphs directly in Postscript. DISSPLA plotting is no longer supported. In designing the new graphics system, we decided to split the old PLOTR module into two parts. The module called PLOTR in NJOY 94 contains the part of the old coding that knows how to read ENDF, PENDF, and GENDF files and extract the desired information for plotting. It now writes a simple ASCII file containing things like x,y pairs to be plotted, labels, parameters to choose log or linear axes, plotting symbol to be used, and so on. All the coding that actually converts this information into Postscript pictures has been put into a new module called VIEWR, which reads this simple ASCII file as input. Several other NJOY modules now also produce files for VIEWR; they are HEATR, DTFR, COVR, and ACER. This arrangement has several advantages. It isolates all the hardware-dependent part of plotting into one place where all the different modules can access it. If you don't want to use Postscript, you could write a new VIEWR, or even arrange to reformat the VIEWR input for an entirely independent external plotting package. If the plots produced from a particular VIEWR input file are not quite what you want, you can simply edit the ASCII file to modify the appearance of the final plot. In addition, you could use VIEWR for other purposes. By modifying your own codes to produce VIEWR input, you get the capability of generating high quality Postscript graphs without having to write personal graphics coding and without having to pay for a commercial package. VIEWR input is very similar to PLOTR input, except the capability to request information from ENDF files has been removed. Using PLOTR is very similar to the method described in the NJOY 91 documentation. It is only necessary to give one extra card to specify the unit number that carries the PLOTR output to the VIEWR input. Then a simple VIEWR entry in the input deck is required to tell VIEWR the unit numbers for its ASCII input and its Postscript output. The sample inputs show how to do this. The plotting output option for HEATR automatically prepares VIEWR input files for the energy-balance checks. Both linear and log plots are prepared to show both high-energy and low-energy effects. Both KERMA and photon energy production are shown. Once again, it is necessary to tell HEATR what unit number to use to communicate with VIEWR. See the input instructions for more details. DTFR can now prepare much nicer plots using Postscript than it could with the old-fashioned plotting routines that it used to use. The only user input modification is to provide the unit number for the VIEWR files. Similarly, the covariance plots from COVR are also prepared in VIEWR format, and a unit number must be provided. The version of ACER in NJOY 94 contains extensive new coding for doing consistency checks on the Monte Carlo library files and for making a package of standard plots of the ACE data. The plot information is in VIEWR format. See the current ACER input instructions for more details. The latest version of COVR provides plots of covariances using colored contours, in addition to the older cross-hatched contours. The Postscript plotting package in NJOY 94 has several extensions beyond what was available in NJOY 91; for example, shading can now be done. Color graphs are supported. See the input instructions. A formal manual chapter on VIEWR will probably not be ready for some time; for the present, you will have to treat it as an adventure in colossal cave and see what you can find.