]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gphys/gsynit.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gphys / gsynit.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
62be6b28 5* Revision 1.1.1.1 1999/05/18 15:55:20 fca
6* AliRoot sources
7*
fe4da5cc 8* Revision 1.1.1.1 1995/10/24 10:21:35 cernlib
9* Geant
10*
11*
12#include "geant321/pilot.h"
13#if defined(CERNLIB_NEVER)
14*CMZ : 3.21/02 29/03/94 15.41.23 by S.Giani
15*-- Author :
16 SUBROUTINE GSYNIT
17C
18C Preperation of synchrotron radiation tables.
19C This routine can be used to compute the YT and FTI used
20C in GSYNGE.
21C Author: Igor Gavrilenko
22C
23 COMMON /SYNTAB/ YT(54),FT(54),FTI(53)
24 EXTERNAL BK53,BKS53
25 DOUBLE PRECISION YM,YMA,EPS,XX
26C...
27 DATA EPS/.0001/
28C...
29 L = 0
30 YS = .000001
31 DO 20 I = 1,6
32 YS = YS*10.
33 DO 10 J = 1,9,1
34 L = L+1
35 YM = J*YS
36 YT(L) = YM
37 YMA = YM+YS
38 IF(L.EQ.54) YMA = 20.
39 FT(L) = DGAUSS(BK53,YM,YMA,EPS)
40 10 CONTINUE
41 20 CONTINUE
42C...
43 DO 30 I = 53,1,-1
44 FT(I) = FT(I)+FT(I+1)
45 30 CONTINUE
46C...
47 DO 40 I = 53,1,-1
48 YM = YT(I)
49 YMA = YT(I+1)
50 IF(I.LT.53) FTI(I) = DGAUSS(BKS53,YM,YMA,EPS)+FTI(I+1)
51 IF(I.EQ.53) FTI(I) = DGAUSS(BKS53,YM,YMA,EPS)
52 40 CONTINUE
53C...
54 E N D
55C-------------------------------------------------------
56 DOUBLE PRECISION FUNCTION B K 5 3 (X)
57C
58 DOUBLE PRECISION X
59C...
60 BK53 = 4./(3.*X)*DBSKR3(X,2)+DBSKR3(X,1)
61 RETURN
62 E N D
63C------------------------------------------------------
64 DOUBLE PRECISION FUNCTION B K S 5 3 (X)
65C
66 COMMON /SYNTAB/ YT(54),FT(54),FTI(53)
67 DOUBLE PRECISION X
68C...
69 IF(X.GT.YT(1)) GO TO 10
70 BKS53 = FT(1)
71 GO TO 60
72C...
73 10 IF(X.LT.YT(54)) GO TO 20
74 BKS53 = 0.
75 RETURN
76C...
77 20 K1 = 1
78 K2 = 54
79 30 K = (K1+K2)/2
80 IF(X.GT.YT(K)) K1 = K
81 IF(X.LT.YT(K)) K2 = K
82 IF(X.NE.YT(K)) GO TO 40
83 BKS53 = FT(K)
84 GO TO 60
85C...
86 40 IF(K2-K1.GT.1) GO TO 30
87 F1 = FT(K1)
88 F2 = FT(K2)
89 X1 = YT(K1)
90 X2 = YT(K2)
91C...
92 IF(X.LE.1.) THEN
93 X1 = LOG(X1)
94 X2 = LOG(X2)
95 B = F1+(F2-F1)/(X2-X1)*(LOG(X)-X1)
96 GO TO 50
97 ENDIF
98C...
99 IF(X.GT.1.) THEN
100 F1 = LOG(F1)
101 F2 = LOG(F2)
102 B = F1+(F2-F1)/(X2-X1)*(X-X1)
103 B = EXP(B)
104 ENDIF
105C...
106 50 BKS53 = B
107 60 BKS53 = .1909859*BKS53
108 RETURN
109 E N D
62be6b28 110#else
111 SUBROUTINE GSYNIT_DUMMY
112 END
fe4da5cc 113#endif