C...Interface to PDFLIB.
COMMON/W50511/NPTYPE,NGROUP,NSET,MODE,NFL,LO,TMAS
- COMMON/W50512/QCDL4,QCDL5
- SAVE /W50511/,/W50512/
+ COMMON/LW50512/QCDL4,QCDL5
+ SAVE /W50511/,/LW50512/
DOUBLE PRECISION VALUE(20),TMAS,QCDL4,QCDL5
CHARACTER*20 PARM(20)
DATA VALUE/20*0D0/,PARM/20*' '/
DO 850 I=IC1+1,IC2-1
IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
& KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
- FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
+ IF (ABS(FOUR(IC1,I)+FOUR(IC2,I)).GT.0.D0) THEN
+ FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
+ ELSE
+ FRAC1 = 1.D0
+ ENDIF
DO 840 J=1,4
P(N+2,J)=P(N+2,J)+FRAC1*P(I,J)
840 CONTINUE
ALPHA=1D0
BETA=1D0
ELSE
- ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
- BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
+ IF (ABS(FOUR(I1,I2)).GT.0.D0) THEN
+ ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
+ BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
+ ELSE
+ ALPHA=1D0
+ BETA=1D0
+ ENDIF
ENDIF
DO 1030 J=1,4
PG(J)=ALPHA*P(I1,J)+BETA*P(I2,J)
RETURN
END
-C*********************************************************************
-
-C*********************************************************************
-C... ALICE INTERFACE TO PDFLIB WITH POSSIBILITY TO SELECT NUCLEAR STRUCTURE
-C... FUNCTIONS.
+
+C... ALICE interface to PDFLIB with possibility to select nuclear structure
+C... functions.
C...
-C... THE MSTP ARRAY IN THE PYPARS COMMON BLOCK IS USED TO ENABLE AND
-C... SELECT THE NUCLEAR STRUCTURE FUNCTIONS.
-C... MSTP(52) : (D=1) CHOICE OF PROTON AND NUCLEAR STRUCTURE-FUNCTION LIBRARY
-C... =1: INTERNAL PYTHIA ACORDING TO MSTP(51)
-C... =2: PDFLIB PROTON S.F., WITH MSTP(51) = 1000XNGROUP+NSET
-C... MSTP( 51) = 1000XNPGROUP+NPSET
-C... MSTP(151) = 1000XNAGROUP+NASET
-C... MSTP(192) : MASS NUMBER OF NUCLEUS SIDE 1
-C... MSTP(193) : MASS NUMBER OF NUCLEUS SIDE 2
+C... The MSTP array in the PYPARS common block is used to enable and
+C... select the nuclear structure functions.
+C... MSTP(52) : (D=1) choice of proton and nuclear structure-function library
+C... =1: internal PYTHIA acording to MSTP(51)
+C... =2: PDFLIB proton s.f., with MSTP(51) = 1000xNGROUP+NSET
+C... MSTP( 51) = 1000xNPGROUP+NPSET
+C... MSTP(151) = 1000xNAGROUP+NASET
+C... MSTP(192) : Mass number of nucleus side 1
+C... MSTP(193) : Mass number of nucleus side 2
C...
C...
-C... MINT(124) : SIDE (1 OR 2)
+C... MINT(124) : side (1 or 2)
SUBROUTINE PDFSET_ALICE(PARM, VALUE)
C...
IMPLICIT DOUBLE PRECISION(A-H, O-Z)
IMPLICIT INTEGER(I-N)
-C...INTERFACE TO PDFLIB.
+C...Interface to PDFLIB.
COMMON/LW50512/QCDL4,QCDL5
SAVE /LW50512/
DOUBLE PRECISION QCDL4,QCDL5
COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
DOUBLE PRECISION VALUE(20)
CHARACTER*20 PARM(20)
- WRITE(6,*) MSTP(52)
- WRITE(6,*) PARM
- WRITE(6,*) VALUE
+ write(6,*) MSTP(52)
+ write(6,*) PARM
+ write(6,*) VALUE
IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN
PARM(5)='NATYPE'
CALL SETLHAPARM("EPS08")
ENDIF
ELSE
- WRITE(6,*) "-> PDFSET"
+ write(6,*) "-> pdfset"
CALL PDFSET(PARM,VALUE,
> MSTU(11),MSTP(51),MSTP(53),MSTP(55),
> QCDL4,QCDL5,
> XMIN,XMAX,Q2MIN,Q2MAX)
ENDIF
- WRITE(6,*) "DONE"
+ write(6,*) "done"
END
IMPLICIT INTEGER(I-N)
COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
COMMON/PYINT1/MINT(400),VINT(400)
- WRITE(6,*) "STRUCTM_ALICE->"
+C write(6,*) "structm_alice->"
IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN
A=MSTP(191+MINT(124))
- WRITE(6,*) MINT(124), "-> STRUCTA ", A
+C write(6,*) mint(124), "-> structa ", A
CALL STRUCTA(XX,QQ,A,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
ELSE
- WRITE(6,*) MINT(124), "-> STRUCTM "
+C write(6,*) mint(124), "-> structm "
CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
ENDIF
END
+
C*********************************************************************