Added read histogram subroutine. Started work on hist merge utility.
This commit is contained in:
parent
132f091802
commit
01c9bf2018
27
Makefile
27
Makefile
|
|
@ -14,22 +14,29 @@ endif
|
||||||
# Output folder
|
# Output folder
|
||||||
OUT = bin
|
OUT = bin
|
||||||
|
|
||||||
# Target executable
|
# Targets
|
||||||
TARGET = event2
|
TARGET1 = event2
|
||||||
|
TARGET2 = event2_merge
|
||||||
|
|
||||||
# Source files
|
# Source files
|
||||||
SRCS = event2_03.f gbook.f
|
SRCS1 = event2_03.f gbook.f
|
||||||
|
SRCS2 = event2_merge.f gbook.f
|
||||||
|
|
||||||
# Executable path
|
# Executable paths
|
||||||
EXE = $(OUT)/$(TARGET)
|
EXE1 = $(OUT)/$(TARGET1)
|
||||||
|
EXE2 = $(OUT)/$(TARGET2)
|
||||||
|
|
||||||
# Default rule
|
# Default rule (build both)
|
||||||
all: $(EXE)
|
all: $(EXE1) $(EXE2)
|
||||||
|
|
||||||
# Build rule
|
# Build rules
|
||||||
$(EXE): $(SRCS)
|
$(EXE1): $(SRCS1)
|
||||||
mkdir -p $(OUT)
|
mkdir -p $(OUT)
|
||||||
$(FC) $(FFLAGS) -o $(EXE) $(SRCS)
|
$(FC) $(FFLAGS) -o $(EXE1) $(SRCS1)
|
||||||
|
|
||||||
|
$(EXE2): $(SRCS2)
|
||||||
|
mkdir -p $(OUT)
|
||||||
|
$(FC) $(FFLAGS) -o $(EXE2) $(SRCS2)
|
||||||
|
|
||||||
# Convenience targets
|
# Convenience targets
|
||||||
debug:
|
debug:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
PROGRAM MAIN
|
||||||
|
CALL GREAD('./results/gtopdraw_THRUST_00000.dat')
|
||||||
|
CALL GTOPER( 3,1,1,0,100+3)
|
||||||
|
CALL GTOPER(10+3,0,0,0,110+3)
|
||||||
|
END PROGRAM
|
||||||
|
C-----------------------------------------------------------------------
|
||||||
101
gbook.f
101
gbook.f
|
|
@ -743,6 +743,12 @@ C SET UP PAGE...
|
||||||
ENDIF
|
ENDIF
|
||||||
NTYPE=MOD(NTYPE,4)+1
|
NTYPE=MOD(NTYPE,4)+1
|
||||||
C PLOT...
|
C PLOT...
|
||||||
|
WRITE (21,*) 'HIST ID ',ID
|
||||||
|
IF (IDERR.NE.0) THEN
|
||||||
|
WRITE (21,*) 'HIST IDERR',IDERR
|
||||||
|
ENDIF
|
||||||
|
WRITE (21,*) 'HIST NBINS',NX
|
||||||
|
WRITE (21,*) 'DATA'
|
||||||
DO 200 I=1, NX
|
DO 200 I=1, NX
|
||||||
IF ((ABS(X(I)).GE.1E-3.AND.ABS(X(I)).LT.1E5.OR.X(I).EQ.0).AND.
|
IF ((ABS(X(I)).GE.1E-3.AND.ABS(X(I)).LT.1E5.OR.X(I).EQ.0).AND.
|
||||||
& (ABS(Y(I)).GE.1E-5.AND.ABS(Y(I)).LT.1E3.OR.Y(I).EQ.0)) THEN
|
& (ABS(Y(I)).GE.1E-5.AND.ABS(Y(I)).LT.1E3.OR.Y(I).EQ.0)) THEN
|
||||||
|
|
@ -925,6 +931,91 @@ C-----------------------------------------------------------------------
|
||||||
GOTO 200
|
GOTO 200
|
||||||
ENDIF
|
ENDIF
|
||||||
END
|
END
|
||||||
|
C-----------------------------------------------------------------------
|
||||||
|
SUBROUTINE GREAD(FILE)
|
||||||
|
IMPLICIT INTEGER (I-N)
|
||||||
|
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
|
||||||
|
|
||||||
|
CHARACTER*(*) FILE
|
||||||
|
CHARACTER*200 LINE, TITLE
|
||||||
|
CHARACTER*100 KEYS(5)
|
||||||
|
DOUBLE PRECISION TX, TY, TE
|
||||||
|
|
||||||
|
PARAMETER (NSIZE=200000, NMAX=2000)
|
||||||
|
COMMON /GBOOK/ A(NSIZE)
|
||||||
|
|
||||||
|
INTEGER NX, IOS, ID, IDERR
|
||||||
|
LOGICAL INDATA
|
||||||
|
|
||||||
|
INDATA = .FALSE.
|
||||||
|
IDERR = 0
|
||||||
|
|
||||||
|
OPEN(10, FILE=FILE, STATUS='OLD')
|
||||||
|
|
||||||
|
10 CONTINUE
|
||||||
|
READ(10,'(A)',END=900) LINE
|
||||||
|
|
||||||
|
C --- Read keywords
|
||||||
|
READ(LINE,*,IOSTAT=IOS) KEYS
|
||||||
|
|
||||||
|
IF (IOS.GT.0) GOTO 10
|
||||||
|
|
||||||
|
C --- PROCESS KEYS
|
||||||
|
IF (KEYS(1).EQ.'SET') THEN
|
||||||
|
|
||||||
|
IF(KEYS(2).EQ.'LIMITS') THEN
|
||||||
|
READ(KEYS(4),*) XMIN
|
||||||
|
READ(KEYS(5),*) XMAX
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
ELSE IF (KEYS(1).EQ.'TITLE') THEN
|
||||||
|
TITLE = KEYS(3)
|
||||||
|
|
||||||
|
ELSE IF (KEYS(1).EQ.'HIST') THEN
|
||||||
|
|
||||||
|
IF(KEYS(2).EQ.'ID') THEN
|
||||||
|
READ(KEYS(3),'(I4)') ID
|
||||||
|
ELSE IF(KEYS(2).EQ.'IDERR') THEN
|
||||||
|
READ(KEYS(3),'(I4)') IDERR
|
||||||
|
ELSE IF(KEYS(2).EQ.'NBINS') THEN
|
||||||
|
READ(KEYS(3),'(I4)') NX
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
ELSE IF (KEYS(1).EQ.'DATA') THEN
|
||||||
|
INDATA = .TRUE.
|
||||||
|
CALL GBOOK1(ID,TITLE,NX,XMIN,XMAX)
|
||||||
|
IF(IDERR.NE.0) THEN
|
||||||
|
CALL GBOOK1(IDERR,TITLE,NX,XMIN,XMAX)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
C --- DATA LINES
|
||||||
|
ELSE IF (INDATA) THEN
|
||||||
|
|
||||||
|
READ(LINE,*,IOSTAT=IOS) TX, TY, TE
|
||||||
|
|
||||||
|
IF(IOS.EQ.0) THEN
|
||||||
|
CALL GFILL1(ID,TX,TY)
|
||||||
|
IF(IDERR.NE.0) THEN
|
||||||
|
CALL GFILL1(IDERR,TX,TE)
|
||||||
|
ENDIF
|
||||||
|
ELSE IF (IOS .EQ. 5010) THEN
|
||||||
|
C ------ FORMAT ERROR: CHECK IF END OF DATA OR JUST AN ERROR
|
||||||
|
IF(TRIM(LINE).EQ.'HIST ; PLOT'.OR.
|
||||||
|
$ TRIM(LINE).EQ.'JOIN DASH ; PLOT') THEN
|
||||||
|
INDATA = .FALSE.
|
||||||
|
ENDIF
|
||||||
|
GOTO 10
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
GOTO 10
|
||||||
|
|
||||||
|
900 CONTINUE
|
||||||
|
CLOSE(10)
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
C-----------------------------------------------------------------------
|
C-----------------------------------------------------------------------
|
||||||
SUBROUTINE GOPENF
|
SUBROUTINE GOPENF
|
||||||
C---OPEN TopDrawer FILE
|
C---OPEN TopDrawer FILE
|
||||||
|
|
@ -935,6 +1026,7 @@ C---OPEN TopDrawer FILE
|
||||||
COMMON /GFILE/ OPEN, TITLE
|
COMMON /GFILE/ OPEN, TITLE
|
||||||
COMMON /FPATH/ OPATH
|
COMMON /FPATH/ OPATH
|
||||||
DATA OPEN/.FALSE./
|
DATA OPEN/.FALSE./
|
||||||
|
DATA OPATH/'./'/
|
||||||
IF (OPEN) RETURN
|
IF (OPEN) RETURN
|
||||||
OPEN=.TRUE.
|
OPEN=.TRUE.
|
||||||
N=0
|
N=0
|
||||||
|
|
@ -968,13 +1060,4 @@ C-----------------------------------------------------------------------
|
||||||
COMMON /GTCOM/ TYPE,NTYPE
|
COMMON /GTCOM/ TYPE,NTYPE
|
||||||
DATA TYPE,NTYPE/' ','DASH ','DOT-DASH','PATTERN ',0/
|
DATA TYPE,NTYPE/' ','DASH ','DOT-DASH','PATTERN ',0/
|
||||||
END
|
END
|
||||||
C-----------------------------------------------------------------------
|
|
||||||
double precision function ran(iseed)
|
|
||||||
implicit none
|
|
||||||
integer iseed
|
|
||||||
double precision r(1)
|
|
||||||
call rangen(1,r)
|
|
||||||
iseed=iseed+1
|
|
||||||
ran=r(1)
|
|
||||||
end
|
|
||||||
C-----------------------------------------------------------------------
|
C-----------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue