Seeds can now be externally set.

This commit is contained in:
Yggdrasil 2026-04-24 12:24:23 +02:00
parent 6d42adc8e3
commit 57f4ad36d0
1 changed files with 44 additions and 13 deletions

View File

@ -24,6 +24,7 @@ C - added CUTUP variable
C VERSION 0.4 - 23th April 2026 - separated hist ouput
C - added runcard input
C - allowed different bin sizes
C - seeds can now be externally set
C
C - NEV IS THE NUMBER OF EVENTS TO GENERATE
C - EM IS THE TOTAL CENTRE-OF-MASS ENERGY
@ -63,17 +64,7 @@ C
DOUBLE PRECISION CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB
COMMON /SUBCOM/ CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB
EXTERNAL USER
C---PRINT OPENING MESSAGE
WRITE (*,'(/2A)') ' This is EVENT2, a program for calculating',
$ ' jet quantities'
WRITE (*,'(2A)') ' in e+e- annihilation to next-to-leading',
$ ' order in alpha_s'
WRITE (*,'(A)') ' If you use this program, please reference:'
WRITE (*,'(2A)') ' S.Catani & M.H.Seymour,',
$ ' Phys. Lett. B378 (1996) 287.'
WRITE (*,'(/A)') ' Written by Mike Seymour, January 1996'
WRITE (*,'(A)') ' Edited by Giorgio Chiurato, April 2026'
WRITE (*,'(A/)') ' Version 0.4, April 2026'
CALL PRINTHEADER
WRITE (*,'(A,I10)')' NEV=',NEV
C---INITIALIZE CONSTANTS
PI=ATAN(ONE)*4
@ -191,12 +182,27 @@ C---TELL THE USER THAT THE EVENT IS COMPLETE
1000 CALL USER(0,0,0,P,ZERO)
ENDDO
END
C-----------------------------------------------------------------------
SUBROUTINE PRINTHEADER
IMPLICIT NONE
C---PRINT OPENING MESSAGE
WRITE (*,'(/2A)') ' This is EVENT2, a program for calculating',
$ ' jet quantities'
WRITE (*,'(2A)') ' in e+e- annihilation to next-to-leading',
$ ' order in alpha_s'
WRITE (*,'(A)') ' If you use this program, please reference:'
WRITE (*,'(2A)') ' S.Catani & M.H.Seymour,',
$ ' Phys. Lett. B378 (1996) 287.'
WRITE (*,'(/A)') ' Written by Mike Seymour, January 1996'
WRITE (*,'(A)') ' Edited by Giorgio Chiurato, April 2026'
WRITE (*,'(A/)') ' Version 0.4, April 2026'
END
C-----------------------------------------------------------------------
SUBROUTINE READCARD
implicit none
integer :: stat,n,nl,i,iline,ichar
character(2) :: flag(1:2)
character(40) :: val(1:2)
character(3) :: flag(1:4)
character(40) :: val(1:4)
character(20) :: fname
character(72) :: line
character(12) :: keys(20),settings(20)
@ -213,8 +219,13 @@ C-----------------------------------------------------------------------
DOUBLE PRECISION CL1,CL2,DL,TL,YL,EL,CH1,CH2,DH,TH,YH,EH
DOUBLE PRECISION CBS1,CBS2,DBS,TBS,YBS,EBS
DOUBLE PRECISION ISEEDIN(2)
CHARACTER*40 PATH
DATA fname/'card.input'/
DATA ISEEDIN/123450,678900/
COMMON /PARAMS/ NFL,NEV,EM
COMMON /CONCOM/ CF,CA,TR,PI,PISQ,HF,CUTOFF,CUTUP,
$ CQ,FPAL2,ONF,NF,METYPE
@ -237,22 +248,42 @@ C-----------------------------------------------------------------------
call getarg(4,val(2))
nl = 2
endif
if (n.ge.6)then
call getarg(5,flag(3))
call getarg(6,val(3))
nl = 3
endif
if (n.ge.8)then
call getarg(7,flag(4))
call getarg(8,val(4))
nl = 4
endif
C TODO: need to add a proper info page and maybe change the input parameter handling.
do i=1,nl
if (flag(i).eq.'-i')then
fname = val(i)
elseif (flag(i).eq.'-o')then
PATH = val(i)
elseif (flag(i).eq.'-sa') then
read(val(i), *) ISEEDIN(1)
elseif (flag(i).eq.'-sb') then
read(val(i), *) ISEEDIN(2)
else
CALL PRINTHEADER
print *, 'Option ', flag(i),
$ ' not recognized.'
STOP "Exiting program..."
endif
enddo
call RANGEN(0, ISEEDIN)
call CREATEOUT(PATH)
inquire(file=fname, exist=fexists)
if (.not.fexists)then
CALL PRINTHEADER
stop 'run card ' // trim(fname) // ' not found'
endif