]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/kernlib/kerngen/tcgen/trinv.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgen / trinv.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 TRINV (T,S,N)
11 C
12 C CERN PROGLIB# F112    TRINV           .VERSION KERNFOR  4.15  861204
13 C ORIG. 18/12/74 WH
14 C
15 #if defined(CERNLIB_INTDOUBL)
16       DOUBLE PRECISION SUM, R
17 #endif
18       DIMENSION T(*),S(*)
19 C
20       MX = (N*N+N)/2
21       IPIV = MX
22 C
23       I = N
24    10 R = 0.
25       IF (T(IPIV).GT.0.)  R=1./T(IPIV)
26       S(IPIV) = R
27       NDSTEP = N
28       IND = MX - N + I
29 C
30    20 IF (IND.EQ.IPIV)        GO TO 50
31       SUM = 0.
32       IF (R.EQ.0.)            GO TO 40
33       LHOR = IPIV
34       LVER = IND
35       J = I
36 C
37    30 LHOR = LHOR + J
38       LVER = LVER + 1
39       SUM = SUM + T(LHOR)*S(LVER)
40       J = J + 1
41       IF (LHOR.LT.IND)        GO TO 30
42 C
43    40 S(IND) = - SUM*R
44       NDSTEP = NDSTEP - 1
45       IND = IND - NDSTEP
46         GO  TO                20
47 C
48    50 IPIV = IPIV - I
49       I = I - 1
50       IF (I.GT.0)             GO TO 10
51 C
52       RETURN
53       END