]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/kernlib/kerngen/tcgen/tluk.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgen / tluk.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/02/15 17:49:54  mclareni
6 * Kernlib
7 *
8 *
9 #include "kerngen/pilot.h"
10       SUBROUTINE TLUK (A,IASEP,NR,SIG,BETA)
11 C
12 C CERN PROGLIB# E230    TLUK            .VERSION KERNFOR  2.06  740511
13 C ORIG. 11/05/74 WH+WM
14 C
15 C.  SUBROUTINE TLUK (A,IASEP,NR,SIG,BETA)
16 C.
17 C.       COMPUTE TRANSFORMATION QUANTITIES.
18 C.       TLUK HAS BEEN MODIFIED FOR KINEMATICS.
19 C.
20 C.-------------------------------------------------------------------
21 C
22       COMMON /SLATE/ DUM(37),I,JA,LL
23       DIMENSION A(*)
24 C--
25 C
26 C--      COMPUTE MODULUS OF A GIVEN ROW IN A MATRIX AND FIND LAST
27 C--      NON-ZERO ELEMENT IN THAT ROW.
28 C
29       SIG= 0.
30       JA = 1
31       LL = 0
32 C
33       DO           10        I=1,NR
34       IF     (A(JA).EQ.0.)             GO TO     10
35       LL = I
36       SIG= SIG + A(JA)* A(JA)
37    10 JA = JA + IASEP
38 C
39 C--      FOR A ZERO ROW RETURN.
40 C
41       NR = LL
42       IF     (NR.EQ.0)                 RETURN
43 C--
44 C--      OTHERWISE TAKE THE MODULUS WITH SIGN OF FIRST ELEMENT OF THAT
45 C--      ROW. REDEFINE THAT FIRST ARGUMENT AND VALUE OF BETA.
46 C
47       SIG  = SIGN (SQRT (SIG),A(1))
48       BETA = A(1) + SIG
49       A(1) = BETA
50       BETA = 1. / (SIG * BETA)
51       RETURN
52       END