File indexing completed on 2025-08-05 08:21:12
0001
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE PYLHEF
0009
0010
0011 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0012 IMPLICIT INTEGER(I-N)
0013
0014
0015 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0016 SAVE /PYPARS/
0017
0018
0019 INTEGER MAXPUP
0020 PARAMETER (MAXPUP=100)
0021 INTEGER IDBMUP,PDFGUP,PDFSUP,IDWTUP,NPRUP,LPRUP
0022 DOUBLE PRECISION EBMUP,XSECUP,XERRUP,XMAXUP
0023 COMMON/HEPRUP/IDBMUP(2),EBMUP(2),PDFGUP(2),PDFSUP(2),
0024 &IDWTUP,NPRUP,XSECUP(MAXPUP),XERRUP(MAXPUP),XMAXUP(MAXPUP),
0025 &LPRUP(MAXPUP)
0026 SAVE /HEPRUP/
0027
0028
0029 INTEGER MAXNUP
0030 PARAMETER (MAXNUP=500)
0031 INTEGER NUP,IDPRUP,IDUP,ISTUP,MOTHUP,ICOLUP
0032 DOUBLE PRECISION XWGTUP,SCALUP,AQEDUP,AQCDUP,PUP,VTIMUP,SPINUP
0033 COMMON/HEPEUP/NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP,IDUP(MAXNUP),
0034 &ISTUP(MAXNUP),MOTHUP(2,MAXNUP),ICOLUP(2,MAXNUP),PUP(5,MAXNUP),
0035 &VTIMUP(MAXNUP),SPINUP(MAXNUP)
0036 SAVE /HEPEUP/
0037
0038
0039 PARAMETER (MAXLEN=200)
0040 CHARACTER*(MAXLEN) STRING
0041
0042
0043 CHARACTER*6 STRFMT
0044 STRFMT='(A000)'
0045 WRITE(STRFMT(3:5),'(I3)') MAXLEN
0046
0047
0048 REWIND MSTP(161)
0049 REWIND MSTP(162)
0050
0051
0052 WRITE(MSTP(163),'(A)') '<LesHouchesEvents version="1.0">'
0053 WRITE(MSTP(163),'(A)') '<!--'
0054 WRITE(MSTP(163),'(A,I1,A1,I3)') 'File generated with PYTHIA ',
0055 &MSTP(181),'.',MSTP(182)
0056 WRITE(MSTP(163),'(A)') '-->'
0057
0058
0059 READ(MSTP(161),'(A)',END=400,ERR=400) STRING
0060 READ(STRING,*,ERR=400) IDBMUP(1),IDBMUP(2),EBMUP(1),
0061 &EBMUP(2),PDFGUP(1),PDFGUP(2),PDFSUP(1),PDFSUP(2),IDWTUP,NPRUP
0062
0063
0064
0065 WRITE(MSTP(163),'(A)') '<init>'
0066 DO 140 IPR=0,NPRUP
0067 IF(IPR.GT.0) READ(MSTP(161),'(A)',END=400,ERR=400) STRING
0068 LEN=MAXLEN+1
0069 120 LEN=LEN-1
0070 IF(LEN.GT.1.AND.STRING(LEN:LEN).EQ.' ') GOTO 120
0071 WRITE(MSTP(163),'(A)',ERR=400) STRING(1:LEN)
0072 140 CONTINUE
0073 WRITE(MSTP(163),'(A)') '</init>'
0074
0075
0076 READ(MSTP(162),'(A)',END=320,ERR=400) STRING
0077 200 CONTINUE
0078
0079
0080 READ(STRING,*,ERR=400) NUP,IDPRUP,XWGTUP,SCALUP,AQEDUP,AQCDUP
0081
0082
0083 WRITE(MSTP(163),'(A)') '<event>'
0084 DO 240 I=0,NUP
0085 IF(I.GT.0) READ(MSTP(162),'(A)',END=400,ERR=400) STRING
0086 LEN=MAXLEN+1
0087 220 LEN=LEN-1
0088 IF(LEN.GT.1.AND.STRING(LEN:LEN).EQ.' ') GOTO 220
0089 WRITE(MSTP(163),'(A)',ERR=400) STRING(1:LEN)
0090 240 CONTINUE
0091
0092
0093 260 READ(MSTP(162),'(A)',END=300,ERR=400) STRING
0094 IF(STRING(1:1).EQ.'#') THEN
0095 LEN=MAXLEN+1
0096 280 LEN=LEN-1
0097 IF(LEN.GT.1.AND.STRING(LEN:LEN).EQ.' ') GOTO 280
0098 WRITE(MSTP(163),'(A)',ERR=400) STRING(1:LEN)
0099 GOTO 260
0100 ENDIF
0101
0102
0103 WRITE(MSTP(163),'(A)') '</event>'
0104 GOTO 200
0105
0106
0107
0108 300 WRITE(MSTP(163),'(A)') '</event>'
0109 320 WRITE(MSTP(163),'(A)') '</LesHouchesEvents>'
0110 IF(MSTP(164).EQ.1) RETURN
0111 CLOSE(MSTP(161),ERR=400,STATUS='DELETE')
0112 CLOSE(MSTP(162),ERR=400,STATUS='DELETE')
0113 RETURN
0114
0115
0116 400 WRITE(*,*) ' PYLHEF file joining failed!'
0117
0118 RETURN
0119 END