Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:21

0001  
0002 C*********************************************************************
0003  
0004 C...UPINIT
0005 C...Dummy routine, to be replaced by a user implementing external
0006 C...processes. Is supposed to fill the HEPRUP commonblock with info
0007 C...on incoming beams and allowed processes.
0008 
0009 C...New example: handles a standard Les Houches Events File.
0010 
0011       SUBROUTINE UPINIT
0012  
0013 C...Double precision and integer declarations.
0014       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0015       IMPLICIT INTEGER(I-N)
0016  
0017 C...PYTHIA commonblock: only used to provide read unit MSTP(161).
0018       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0019       SAVE /PYPARS/
0020  
0021 C...User process initialization commonblock.
0022       INTEGER MAXPUP
0023       PARAMETER (MAXPUP=100)
0024       INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
0025       DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
0026       COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
0027      &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
0028      &LPRUP(MAXPUP)
0029       SAVE /HEPRUP/
0030 
0031 C...Lines to read in assumed never longer than 200 characters. 
0032       PARAMETER (MAXLEN=200)
0033       CHARACTER*(MAXLEN) STRING
0034 
0035 C...Format for reading lines.
0036       CHARACTER*6 STRFMT
0037       STRFMT='(A000)'
0038       WRITE(STRFMT(3:5),'(I3)') MAXLEN
0039 
0040 C...Loop until finds line beginning with "<init>" or "<init ". 
0041   100 READ(MSTP(161),STRFMT,END=130,ERR=130) STRING
0042       IBEG=0
0043   110 IBEG=IBEG+1
0044 C...Allow indentation.
0045       IF(STRING(IBEG:IBEG).EQ.' '.AND.IBEG.LT.MAXLEN-5) GOTO 110 
0046       IF(STRING(IBEG:IBEG+5).NE.'<init>'.AND.
0047      &STRING(IBEG:IBEG+5).NE.'<init ') GOTO 100
0048 
0049 C...Read first line of initialization info.
0050       READ(MSTP(161),*,END=130,ERR=130) IDBMUP(1),IDBMUP(2),EBMUP(1),
0051      &EBMUP(2),PDFGUP(1),PDFGUP(2),PDFSUP(1),PDFSUP(2),IDWTUP,NPRUP
0052 
0053 C...Read NPRUP subsequent lines with information on each process.
0054       DO 120 IPR=1,NPRUP
0055         READ(MSTP(161),*,END=130,ERR=130) XSECUP(IPR),XERRUP(IPR),
0056      &  XMAXUP(IPR),LPRUP(IPR)
0057   120 CONTINUE
0058       RETURN
0059 
0060 C...Error exit: give up if initalization does not work.
0061   130 WRITE(*,*) ' Failed to read LHEF initialization information.'
0062       WRITE(*,*) ' Event generation will be stopped.'
0063       CALL PYSTOP(12)
0064  
0065       RETURN
0066       END