1 real*8 function alphasPDF(Q)
6 call evolveAs(nset,Q,a)
11 real*8 function alphasPDFM(nset,Q)
15 call evolveAs(nset,Q,a)
20 subroutine GetQmass(nnf,mass)
23 integer nnf,order,nset
25 call GetQmassM(nset,nnf,mass)
27 entry GetOrderAs(order)
29 call GetOrderAsM(nset,order)
34 subroutine evolveAs(nset,Q,alphas)
36 include 'parmsetup.inc'
41 real*8 Q,alphas,alfas0,scale0
44 real*8 b0,b1,b2,L,As,mass
45 double precision CtLhALPI,CtLhAlphaNew
46 parameter (b0=1.2202,b1=0.4897,b2=0.1913)
49 integer EvlOrd(nmxset)
52 integer Method(nmxset)
54 real*8 cmass,bmass,tmass
55 common/masses_LHA/cmass,bmass,tmass
56 save EvlOrd,parm,Etype,alfasQ,Q0,Method
60 if (method(nset).eq.0) then
61 if ((Etype(nset).eq.1).or.(Etype(nset).eq.2)) then
64 if (Etype(nset).eq.2) call GetParmPDF(nset,parm,As)
65 c print *,Etype,parm,As
66 if (EvlOrd(nset).eq.0) L=b0*L
67 if (EvlOrd(nset).eq.1) L=(b0+As*b1)*L
68 if (EvlOrd(nset).eq.2) L=(b0+As*b1+As**2*b2)*L
69 . -0.5*As**2*b0*b1/2d0*L**2
73 if (method(nset).eq.1) then
74 call alfasevolve(nset,alphas,Q)
75 elseif (method(nset).eq.2) then
76 call alphamrs(5,alphas,Q)
77 elseif (method(nset).eq.3) then
78 alphas = 3.1415926535898d0*CtLhALPI(Q)
79 elseif (method(nset).eq.4) then
80 alphas = CtLhAlphaNew(Q)
81 elseif (method(nset).eq.5) then
82 call alphamrs(3,alphas,Q)
83 elseif (method(nset).eq.6) then
84 call alphamrs(4,alphas,Q)
85 elseif (method(nset).eq.7) then
86 call alphacteq5f34(3,alphas,Q)
87 elseif (method(nset).eq.8) then
88 call alphacteq5f34(4,alphas,Q)
92 entry GetQmassM(nset,nnf,mass)
95 if (n.eq.4) mass=cmass
96 if (n.eq.5) mass=bmass
97 if (n.eq.6) mass=tmass
100 entry GetNactive(naf,q)
101 c compute nnfn = number of active flavors at scale q.
103 if(q .ge. cmass) n = 4
104 if(q .ge. bmass) n = n + 1
105 if(q .ge. tmass) n = n + 1
109 entry GetAlfas(nset,alfas0,scale0)
112 if (Etype(nset).eq.2) call GetParmPDF(nset,parm(nset),alfas0)
115 entry GetOrderAsM(nset,order)
119 entry InitAlphasPDF(nset)
123 if (index(s2,'lo').eq.1) EvlOrd(nset)=0
124 if (index(s2,'nlo').eq.1) EvlOrd(nset)=1
125 if (index(s2,'nnlo').eq.1) EvlOrd(nset)=2
126 if (EvlOrd(nset).lt.0) then
127 write(*,*) 'File description error:'
128 write(*,*) 'Unknown alpha_s evolution order ',s2
131 if (index(s1,'Fixed').eq.1) then
134 read(1,*) alfasQ(nset),Q0(nset),cmass,bmass,tmass
136 if (index(s1,'Variable').eq.1) then
139 read(1,*) parm(nset),Q0(nset),cmass,bmass,tmass
141 if (Etype(nset).lt.0) then
142 write(*,*) 'File description error:'
143 write(*,*) 'Unknown alpha_s evolution method ',s1
147 if (index(s3,'Internal').eq.1) Method(nset)=0
148 if (index(s3,'EvolCode').eq.1) Method(nset)=1
149 if (index(s3,'MRSTalfa').eq.1) Method(nset)=2
150 if (index(s3,'CTEQalfa').eq.1) Method(nset)=3
151 if (index(s3,'CTEQABalfa').eq.1) Method(nset)=4
152 if (index(s3,'MRST3alfa').eq.1) Method(nset)=5
153 if (index(s3,'MRST4alfa').eq.1) Method(nset)=6
154 if (index(s3,'CTEQ5F3alfa').eq.1) Method(nset)=7
155 if (index(s3,'CTEQ5F4alfa').eq.1) Method(nset)=8
156 if (Method(nset).lt.0) then
157 write(*,*) 'File description error:'
158 write(*,*) 'Unknown alpha_s method ',s3
161 c print *,'alpha_s evolution method = ',method
165 subroutine alphamrs(nflav,alpha,Q)
166 IMPLICIT real*8 (a-h,o-z)
168 common/masses_LHA/cmass,bmass,tmass
176 c print *,'calling alphamrs with ',nflav,Q
182 c -- find alambda corresponding to alphas given in first parameter
183 call getnmem(nset,imem)
184 if(imem.ne.memold) then
185 call listPDF(nset,imem,parms)
196 alambda = alambda + idir*astep
197 call mrslambda(nflav,alpha,qz,alambda)
199 if(idir*(alphas-alpha).gt.0.0) then
207 if(abs(alpha-alphas).gt.tol2) go to 10
209 c - alambda found -- save it !!!!
210 c - next call mrslambda to get alphas at q with the correct alambda
211 call mrslambda(nflav,alpha,q,alambda)
215 subroutine rgras(alpha,Q2)
216 IMPLICIT real*8 (a-h,o-z)
218 include 'parmsetup.inc'
219 character*16 name(nmxset)
220 integer nmem(nmxset),ndef(nmxset),mem
221 common/NAME/name,nmem,ndef,mem
225 if(name(nset).eq.'QCDNUM_MRST3') nflav=3
226 if(name(nset).eq.'QCDNUM_MRST4') nflav=4
227 call alphamrs(nflav,alpha,Q)
231 * new vewrsion of mrslambda 13/5/2004 - includes lo, nlo, and nnlo with flags
233 subroutine mrslambda(nflav,alpha,Q,alambda)
234 IMPLICIT REAL*8(A-H,O-Z)
237 c The value of Lambda required corresponds to nflav=4
238 c iord=0 gives leading order, iord=1 gives NLO, iord=2 gives NNLO
239 qsdt=8.18 !! This is the value of 4m_c^2
240 qsct=74.0 !! This is the value of 4m_b^2
241 c print *,'calling mrslambda with ',nflav,Q,alambda
246 c next line to be replaced by a getiord in the final version
250 call GetOrderAsM(nset,iord)
258 if(nflav.eq.3) flav=3.
261 if(qs.lt.0.5d0) then !! running stops below 0.5
267 c if(QS.lt.QSDTT.and.nflav.eq.4) then
273 IF(QS.gt.QSCTT.and.nflav.gt.4) GO TO 12
274 IF(QS.lt.QSDTT.and.nflav.gt.3) GO TO 312
282 alpha=qwikalf(t,iord,flav)
287 AS2=X1/T*(1.-X2*dLOG(T)/T)
289 F=-T+X1/AS-X2*dLOG(X1/AS+X2)
290 FP=-X1/AS**2*(1.-X2/(X1/AS+X2))
293 IF((DEL-TOL).GT.0.) go to 5
313 ALFINV=1./ALFQS5+1./ALFQC4-1./ALFQC5
325 alpha=qwikalf(t,iord,flav)
330 AS2=X1/T*(1.-X2*dLOG(T)/T)
332 F=-T+X1/AS-X2*dLOG(X1/AS+X2)
333 FP=-X1/AS**2*(1.-X2/(X1/AS+X2))
336 IF((DEL-TOL).GT.0.) go to 35
342 GO TO (313,314,315) ITH
355 ALFINV=1./ALFQS3+1./ALFQC4-1./ALFQC3
362 double precision function qwikalf(t,iord,flav)
363 implicit real*8(a-h,o-z)
364 dimension z3(6),z4(6),z5(6),zz3(6),zz4(6),zz5(6)
365 data z3/ -.161667E+01,0.954244E+01,
366 .0.768623E+01,0.101523E+00,-.360127E-02,0.457867E-04/
367 data z4/ -.172239E+01,0.831185E+01,
368 .0.721463E+01,0.835531E-01,-.285436E-02,0.349129E-04/
369 data z5/ -.872190E+00,0.572816E+01,
370 .0.716119E+01,0.195884E-01,-.300199E-03,0.151741E-05/
371 data zz3/-.155611E+02,0.168406E+02,
372 .0.603014E+01,0.257682E+00,-.970217E-02,0.127628E-03/
373 data zz4/-.106762E+02,0.118497E+02,0.664964E+01,
374 .0.112996E+00,-.317551E-02,0.302434E-04/
375 data zz5/-.531860E+01,0.708503E+01,0.698352E+01,
376 .0.274170E-01,-.426894E-03,0.217591E-05/
387 3 y=z3(1)+z3(2)*x+z3(3)*x2+z3(4)*x3+z3(5)*x4+z3(6)*x5
389 4 y=z4(1)+z4(2)*x+z4(3)*x2+z4(4)*x3+z4(5)*x4+z4(6)*x5
391 5 y=z5(1)+z5(2)*x+z5(3)*x2+z5(4)*x3+z5(5)*x4+z5(6)*x5
394 6 y=zz3(1)+zz3(2)*x+zz3(3)*x2+zz3(4)*x3+zz3(5)*x4+zz3(6)*x5
396 7 y=zz4(1)+zz4(2)*x+zz4(3)*x2+zz4(4)*x3+zz4(5)*x4+zz4(6)*x5
398 8 y=zz5(1)+zz5(2)*x+zz5(3)*x2+zz5(4)*x3+zz5(5)*x4+zz5(6)*x5
403 c=====================================================================
404 c next is alphas routine from PDFLIB
406 c DOUBLE PRECISION FUNCTION ALPHAS2(SCALE,qcdl5)
407 subroutine aspdflib(alphas2,SCALE,iord,qcdl5)
408 implicit real*8 (a-h,o-z)
411 c CHARACTER*20 PARM(NCHDIM)
414 c DATA XMC/1.5D0/,XMB/4.75D0/,XMT/100.D0/
415 DATA XMC/1.43D0/,XMB/4.30D0/,XMT/100.D0/
416 DATA ZEROD/0.D0/,PONED/0.001D0/,ONED/1.D0/,TWOD/2.D0/
424 c print *,'Calculating ALPHA_S at Leading Order',LO
426 c print *,'Calculating ALPHA_S at Next to Leading Order',LO
435 B6 = (33.D0-2.D0*6.D0)/PI/12.D0
436 BP6 = (153.D0 - 19.D0*6.D0) / PI / TWOD / (33.D0 - 2.D0*6.D0)
437 B5 = (33.D0-2.D0*5.D0)/PI/12.D0
438 BP5 = (153.D0 - 19.D0*5.D0) / PI / TWOD / (33.D0 - 2.D0*5.D0)
439 B4 = (33.D0-2.D0*4.D0)/PI/12.D0
440 BP4 = (153.D0 - 19.D0*4.D0) / PI / TWOD / (33.D0 - 2.D0*4.D0)
441 B3 = (33.D0-2.D0*3.D0)/PI/12.D0
442 BP3 = (153.D0 - 19.D0*3.D0) / PI / TWOD / (33.D0 - 2.D0*3.D0)
443 XLC = TWOD * LOG( XMC/QCDL5)
444 XLB = TWOD * LOG( XMB/QCDL5)
445 XLT = TWOD * LOG( XMT/QCDL5 * TMAS/XMT)
449 C65 = ONED/( ONED/(B5 * XLT) - XLLT*BP5/(B5 * XLT)**2 )
450 + - ONED/( ONED/(B6 * XLT) - XLLT*BP6/(B6 * XLT)**2 )
451 C45 = ONED/( ONED/(B5 * XLB) - XLLB*BP5/(B5 * XLB)**2 )
452 + - ONED/( ONED/(B4 * XLB) - XLLB*BP4/(B4 * XLB)**2 )
453 C35 = ONED/( ONED/(B4 * XLC) - XLLC*BP4/(B4 * XLC)**2 )
454 + - ONED/( ONED/(B3 * XLC) - XLLC*BP3/(B3 * XLC)**2 ) + C45
457 XLQ = TWOD * LOG( Q/QCDL5 )
460 c IF ( NF .LT. ZEROD) THEN
461 IF ( Q .GT. XMT * TMAS/XMT) THEN
463 ELSEIF ( Q .GT. XMB ) THEN
465 ELSEIF ( Q .GT. XMC ) THEN
472 IF(NF .GT. 6.D0) NF = 6.D0
473 IF ( NF .EQ. 6.D0 ) THEN
474 ALF = ONED/(ONED/(ONED/(B6*XLQ)- BP6/(B6*XLQ)**2*XLLQ) + C65)
475 IF (LO.EQ.1) ALF = ONED/B6/XLQ
476 ELSEIF ( NF .EQ. 5.D0 ) THEN
477 ALF = ONED/(B5 * XLQ) - BP5/(B5 * XLQ)**2 * XLLQ
478 IF (LO.EQ.1) ALF = ONED/B5/XLQ
479 ELSEIF ( NF .EQ. 4.D0 ) THEN
480 ALF = ONED/(ONED/(ONED/(B4*XLQ)- BP4/(B4*XLQ)**2*XLLQ) + C45)
481 IF (LO.EQ.1) ALF = ONED/B4/XLQ
482 ELSEIF ( NF .EQ. 3.D0 ) THEN
483 ALF = ONED/(ONED/(ONED/(B3*XLQ)- BP3/(B3*XLQ)**2*XLLQ) + C35)
484 IF (LO.EQ.1) ALF = ONED/B3/XLQ
486 WRITE(*,*)'Error in Alphas2'
492 c ========================================================================
493 SUBROUTINE CtLhAlphaNewSET(MC,MB,MT,Q0,ALPHA0,IORDER,IMODE)
494 c call to set quark masses for alpha_s, and choose lambda or its
495 c equivalent to make alpha_s take the value alpha0 at scale Q0.
498 DOUBLE PRECISION MC, MB, MT, Q0, ALPHA0
499 INTEGER IORDER, IMODE
501 DOUBLE PRECISION UDSCBT, QQ0, AALPHA0
502 INTEGER IIORDER, IIMODE
503 COMMON /QMASSES/ UDSCBT(6), IIMODE, IIORDER
504 COMMON /ALSCALE/ QQ0, AALPHA0
506 double precision Adummy
508 common / QCDtable / Adummy, Nfl, Idummy
510 if((imode .lt. 1) .or. (imode .gt. 3)) then
511 print *,'CtLhAlphaNewSET: fatal imode=',imode
527 c set artificial quark masses, if necessary, in alpha_s to enforce
528 c the requested maximum number of flavors...
529 if(Nfl .le. 5) UDSCBT(6) = 6.d99
530 if(Nfl .le. 4) UDSCBT(5) = 5.d99
531 if(Nfl .le. 3) UDSCBT(4) = 4.d99
532 if(Nfl .le. 2) UDSCBT(3) = 3.d99
533 if(Nfl .le. 1) UDSCBT(2) = 2.d99
534 if(Nfl .le. 0) UDSCBT(1) = 1.d99
536 c print *,'CtLhAlphaNewSET: imode=',imode,' Nfl=',Nfl !*** temporary ***
537 c print *,'CtLhAlphaNewSET: mc,mb,mt=', mc, mb, mt !*** temporary ***
538 c print *,'CtLhAlphaNewSET: Q0, alpha0=',Q0, alpha0 !*** temporary ***
544 FUNCTION CtLhAlphaNew(Q)
546 DOUBLE PRECISION CtLhAlphaNew, Q
548 DOUBLE PRECISION Q2, CtLhQALPHAS, UDSCBT
551 INTEGER IIMODE, IIORDER
552 COMMON /QMASSES/ UDSCBT(6), IIMODE, IIORDER
554 if((iimode .ge. 1) .and. (iimode .le. 3)) then
557 if (Q2.lt. UDSCBT(6)**2) nf=5
558 if (Q2.lt. UDSCBT(5)**2) nf=4
559 if (Q2.lt. UDSCBT(4)**2) nf=3
560 if (Q2.lt. UDSCBT(3)**2) nf=2
561 if (Q2.lt. UDSCBT(2)**2) nf=1
562 if (Q2.lt. UDSCBT(1)**2) nf=0
564 c external maximum number of flavors -- typically, nfmax=5 so
565 c top quark is not a parton even at large Q...
567 CtLhAlphaNew=CtLhQALPHAS(Q2,nf,ier)
569 print *,'warning in CtLhAlphaNew, Q=',Q,' nf=',nf,
570 & ' ier=',ier,' CtLhAlphaNew=',CtLhAlphaNew
574 print *,'CtLhAlphaNew: undefined mode=',iimode
582 FUNCTION CtLhQALPHAS(QQ2,NF,IERR)
583 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
585 COMMON /ALSCALE/ Q0, ALPHA0
586 COMMON /QMASSES/ UDSCBT(6), IIMODE, IIORDER
593 CtLhQALPHAS = CtLhA0TOA1(QQ2,Q02,ALP0,IOR,NFFF,IERR)
598 FUNCTION CtLhA0TOA1(QSU,QS0,AS0,IORD,NFF,IERR)
599 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
601 COMMON /QMASSES/ UDSCBT(6), IIMODE, IIORDER
609 IF(QMU0.GE.UDSCBT(I)) NF0 = I
610 IF(QMU1.GE.UDSCBT(I)) NF1 = I
625 DO 50 NF = NF0,NF1,IST
628 Q21 = UDSCBT(NF+JST)**2
633 ALFA1 = CtLhALPHAR(Q21,Q00,ALFA0,NF,IORD,IMODE,JERR)
634 IERR = IERR + JERR !IERR is sum of all errors
646 FUNCTION CtLhALPHAR(QSQ,QS0,AS0,NF,IORD,IMODE,IERR)
647 C calculate ALPHAS FROM RGE GIVEN AS0 AT QS0.
649 C IORD=1: LEADING ORDER DEFINED BY
650 C Q*d(alpha)/d(Q) = c1*alpha**2
652 C IORD=2,IMODE=1: QCD NUM CHOICE DEFINED BY
653 C Q*d(alpha)/d(Q) = c1*alpha**2 + c2*alpha**3
655 C IORD=2,IMODE=2: AD HOC ALTERNATIVE DEFINED BY
656 C Q*d(alpha)/d(Q) = c1*alpha**2 / (1 - (c2/c1)*alpha)
658 C IORD=2,IMODE=3: TRADITIONAL CTEQ CHOICE DEFINED BY
659 C ALPHA = c3*(1 - c4*log(L)/L)/L, WHERE L=log((Q/lambda)**2)
661 C c1 = -beta0/(2*pi) where beta0 = 11. - (2./3.)*nf
662 C c2 = -beta1/(8*pi**2) where beta1 = 102. - (38./3.)*nf
668 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
671 DATA PI / 3.14159265358979d0 /
673 BET0 = 11.d0 -(2*NF)/3.d0
674 BET1 = 102.d0 - (38*NF)/3.d0
676 B1 = BET1/(4.d0*PI*BET0)
679 TERM0 = 1.d0/AS0+B0*LOG(QSQ/QS0)
683 PRINT *,'CtLhALPHAR WARNING: RETURN 100.'
688 C ORDER=1 IS LEADING ORDER, WHICH IS SAME FOR ALL IMODE.
692 ELSEIF(IORD.NE.2) THEN
693 PRINT *,'FATAL ERROR: UNDEFINED ORDER IN CtLhALPHAR'
698 C QCD NUM CHOICE: Q*d(alpha)/d(Q) = c1*alpha**2 + c2*alpha**3
699 IF(IMODE .EQ. 1) THEN
701 c use Newton's method to solve the equation, instead of the
702 c simple iterative method used in qcdnum (jcp 9/01)
704 ARG = (1.d0/ALFA0+B1)/(1.d0/AS0+B1)
708 PRINT *,'CtLhALPHAR WARNING: RETURN 10.'
712 TERM = TERM0 + B1*LOG(ARG) - 1.d0/ALFA0
713 ALFA1 = ALFA0/(1.d0 + ALFA0*(1.d0 + B1*ALFA0)*TERM)
715 IF(ABS(ALFA1-ALFA0).LT.1.E-12) GOTO 20
727 C AD HOC ALTERNATIVE: Q*d(alpha)/d(Q) = c1*alpha**2 / (1 - (c2/c1)*alpha)
728 ELSEIF(IMODE .EQ. 2) THEN
730 c first get a good starting point, to be sure Newton's method doesn't go
734 IF(ITRY.NE.0) ALFA0 = (1./B1)*(ITRY-0.5D0)/20.D0
735 F = -1.d0/ALFA0 + TERM0 - B1*LOG(ALFA0/AS0)
736 IF(ABS(F) .LT. BEST) THEN
744 F = -1.d0/ALFA0 + TERM0 - B1*LOG(ALFA0/AS0)
745 ALFA1 = ALFA0/(1.d0 + ALFA0*F/(1.d0 - B1*ALFA0))
746 IF(ABS(ALFA1-ALFA0) .LT. 1.E-12) GOTO 30
758 C TRADITIONAL CTEQ CHOICE: ALPHA = c3*(1 - c4*log(L)/L)/L, WHERE L=log((Q/lambda)**2)
759 ELSEIF(IMODE .EQ. 3) THEN
765 F = EXP(Z) - (1.D0 - TMP*Z*EXP(-Z))/(B0*AS0)
766 FPRI = EXP(Z) + TMP*(1.D0-Z)*EXP(-Z)/(B0*AS0)
768 IF(ABS(Z-ZNEW) .LT. 1.E-10) GOTO 40
777 XLAMSQ = QS0 * EXP(-EXP(ZNEW))
780 c return a fixed value if no solution...
781 IF(XL .LE. 0.D0) THEN
787 CtLhALPHAR = (1.d0 - TMP*LOG(XL)/XL)/(B0*XL)
789 c place a cutoff if comes out very large...
790 if(CtLhALPHAR .gt. 10.d0) then
798 PRINT *,'FATAL UNDEFINED IMODE=',IMODE
805 FUNCTION CtLhALPInew (AMU)
806 C Returns effective g**2/(4pi**2) = alpha/pi.
807 IMPLICIT DOUBLE PRECISION (A-H, O-Z)
808 data pi / 3.14159265358979d0 /
811 alpha = CtLhAlphaNew(q)
812 CtLhalpinew = alpha/pi
817 subroutine CTEQ6NewAlpha(nset,mem)
818 IMPLICIT DOUBLE PRECISION (A-H, O-Z)
819 common / QCDtable / Alambda, Nfl, Iorder
823 c call GetLam4M(nset,mem,alpha0)
824 c call GetLam5M(nset,mem,ximode)
825 call listPDF(nset,mem,parms)
831 c **********************************************************
832 c the input data file should probably specify a very large
833 c value for xmt, because we never allow top quark as a parton
834 c in the PDF fitting, so there are never more than 5 active
835 c flavors. Presume it is most consistent therefore to
836 c also keep top quark loop out of running of alpha.
837 c **********************************************************
839 call GetQmass(4,cmass)
840 call GetQmass(5,bmass)
841 call GetQmass(6,tmass)
842 c write(6,*) 'CTEQ6NewAlpha: mc, mb, mt=',
843 c & cmass, bmass, tmass
844 call CtLhAlphaNewSET(XMC,XMB,XMT,Q0,ALPHA0,IIORDER,IMODE)
848 c=================================================
849 subroutine getnset(nset)
853 c print *,'getting nset:',nset
858 c print *,'setting nset:',nset
861 c=================================================
862 subroutine getnmem(nset,nmem)
863 include 'parmsetup.inc'
864 integer nmem,nset,member(nmxset)
869 entry setnmem(nset,nmem)
873 c=================================================
874 subroutine alphacteq5f34(nflav,alphas,q)
875 IMPLICIT DOUBLE PRECISION (A-H, O-Z)
876 parameter(pi=3.14159265358979323846d0)
878 alphas = pi*CtLhALPI34(nflav,q)
881 c===============================================
882 FUNCTION CtLhALPI34 (nflav,AMU)
883 IMPLICIT DOUBLE PRECISION (A-H, O-Z)
884 COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ
885 COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET
887 PARAMETER (D0 = 0.D0, D1 = 1.D0, BIG = 1.0D15)
888 DATA IW1, IW2 / 2*0 /
889 IF(.NOT.SET) CALL CtLhLAMCWZ
892 if(neff.gt.nflav) neff=nflav
895 if(neff.eq.3) alm = 0.395
896 if(neff.eq.4) alm = 0.309
897 CtLhALPI34 = CtLhALPQCD (NORDER, NEFF, AMU/ALM, IRT)
899 CALL CtLhWARNR (IW1, 'AMU < ALAM in CtLhALPI34', 'AMU', AMU,
901 ELSEIF (IRT .EQ. 2) THEN
902 CALL CtLhWARNR(IW2,'CtLhALPI34 > 3; Be aware!','CtLhALPI34',
903 > CtLhALPI34, D0, D1, 0)