]>
Commit | Line | Data |
---|---|---|
ef94df36 | 1 | *CMZ : 17/07/95 11.08.55 by Jonathan Butterworth |
2 | *-- Author : J. M. Butterworth | |
3 | SUBROUTINE JMPN( PROBS, ZDUB, K ) | |
4 | C -------------------------------------------------------------------------- | |
5 | C Purpose: Returns the probabilities of N scatters at a given z, by | |
6 | C interpolating between the points stored during initialisation. | |
7 | C Returned arg. J is the lower edge of the s bin we are in. | |
8 | C -------------------------------------------------------------------------- | |
9 | #include "herwig65.inc" | |
10 | #include "jimmy.inc" | |
11 | ||
12 | ||
13 | DOUBLE PRECISION ZDUB | |
14 | DOUBLE PRECISION Z, PROBS( MAXMS ) | |
15 | DOUBLE PRECISION JMSC1, JMSC2, Z1, Z2, SCSIG, M, C | |
16 | INTEGER I, J, K | |
17 | ||
18 | Z=ZDUB | |
19 | DO I=1,MAXMS | |
20 | PROBS(I)=0.D0 | |
21 | ENDDO | |
22 | ||
23 | IF (IERROR.NE.0) RETURN | |
24 | ||
25 | IF (ZDUB.LT.-0.5D0) THEN | |
26 | DO J=1,MAXMS | |
27 | PROBS(J)=JMARRY(4+J,1) | |
28 | ENDDO | |
29 | RETURN | |
30 | ENDIF | |
31 | ||
32 | DO 1, I=1, NPSIMP | |
33 | ||
34 | IF (Z.LE.JMARRY( 1, I )) GOTO 2 | |
35 | ||
36 | 1 CONTINUE | |
37 | ||
38 | WRITE(JMOUT,*) 'JMPN: ILLEGAL Z INPUT! ',Z | |
39 | IERROR=200 | |
40 | RETURN | |
41 | ||
42 | C We are interpolating between JMARRY(J,I-1) and JMARRY(J,I) | |
43 | C Linear interpolation. | |
44 | 2 CONTINUE | |
45 | ||
46 | K=I | |
47 | ||
48 | DO J=1, MAXMS | |
49 | ||
50 | IF (JMARRY(4+J,I-1).GT.0.0) THEN | |
51 | JMSC1 = JMARRY(4+J,I-1) | |
52 | ENDIF | |
53 | ||
54 | IF (JMARRY(4+J,I).GT.0.D0) THEN | |
55 | JMSC2 = JMARRY(4+J,I) | |
56 | ENDIF | |
57 | ||
58 | Z1 = JMARRY(1,I-1) | |
59 | Z2 = JMARRY(1,I) | |
60 | ||
61 | M = (JMSC2-JMSC1)/(Z2-Z1) | |
62 | C = JMSC1-M*Z1 | |
63 | ||
64 | SCSIG = M*Z + C | |
65 | ||
66 | PROBS(J) = SCSIG | |
67 | ||
68 | ENDDO | |
69 | ||
70 | RETURN | |
71 | END |