DIMENSION SGTCOE (5,33), IHLP (NALLWP)
DIMENSION SGTCO1(5,10),SGTCO2(5,8),SGTCO3(5,15)
- SAVE SGTCOE, IHLP
- SAVE IQFSC1, IQFSC2, IQBSC1, IQBSC2
+CPH SAVE SGTCOE, IHLP
+CPH SAVE IQFSC1, IQFSC2, IQBSC1, IQBSC2
EQUIVALENCE (SGTCO1(1,1),SGTCOE(1,1))
EQUIVALENCE (SGTCO2(1,1),SGTCOE(1,11))
EQUIVALENCE (SGTCO3(1,1),SGTCOE(1,19))
PARAMETER ( LINP = 10 ,
& LOUT = 6 ,
& LDAT = 9 )
- SAVE
+CPH SAVE
PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
& LOUT = 6 ,
& LDAT = 9 )
PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
- SAVE
+CPH SAVE
PARAMETER (
* lower cuts for (valence-sea/sea-valence) chain masses
& JPTISM (NISMMX), IZWISM (NISMMX),
& INWISM (0:NAMSMX)
*
- SAVE KA0, KZ0, IZ0
+CPH SAVE KA0, KZ0, IZ0
DATA KA0, KZ0, IZ0 / -1, -1, -1 /
*
IFLAG = 1
* T (4,7), RMASS (297), ALPH (297), BET (297),
* APRIME (250), IA (6), IZ (6)
LOGICAL LFIRST
- SAVE LFIRST, EXHYDR, EXNEUT
+CPH SAVE LFIRST, EXHYDR, EXNEUT
DATA LFIRST / .TRUE. /
*
IF ( LFIRST ) THEN
1000 FORMAT(/,1X,'BERTTP:',4X,'Initialization of evaporation module',
& /,12X,'------------------------------------',/)
NBERNW = 23
- OPEN (UNIT=NBERNW,FILE='dpmjet.dat',STATUS='UNKNOWN')
+CPH OPEN (UNIT=NBERNW,FILE='dpmjet.dat',STATUS='UNKNOWN')
**sr 17.5.
*!!!! changed to be able to read the ASCII !!!!
*$ CREATE DT_RNDM.FOR
*COPY DT_RNDM
*
-*===rndm===============================================================*
-*
- DOUBLE PRECISION FUNCTION DT_RNDM(VDUMMY)
-
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-* random number generator
- COMMON /DTRAND/ U(97),C,CD,CM,I,J
-
-* counter of calls to random number generator
-* uncomment if needed
-C COMMON /DTRNCT/ IRNCT0,IRNCT1
-C LOGICAL LFIRST
-C DATA LFIRST /.TRUE./
-
-* counter of calls to random number generator
-* uncomment if needed
-C IF (LFIRST) THEN
-C IRNCT0 = 0
-C IRNCT1 = 0
-C LFIRST = .FALSE.
-C ENDIF
- 100 CONTINUE
- DT_RNDM = U(I)-U(J)
- IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
- U(I) = DT_RNDM
- I = I-1
- IF ( I.EQ.0 ) I = 97
- J = J-1
- IF ( J.EQ.0 ) J = 97
- C = C-CD
- IF ( C.LT.0.0D0 ) C = C+CM
- DT_RNDM = DT_RNDM-C
- IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
-
- IF ((DT_RNDM.EQ.0.D0).OR.(DT_RNDM.EQ.1.D0)) GOTO 100
-
-* counter of calls to random number generator
-* uncomment if needed
-C IRNCT0 = IRNCT0+1
-
- RETURN
- END
-
-*$ CREATE DT_RNDMST.FOR
-*COPY DT_RNDMST
-*
-*===rndmst=============================================================*
-*
- SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1)
-
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-* random number generator
- COMMON /DTRAND/ U(97),C,CD,CM,I,J
-
- MA1 = NA1
- MA2 = NA2
- MA3 = NA3
- MB1 = NB1
- I = 97
- J = 33
- DO 20 II2 = 1,97
- S = 0
- T = 0.5D0
- DO 10 II1 = 1,24
- MAT = MOD(MOD(MA1*MA2,179)*MA3,179)
- MA1 = MA2
- MA2 = MA3
- MA3 = MAT
- MB1 = MOD(53*MB1+1,169)
- IF ( MOD(MB1*MAT,64).GE.32 ) S = S+T
- 10 T = 0.5D0*T
- 20 U(II2) = S
- C = 362436.0D0/16777216.0D0
- CD = 7654321.0D0/16777216.0D0
- CM = 16777213.0D0/16777216.0D0
- RETURN
- END
-
-*$ CREATE DT_RNDMIN.FOR
-*COPY DT_RNDMIN
-*
-*===rndmin=============================================================*
-*
- SUBROUTINE DT_RNDMIN(UIN,CIN,CDIN,CMIN,IIN,JIN)
-
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-* random number generator
- COMMON /DTRAND/ U(97),C,CD,CM,I,J
-
- DIMENSION UIN(97)
-
- DO 10 KKK = 1,97
- 10 U(KKK) = UIN(KKK)
- C = CIN
- CD = CDIN
- CM = CMIN
- I = IIN
- J = JIN
-
- RETURN
- END
-
-*$ CREATE DT_RNDMOU.FOR
-*COPY DT_RNDMOU
-*
-*===rndmou=============================================================*
-*
- SUBROUTINE DT_RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
-
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
-* random number generator
- COMMON /DTRAND/ U(97),C,CD,CM,I,J
-
- DIMENSION UOUT(97)
-
- DO 10 KKK = 1,97
- 10 UOUT(KKK) = U(KKK)
- COUT = C
- CDOUT = CD
- CMOUT = CM
- IOUT = I
- JOUT = J
-
- RETURN
- END
-
-*$ CREATE DT_RNDMTE.FOR
-*COPY DT_RNDMTE
-*
-*===rndmte=============================================================*
-*
- SUBROUTINE DT_RNDMTE(IO)
-
- IMPLICIT DOUBLE PRECISION (A-H,O-Z)
- SAVE
-
- DIMENSION UU(97),U(6),X(6),D(6)
- DATA U / 6533892.D0, 14220222.D0, 7275067.D0, 6172232.D0,
- +8354498.D0, 10633180.D0/
-
- CALL DT_RNDMOU(UU,CC,CCD,CCM,II,JJ)
- CALL DT_RNDMST(12,34,56,78)
- DO 10 II1 = 1,20000
- 10 XX = DT_RNDM(XX)
- SD = 0.0D0
- DO 20 II2 = 1,6
- X(II2) = 4096.D0*(4096.D0*DT_RNDM(SD))
- D(II2) = X(II2)-U(II2)
- 20 SD = SD+D(II2)
- CALL DT_RNDMIN(UU,CC,CCD,CCM,II,JJ)
-**sr 24.01.95
-C IF ( IO.EQ. 1.OR. SD.NE.0. 0) WRITE(6,500) (U(I),X(I),D(I),I=1,6)
- IF ((IO.EQ.1).OR.(SD.NE.0.0)) THEN
-C WRITE(6,1000)
- 1000 FORMAT(/,/,1X,'DT_RNDMTE: Test of random-number generator...',
- & ' passed')
- ENDIF
-**
- RETURN
- 500 FORMAT(' === TEST OF THE RANDOM-GENERATOR ===',/,
- &' EXPECTED VALUE CALCULATED VALUE DIFFERENCE',/, 6(F17.
- &1,F20.1,F15.3,/), ' === END OF TEST ;',
- &' GENERATOR HAS THE SAME STATUS AS BEFORE CALLING DT_RNDMTE')
- END
+c$$$*===rndm===============================================================*
+c$$$*
+c$$$ DOUBLE PRECISION FUNCTION DT_RNDM(VDUMMY)
+c$$$
+c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+c$$$ SAVE
+c$$$
+c$$$* random number generator
+c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
+c$$$
+c$$$* counter of calls to random number generator
+c$$$* uncomment if needed
+c$$$C COMMON /DTRNCT/ IRNCT0,IRNCT1
+c$$$C LOGICAL LFIRST
+c$$$C DATA LFIRST /.TRUE./
+c$$$
+c$$$* counter of calls to random number generator
+c$$$* uncomment if needed
+c$$$C IF (LFIRST) THEN
+c$$$C IRNCT0 = 0
+c$$$C IRNCT1 = 0
+c$$$C LFIRST = .FALSE.
+c$$$C ENDIF
+c$$$ 100 CONTINUE
+c$$$ DT_RNDM = U(I)-U(J)
+c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
+c$$$ U(I) = DT_RNDM
+c$$$ I = I-1
+c$$$ IF ( I.EQ.0 ) I = 97
+c$$$ J = J-1
+c$$$ IF ( J.EQ.0 ) J = 97
+c$$$ C = C-CD
+c$$$ IF ( C.LT.0.0D0 ) C = C+CM
+c$$$ DT_RNDM = DT_RNDM-C
+c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
+c$$$
+c$$$ IF ((DT_RNDM.EQ.0.D0).OR.(DT_RNDM.EQ.1.D0)) GOTO 100
+c$$$
+c$$$* counter of calls to random number generator
+c$$$* uncomment if needed
+c$$$C IRNCT0 = IRNCT0+1
+c$$$
+c$$$ RETURN
+c$$$ END
+c$$$
+c$$$*$ CREATE DT_RNDMST.FOR
+c$$$*COPY DT_RNDMST
+c$$$*
+c$$$*===rndmst=============================================================*
+c$$$*
+c$$$ SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1)
+c$$$
+c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+c$$$ SAVE
+c$$$
+c$$$* random number generator
+c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
+c$$$
+c$$$ MA1 = NA1
+c$$$ MA2 = NA2
+c$$$ MA3 = NA3
+c$$$ MB1 = NB1
+c$$$ I = 97
+c$$$ J = 33
+c$$$ DO 20 II2 = 1,97
+c$$$ S = 0
+c$$$ T = 0.5D0
+c$$$ DO 10 II1 = 1,24
+c$$$ MAT = MOD(MOD(MA1*MA2,179)*MA3,179)
+c$$$ MA1 = MA2
+c$$$ MA2 = MA3
+c$$$ MA3 = MAT
+c$$$ MB1 = MOD(53*MB1+1,169)
+c$$$ IF ( MOD(MB1*MAT,64).GE.32 ) S = S+T
+c$$$ 10 T = 0.5D0*T
+c$$$ 20 U(II2) = S
+c$$$ C = 362436.0D0/16777216.0D0
+c$$$ CD = 7654321.0D0/16777216.0D0
+c$$$ CM = 16777213.0D0/16777216.0D0
+c$$$ RETURN
+c$$$ END
+c$$$
+c$$$*$ CREATE DT_RNDMIN.FOR
+c$$$*COPY DT_RNDMIN
+c$$$*
+c$$$*===rndmin=============================================================*
+c$$$*
+c$$$ SUBROUTINE DT_RNDMIN(UIN,CIN,CDIN,CMIN,IIN,JIN)
+c$$$
+c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+c$$$ SAVE
+c$$$
+c$$$* random number generator
+c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
+c$$$
+c$$$ DIMENSION UIN(97)
+c$$$
+c$$$ DO 10 KKK = 1,97
+c$$$ 10 U(KKK) = UIN(KKK)
+c$$$ C = CIN
+c$$$ CD = CDIN
+c$$$ CM = CMIN
+c$$$ I = IIN
+c$$$ J = JIN
+c$$$
+c$$$ RETURN
+c$$$ END
+c$$$
+c$$$*$ CREATE DT_RNDMOU.FOR
+c$$$*COPY DT_RNDMOU
+c$$$*
+c$$$*===rndmou=============================================================*
+c$$$*
+c$$$ SUBROUTINE DT_RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
+c$$$
+c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+c$$$ SAVE
+c$$$
+c$$$* random number generator
+c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
+c$$$
+c$$$ DIMENSION UOUT(97)
+c$$$
+c$$$ DO 10 KKK = 1,97
+c$$$ 10 UOUT(KKK) = U(KKK)
+c$$$ COUT = C
+c$$$ CDOUT = CD
+c$$$ CMOUT = CM
+c$$$ IOUT = I
+c$$$ JOUT = J
+c$$$
+c$$$ RETURN
+c$$$ END
+c$$$
+c$$$*$ CREATE DT_RNDMTE.FOR
+c$$$*COPY DT_RNDMTE
+c$$$*
+c$$$*===rndmte=============================================================*
+c$$$*
+c$$$ SUBROUTINE DT_RNDMTE(IO)
+c$$$
+c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+c$$$ SAVE
+c$$$
+c$$$ DIMENSION UU(97),U(6),X(6),D(6)
+c$$$ DATA U / 6533892.D0, 14220222.D0, 7275067.D0, 6172232.D0,
+c$$$ +8354498.D0, 10633180.D0/
+c$$$
+c$$$ CALL DT_RNDMOU(UU,CC,CCD,CCM,II,JJ)
+c$$$ CALL DT_RNDMST(12,34,56,78)
+c$$$ DO 10 II1 = 1,20000
+c$$$ 10 XX = DT_RNDM(XX)
+c$$$ SD = 0.0D0
+c$$$ DO 20 II2 = 1,6
+c$$$ X(II2) = 4096.D0*(4096.D0*DT_RNDM(SD))
+c$$$ D(II2) = X(II2)-U(II2)
+c$$$ 20 SD = SD+D(II2)
+c$$$ CALL DT_RNDMIN(UU,CC,CCD,CCM,II,JJ)
+c$$$**sr 24.01.95
+c$$$C IF ( IO.EQ. 1.OR. SD.NE.0. 0) WRITE(6,500) (U(I),X(I),D(I),I=1,6)
+c$$$ IF ((IO.EQ.1).OR.(SD.NE.0.0)) THEN
+c$$$C WRITE(6,1000)
+c$$$ 1000 FORMAT(/,/,1X,'DT_RNDMTE: Test of random-number generator...',
+c$$$ & ' passed')
+c$$$ ENDIF
+c$$$**
+c$$$ RETURN
+c$$$ 500 FORMAT(' === TEST OF THE RANDOM-GENERATOR ===',/,
+c$$$ &' EXPECTED VALUE CALCULATED VALUE DIFFERENCE',/, 6(F17.
+c$$$ &1,F20.1,F15.3,/), ' === END OF TEST ;',
+c$$$ &' GENERATOR HAS THE SAME STATUS AS BEFORE CALLING DT_RNDMTE')
+c$$$ END
*
*$ CREATE PHO_RNDM.FOR
*COPY PHO_RNDM
*
DIMENSION XX(61),YY(61),LL(101,10)
DIMENSION X(N),Y(N),L(40),LOV(40,10)
+ INTEGER*4 LL, L, LOV
DATA L/
11H*,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1HZ,
21H+,1HA,1HO,1HB,1HC,1HD,1HE,1HF,1HG,1HH,