+-------------+ +----------##
| Geant 3.15 | GEANT User's Guide | BASE100 ##
+-------------+ +----------##
Author(s) : R.Brun Submitted: 01.10.84
Origin : GEANT2/3 Revised: 10.01.92
This section contains examples of a standard user program to use the GEANT system. The main program is intended for batch applications, while to run the simulation interactively, the interactive main program called GXINT should be linked in front of the user code.
PROGRAM MAIN
*
PARAMETER (NG=100000,NH=10000)
COMMON/PAWC/H(NH)
COMMON/GCBANK/Q(NG)
*
* Allocate memory for ZEBRA and HBOOK
CALL GZEBRA(NG)
CALL HLIMIT(-NH)
*
* Initialise the graphics system (optional)
CALL HPLINT (0)
*
* Open the output metafile
OPEN(1,FILE='geant.metafile',FORM='FORMATTED')
CALL HPLCAP (-1)
*
* Initialisation phase
CALL UGINIT
*
* Processing phase
CALL GRUN
*
* Termination phase
CALL UGLAST
*
END
Note: The HLIMIT call has to be placed after the call to GZEBRA and the argument has to be the dimension of the /PAWC/ common block with a negative sign in front. This way ZEBRA is initialised only once.
SUBROUTINE UGINIT
*
+SEQ,GCLIST,GCRZ
*
* Initialize GEANT variables
CALL GINIT
*
* Read data cards
CALL GFFGO
*
* Initialize data structures
CALL GZINIT
*
* Initialize drawing package
CALL GDINIT
*
* Open I/O buffers
IF(NRGET .GT. 0) THEN
*
* Fetch permanent data structures
CALL GRFILE(1,'mygeom.dat',' ')
CALL GRIN('INIT',0,' ')
CALL GREND(1)
ELSE
*
* Define standard Particle and Material data
CALL GPART
CALL GMATE
*
* Define the geometrical set-up
CALL UGEOM
CALL GGCLOS
ENDIF
IF(NRSAVE .GT. 0) THEN
*
* Save permanent data structures
CALL GRFILE(2,'mysave.dat','U')
CALL GROUT('INIT',1,' ')
CALL GREND(2)
ENDIF
*
* Compute cross-section and energy loss tables
CALL GPHYSI
*
* Initialize standard histograms
IF(NHSTA.GT.0) CALL GBHSTA
*
END