From 57f4ad36d001e78832d75de64dfc46c8d17c1c5f Mon Sep 17 00:00:00 2001 From: Yggdrasil Date: Fri, 24 Apr 2026 12:24:23 +0200 Subject: [PATCH] Seeds can now be externally set. --- event2_03.f | 57 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/event2_03.f b/event2_03.f index bc2da73..ee6265a 100644 --- a/event2_03.f +++ b/event2_03.f @@ -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