TRANSX 2.15 BBC 2.5 10 Nov 94 --------------------------------------------------------------- A system for preparing cross sections for nuclear transport codes from data in MATXS format. --------------------------------------------------------------- This is a new release of the TRANSX system consisting of TRANSX 2.15, BBC 2.5, and a new version of the 30x12 MATXS cross-section library. Search ahead for one of the following key phrases: >>>changes between TRANSX 2.0 and TRANSX 2.15 >>>changes between BBC 2.0 and BBC 2.5 >>>notes on using directories of MATXS files >>>files included in 2.15 distribution >>>installing TRANSX on UNICOS systems >>>installing MATXS libraries on UNICOS systems >>>running test problems on UNICOS systems >>>modifying the TRANSX code on UNICOS systems >>>installing TRANSX on Sun systems >>>installing MATXS libraries on Sun systems >>>running test problems on Sun systems >>>modifying the TRANSX code on Sun systems >>>installing TRANSX on VAX/VMS systems >>>installing MATXS libraries on VAX/VMS systems >>>running test problems on VAX/VMS systems --------------------------------------------------------------- >>>changes between TRANSX 2.0 and TRANSX 2.15 *ident up1 */ 8 may 92 -- fix transport correction. *ident up2 */ 26 may 92 -- fix paging for material ordering *ident up3 */ 22 jul 92 -- allow abs correction to operate over wider range up3 adds more reactions to the absorption correction, thus allowing it to work up to higher energies. *ident up4 */ 15 jan 92 -- fix miscellaneous problems: */ errors in writing isotxs file, */ errors discovered by the cft77 compiler (uninitialized variables), */ fix of infinite loop if no self-shielding but temp other than base, */ hollerith problems, and */ unset and unused variable found by lahey compiler. up4 corrects some problems in isotxs output, fixes errors found by the cft77 compiler on unicos and by the lahey compiler on dos. these were mostly missing variables, uninitialized variables, unused variables, and careless use of hollerith variables. fix of infinite loop if no self-shielding is requested but temperatures other than the base value are needed. *ident up5 */ 24 feb 92 -- improve interface to anisn up5 improves the interface to the anisn transport code by changing the header card and by adding the binary material-ordered format. *ident up6 */ 24 feb 93 -- fix indexing error for photon production up6 corrects an indexing problem for photon production that shows up when two or more materials are present (that is, test3 doesn't catch it). *ident up7 */ 20 may 93-- fix problem of overwriting energies and velocities *ident up8 */ 26 may 93 -- use * for assumed length arrays *ident up9 */ 29 sep 93 -- fix problem with 2d rtflux */ 29 sep 93 -- more *'s for assumed length arrays *ident up10 */ 16 nov 93 -- install random access option This option allows allows TRANSX to run using a directory of single-isotope MATXS files instead of the normal single, multi-material file. It gives a random access capability, which might increase efficiency, and it makes it easier to move MATXS data around through the network. Users with limited disk storage can easily remove materials that they don't need from the data directory. *ident up11 */ 11 jan 1994 -- fix problem with calculating sigma zero only */ in specified regions */ 2 feb 1994 -- fix problem with reading rtflux file on short word */ machines The RTFLUX file on short-word machines is supposed to contain double-precision flux values. Some older versions of ONEDANT and TWODANT didn't do this properly either. *ident up12 */ 29 mar 1994 -- replace e1,e3,gami,gam1 routines with expint from */ Numerical Recipes 2nd edition. This new coding is fast, accurate, referenceable, and has no uncertainties about distribution restrictions. *ident up13 */ 16 aug 94 -- fix problem with last line of card output The last line or two of the CARD output could be wrong if the last line did not contain exactly six entries. */ 16 aug 94 -- allow more digits for compression messages */ 16 aug 94 -- fix numerical problem in fido The symptom of this was some numbers in the FIDO file with the letter "r" mixed in with the digits. */ 22 aug 94 -- to get self-shielded xsecs if iprint.gt.0 (mattes) *ident up14 */ 21 oct 94 -- generalize the downscatter limit for selfshielding In order to keep the memory requirements reasonable, TRANSX had a limit on the number of downscatter groups that could be treated with self-shielding. This limit has been generalized and increased. There is now a code variable called "maxds" (set to 5), which sets the maximum number of downscatter groups that are selfshielded, and it can be changed if necessary. Setting maxds to a large value can cause enormous amounts of storage to be reserved for the self-shielded cross sections [(5+nl*maxds)*nfine*nuniq]. *ident up15 */ 21 oct 94 -- fix the sequence numbering for anisn */ 21 oct 94 -- add a binary groupwise format for anisn */ 3 nov 94 -- fix title line for anisnb output These changes improve the ability of TRANSX to work with the ORNL suite of transport codes, such as ANISN and DORT. There was a problem in the sequencing of data identifiers when paging was required; the sequence number was being reset for each page, and end records were being inserted between the data blocks for the different pages. There was also a problem in the format of the title for anisn binary output. More significantly, this version adds the capability to write anisn binary group-independent data directly. */ 10 nov 94 -- fix formats to allow for more memory For some large problems, it is handy to have more than 1 MB of memory available. an ident called "size" has been added to make it easier to change the size of the main container array. It is not dated or numbered, because it will normally change frequently. It will be kept just before ident "vers." --------------------------------------------------------------- >>>changes between BBC 2.0 and BBC 2.5 *ident up1 */ 1 jun 92 -- fix paging problem for vector data *ident up2 */ 14 jan 92 -- fix problems with hollerith variables */ 19 jan 93 -- remove variable format */ 19 jan 93 -- fix problem with matrix subblocks up2 fixes problems arising from careless use of hollerith variables, removes the old "variable format" method by installing an alternative approach that uses character data, and fixes a problem with matrix subblocks. *ident up3 */ 29 sep 93 -- more fixes to paging up3 makes another patch for the paging problem with vector data, and it removes an extraneous statement. *ident up4 */ 25 oct 93 -- fix problem with ncw for short-word versions */ jan 1994 add ability to merge single matxs files *ident up5 */ 9 nov 94 -- generalize to work with directories of files The changes in up5 override the merge changes in up4. These changes to BBC were made to support the material random-access changes to TRANSX. This version can read an entire directory of single-material matxs files and convert them between binary and ASCII modes. In addition, it can read a multi-material matxs file and explode it into a directory of single-material files, or read a directory of single-material files and implode it into a multi-material file. The explode and implode options can change the mode of the data during operation. Index files can also be generated for directories. Operations that read from a directory of input files require a list of the files to be processed in the order that the corresponding materials are to appear in the final file or index. To make it more convenient to prepare this file, a small code called ZASORT is included in this version. If you make a listing of the all the files in a directory using something like "ls>list," you can read it into ZASORT as standard input, and the standard output will be a corresponding list with the file names given in ZA order. --------------------------------------------------------------- >>>notes on using directories of MATXS files These notes are meant to supplement the description of how to use TRANSX and BBC in the TRANSX Manual (LA-12312-MS) for users who would like to take advantage of the new capability to work with a directory of single-material MATXS files instead of the more conventional multi-material libraries. This new option was added to make it easier to work with some of the very large libraries now becoming available in MATXS format. Libraries containing 100 MB of data and more are very time consuming to read, and they are difficult to move over the Internet. They are especially difficult to use on smaller machines, such as notebook computers. Storing the MATXS library as a directory of single-material files makes it very easy to reduce the size of the library for a particular set of applications; the user simply omits the materials that are not needed. When downloading materials from the Internet, no single file will be too long for reliable retrieval, and only the materials needed for the job need be requested. In addition, it is often faster to run TRANSX from the directory rather than from the multi-material library. Each material is accessed randomly when needed, and the code does not have to read through a lot of other numbers to find the desired data. In TRANSX 2.15, the directory mode is requested by giving NGROUP negative and by adding a card just after the NGROUP card containing the name of the directory. For example, the input for test problem 1 would become test 1 -- material ordered tables 0 1 0 1 1 1 0 3 0 0 -30 2 34 0 0 3 1 6 1 1 *matxs10/*/ carbon tungst u-235 * */ 1 1 cnat/ 2 1 w182 .263/ .... Note that the slash at the end of the directory name must be given as shown. The material names in the mix instructions must be the same as the file names in the matxs10 directory. In order to make efficient use of this new scheme, it was necessary to add a number of new options to BBC. For example, MATXS libraries are normally delivered in ASCII mode, and they must be converted to binary mode before they can be used in TRANSX. An example of making this conversion using BBC 2.5 follows: -2 2 0 0 1 *text10/*/ *matxs10/*/ h1 h2 h3 he3 he4 ... / The -2 in the first line indicates that the input for BBC is to be taken from a directory in ASCII mode, and the +2 indicates that the output is to be written to a directory in binary mode. The two directory names are given in the following two lines. The user must create the output directory before running BBC. This sample also requests that an index be constructed. It will look very much like the index for a normal multi-material MATXS library. Whenever input from a directory is requested, the user must provide a list of the file names to be processed, and the names must be given in the order desired for the output file or the index listing (typically ZA ordering). This list is the line "h1 h2 h3 ..." in the above example. In order to make it easier to construct such a list, a small program called ZASORT has been included in the new distribution. This program takes a list of material names (e.g., h1, be9, monat), one per line, as its standard input file, sorts them into ZA order, and writes the new list on the standard output. Therefore, the following unix command will generate the list required to read in an entire directory for conversion: ls text10 | zasort > list It is only necessary to insert "list" into the input file for BBC, not forgetting to add a terminating / to the end of the list. If the user would like to create a multi-material MATXS file from ASCII data on a directory, the following input could be used: -2 1 0 0 1 *text10/*/ h1 h2 h3 he3 ... / 101 *bbc user*/ *example of a multi-material matxs file*/ *constructed from a directory of single-material*/ *text files using bbc 2.5*/ / In this case, the first 1 on the first card will cause the output to be written to a binary file called "matxs". It is now necessary to provide the information to fill in the version field on the new library, and the number "101" has been selected. The Hollerith descriptive data on the library is provided as shown. The empty line terminates the descriptive input. A directory of single-material files can be created from a multi-material file, such as matxs10 in the TRANSX distribution. The input for such an "explosion" run is as follows: 1 2 0 0 1 *matxs10/*/ The 1 on the first card causes input to be taken from a file named "matxs", and the 2 causes the output to be written into the directory "matxs10" in binary mode using file names derived from the material names on the matxs input file. No material list or descriptive data are needed for the explosion option. The formal input instructions for BBC 2.5 are given below for the user's convenience: c ---input---------------------------------------------------- c c card 1 c iinpf input file type c 2 binary file set (named by mat) c 1 binary file (matxs) c -1 coded file (text) c -2 coded file set (named by mat) c ioutf output file type c 2 binary file set (named by mat) c 1 binary file (matxs or modout) c 0 none c -1 coded file (text) c -2 coded file set (named by mat) c imodf modify flag c 0 no modifications (default) c 1 modifications given (modinp) c list list option c 0 not listed c 1 listed (default) c indx indexing option c 0 not indexed c 1 indexed (default) c card 2 (iinpf.eq.2.or.iinpf.eq.-2 only) c diri input directory for set of files. c use *name/*/ (24 chars max). c card 3 (ioutf.eq.2.or.ioutf.eq.-2 only) c diro output directory for set of files. c use *name/*/ (24 chars max). c card 4 (ilist.ne.0 only) c ird record type print flags. c 1 file identification c 2 file control c 3 set hollerith identification c 4 file data c 5 group structure c 6 material control c 7 vector control c 8 vector block c 9 scattering matrix control c 10 scattering sub-block c one value for each record type c 0 not printed, 1 printed. c card 5 (imodf.ne.0 only) c hoper modify option c s select materials from matxs input file c i insert materials from modinp file c hmat1 first material in range c hmat2 last material (default=hmat1) c c repeat card 3 until a blank line is read c c card 6 (iinpf.eq.2 or iinpf.eq.-2 only) c hmati list of materials in the set to c be written into the output matxs file, c given in the order desired. c card 7 (modifying or imploding only) c modifying is implied by imodf.ne.0. imploding is c implied by iabs(iinpf).eq.2 and iabs(ioutf).ne.2. c newver new file version number c huser new user id string (up to 16 chars) c c card 8 (modifying or imploding only) c hline line of new hollerith id data (72 char max) c c repeat card 8 for each line of the new hollerith c data block. terminate with an empty line. if no c lines are read, the original block is unchanged. --------------------------------------------------------------- >>>files included in 2.15 distribution README.15 this README file Make.rs6k make file for IBM RS6000 installations Make.sun make file for Sun installations Make.uni make file for Cray UNICOS installations trx.src source for TRANSX 2 trx.up15 updates to build TRANSX 2.15 trx.ibm special updates for IBM mainframe installations trx.rs6k special updates for IBM RS6000 installations trx.sun special updates for Sun installations trx.uni special updates for Cray UNICOS installations trx.vms special updates for VAX/VMS installations bbc.src source for BBC 2 bbc.up5 updates to build BBC 2.5 bbc.ibm special updates for IBM mainframe installations bbc.rs6k special updates for IBM RS6000 installations bbc.sun special updates for Sun installations bbc.uni special updates for Cray UNICOS installations bbc.vms special updates for VAX/VMS installations upd.f program for upd version-control code zasort.f program to sort list of mat names into ZA order text10 30x12 library text11 80x24 fast-reactor/fusion library (shortened) text12 69x24 thermal library (shortened) bcd2bin bbc input for ascii to binary conversion bin2bcd bbc input for binary to ascii conversion delay12 decay heat and photons for 12-group structure delay24 decay heat and photons for 24-group structure delay42 decay heat and photons for 42-group structure index10 index for 30x12 library index11 index for shortened 80x24 library index12 index for shortened 69x24 library test15 in1 test problem input files ... . in9 . out1 test problem output files (Cray YMP versions) ... . out9 . card1 . fido3 . --------------------------------------------------------------- >>>installing TRANSX on UNICOS systems Make sure that the following files are in your working directory: Make.uni upd.f bbc.src bbc.up5 bbc.uni trx.src trx.up15 trx.uni Make sure that the line in upd.f that opens "tty" is commented out. Delete executables because executables made on some machines are not compatible with others. (i.e. executables are upd bbc transx) Do the following: cp Make.uni Makefile cat bbc.up5 bbc.uni > bbc.upn cat trx.up15 trx.uni > trx.upn make When finished, transx, bbc, upd are ready to use. --------------------------------------------------------------- >>>installing MATXS libraries on UNICOS systems Make sure that the following files are in your installation directory: bbc bcd2bin text10 (or other MATXS text file) Do the following: cp text10 text bbc < bcd2bin mv matxs matxs10 mv index index10 Check the screen for for messages. Check the "index10" file for completeness. If they are OK, the file "matxs10" is ready for use. Follow the same procedure for any other matxs libraries that you want to install. --------------------------------------------------------------- >>>running test problems on UNICOS systems Make sure that you have the following files in your transx directory: transx matxs10 (or other matxs library) in1 (or other test problem input file) Do the following: cp matxs10 matxs transx out1 Examine the "out1" file for completeness. Check for any cross section output files that the job should have produced (e.g., "card" for in1). --------------------------------------------------------------- >>>modifying the TRANSX code on UNICOS systems Make sure that the following files are available on your transx directory: upd trx.src trx.upn Makefile Edit "trx.upn" to include your new corrections. For example, ... *ident moremem */ 11 mar 92 -- need more storage *d transx.182 dimension a(500000) *d transx.220 namax=500000 *ident vers ... You probably should also edit the version and date strings in "ident vers" so that your output listings reflect the change. Keep the number of characters in "vers" at 22. Now do make transx The revised version of the code is ready for use. --------------------------------------------------------------- >>>installing TRANSX on Sun systems Make sure that the following files are in your installation directory: Make.sun upd.f bbc.src bbc.up5 bbc.sun trx.src trx.up15 trx.sun Make sure that the line in upd.f that opens "tty" is commented out. Do the following: cp Make.sun Makefile cat bbc.up5 bbc.sun > bbc.upn cat trx.up15 trx.sun > trx.upn Make sure that bbc.upn and trx.upn have "set sw" as the third line. If not there, insert it. Then: make The codes codes are now ready to use. --------------------------------------------------------------- >>>installing MATXS libraries on Sun systems Make sure that the following files are in your installation directory: bbc bcd2bin text10 (or other MATXS text file) Do the following: cp text10 text bbc >>running test problems on Sun systems Make sure that you have the following files in your transx directory: transx matxs10 (or other matxs library) in1 (or other test problem input file) Do the following: cp matxs10 matxs transx out1 Examine the "out1" file for completeness. Check for any cross section output files that the job should have produced (e.g., "card" for in1). --------------------------------------------------------------- >>>modifying the TRANSX code on Sun systems Make sure that the following files are available on your transx directory: upd trx.src trx.upn Makefile Edit "trx.upn" to include your new corrections. For example, ... *ident moremem */ 11 mar 92 -- need more storage *d transx.182 dimension a(500000) *d transx.220 namax=500000 *ident vers ... You probably should also edit the version and date strings in "ident vers" so that your output listings reflect the change. Keep the number of characters in "vers" at 22. Now do make transx The revised version of the code is ready for use. --------------------------------------------------------------- >>>installing TRANSX on VAX/VMS systems Make sure that the following files are in your installation directory: UPD.FOR BBC.SRC BBC.UP5 BBC.VMS TRX.SRC TRX.UP15 TRX.VMS If you are starting from a unix version, you may have to change ".f" to ".for" and convert everything to upper-case. Check UPD.FOR to make sure that the line that opens "TTY" is commented out. The tty unit will be SYS$OUTPUT. Do the following: FOR UPD LINK UPD The UPD program is now installed. Now, use an editor to make a file called UPN.DAT that contains BBC.UP5 followed by BBC.VMS. Insert the statement "*SET SW" after line 2. Do the following: COPY BBC.SRC SRC.DAT RUN UPD COPY CPL.DAT BBC.FOR FOR BBC LINK BBC The BBC code is now installed. Similarly, use an editor to make a new UPN.DAT file that contains TRX.UP15 followed by TRX.VMS. Insert the statement "*SET SW" after line 2, and do the following: COPY TRX.SRC SRC.DAT RUN UPD COPY CPL.DAT TRANSX.FOR FOR TRANSX LINK TRANSX --------------------------------------------------------------- >>>installing MATXS libraries on VAX/VMS systems Make sure the following files are available on your installation directory: BBC.EXE BCD2BIN. TEXT10.DAT Do the following: COPY TEXT10.DAT TEXT.DAT ASSIGN BCD2BIN. FOR005 ASSIGN OUTPUT.DAT FOR006 RUN BBC Check OUTPUT.DAT for any error messages. Check INDEX.DAT to see if it is complete. Then, do the following: COPY INDEX.DAT INDEX10.DAT COPY MATXS.DAT MATXS10.DAT Repeat the process for any other MATXS libraries that you need. Delete the files OUTPUT.DAT, TEXT.DAT, INDEX.DAT, AND MATXS.DAT. --------------------------------------------------------------- >>>running test problems on VAX/VMS systems Make sure that you have the following files in your local area: TRANSX.EXE MATXS10.DAT (or other matxs library) IN1. (or other test problem input file) Do the following: COPY MATXS10.DAT MATXS.DAT ASSIGN IN1. FOR005 ASSIGN OUT1. FOR006 RUN TRANSX Examine the "OUT1." file for completeness. Check for any cross section output files that the job should have produced (e.g., "CARD" for IN1).