EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
alphas.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file alphas.F
1  FUNCTION alphas (Q2, NAORD)
2 *********************************************************************
3 * *
4 * THE ALPHA_S ROUTINE. *
5 * *
6 * INPUT : Q2 = scale in GeV**2 (not too low, of course); *
7 * NAORD = 1 (LO), 2 (NLO). *
8 * *
9 * OUTPUT: alphas_s/(4 pi) for use with the GRV(98) partons. *
10 * *
11 *******************************************************i*************
12 *
13  IMPLICIT DOUBLE PRECISION (a - z)
14  INTEGER nf, k, i, naord
15  dimension lambdal(3:6), lambdan(3:6), q2thr(3)
16 *
17 *...HEAVY QUARK THRESHOLDS AND LAMBDA VALUES :
18  DATA q2thr / 1.960, 20.25, 30625. /
19  DATA lambdal / 0.2041, 0.1750, 0.1320, 0.0665 /
20  DATA lambdan / 0.2994, 0.2460, 0.1677, 0.0678 /
21 *
22 *...DETERMINATION OF THE APPROPRIATE NUMBER OF FLAVOURS :
23  nf = 3
24  DO 10 k = 1, 3
25  IF (q2 .GT. q2thr(k)) THEN
26  nf = nf + 1
27  ELSE
28  go to 20
29  END IF
30  10 CONTINUE
31 *
32 *...LO ALPHA_S AND BETA FUNCTION FOR NLO CALCULATION :
33  20 b0 = 11.- 2./3.* nf
34  b1 = 102.- 38./3.* nf
35  b10 = b1 / (b0*b0)
36  IF (naord .EQ. 1) THEN
37  lam2 = lambdal(nf) * lambdal(nf)
38  alp = 1./(b0 * dlog(q2/lam2))
39  go to 1
40  ELSE IF (naord .EQ. 2) then
41  lam2 = lambdan(nf) * lambdan(nf)
42  b1 = 102.- 38./3.* nf
43  b10 = b1 / (b0*b0)
44  ELSE
45  WRITE (6,91)
46  91 FORMAT ('INVALID CHOICE FOR ORDER IN ALPHA_S')
47  stop
48  END IF
49 *
50 *...START VALUE FOR NLO ITERATION :
51  lq2 = dlog(q2 / lam2)
52  alp = 1./(b0*lq2) * (1.- b10*dlog(lq2)/lq2)
53 *
54 *...EXACT NLO VALUE, FOUND VIA NEWTON PROCEDURE :
55  DO 2 i = 1, 6
56  xl = dlog(1./(b0*alp) + b10)
57  xlp = dlog(1./(b0*alp*1.01) + b10)
58  xlm = dlog(1./(b0*alp*0.99) + b10)
59  y = lq2 - 1./ (b0*alp) + b10 * xl
60  y1 = (- 1./ (b0*alp*1.01) + b10 * xlp
61  1 + 1./ (b0*alp*0.99) - b10 * xlp) / (0.02d0*alp)
62  alp = alp - y/y1
63  2 CONTINUE
64 *
65 *...OUTPUT :
66  1 alphas = alp
67  RETURN
68  END