Changes needed to avoid fpe.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Apr 2011 13:51:44 +0000 (13:51 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 25 Apr 2011 13:51:44 +0000 (13:51 +0000)
PYTHIA6/pythia6.4.25/pythia-6.4.25.f

index 0a235d0..b888a24 100644 (file)
@@ -2878,8 +2878,8 @@ C...Local arrays and character variables.
  
 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*' '/
@@ -65458,7 +65458,11 @@ C...(Borrow slot N+2 for temporary direction.)
       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
@@ -65664,8 +65668,13 @@ C...Calculate Pg, a part of which will be added to Phad later. (EN)
           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)
@@ -80344,31 +80353,29 @@ C...Make decision here.
       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
@@ -80380,9 +80387,9 @@ C...
       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'
@@ -80401,13 +80408,13 @@ C...
             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
 
 
@@ -80419,16 +80426,17 @@ C...
       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*********************************************************************