From 28475c31b6d8513b6ec3423c44c12832edc6fb00 Mon Sep 17 00:00:00 2001 From: Yggdrasil Date: Tue, 7 Apr 2026 17:53:26 +0200 Subject: [PATCH] ESD outputs are now separate. --- .gitignore | 4 +++- Makefile | 32 ++++++++++++++++++++++++++------ event2_03.f | 23 +++++++++++++---------- gbook.f | 46 ++++++++++++++++++++++++++++++++++------------ 4 files changed, 76 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index c9a4638..10579b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ bin/ -gtopdraw.top +.vscode/ + +gtopdraw* diff --git a/Makefile b/Makefile index cc878a2..06f2ebe 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,15 @@ -# Compiler and flags +# Compiler FC = gfortran -FFLAGS = -O2 + +# Build type (default: Release) +BUILD ?= release + +# Flags depending on build type +ifeq ($(BUILD),debug) + FFLAGS = -g -O0 +else + FFLAGS = -O2 +endif # Output folder OUT = bin @@ -11,13 +20,24 @@ TARGET = event2 # Source files SRCS = event2_03.f gbook.f +# Executable path +EXE = $(OUT)/$(TARGET) + # Default rule -all: $(TARGET) +all: $(EXE) # Build rule -$(TARGET): $(SRCS) - $(FC) $(FFLAGS) -o $(OUT)/$(TARGET) $(SRCS) +$(EXE): $(SRCS) + mkdir -p $(OUT) + $(FC) $(FFLAGS) -o $(EXE) $(SRCS) + +# Convenience targets +debug: + $(MAKE) BUILD=debug + +release: + $(MAKE) BUILD=release # Clean rule clean: - rm -f $(TARGET) *.o + rm -rf $(OUT) \ No newline at end of file diff --git a/event2_03.f b/event2_03.f index 20f1eaa..e6be1dd 100644 --- a/event2_03.f +++ b/event2_03.f @@ -4,7 +4,9 @@ EXTERNAL DEMO NF=5 EM=91.1876 - NEV=5 000 000 +C NEV=1 000 000 000 +C NEV=5 000 000 + NEV= 500 000 CALL DEMOIN CALL EVENT2(NEV,EM,NF,DEMO) CALL DEMOUT(NEV) @@ -217,12 +219,12 @@ C----------------------------------------------------------------------- CALL GBOOK1( 12,'D-PARAMETER',50,0D0,1D0) CALL GBOOK1(112,'D-PARAMETER',50,0D0,1D0) CALL GBOOK1(212,'D-PARAMETER',50,0D0,1D0) - CALL GBOOK1( 3,'THRUST',50,0.5D0,1D0) - CALL GBOOK1(103,'THRUST',50,0.5D0,1D0) - CALL GBOOK1(203,'THRUST',50,0.5D0,1D0) - CALL GBOOK1( 13,'THRUST',50,0.5D0,1D0) - CALL GBOOK1(113,'THRUST',50,0.5D0,1D0) - CALL GBOOK1(213,'THRUST',50,0.5D0,1D0) + CALL GBOOK1( 3,'THRUST',50,0D0,0.5D0) + CALL GBOOK1(103,'THRUST',50,0D0,0.5D0) + CALL GBOOK1(203,'THRUST',50,0D0,0.5D0) + CALL GBOOK1( 13,'THRUST',50,0D0,0.5D0) + CALL GBOOK1(113,'THRUST',50,0D0,0.5D0) + CALL GBOOK1(213,'THRUST',50,0D0,0.5D0) CALL GBOOK1( 4,'y3(JADE,P)',40,0D0,0.4D0) CALL GBOOK1(104,'y3(JADE,P)',40,0D0,0.4D0) CALL GBOOK1(204,'y3(JADE,P)',40,0D0,0.4D0) @@ -292,7 +294,7 @@ C----------------------------------------------------------------------- IMPLICIT NONE INTEGER N,NA,ITYPE,I,J,K,L,ORD DOUBLE PRECISION P(4,7),WEIGHT,DOT,C,D,OS,ORS,E(7),OE(7),COSANG, - $ COSLIM,BEEC,T,TL,TA(3),PT(3),PC(3,4),Y3,Y,Q(4,7), + $ COSLIM,BEEC,T,TAU,TL,TA(3),PT(3),PC(3,4),Y3,Y,Q(4,7), $ CSUM(8),CSQR(8),CS(8),BSUM(2,6),BSQR(2,6),BS(2,6) DOUBLE PRECISION CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB COMMON /SUBCOM/ CFSUB,CASUB,TFSUB,GGSUB,QQSUB,QPSUB @@ -406,8 +408,9 @@ C---CALCULATE THE THRUST ELSE T=MAX(E(1),E(2),E(3))*ORS*2 ENDIF - CALL GFILL1(203+ORD,T,(1-T)*WEIGHT*100) - IF (ORD.EQ.0) CS(5)=CS(5)+(1-T)*WEIGHT + TAU = 1 - T + CALL GFILL1(203+ORD,TAU,TAU*WEIGHT*100) + IF (ORD.EQ.0) CS(5)=CS(5)+TAU*WEIGHT C---CALCULATE THE Y3 VALUE (USES P SCHEME FOR NO PARTICULAR REASON) IF (N.EQ.4) THEN Y3=1D6 diff --git a/gbook.f b/gbook.f index 5bb9f79..84dcd56 100644 --- a/gbook.f +++ b/gbook.f @@ -670,9 +670,15 @@ C----------------------------------------------------------------------- COMMON /GTCOM/ TYPE,NTYPE PARAMETER (NXMAX=1000) DIMENSION X(NXMAX),Y(NXMAX),E(NXMAX) + LOGICAL OPEN CHARACTER TITLE*60 + COMMON /GFILE/ OPEN, TITLE IF (ID.GT.NMAX) RETURN - CALL GOPENF + IF (NEW) THEN + CALL GCLOSEF + CALL GTITLE(ID,TITLE,LENTIT) + CALL GOPENF + ENDIF WEIGHT=0.0 AVGE=0.0 VARIAN=0.0 @@ -718,7 +724,6 @@ C----------------------------------------------------------------------- IF (WEIGHT.EQ.0) WEIGHT=1 AVGE=AVGE/WEIGHT VARIAN=VARIAN/WEIGHT-AVGE**2 - CALL GTITLE(ID,TITLE,LENTIT) C SET UP PAGE... IF (NEW) THEN WRITE (21,*) 'NEW FRAME' @@ -783,11 +788,17 @@ C----------------------------------------------------------------------- LOGICAL NEW PARAMETER (NZ=250) DIMENSION Z(NZ,NZ) + LOGICAL OPEN CHARACTER TITLE*60 + COMMON /GFILE/ OPEN,TITLE REAL RAN DATA ISEED/12345/ IF (ID.GT.NMAX) RETURN - CALL GOPENF + IF (NEW) THEN + CALL GCLOSEF + CALL GTITLE(ID,TITLE,LENTIT) + CALL GOPENF + ENDIF WEIGHT=0.0 XAVGE=0.0 XVARIN=0.0 @@ -828,7 +839,6 @@ C----------------------------------------------------------------------- XVARIN=XVARIN/WEIGHT-XAVGE**2 YAVGE=YAVGE/WEIGHT YVARIN=YVARIN/WEIGHT-YAVGE**2 - CALL GTITLE(ID,TITLE,LENTIT) C SET UP PAGE... IF (NEW) THEN WRITE (21,*) 'NEW FRAME' @@ -918,22 +928,34 @@ C----------------------------------------------------------------------- C----------------------------------------------------------------------- SUBROUTINE GOPENF C---OPEN TopDrawer FILE - CHARACTER*14 TITLE LOGICAL OPEN + CHARACTER TITLE * 60 + CHARACTER FNAME * 74 + COMMON /GFILE/ OPEN, TITLE DATA OPEN/.FALSE./ IF (OPEN) RETURN OPEN=.TRUE. N=0 - TITLE='gtopdraw.top' - OPEN (21,FILE='gtopdraw.top',STATUS='NEW',ERR=10) - WRITE (6,*) 'Using file "gtopdraw.top"' + FNAME='gtopdraw_'//TRIM(TITLE)//'.top' + OPEN (21,FILE=TRIM(FNAME),STATUS='NEW',ERR=10) + WRITE (6,*) 'Using file "'//TRIM(FNAME)//'"' RETURN 10 N=N+1 IF (N.GE.100) STOP - WRITE (6,*) 'Could not open file "',TITLE,'"' - WRITE (TITLE,'(A8,I2.2,A4)') 'gtopdraw',N,'.top' - OPEN (21,FILE=TITLE,STATUS='NEW',ERR=10) - WRITE (6,*) 'Using file "',TITLE,'" instead' + WRITE (6,*) 'Could not open file "',TRIM(FNAME),'"' + WRITE (FNAME,'(A8,I2.2,A4)') 'gtopdraw_'//TRIM(TITLE),N,'.top' + OPEN (21,FILE=TRIM(FNAME),STATUS='NEW',ERR=10) + WRITE (6,*) 'Using file "',TRIM(FNAME),'" instead' + END +C----------------------------------------------------------------------- + SUBROUTINE GCLOSEF +C---CLOSE TopDrawer FILE + LOGICAL OPEN + CHARACTER TITLE * 60 + COMMON /GFILE/ OPEN,TITLE + IF (.NOT.OPEN) RETURN + CLOSE(21) + OPEN = .FALSE. END C----------------------------------------------------------------------- BLOCK DATA GTDAT