Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pybook.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file pybook.f
1 
2 C*********************************************************************
3 
4 C...PYBOOK
5 C...Books a histogram.
6 
7  SUBROUTINE pybook(ID,TITLE,NX,XL,XU)
8 
9 C...Double precision declaration.
10  IMPLICIT DOUBLE PRECISION(a-h, o-z)
11  IMPLICIT INTEGER(i-n)
12 C...Commonblock.
13  common/pybins/ihist(4),indx(1000),bin(20000)
14  SAVE /pybins/
15 C...Local character variables.
16  CHARACTER title*(*), titfx*60
17 
18 C...Check that input is sensible. Find initial address in memory.
19  IF(id.LE.0.OR.id.GT.ihist(1)) CALL pyerrm(28,
20  &'(PYBOOK:) not allowed histogram number')
21  IF(nx.LE.0.OR.nx.GT.100) CALL pyerrm(28,
22  &'(PYBOOK:) not allowed number of bins')
23  IF(xl.GE.xu) CALL pyerrm(28,
24  &'(PYBOOK:) x limits in wrong order')
25  indx(id)=ihist(4)
26  ihist(4)=ihist(4)+28+nx
27  IF(ihist(4).GT.ihist(2)) CALL pyerrm(28,
28  &'(PYBOOK:) out of histogram space')
29  is=indx(id)
30 
31 C...Store histogram size and reset contents.
32  bin(is+1)=nx
33  bin(is+2)=xl
34  bin(is+3)=xu
35  bin(is+4)=(xu-xl)/nx
36  CALL pynull(id)
37 
38 C...Store title by conversion to integer to double precision.
39  titfx=title//' '
40  DO 100 it=1,20
41  bin(is+8+nx+it)=256**2*ichar(titfx(3*it-2:3*it-2))+
42  & 256*ichar(titfx(3*it-1:3*it-1))+ichar(titfx(3*it:3*it))
43  100 CONTINUE
44 
45  RETURN
46  END