This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / g / vavran.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:02:48  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10       FUNCTION VAVRAN(RKAPPA,BETA2,RAN)
11
12       DIMENSION AC(0:13),HC(0:8),H(9)
13
14       PARAMETER
15      1(BKMNX1 = 0.02, BKMNY1 = 0.05, BKMNX2 = 0.12, BKMNY2 = 0.05,
16      2 BKMNX3 = 0.22, BKMNY3 = 0.05, BKMXX1 = 0.1 , BKMXY1 = 1   ,
17      3 BKMXX2 = 0.2 , BKMXY2 = 1   , BKMXX3 = 0.3 , BKMXY3 = 1   )
18       PARAMETER
19      1(FBKX1 = 2/(BKMXX1-BKMNX1), FBKX2 = 2/(BKMXX2-BKMNX2),
20      2 FBKX3 = 2/(BKMXX3-BKMNX3), FBKY1 = 2/(BKMXY1-BKMNY1),
21      3 FBKY2 = 2/(BKMXY2-BKMNY2), FBKY3 = 2/(BKMXY3-BKMNY3))
22
23       DIMENSION EDGEC(2:7),FNINV(5),DRK(5),DSIGM(5),ALFA(2:5)
24       DIMENSION U1(13),U2(13),U3(13),U4(12),U5(13),U6(13),U7( 8),U8(13)
25       DIMENSION V1(12),V2(12),V3(13),V4(12),V5(13),V6(13),V7(11),V8(11)
26       DIMENSION W1(13),W2(11),W3(13),W4(13),W5(13),W6(13),       W8( 8)
27
28       DATA FNINV /1, 0.5, 0.33333333, 0.25, 0.2/
29
30       DATA (EDGEC(J),J=2,7)
31      1/ 0.16666667E+0, 0.41666667E-1, 0.83333333E-2,
32      2  0.13888889E-1, 0.69444444E-2, 0.77160493E-3/
33
34       DATA (U1(K),K=1,13)
35      1/ 0.25850868E+0,  0.32477982E-1, -0.59020496E-2,
36      2  0.           ,  0.24880692E-1,  0.47404356E-2,
37      3 -0.74445130E-3,  0.73225731E-2,  0.           ,
38      4  0.11668284E-2,  0.           , -0.15727318E-2,-0.11210142E-2/
39
40       DATA (U2(K),K=1,13)
41      1/ 0.43142611E+0,  0.40797543E-1, -0.91490215E-2,
42      2  0.           ,  0.42127077E-1,  0.73167928E-2,
43      3 -0.14026047E-2,  0.16195241E-1,  0.24714789E-2,
44      4  0.20751278E-2,  0.           , -0.25141668E-2,-0.14064022E-2/
45
46       DATA (U3(K),K=1,13)
47      1/ 0.25225955E+0,  0.64820468E-1, -0.23615759E-1,
48      2  0.           ,  0.23834176E-1,  0.21624675E-2,
49      3 -0.26865597E-2, -0.54891384E-2,  0.39800522E-2,
50      4  0.48447456E-2, -0.89439554E-2, -0.62756944E-2,-0.24655436E-2/
51
52       DATA (U4(K),K=1,12)
53      1/ 0.12593231E+1, -0.20374501E+0,  0.95055662E-1,
54      2 -0.20771531E-1, -0.46865180E-1, -0.77222986E-2,
55      3  0.32241039E-2,  0.89882920E-2, -0.67167236E-2,
56      4 -0.13049241E-1,  0.18786468E-1,  0.14484097E-1/
57
58       DATA (U5(K),K=1,13)
59      1/-0.24864376E-1, -0.10368495E-2,  0.14330117E-2,
60      2  0.20052730E-3,  0.18751903E-2,  0.12668869E-2,
61      3  0.48736023E-3,  0.34850854E-2,  0.           ,
62      4 -0.36597173E-3,  0.19372124E-2,  0.70761825E-3, 0.46898375E-3/
63
64       DATA (U6(K),K=1,13)
65      1/ 0.35855696E-1, -0.27542114E-1,  0.12631023E-1,
66      2 -0.30188807E-2, -0.84479939E-3,  0.           ,
67      3  0.45675843E-3, -0.69836141E-2,  0.39876546E-2,
68      4 -0.36055679E-2,  0.           ,  0.15298434E-2, 0.19247256E-2/
69
70       DATA (U7(K),K=1,8)
71      1/ 0.10234691E+2, -0.35619655E+1,  0.69387764E+0,
72      2 -0.14047599E+0, -0.19952390E+1, -0.45679694E+0,
73      3  0.           ,  0.50505298E+0/
74
75       DATA (U8(K),K=1,13)
76      1/ 0.21487518E+2, -0.11825253E+2,  0.43133087E+1,
77      2 -0.14500543E+1, -0.34343169E+1, -0.11063164E+1,
78      3 -0.21000819E+0,  0.17891643E+1, -0.89601916E+0,
79      4  0.39120793E+0,  0.73410606E+0,  0.           ,-0.32454506E+0/
80
81       DATA (V1(K),K=1,12)
82      1/ 0.27827257E+0, -0.14227603E-2,  0.24848327E-2,
83      2  0.           ,  0.45091424E-1,  0.80559636E-2,
84      3 -0.38974523E-2,  0.           , -0.30634124E-2,
85      4  0.75633702E-3,  0.54730726E-2,  0.19792507E-2/
86
87       DATA (V2(K),K=1,12)
88      1/ 0.41421789E+0, -0.30061649E-1,  0.52249697E-2,
89      2  0.           ,  0.12693873E+0,  0.22999801E-1,
90      3 -0.86792801E-2,  0.31875584E-1, -0.61757928E-2,
91      4  0.           ,  0.19716857E-1,  0.32596742E-2/
92
93       DATA (V3(K),K=1,13)
94      1/ 0.20191056E+0, -0.46831422E-1,  0.96777473E-2,
95      2 -0.17995317E-2,  0.53921588E-1,  0.35068740E-2,
96      3 -0.12621494E-1, -0.54996531E-2, -0.90029985E-2,
97      4  0.34958743E-2,  0.18513506E-1,  0.68332334E-2,-0.12940502E-2/
98
99       DATA (V4(K),K=1,12)
100      1/ 0.13206081E+1,  0.10036618E+0, -0.22015201E-1,
101      2  0.61667091E-2, -0.14986093E+0, -0.12720568E-1,
102      3  0.24972042E-1, -0.97751962E-2,  0.26087455E-1,
103      4 -0.11399062E-1, -0.48282515E-1, -0.98552378E-2/
104
105       DATA (V5(K),K=1,13)
106      1/ 0.16435243E-1,  0.36051400E-1,  0.23036520E-2,
107      2 -0.61666343E-3, -0.10775802E-1,  0.51476061E-2,
108      3  0.56856517E-2, -0.13438433E-1,  0.           ,
109      4  0.           , -0.25421507E-2,  0.20169108E-2,-0.15144931E-2/
110
111       DATA (V6(K),K=1,13)
112      1/ 0.33432405E-1,  0.60583916E-2, -0.23381379E-2,
113      2  0.83846081E-3, -0.13346861E-1, -0.17402116E-2,
114      3  0.21052496E-2,  0.15528195E-2,  0.21900670E-2,
115      4 -0.13202847E-2, -0.45124157E-2, -0.15629454E-2, 0.22499176E-3/
116
117       DATA (V7(K),K=1,11)
118      1/ 0.54529572E+1, -0.90906096E+0,  0.86122438E-1,
119      2  0.           , -0.12218009E+1, -0.32324120E+0,
120      3 -0.27373591E-1,  0.12173464E+0,  0.           ,
121      4  0.           ,  0.40917471E-1/
122
123       DATA (V8(K),K=1,11)
124      1/ 0.93841352E+1, -0.16276904E+1,  0.16571423E+0,
125      2  0.           , -0.18160479E+1, -0.50919193E+0,
126      3 -0.51384654E-1,  0.21413992E+0,  0.           ,
127      4  0.           ,  0.66596366E-1/
128
129       DATA (W1(K),K=1,13)
130      1/ 0.29712951E+0,  0.97572934E-2,  0.           ,
131      2 -0.15291686E-2,  0.35707399E-1,  0.96221631E-2,
132      3 -0.18402821E-2, -0.49821585E-2,  0.18831112E-2,
133      4  0.43541673E-2,  0.20301312E-2, -0.18723311E-2,-0.73403108E-3/
134
135       DATA (W2(K),K=1,11)
136      1/ 0.40882635E+0,  0.14474912E-1,  0.25023704E-2,
137      2 -0.37707379E-2,  0.18719727E+0,  0.56954987E-1,
138      3  0.           ,  0.23020158E-1,  0.50574313E-2,
139      4  0.94550140E-2,  0.19300232E-1/
140
141       DATA (W3(K),K=1,13)
142      1/ 0.16861629E+0,  0.           ,  0.36317285E-2,
143      2 -0.43657818E-2,  0.30144338E-1,  0.13891826E-1,
144      3 -0.58030495E-2, -0.38717547E-2,  0.85359607E-2,
145      4  0.14507659E-1,  0.82387775E-2, -0.10116105E-1,-0.55135670E-2/
146
147       DATA (W4(K),K=1,13)
148      1/ 0.13493891E+1, -0.26863185E-2, -0.35216040E-2,
149      2  0.24434909E-1, -0.83447911E-1, -0.48061360E-1,
150      3  0.76473951E-2,  0.24494430E-1, -0.16209200E-1,
151      4 -0.37768479E-1, -0.47890063E-1,  0.17778596E-1, 0.13179324E-1/
152
153       DATA (W5(K),K=1,13)
154      1/ 0.10264945E+0,  0.32738857E-1,  0.           ,
155      2  0.43608779E-2, -0.43097757E-1, -0.22647176E-2,
156      3  0.94531290E-2, -0.12442571E-1, -0.32283517E-2,
157      4 -0.75640352E-2, -0.88293329E-2,  0.52537299E-2, 0.13340546E-2/
158
159       DATA (W6(K),K=1,13)
160      1/ 0.29568177E-1, -0.16300060E-2, -0.21119745E-3,
161      2  0.23599053E-2, -0.48515387E-2, -0.40797531E-2,
162      3  0.40403265E-3,  0.18200105E-2, -0.14346306E-2,
163      4 -0.39165276E-2, -0.37432073E-2,  0.19950380E-2, 0.12222675E-2/
164
165       DATA (W8(K),K=1,8)
166      1/ 0.66184645E+1, -0.73866379E+0,  0.44693973E-1,
167      2  0.           , -0.14540925E+1, -0.39529833E+0,
168      3 -0.44293243E-1,  0.88741049E-1/
169
170       V=0
171       IF(RKAPPA .LT. 0.01 .OR. RKAPPA .GT. 12) GO TO 9
172       IF(RKAPPA .GE. 0.29) THEN
173        ITYPE=1
174        NPT=100
175        WK=1/SQRT(RKAPPA)
176        AC(0)=(-0.032227*BETA2-0.074275)*RKAPPA+
177      1   (0.24533*BETA2+0.070152)*WK+(-0.55610*BETA2-3.1579)
178        AC(8)=(-0.013483*BETA2-0.048801)*RKAPPA+
179      1   (-1.6921*BETA2+8.3656)*WK+(-0.73275*BETA2-3.5226)
180        DRK(1)=WK**2
181        DSIGM(1)=SQRT(RKAPPA/(1-0.5*BETA2))
182        DO 1 J = 1,4
183        DRK(J+1)=DRK(1)*DRK(J)
184        DSIGM(J+1)=DSIGM(1)*DSIGM(J)
185     1  ALFA(J+1)=(FNINV(J)-BETA2*FNINV(J+1))*DRK(J)
186
187        HC(0)=LOG(RKAPPA)+BETA2+0.42278434
188        HC(1)=DSIGM(1)
189        HC(2)=ALFA(3)*DSIGM(3)
190        HC(3)=(3*ALFA(2)**2+ALFA(4))*DSIGM(4)-3
191        HC(4)=(10*ALFA(2)*ALFA(3)+ALFA(5))*DSIGM(5)-10*HC(2)
192        HC(5)=HC(2)**2
193        HC(6)=HC(2)*HC(3)
194        HC(7)=HC(2)*HC(5)
195        DO 2 J = 2,7
196     2  HC(J)=EDGEC(J)*HC(J)
197        HC(8)=0.39894228*HC(1)
198       ELSEIF(RKAPPA .GE. 0.22) THEN
199        ITYPE=2
200        NPT=150
201        X=1+(RKAPPA-BKMXX3)*FBKX3
202        Y=1+(SQRT(BETA2)-BKMXY3)*FBKY3
203        XX=2*X
204        YY=2*Y
205        X2=XX*X-1
206        X3=XX*X2-X
207        Y2=YY*Y-1
208        Y3=YY*Y2-Y
209        XY=X*Y
210        P2=X2*Y
211        P3=X3*Y
212        Q2=Y2*X
213        Q3=Y3*X
214        PQ=X2*Y2
215        AC(1)=W1(1)+W1(2)*X+W1(4)*X3+W1(5)*Y+W1(6)*Y2+W1(7)*Y3+
216      1  W1(8)*XY+W1(9)*P2+W1(10)*P3+W1(11)*Q2+W1(12)*Q3+W1(13)*PQ
217        AC(2)=W2(1)+W2(2)*X+W2(3)*X2+W2(4)*X3+W2(5)*Y+W2(6)*Y2+
218      1  W2(8)*XY+W2(9)*P2+W2(10)*P3+W2(11)*Q2
219        AC(3)=W3(1)+W3(3)*X2+W3(4)*X3+W3(5)*Y+W3(6)*Y2+W3(7)*Y3+
220      1  W3(8)*XY+W3(9)*P2+W3(10)*P3+W3(11)*Q2+W3(12)*Q3+W3(13)*PQ
221        AC(4)=W4(1)+W4(2)*X+W4(3)*X2+W4(4)*X3+W4(5)*Y+W4(6)*Y2+W4(7)*Y3+
222      1  W4(8)*XY+W4(9)*P2+W4(10)*P3+W4(11)*Q2+W4(12)*Q3+W4(13)*PQ
223        AC(5)=W5(1)+W5(2)*X+W5(4)*X3+W5(5)*Y+W5(6)*Y2+W5(7)*Y3+
224      1  W5(8)*XY+W5(9)*P2+W5(10)*P3+W5(11)*Q2+W5(12)*Q3+W5(13)*PQ
225        AC(6)=W6(1)+W6(2)*X+W6(3)*X2+W6(4)*X3+W6(5)*Y+W6(6)*Y2+W6(7)*Y3+
226      1  W6(8)*XY+W6(9)*P2+W6(10)*P3+W6(11)*Q2+W6(12)*Q3+W6(13)*PQ
227        AC(8)=W8(1)+W8(2)*X+W8(3)*X2+W8(5)*Y+W8(6)*Y2+W8(7)*Y3+W8(8)*XY
228        AC(0)=-3.05
229       ELSEIF(RKAPPA .GE. 0.12) THEN
230        ITYPE=3
231        NPT=200
232        X=1+(RKAPPA-BKMXX2)*FBKX2
233        Y=1+(SQRT(BETA2)-BKMXY2)*FBKY2
234        XX=2*X
235        YY=2*Y
236        X2=XX*X-1
237        X3=XX*X2-X
238        Y2=YY*Y-1
239        Y3=YY*Y2-Y
240        XY=X*Y
241        P2=X2*Y
242        P3=X3*Y
243        Q2=Y2*X
244        Q3=Y3*X
245        PQ=X2*Y2
246        AC(1)=V1(1)+V1(2)*X+V1(3)*X2+V1(5)*Y+V1(6)*Y2+V1(7)*Y3+
247      1  V1(9)*P2+V1(10)*P3+V1(11)*Q2+V1(12)*Q3
248        AC(2)=V2(1)+V2(2)*X+V2(3)*X2+V2(5)*Y+V2(6)*Y2+V2(7)*Y3+
249      1  V2(8)*XY+V2(9)*P2+V2(11)*Q2+V2(12)*Q3
250        AC(3)=V3(1)+V3(2)*X+V3(3)*X2+V3(4)*X3+V3(5)*Y+V3(6)*Y2+V3(7)*Y3+
251      1  V3(8)*XY+V3(9)*P2+V3(10)*P3+V3(11)*Q2+V3(12)*Q3+V3(13)*PQ
252        AC(4)=V4(1)+V4(2)*X+V4(3)*X2+V4(4)*X3+V4(5)*Y+V4(6)*Y2+V4(7)*Y3+
253      1  V4(8)*XY+V4(9)*P2+V4(10)*P3+V4(11)*Q2+V4(12)*Q3
254        AC(5)=V5(1)+V5(2)*X+V5(3)*X2+V5(4)*X3+V5(5)*Y+V5(6)*Y2+V5(7)*Y3+
255      1  V5(8)*XY+V5(11)*Q2+V5(12)*Q3+V5(13)*PQ
256        AC(6)=V6(1)+V6(2)*X+V6(3)*X2+V6(4)*X3+V6(5)*Y+V6(6)*Y2+V6(7)*Y3+
257      1  V6(8)*XY+V6(9)*P2+V6(10)*P3+V6(11)*Q2+V6(12)*Q3+V6(13)*PQ
258        AC(7)=V7(1)+V7(2)*X+V7(3)*X2+V7(5)*Y+V7(6)*Y2+V7(7)*Y3+
259      1  V7(8)*XY+V7(11)*Q2
260        AC(8)=V8(1)+V8(2)*X+V8(3)*X2+V8(5)*Y+V8(6)*Y2+V8(7)*Y3+
261      1  V8(8)*XY+V8(11)*Q2
262        AC(0)=-3.04
263       ELSE
264        ITYPE=4
265        IF(RKAPPA .GE. 0.02) ITYPE=3
266        NPT=200
267        X=1+(RKAPPA-BKMXX1)*FBKX1
268        Y=1+(SQRT(BETA2)-BKMXY1)*FBKY1
269        XX=2*X
270        YY=2*Y
271        X2=XX*X-1
272        X3=XX*X2-X
273        Y2=YY*Y-1
274        Y3=YY*Y2-Y
275        XY=X*Y
276        P2=X2*Y
277        P3=X3*Y
278        Q2=Y2*X
279        Q3=Y3*X
280        PQ=X2*Y2
281        IF(ITYPE .EQ. 3) THEN
282         AC(1)=U1(1)+U1(2)*X+U1(3)*X2+U1(5)*Y+U1(6)*Y2+U1(7)*Y3+
283      1   U1(8)*XY+U1(10)*P3+U1(12)*Q3+U1(13)*PQ
284         AC(2)=U2(1)+U2(2)*X+U2(3)*X2+U2(5)*Y+U2(6)*Y2+U2(7)*Y3+
285      1   U2(8)*XY+U2(9)*P2+U2(10)*P3+U2(12)*Q3+U2(13)*PQ
286         AC(3)=U3(1)+U3(2)*X+U3(3)*X2+U3(5)*Y+U3(6)*Y2+U3(7)*Y3+
287      1   U3(8)*XY+U3(9)*P2+U3(10)*P3+U3(11)*Q2+U3(12)*Q3+U3(13)*PQ
288         AC(4)=U4(1)+U4(2)*X+U4(3)*X2+U4(4)*X3+U4(5)*Y+U4(6)*Y2+U4(7)*Y3+
289      1   U4(8)*XY+U4(9)*P2+U4(10)*P3+U4(11)*Q2+U4(12)*Q3
290         AC(5)=U5(1)+U5(2)*X+U5(3)*X2+U5(4)*X3+U5(5)*Y+U5(6)*Y2+U5(7)*Y3+
291      1   U5(8)*XY+U5(10)*P3+U5(11)*Q2+U5(12)*Q3+U5(13)*PQ
292         AC(6)=U6(1)+U6(2)*X+U6(3)*X2+U6(4)*X3+U6(5)*Y+U6(7)*Y3+
293      1   U6(8)*XY+U6(9)*P2+U6(10)*P3+U6(12)*Q3+U6(13)*PQ
294         AC(7)=U7(1)+U7(2)*X+U7(3)*X2+U7(4)*X3+U7(5)*Y+U7(6)*Y2+U7(8)*XY
295        ENDIF
296        AC(8)=U8(1)+U8(2)*X+U8(3)*X2+U8(4)*X3+U8(5)*Y+U8(6)*Y2+U8(7)*Y3+
297      1  U8(8)*XY+U8(9)*P2+U8(10)*P3+U8(11)*Q2+U8(13)*PQ
298        AC(0)=-3.03
299       ENDIF
300       AC(9)=(AC(8)-AC(0))/NPT
301       IF(ITYPE .EQ. 3) THEN
302        X=(AC(7)-AC(8))/(AC(7)*AC(8))
303        Y=1/LOG(AC(8)/AC(7))
304        P2=AC(7)**2
305        AC(11)=P2*(AC(1)*EXP(-AC(2)*(AC(7)+AC(5)*P2)-
306      1            AC(3)*EXP(-AC(4)*(AC(7)+AC(6)*P2)))-0.045*Y/AC(7))/
307      2            (1+X*Y*AC(7))
308        AC(12)=(0.045+X*AC(11))*Y
309       ENDIF
310       IF(ITYPE .EQ. 4) AC(10)=0.995/DISLAN(AC(8))
311
312       T=2*RAN/AC(9)
313       RLAM=AC(0)
314       FL=0
315       S=0
316       DO 21 N = 1,NPT
317       RLAM=RLAM+AC(9)
318       IF(ITYPE .EQ. 1) THEN
319        FN=1
320        X=(RLAM+HC(0))*HC(1)
321        H(1)=X
322        H(2)=X**2-1
323        DO 31 K = 2,8
324        FN=FN+1
325    31  H(K+1)=X*H(K)-FN*H(K-1)
326        Y=1+HC(7)*H(9)
327        DO 32 K = 2,6
328    32  Y=Y+HC(K)*H(K+1)
329        FU=HC(8)*EXP(-0.5*X**2)*MAX(Y,0.)
330       ELSEIF(ITYPE .EQ. 2) THEN
331        X=RLAM**2
332        FU=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)-
333      1    AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X)))
334       ELSEIF(ITYPE .EQ. 3) THEN
335        IF(RLAM .LT. AC(7)) THEN
336         X=RLAM**2
337         FU=AC(1)*EXP(-AC(2)*(RLAM+AC(5)*X)-
338      1     AC(3)*EXP(-AC(4)*(RLAM+AC(6)*X)))
339        ELSE
340         X=1/RLAM
341         FU=(AC(11)*X+AC(12))*X
342        ENDIF
343       ELSE
344        FU=AC(10)*DENLAN(RLAM)
345       ENDIF
346       S=S+FL+FU
347       IF(S .GT. T) GO TO 22
348    21 FL=FU
349
350    22 S0=S-FL-FU
351       V=RLAM-AC(9)
352       IF(S .GT. S0) V=V+AC(9)*(T-S0)/(S-S0)
353     9 VAVRAN=V
354       RETURN
355       END