Walter R. Nelson Stanford Linear Accelerator Center Stanford University Stanford, CA 94305, U.S.A. Hideo Hirayama National Laboratory for High Energy Physics (KEK) Oho-machi, Tsukuba-gun, Ibaraki, Japan David W. O. Rogers National Research Council of Canada Ottawa K1A 0R6, Canada 31 December 1985
The EGS4 Code System is very flexible. This means that the overall structure can get quite complex. However, each step is straight forward and once familiar with the system, it can be quite user-friendly. EGS4 is written in an extended FORTRAN called Mortran3. The EGS4 Distribution Tape includes a Mortran3 preproces- sor (i.e., "string processor") which takes Mortran3 source code and converts it into FORTRAN. Mortran3 itself is written in ANSI FORTRAN so that the code is highly portable. By appropriate choice of files, Mortran3 can be used in FORTRAN 77 or FORTRAN IV environments.
The user writes an EGS4 User Code in Mortran3 language which, along with the EGS4 system, is turned into FORTRAN. Each FORTRAN version of EGS4 is associated with a particular User Code since the latter can and should contain macro-overrides which affect the EGS4 system as applied to the problem at hand (e.g., the number of mate- rials and/or regions that are used). One then compiles and "runs" the FORTRAN code that has been created, which requires as input a file previously prepared by the PEGS4 code. The latter contains the electron and photon cross section data for any of the materials appearing in the problem.
The following two tutorials provide information for setting up Mortran3/EGS4 at a VAX or IBM facility, and the reader only needs to consult the one that is appropriate. Those interested in other types of computers might benefit from studying both tutorials, however.
* This file (SLAC265 APPENDX5) is kept up-to-date on the EGS account at SLAC and is distributed along with other files on the EGS4 dis- tribution tape.
To ensure portability between machines, it is necessary to "boot strap" the Mortran3 preprocessor. The first stage requires editing the Mortran3 source code (either the FORTRAN 77 version or the FOR- TRAN IV version which are called MORNEW77.FOR and MORNEW.FOR, respec- tively). Near the beginning of the code, several parameters must be set. O(5) should be set to the input record length (100 is OK for a VAX). O(6) is the initial value of the FORTRAN label generator (use a value larger than any statement label in your EGS4 User Code). Now create a Mortran3 execute module from the FORTRAN source (e.g., MORTRAN3.COM <== DAVID CHECK THIS).
The next stage is to transform the macros used by Mortran3 from their RAW (i.e., non-hexadecimal) format into a machine dependent hexadecimal format. This is a one-time procedure which speeds up execution in all future runs. For this stage the following UNIT assignments must be made:
UNIT 1 Mortran3 macros in RAW format (e.g., MORNEW77.RAW) UNIT 6 Output listing file (junk) UNIT 7 Output file of Mortran3 macros in hexadecimal format (e.g., MORTRAN3.DAT)
Before using the DAT file one must delete the first two lines in the file (file descriptors) and re-save it. One can then archive the RAW format file since it is no longer needed.
Note that the RAW file, and the subsequent DAT file that is created, must correspond to the FORTRAN version of Mortran3 being used (the FORTRAN 77 file is called MORNEW77.RAW and the FORTRAN IV file is MORNEW.RAW). A VAX procedure to perform this stage, called RAWTOHEX.COM (listed below), is provided along with the other files on the EGS4 Distribution Tape (see SLAC265 APPENDX6).
$! RAWTOHEX.COM $! $! PROCEDURE TO TURN RAW DATA FILE INTO HEX DATA FILE ON VAX $! $! THIS VERSION IS SET TO PICK UP FORTRAN77 MACRO SET $! $! NOTE MUST DELETE TWO LINES FROM THE START OF HEX FILE $! $! $! UNIT 1 MORTRAN MACROS IN RAW FORMAT $! UNIT 6 OUTPUT LISTING (JUNK) $! UNIT 7 OUTPUT MORTRAN MACROS IN HEX $! $DEASSIGN/ALL $ASSIGN [DAVE4.MORTRAN]MORNEW77.RAW FOR001 $ASSIGN JUNK.LST FOR006 $ASSIGN MORTRAN3.DAT FOR007 $SHOW/LOG/PROCESS $! $RUN [DAVE4.MORTRAN]MORTRAN3 $DEASSIGN /ALL
To convert a Mortran3 source code which is contained in a "single file" into FORTRAN, the following UNIT assignments are necessary prior to executing Mortran3.
UNIT 1 Mortran3 macros in HEX format (e.g., MORNEW77.DAT) UNIT 5 User's Mortran3 source input file UNIT 6 Mortran3 output listing file UNIT 7 FORTRAN output file
The above assignments are all that are needed for a stand-alone Mortran3 source code (i.e., a "single file") . Things are somewhat more complex when one is dealing with a group of separate files, such as the EGS4 Code System. One way to "Mortran" an EGS User Code is to combine all the relevant files into one file and assign it to UNIT 5 as done above. When combining, however, the order is very important since the last macro definition is the one that will be used. The correct order is:
If this technique is used, all the %Un commands (e.g., see A4.6.1 of SLAC265 APPENDX4) near the beginning of the EGS4 source code must be commented out. This is the method usually employed at SLAC where most commonly the user override macros are not put in a special file as suggested above, but are simply placed at the very beginning of the User Code itself.
Alternatively, to "Mortran" an EGS4 User Code, one can make use of the %Un commands which switch the input stream to UNIT n from within the EGS4 source code itself. Mortran3 looks to UNIT 5 ini- tially and in this case we assign the EGS4 source to UNIT 5 and make sure the %Un statements within EGS4 are active. They are set up ex- pecting the following UNIT assignments to have been made:
UNIT 2 EGS4 macros (i.e., EGS4MAC.MOR) UNIT 3 EGS4 User Code UNIT 4 BLOCK DATA source code for EGS4 (i.e., EGS4BLOK.MOR) UNIT 5 EGS4 source code (i.e., EGS4.MOR) UNIT 8 User's macros (i.e., any override or auxiliary macros)
as well as
UNIT 1 Mortran3 macros in HEX format (e.g., MORNEW77.DAT) UNIT 6 Mortran3 output listing file UNIT 7 FORTRAN output file
The VAX command procedures MORTRAN3.COM (for stand-alone codes) and EMORTRAN3.COM (for EGS4 User Codes) accomplish the above tasks and are provided on the EGS4 Distribution Tape for those who are inter- ested (see SLAC265 APPENDX6). Both are also listed below.
$! MORTRAN3.COM $! $! THIS PROCEDURE RUNS THE PREPROCESSOR MORTRAN3 FOR A STAND ALONE $! CODE WHICH MAY USE THE EGS4 MACROS BY INSERTING $! %U2 AT THE BEGINNING OF THE MORTRAN SOURCE AND THE $! NRC MACROS BY INSERTING A %U8 $! $! FIRST PARAMETER IS NAME OF STAND ALONE CODE $! $! UNIT 1 MORTRAN MACROS $! UNIT 2 EGS4 MACROS $! UNIT 5 STAND ALONE MORTRAN SOURCE $! UNIT 6 MORTRAN LISTING LOOKING PRETTY $! UNIT 7 OUTPUT FORTRAN SOURCE CODE $! UNIT 8 NRCC MACROS IF NEEDED $! OTHER UNITS AS REQUIRED BY THE MORTRAN SOURCE $! $DEASSIGN/ALL $ASSIGN [DAVE4.MORTRAN]MORTRAN3.DAT FOR001 $ASSIGN [DAVE4.EGS4]EGS4MAC.MOR FOR002 $ASSIGN 'P1'.MOR FOR005 $ASSIGN 'P1'.LST FOR006 $ASSIGN 'P1'.FOR FOR007 $ASSIGN [DAVE4.EGS4]NRCC4MAC.MOR FOR008 $SHOW/LOG/PROCESS $! $RUN [DAVE4.MORTRAN]MORTRAN3 $DEASSIGN /ALL $! EMORTRAN3.COM $! $! THIS PROCEDURE RUNS THE PREPROCESSOR MORTRAN3 WITH EGS4 $! $! FIRST PARAMETER IS NAME OF USERCODE (.MOR) $! $! UNIT 1 MORTRAN MACROS $! UNIT 2 EGS4 MACROS $! UNIT 3 USERCODE MORTRAN SOURCE $! UNIT 4 EGS4 BLOCKDATA $! UNIT 5 EGS4 SOURCE(INPUT) $! UNIT 6 MORTRAN LISTING LOOKING PRETTY $! UNIT 7 OUTPUT FORTRAN SOURCE CODE $! UNIT 8 NRCC MACROS $! UNIT 10 NRCC AUXILIARY ROUTINES PICKED UP BY EGS4 $! OTHER UNITS AS REQUIRED BY THE MORTRAN SOURCE $! $DEASSIGN/ALL $ASSIGN [DAVE4.MORTRAN]MORTRAN3.DAT FOR001 $ASSIGN [DAVE4.EGS4]EGS4MAC.MOR FOR002 $ASSIGN 'P1'.MOR FOR003 $ASSIGN [DAVE4.EGS4]EGS4BLOK.MOR FOR004 $ASSIGN [DAVE4.EGS4]EGS4.MOR FOR005 $ASSIGN 'P1'.LST FOR006 $ASSIGN 'P1'.FOR FOR007 $ASSIGN [DAVE4.EGS4]NRCC4MAC.MOR FOR008 $ASSIGN [DAVE4.EGS4]NRCCAUX.MOR FOR010 $! $RUN [DAVE4.MORTRAN]MORTRAN3 $DEASSIGN /ALL
This is a straight forward procedure. First, a macro must be edited in the PEGS4.MOR file in order to select either FORTRAN 77 or FORTRAN IV compatibility. The macro is near the beginning of the PEGS4 source:
REPLACE {$FORTVER} WITH {1977}
where it is already set up to produce FORTRAN 77 code (using the FORTRAN 77 version of Mortran3). It should be changed to:
REPLACE {$FORTVER} WITH {1966}
in order to produce FORTRAN IV code.
The next step is simply to convert the stand-alone Mortran3 source code for PEGS4 to FORTRAN as described above for a stand-alone code. The VAX command procedure MAKEPEGS4.COM, which is provided on the EGS4 Distribution Tape, can be used in order to create the PEGS4 execute module. The FORTRAN 77 source code that is produced is to be preferred over its FORTRAN IV counterpart since the Mortran3 comments will be embedded within the FORTRAN itself, and hence is more readable. MAKEPEGS4.COM is listed below.
$! MAKEPEGS4 $! --------- $! $! THIS PROCEDURE RUNS THE PREPROCESSOR MORTRAN3 FOR PEGS4 AND THEN $! COMPILES AND LINKS THE CODE $! $SET DEF [DAVE4.PEGS4] $PURGE PEGS4.MOR $DELETE PEGS4.LST;*,PEGS4.FOR;*,PEGS4.LIS;* $DEASSIGN/ALL $@[DAVE4.MORTRAN]MORTRAN3 PEGS4 $! $FORTRAN/F77/NOLIST PEGS4 $LINK/NOMAP/EXECUTABLE=PEGS4 PEGS4 $SHOW DAYTIME $PURGE PEGS4.* $DIR PEGS4.*
The following UNIT assignments are needed in order to execute PEGS4:
UNIT 5 User input file (e.g., P4IELEM.INP) as described in the PEGS4 User Manual (SLAC265 APPENDX3) UNIT 6 Output listing file UNIT 7 Output file for data set created by PEGS4 (to be used subsequently by EGS4) UNIT 8 Input cross section data for photoelectric, pair pro- duction, and Rayleigh scattering (i.e., PGS4PEPR.DAT) UNIT 9 Input data for the Rayleigh scattering form factor (i.e., PGS4FORM.DAT)
The VAX command procedure PEGS4.COM (listed below) executes PEGS4 and is provided on the EGS4 Distribution Tape (see SLAC265 APPENDX6).
$SET VERIFY $! PEGS4.COM $! --------- $! $! UNIT 5 INPUT FILE 'P1'.INP $! UNIT 6 OUTPUT LISTING FILE 'P1'.LST $! UNIT 7 OUTPUT FILE FOR EGS [DAVE4.PEGS4.DAT]'P1'.DAT $! UNIT 8 STORM AND ISREAL CROSSECTION FILE $! UNIT 9 ATOMIC FORM FACTOR DATA FILE $! $SET DEFAULT [DAVE4.PEGS4] $DEASSIGN/ALL $ASSIGN 'P1'.INP FOR005 $ASSIGN 'P1'.LST FOR006 $ASSIGN [DAVE4.PEGS4.DAT]'P1'.DAT FOR007 $ASSIGN [DAVE4.PEGS4]PGS4PEPR.DAT FOR008 $ASSIGN [DAVE4.PEGS4]PGS4FORM.DAT FOR009 $SHOW LOGICAL/PROCESS $! $SHOW DAYTIME $! $RUN PEGS4 $ $SHOW DAYTIME $DEASSIGN/ALL $SET NOVERIFY
This has already been covered in Section A5.1.2 above. The essential point is that EGS4 does not "stand on its own". It is a system of subroutines with several important macros which should be defined by the user in order to override default values.
Note that when compiling EGS4 codes, one must ensure that overflow checking is switched off since the in-line random number generator overflows everytime it is called. The default random number generator used by the EGS4 system is written for IBM equip- ment. A VAX version of a macro to implement the same random number generator is given in NRCC4MAC.MOR or any of the tutorial programs (e.g., TUTOR1.MOR).
UNIT n User's listing file UNIT 5 Input control file (terminal -the INPUT statements in Mortran read from this UNIT) UNIT 6 Output file (terminal - Mortran OUTPUT statements go to this UNIT and EGS sends diagnostics here) UNIT 8 File which "echos" the input cross section data (we normally use a null file) UNIT 12 Input cross section file created by PEGS4 and read in by subroutine HATCH.
The command procedure EGS4.COM is a general purpose procedure which handles most of the normal tasks required when using or writing an EGS4 User Code. The first parameter passed is the name of the User Code (use less than 6 characters) which is assumed to be in file 'P1'.MOR.
The second parameter defines what is to be done; for example, execute the code, "Mortran" the source code either with or without the EGS4 system, FORTRAN the output from the Mortran compiler, or Link the code. One time saving approach is just to compile the EGS4 system whenever any of the EGS4 defaults are being changed. Once this is done, a dummy code can be used to "Mortran" the User Code. This dummy code acts like a main routine and calls in the EGS4 macros and the user's macros. The compiled version of the EGS4 system is just used at the link stage.
The third parameter specifies the name of the user's control input file which is assumed to be on UNIT 5. If this is blank on an execute run, the input comes from the terminal.
The fourth parameter is used to specify what data set should be picked up for this run.
The disk areas in this procedure reflect the directory structure used at NRCC and will need to be changed to reflect the user's own environment. Also, at NRCC a set of auxiliary routines (e.g., WATCH, FIXTMX, geometry) are considered as part of the EGS system by using a %U10 statement at the end of the EGS4.MOR source code. The unit assignment for this is reflected in the procedure. This is done to avoid recompiling those pieces of code which are never changed except when EGS is. EGS4.COM is listed below.
$! EGS4.COM $! ======== $! A GENERAL PURPOSE PROCEDURE FOR USING THE EGS4 SYSTEM. $! $! THERE ARE 4 PARAMETERS PASSED TO IT, P1,P2,P3 AND P4 $! $! -P1- THE NAME OF THE USERS CODE - <= 6 CHARACTERS $! CODE ASSUMED TO BE 'P1'.MOR $! P2- EX EXECUTE THE USER CODE P1, ASSUMING EXECUTE $! MODULE EXISTS $! LINKA LINK THE CODE ASSUMING THE ENTIRE $! SYSTEM IS IN 'P1'.OBJ $! LINKU LINK WITH JUST A NEW USERS CODE, ASSUME USERS $! CODE IS IN 'P1'.OBJ AND THE EGS4 SYSTEM $! IS IN EGS'P1'.OBJ $! COMPILE FORTRAN COMPILE 'P1'.FOR AND THEN DO A LINKU $! MORU MORTRAN JUST THE USER CODE THEN COMPILE $! MORA MORTRAN THE ENTIRE EGS4/USERS CODE SYSTEM, $! COMPILE AND DO A LINKA $! P3- WHEN DOING AN EX, THE USERS INPUT IS ASSUMED IN $! 'P3'.INP IF P3 IS BLANK, INPUT FROM KEYBOARD $! P4- WHEN DOING AN EX, THE PEGS4 CROSSECTION DATA IS TAKEN $! FROM [DAVE4.PEGS4.DAT]'P4'.DAT $SET VERIFY $DEASSIGN/ALL $IF(P2.EQS."COMPILE") THEN GOTO COMPILE $IF(P2.EQS."LINKA") THEN GOTO LINKA $IF(P2.EQS."LINKU") THEN GOTO LINKU $IF(P2.EQS."EX") THEN GOTO EXECUTE $! $ASSIGN [DAVE4.MORTRAN]MORTRAN3.DAT FOR001 $ASSIGN [DAVE4.EGS4]EGS4MAC.MOR FOR002 $ASSIGN 'P1'.MOR FOR003 $ASSIGN [DAVE4.EGS4]EGS4BLOK.MOR FOR004 $IF(P2.EQS."MORA") THEN- ASSIGN [DAVE4.EGS4]EGS4.MOR FOR005 $IF(P2.EQS."MORU") THEN- ASSIGN [DAVE4.EGS4]DUMMYEGS4.MOR FOR005 $ASSIGN 'P1'.LST FOR006 $ASSIGN 'P1'.FOR FOR007 $ASSIGN [DAVE4.EGS4]NRCC4MAC.MOR FOR008 $ASSIGN [DAVE4.EGS4]NRCCAUX.MOR FOR010 !NRCC AUXILIARY SUBS $RUN [DAVE4.MORTRAN]MORTRAN3 $! $COMPILE: $FORTRAN/F77 'P1'/LIST/NOSHOW/NOCHECK $IF(P2.EQS."MORA") THEN GOTO LINKA $! $LINKU: !USER MAY INCLUDE SOME MORE MODULES HERE $LINK/EXECUTABLE="P1" /MAP/FULL 'P1',EGS'P1'.OBJ,[DAVE4.EGS4]CPUTIME, LA120,DRPLT $GOTO EXECUTE $! $LINKA: $LINK/EXECUTABLE="P1" /MAP/FULL 'P1',[DAVE4.EGS4]CPUTIME,LA120,DRPLT $! $EXECUTE: $DEASSIGN/ALL $ASSIGN 'P3'.LST FOR001 !NRC USER CODES OUTPUT TO UNIT 1 $IF(P3.NES."") THEN ASSIGN 'P3'.INP FOR005 $IF(P3.EQS."") THEN ASSIGN SYS$COMMAND FOR005 $ASSIGN TT: FOR006 !OUTPUT LISTING ON TERMINAL $ASSIGN NL: FOR008 !DUMMY FILE TO ECHO INPUT DATA $IF(P4.EQS."") THEN ASSIGN [DAVE4.PEGS4.DAT]EGS4HI.DAT FOR012 !CROSSECTION DATA $IF(P4.NES."") THEN !FROM PEGS4 ASSIGN [DAVE4.PEGS4.DAT]'P4'.DAT FOR012 $RUN 'P1' $DEASSIGN/ALL
This tutorial illustrates the steps necessary for setting up Mortran3 under VM on an IBM computer. The FORTRAN 77 standard is used throughout (including the step referred to as "boot strap"), but the methods apply to FORTRAN IV as well. Four files are required:
Note: One should be aware that IBM has two EBCDIC definitions for braces (sometimes called "curly brackets"), and some files might require modification accordingly (e.g., SLAC uses (C0,D0) for (Left-brace,Right-brace), whereas CERN uses (8B,9B).
All of the files discussed in the following tutorial are included on the EGS4 Distribution Tape (see SLAC265 APPENDX6).
M@RNEW77 FORTRAN is a FORTRAN 77 file that can be considered to be the Mortran3 string processor (sometimes erroneously called the Mortran3 compiler). The first step is to create a new file from M@RNEW77 FORTRAN called M@RNEW77 MODULE. This is most easily done using the EXEC2 routine called MAKMOD77 EXEC, which is listed below:
&TRACE * * ******* MAKMOD77 EXEC ******** * * Exec to create M@RNEW77 MODULE from M@RNEW77 FORTRAN * FORTVS &1 (NOLIST GLOBAL TXTLIB VFORTLIB LOAD &1 GENMOD &1 MODULE A ERASE &1 TEXT ERASE LOAD MAP
This file will have to be modified, of course, at each facility. At CERN, for example, FORTVS might be replaced by JFORT (the Siemens- Fujitsu equivalent), with appropriate changes in the options and in the GLOBAL statement. To create the module one simply enters
MAKMOD77 M@RNEW77
The M@RNEW77 MODULE file that is subsequently created is the only one necessary to keep (toss out the LISTING file and save the ori- ginal M@RNEW77 FORTRAN file somewhere for possible future use). Henceforth, when we refer to M@RNEW77, we will be talking about the MODULE form.
This step is commonly referred to as the "boot strap" step because we are going to use M@RNEW77 in order to create its own HEX file, which will subsequently be read in as "DATA" during future Mortran-to-FORTRAN conversions (hence, the name "boot strap"). We will illustrate how to create the file, and we will explain its use later on.
Again, to facilitate matters, we make use of an EXEC2 routine, in this case RAWHEX77 EXEC:
&TRACE ALL * ******* RAWHEX77 EXEC ******* * * Exec to convert M@RNEW77 RAW to M@RNEW77 DATA * FILEDEF 1 DISK M@RNEW77 RAW A (RECFM F LRECL 115 BLOCK 115 FILEDEF 6 DISK M@RNEW77 LIST A (RECFM F LRECL 133 BLOCK 133 FILEDEF 7 DISK M@RNEW77 DATA A (RECFM F LRECL 80 BLOCK 80 M@RNEW77 &EXIT &RETCODE
This is a very simple routine in which M@RNEW77, upon being called, reads in a file on UNIT 1 called M@RNEW77 RAW (on the A disk in this case). The object is to create the hexadecimal file (on UNIT 7) called M@RNEW77 DATA and a listing (on UNIT 6) called M@RNEW77 LIST (which can also be tossed).
At this point one should use an Editor (e.g., XEDIT or WYLBUR) in order to remove the first line in M@RNEW77 DATA, and to then re-save the file (with the same name). You are then ready to "use" the Mortran3 system, which really only requires the two files:
M@RNEW77 MODULE M@RNEW77 DATA
!COMMENTS; !INDENT C5; !INDENT M4; !INDENT F2; "********************************************" " PROGRAM: CHECK77 MORTRAN " "********************************************" "THIS IS A SIMPLE EXAMPLE OF A MORTRAN3 PROGRAM" "IT IS WRITTEN TO TEST THAT CORRECT FORTRAN 77 CODE IS CREATED" "FOUR GOODIES ARE IMPLEMENTED:" " 1) MORTRAN3 COMMENTS ARE MAINTAINED IN THE FORTRAN OUTPUT" " 2) COMMENTS START IN COLUMN 5 OF THE FORTRAN LISTING" " 3) THE MORTRAN NESTING LEVEL IS INDENTED 4" " 3) THE FORTRAN NESTING LEVEL IS INDENTED 2" "DECLARATION COMES NEXT" CHARACTER*4 ODD/' ODD'/,EVEN/'EVEN'/; "EXECUTABLE STATEMENTS COME NEXT" OUTPUT ; (' THE FIRST TEN INTEGERS AND THEIR SQUARES:',/); "THE ABOVE OUTPUT STATEMENT SHOULD BEGIN IN COLUMN 7 OF THE FORTRAN" "THE COMMENTS SHOULD BE IN COLUMN 5 (EXCEPT FOR THE C IN COLUMN 1)" "THE FOLLOWING DO-LOOP SHOULD START IN COLUMN 9 OF THE FORTRAN" DO I=1,10 [ ISQ=I**2; J=MOD(I,2); IF(J.EQ.1) [OUTPUT I,ODD,ISQ; (' I=',I3,' (',A4,' INTEGER)',I4);] ELSE [OUTPUT I,EVEN,ISQ; (' I=',I3,' (',A4,' INTEGER)',I4);] "THE ABOVE IF-ELSE SHOULD BE NESTED IN COLUMN 11 OF THE FORTRAN" ] STOP; END; %%
Note the %% line that acts as an `end-of-file' statement.
The routine called INTMORT EXEC can be used in order to run stand-alone Mortran3 programs such as CHECK77 MORTRAN above. When prompted for the 'MORTRAN CODE', simply enter CHECK77 and take carriage returns (CR) for the rest of the prompts. It is assumed that the files
M@RNEW77 MODULE A M@RNEW77 DATA A CHECK77 MORTRAN A INTMORT EXEC A
are readily accessible (on the A disk, for example).
Two EXEC2 routines, EGS4INT EXEC and PEGS4INT EXEC, have been included on the EGS4 Distribution Tape in order to illustrate how to run the EGS4 Code System at an IBM/VM facility. The M@RNEW77 MODULE and M@RNEW77 DATA files (or their equivalent FORTRAN IV counterparts) are required and should be created as shown in the previous sections.
last updated 09/28/01