~maddevelopers/mg5amcnlo/WWW_tg

« back to all changes in this revision

Viewing changes to users/mardelcourt/PROC_129738/PROC_129738/Source/PDF/mrs98ht.f

  • Committer: John Doe
  • Date: 2013-03-25 20:27:02 UTC
  • Revision ID: john.doe@gmail.com-20130325202702-5sk3t1r8h33ca4p4
first clean version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine mrs98ht(x,q,mode,upv,dnv,usea,dsea,str,chm,bot,glu)
 
2
C****************************************************************C
 
3
C                                                                C
 
4
C     This is a package for the MRS 1998 parton distributions    C
 
5
C     including hogher twist. The format is similar to the       C 
 
6
C     previous  (1996) MRS-R series.                             C
 
7
C                                                                C
 
8
C     As before, x times the parton distribution is returned,    C
 
9
C     q is the scale in GeV, MSbar factorization is assumed,     C
 
10
C     and Lambda(MSbar,nf=4) is given below for each set.        C
 
11
C                                                                C
 
12
C     TEMPORARY NAMING SCHEME:                                   C
 
13
C                                                                C
 
14
C  mode  set    comment             L(4)/MeV  a_s(M_Z)  grid#1   C
 
15
C  ----  ---    -------             --------  -------   ------   C
 
16
C                                                                C
 
17
C  1     HT11A  central gluon, a_s    292.5    0.1170   0.00536  C
 
18
C                                                                C
 
19
C      The corresponding grid file are called ht118a.dat etc.    C
 
20
C                                                                C
 
21
C      The reference is:                                         C
 
22
C      A.D. Martin, R.G. Roberts, W.J. Stirling, R.S Thorne      C
 
23
C      Univ. Durham preprint DTP/98/52, hep-ph/??????? (1998)    C
 
24
C                                                                C
 
25
C      Comments to : W.J.Stirling@durham.ac.uk                   C
 
26
C                                                                C
 
27
C                                                                C
 
28
C****************************************************************C
 
29
      implicit real*8(a-h,o-z)
 
30
      data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
 
31
      q2=q*q
 
32
      if(q2.lt.qsqmin.or.q2.gt.qsqmax) print 99
 
33
      if(x.lt.xmin.or.x.gt.xmax)       print 98
 
34
          if(mode.eq.1) then
 
35
        call mrs981ht(x,q2,upv,dnv,usea,dsea,str,chm,bot,glu) 
 
36
      endif 
 
37
  99  format('  WARNING:  Q^2 VALUE IS OUT OF RANGE   ')
 
38
  98  format('  WARNING:   X  VALUE IS OUT OF RANGE   ')
 
39
      return
 
40
      end
 
41
 
 
42
      subroutine mrs981ht(x,qsq,upv,dnv,usea,dsea,str,chm,bot,glu)
 
43
      implicit real*8(a-h,o-z)
 
44
c-fabio
 
45
      Character Tablefile*40
 
46
      data Tablefile/'ht11b.dat'/
 
47
      integer IU
 
48
      common/IU/IU  !this is set in opendata.f
 
49
c
 
50
      parameter(nx=49,nq=37,ntenth=23,np=8)
 
51
      real*8 f(np,nx,nq+1),qq(nq),xx(nx),g(np),n0(np)
 
52
      data xx/1d-5,2d-5,4d-5,6d-5,8d-5,
 
53
     .        1d-4,2d-4,4d-4,6d-4,8d-4,
 
54
     .        1d-3,2d-3,4d-3,6d-3,8d-3,
 
55
     .        1d-2,1.4d-2,2d-2,3d-2,4d-2,6d-2,8d-2,
 
56
     .     .1d0,.125d0,.15d0,.175d0,.2d0,.225d0,.25d0,.275d0,
 
57
     .     .3d0,.325d0,.35d0,.375d0,.4d0,.425d0,.45d0,.475d0,
 
58
     .     .5d0,.525d0,.55d0,.575d0,.6d0,.65d0,.7d0,.75d0,
 
59
     .     .8d0,.9d0,1d0/
 
60
      data qq/1.25d0,1.5d0,2d0,2.5d0,3.2d0,4d0,5d0,6.4d0,8d0,1d1,
 
61
     .        1.2d1,1.8d1,2.6d1,4d1,6.4d1,1d2,
 
62
     .        1.6d2,2.4d2,4d2,6.4d2,1d3,1.8d3,3.2d3,5.6d3,1d4,
 
63
     .        1.8d4,3.2d4,5.6d4,1d5,1.8d5,3.2d5,5.6d5,1d6,
 
64
     .        1.8d6,3.2d6,5.6d6,1d7/
 
65
      data xmin,xmax,qsqmin,qsqmax/1d-5,1d0,1.25d0,1d7/
 
66
      data n0/3,4,5,9,9,9,9,9/
 
67
      data init/0/
 
68
      save
 
69
      xsave=x
 
70
      q2save=qsq
 
71
      if(init.ne.0) goto 10
 
72
c        open(unit=1,file='ft08a.dat',status='old')
 
73
c        open(unit=1,file='Pdfdata/ht11b.dat',status='old')
 
74
        call OpenData(Tablefile)
 
75
        do 20 n=1,nx-1
 
76
        do 20 m=1,nq
 
77
        read(IU,50)f(1,n,m),f(2,n,m),f(3,n,m),f(4,n,m),
 
78
     .            f(5,n,m),f(7,n,m),f(6,n,m),f(8,n,m)
 
79
c notation: 1=uval 2=val 3=glue 4=usea 5=chm 6=str 7=btm 8=dsea
 
80
        do 25 i=1,np
 
81
  25     f(i,n,m)=f(i,n,m)/(1d0-xx(n))**n0(i)
 
82
  20  continue
 
83
      do 31 j=1,ntenth-1
 
84
      xx(j)=dlog10(xx(j)/xx(ntenth))+xx(ntenth)
 
85
      do 31 i=1,8
 
86
      if(i.eq.5.or.i.eq.7) goto 31
 
87
      do 30 k=1,nq
 
88
  30  f(i,j,k)=dlog10(f(i,j,k)/f(i,ntenth,k))+f(i,ntenth,k)
 
89
  31  continue
 
90
  50  format(8f10.5)
 
91
      do 40 i=1,np
 
92
      do 40 m=1,nq
 
93
  40  f(i,nx,m)=0d0
 
94
      init=1
 
95
  10  continue
 
96
      if(x.lt.xmin) x=xmin
 
97
      if(x.gt.xmax) x=xmax
 
98
      if(qsq.lt.qsqmin) qsq=qsqmin
 
99
      if(qsq.gt.qsqmax) qsq=qsqmax
 
100
      xxx=x
 
101
      if(x.lt.xx(ntenth)) xxx=dlog10(x/xx(ntenth))+xx(ntenth)
 
102
      n=0
 
103
  70  n=n+1
 
104
      if(xxx.gt.xx(n+1)) goto 70
 
105
      a=(xxx-xx(n))/(xx(n+1)-xx(n))
 
106
      m=0
 
107
  80  m=m+1
 
108
      if(qsq.gt.qq(m+1)) goto 80
 
109
      b=(qsq-qq(m))/(qq(m+1)-qq(m))
 
110
      do 60 i=1,np
 
111
      g(i)= (1d0-a)*(1d0-b)*f(i,n,m)   + (1d0-a)*b*f(i,n,m+1)
 
112
     .    +       a*(1d0-b)*f(i,n+1,m) +       a*b*f(i,n+1,m+1)
 
113
      if(n.ge.ntenth) goto 65
 
114
      if(i.eq.5.or.i.eq.7) goto 65
 
115
          fac=(1d0-b)*f(i,ntenth,m)+b*f(i,ntenth,m+1)
 
116
          g(i)=fac*10d0**(g(i)-fac)
 
117
  65  continue
 
118
      g(i)=g(i)*(1d0-x)**n0(i)
 
119
  60  continue
 
120
      upv=g(1)
 
121
      dnv=g(2)
 
122
      usea=g(4)
 
123
      dsea=g(8)
 
124
      str=g(6)
 
125
      chm=g(5)
 
126
      glu=g(3) 
 
127
      bot=g(7)
 
128
        x=xsave
 
129
        qsq=q2save
 
130
      return
 
131
      end
 
132
      
 
133