EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fltabl.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file fltabl.F
1 
2 C **********************************************************************
3 
4  SUBROUTINE fltabl
5 
6  IMPLICIT NONE
7 
8 C...Integrates the longitudinal structure function, store on grid
9 C... in x, Q**2.
10 
11 *
12 * to avoid variable conflictions, a second keep element is necessary
13 * with the same common block name (see LPTOU2)
14 *
15  COMMON /leptou/ cut(14),lst(40),parl(30),
16  & x,y,w2,q2,u
17  REAL cut,parl,x,y,w2,q2,u
18  INTEGER lst
19  SAVE /leptou/
20 
21  COMMON /lintrl/ psave(3,4,5),ksave(4),xmin,xmax,ymin,ymax,
22  &q2min,q2max,w2min,w2max,ilep,inu,ig,iz
23  REAL psave,xmin,xmax,ymin,ymax,q2min,q2max,w2min,w2max
24  INTEGER ksave,ilep,inu,ig,iz
25  SAVE /lintrl/
26 
27  COMMON /linteg/ ntot,npass
28  INTEGER ntot,npass
29  SAVE /linteg/
30 
31  COMMON /flgrid/ nfx,nfq,xr(2),qr(2),flqt(41,16),flgt(41,16),
32  &flmt(41,16)
33  REAL xr,qr,flqt,flgt,flmt
34  INTEGER nfx,nfq
35  SAVE /flgrid/
36 
37 
38  INTEGER lqcd,ltm,lht,ix,iq,lq,it
39  REAL t1,flq,accur,eps,t2,flg,flm
40  real ulalps
41 
42  EXTERNAL flqint,flgint,fltint
43 
44  lqcd=mod(lst(11),10)
45  ltm=mod(lst(11)/10,10)
46  lht=lst(11)/100
47  IF(lst(3).GE.3) WRITE(6,1000) lst(11),lqcd,ltm,lht
48  IF(lqcd.LT.1.AND.ltm.LT.1) RETURN
49  CALL ltimex(t1)
50  DO 10 ix=1,nfx
51  DO 10 iq=1,nfq
52  flqt(ix,iq)=0.
53  flgt(ix,iq)=0.
54  10 flmt(ix,iq)=0.
55  qr(1)=q2min
56  xr(1)=xmin
57  xr(2)=xmax
58  DO 500 ix=1,nfx
59  x=10**(alog10(xr(1))+(alog10(xr(2))-alog10(xr(1)))*(ix-1)/(nfx-1))
60  qr(2)=x*parl(21)
61  IF(qr(1).GT.qr(2)) goto 500
62  lq=0
63  DO 400 iq=1,nfq
64  q2=10**(alog10(qr(1))+(alog10(qr(2))-alog10(qr(1)))*
65  &(iq-1)/(nfq-1))
66 Ctest IF(LQ.GT.0) GOTO 500
67  IF(q2.GT.parl(21)) lq=lq+1
68  y=q2/(parl(21)*x)
69  IF(y.LT.0.0.OR.y.GT.1.0) lq=lq+1
70  parl(25)=ulalps(q2)
71  IF(lqcd.EQ.1) THEN
72 C...Quark part.
73  accur=parl(11)
74  it=0
75  100 it=it+1
76  ntot=0
77  npass=0
78  eps=accur
79  CALL gadap(x,1.,flqint,eps,flq)
80  IF(flq.LT.1) THEN
81  accur=flq*parl(11)
82  IF(it.LT.2) goto 100
83  ENDIF
84  flqt(ix,iq)=flq
85 C...Gluon part.
86  accur=parl(11)
87  it=0
88  200 it=it+1
89  ntot=0
90  npass=0
91  eps=accur
92  CALL gadap(x,1.,flgint,eps,flg)
93  IF(flg.LT.1.) THEN
94  accur=flg*parl(11)
95  IF(it.LT.2) goto 200
96  ENDIF
97  flgt(ix,iq)=flg
98  ENDIF
99  IF(ltm.EQ.1) THEN
100 C...Target mass part.
101  accur=parl(11)
102  it=0
103  300 it=it+1
104  ntot=0
105  npass=0
106  eps=accur
107  CALL gadap(x,1.,fltint,eps,flm)
108  IF(flm.LT.1) THEN
109  accur=flm*parl(11)
110  IF(it.LT.2) goto 300
111  ENDIF
112  flmt(ix,iq)=flm
113  ENDIF
114  400 CONTINUE
115  500 CONTINUE
116  600 CONTINUE
117  CALL ltimex(t2)
118  IF(lst(3).GE.3) WRITE(6,1100) t2-t1
119  RETURN
120 
121  1000 FORMAT(' Initialisation for FL; QCD, target mass, higher twist: ',
122  &/,' LST(11) =',i5,' --> LQCD, LTM, LHT =',3i3)
123  1100 FORMAT(' FL integrations performed if LQCD=1 and/or LTM=1, ',
124  &'results on grid.'/,' Time for FL integrations is ',f7.1,' sec.')
125  END