This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PDF / tpdf / testpdg.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.2  1996/10/30 08:32:54  cernlib
6 * Version 7.04
7 *
8 * Revision 1.1.1.1  1996/04/12 15:30:17  plothow
9 * Version 7.01
10 *
11 *
12 #include "pdf/pilot.h"
13       PROGRAM TESTPDG
14 C
15       PARAMETER (LFLPRT = 2)
16 #include "pdf/w5051p2.inc"
17 #include "pdf/w5051p7.inc"
18 #include "pdf/w50510.inc"
19 #include "pdf/w50511.inc"
20 #include "pdf/w50512.inc"
21 #include "pdf/w50515.inc"
22 #include "pdf/w50516.inc"
23 #include "pdf/w50517.inc"
24 #include "pdf/w505110.inc"
25 #include "pdf/w505120.inc"
26 #include "pdf/w505122.inc"
27 C
28 #include "pdf/expdp.inc"
29      +       DX,DQ,DXPDF(-6:6),
30      +       ALF,ALPHAS2
31       REAL    X, Q, UPV, DNV, USEA, DSEA, SSEA, CSEA, BOT, TOP, GLUE
32       DIMENSION XX(3),Q2(3)
33       CHARACTER*20 PARM(NCHDIM)
34 #include "pdf/expdp.inc"
35      +       VAL(NCHDIM)
36 C
37       DATA NXX,XX/3, .002,.140,.700/
38       DATA NQ2,Q2/3, 1.30,24.0,33.5/
39 C
40       N6 = L6
41       IFLPRT = LFLPRT
42 C
43       CH1=4./9.
44       CH2=1./9.
45 C
46       SCAL=SQRT(Q2(2))
47 C
48 C First call to PDFSET to initialize COMMON/W505120/
49       PARM(1) = 'Init0'
50       VAL(1)  = 0.D0
51       CALL PDFSET(PARM,VAL)
52 C.
53 C Test new PDFLIB versions (4.0 or bigger)
54       DO KPTY = 1,NPTYMX
55          DO KGRO = 1,NGRMAX
56             IF(NPGSMX(KPTY,KGRO) .EQ. 0) GOTO 400
57             DO ISET=-9,NPGSMX(KPTY,KGRO)
58                IF((KPTY*KGRO).NE.1 .AND. ISET.LE.0) GOTO 300
59                WRITE (N6,*) ' ==========================================
60      +================================================================='
61                FIRST=.TRUE.
62                IF(ISET.LE.-8) IFLSET = 0
63                IF(ISET.LT.0) GOTO 50
64                PARM(1) = 'Nptype'
65                VAL(1)  = KPTY
66                PARM(2) = 'Ngroup'
67                VAL(2)  = KGRO
68                PARM(3) = 'Nset'
69                VAL(3)  = ISET
70 C... test different NSET writings
71                IF(ISET.GT. 5) PARM(3) = 'NSET'
72                IF(ISET.GT.10) PARM(3) = 'nset'
73                IF(ISET.GT.15) PARM(3) = 'NSet'
74                IF(ISET.GT.20) PARM(3) = 'nsET'
75 C
76 C... test different NSET writings and INVALID parameter settings
77    50          CONTINUE
78                IF(ISET.GE.0) THEN
79                   CALL PDFSET(PARM,VAL)
80                ELSEIF (ISET.EQ.-9) THEN
81                   GOTO 100
82                ELSEIF (ISET.EQ.-8) THEN
83                   PARM(1) = 'dflm'
84                   VAL(1) = 8.D0
85                   CALL PDFSET(PARM,VAL)
86                ELSEIF (ISET.EQ.-7) THEN
87                   PARM(1) = 'GRV'
88                   VAL(1) = 3.D0
89                   CALL PDFSET(PARM,VAL)
90                ELSEIF (ISET.EQ.-6) THEN
91                   PARM(1) = 'abfkw'
92                   VAL(1) = 1.D0
93                   CALL PDFSET(PARM,VAL)
94                ELSEIF (ISET.EQ.-5) THEN
95                   PARM(1) = 'GRVph'
96                   VAL(1) = 2.D0
97                   CALL PDFSET(PARM,VAL)
98                ELSEIF (ISET.EQ.-4) THEN
99                   PARM(1) = 'Nptype'
100                   VAL(1)  = -1
101                   PARM(2) = 'Ngroup'
102                   VAL(2)  = KGRO
103                   PARM(3) = 'Nset'
104                   VAL(3)  = ISET
105                   CALL PDFSET(PARM,VAL)
106                ELSEIF (ISET.EQ.-3) THEN
107                   PARM(1) = 'Nptype'
108                   VAL(1)  = -1
109                   PARM(2) = 'Ngroup'
110                   VAL(2)  = KGRO
111                   PARM(3) = 'Nset'
112                   VAL(3)  =  0
113                   CALL PDFSET(PARM,VAL)
114                ELSEIF (ISET.EQ.-2) THEN
115                   PARM(1) = 'Nptype'
116                   VAL(1)  = KPTY
117                   PARM(2) = 'Ngroup'
118                   VAL(2)  = -1
119                   PARM(3) = 'Nset'
120                   VAL(3)  = ISET
121                   CALL PDFSET(PARM,VAL)
122                ELSEIF (ISET.EQ.-1) THEN
123                   PARM(1) = 'Nptype'
124                   VAL(1)  = KPTY
125                   PARM(2) = 'Ngroup'
126                   VAL(2)  = KGRO
127                   PARM(3) = 'Nset'
128                   VAL(3)  = 80
129                   CALL PDFSET(PARM,VAL)
130                ENDIF
131 C
132                DQ = SCAL
133                ALF = ALPHAS2(DQ)
134                WRITE(N6,4000) NPTYPE,NGROUP,NSET,
135      +         SFNAME(NPTYPE,NGROUP,NSET),MODECR(NPTYPE,NGROUP,NSET)
136                WRITE(N6,4001) QCDL4,QCDL5,DQ,ALF
137  4000          FORMAT(/,'  Nptype = ',I1,'  Ngroup = ',I1,
138      +                  '  Nset = ',I2,'  Name  = "',A8,
139      +                  '"  CrMode = ',I3)
140  4001          FORMAT(1H ,' QCDL4, QCDL5 = ',2F7.4,
141      +                    '    Scale = ',F8.4,'  alpha(s) = ',F7.5)
142 C
143   100          CONTINUE
144                DO 200 IX=1,NXX
145                X=XX(IX)
146                Q=SQRT(Q2(IX))
147                  DX=X
148                  DQ=Q
149                  CALL PFTOPDG(DX,DQ,DXPDF)
150                  DNV=DXPDF(1)
151                  UPV=DXPDF(2)
152                  DSEA=DXPDF(-1)
153                  USEA=DXPDF(-2)
154                  SSEA=DXPDF(3)
155                  CSEA=DXPDF(4)
156                  GLUE=DXPDF(0)
157 C
158                FFPU = UPV
159                FFPUB = USEA
160                FFPD = DNV
161                FFPDB = DSEA
162                FFPS = SSEA
163                FFPSB = SSEA
164                FFPC = CSEA
165                FFPCB = CSEA
166                FFNU = FFPD
167                FFNUB = FFPDB
168                FFND = FFPU
169                FFNDB = FFPUB
170                FFNS = FFPS
171                FFNSB = FFPSB
172                FFNC = FFPC
173                FFNCB = FFPCB
174                FFPGL = GLUE
175             SFFP=CH1*(FFPU+FFPUB+FFPC+FFPCB)+CH2*(FFPD+FFPDB+FFPS+FFPSB)
176             SFFN=CH1*(FFNU+FFNUB+FFNC+FFNCB)+CH2*(FFND+FFNDB+FFNS+FFNSB)
177                FACNP = 0.
178                IF (SFFP .NE. 0.) FACNP=SFFN/SFFP
179                UP = FFPU
180                UV = FFPU - FFPUB
181                US = FFPUB
182                DP = FFPD
183                DV = FFPD - FFPDB
184                DS = FFPDB
185                GL = FFPGL
186                F2P = SFFP
187 C
188                WRITE(N6,3000)X,Q2(IX),FACNP,UP,UV,US,DP,DV,GL,F2P
189  3000          FORMAT(1X,' X:',F6.3,2X,'Q2:',F5.1,
190      1         3X,'N/P:',F7.4,2X,'UP:',F6.3,
191      1         1X,'UV:',F6.3,1X,'US:',F6.3,1X,'DP:',F6.3,1X,'DV:',F6.3,
192      2         1X,'GL:',F6.3,2X,'F2P:',F7.4)
193 C
194  200           CONTINUE
195 C
196                IF(ISET.EQ.-9) THEN
197                   DQ = SCAL
198                   ALF = ALPHAS2(DQ)
199                   WRITE(N6,4000) NPTYPE,NGROUP,NSET,
200      +            SFNAME(NPTYPE,NGROUP,NSET),MODECR(NPTYPE,NGROUP,NSET)
201                   WRITE(N6,4001) QCDL4,QCDL5,DQ,ALF
202                ENDIF
203                CALL PDFSTA
204 C
205  300           CONTINUE
206              ENDDO
207  400         CONTINUE
208           ENDDO
209        ENDDO
210 C
211       STOP
212       END