]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/kernlib/kerngen/tcgen/trchul.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgen / trchul.F
CommitLineData
fe4da5cc 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 TRCHUL (A,B,N)
11C
12C CERN PROGLIB# F112 TRCHUL .VERSION KERNFOR 4.16 870601
13C ORIG. 18/12/74 WH
14C
15#if defined(CERNLIB_INTDOUBL)
16 DOUBLE PRECISION SUM, R, DC
17#endif
18 DIMENSION A(*),B(*)
19C
20 KPIV = (N*N+N)/2
21C
22 I = N
23 10 IPIV = KPIV
24 R = A(IPIV)
25C
26 20 SUM = 0.
27 IF (I.EQ.N) GO TO 40
28 IF (R.EQ.0.) GO TO 42
29 ID = IPIV
30 KD = KPIV
31 NSTEP = I
32C
33 30 KD = KD + NSTEP
34 ID = ID + NSTEP
35 NSTEP = NSTEP + 1
36 SUM = SUM + B(ID)*B(KD)
37 IF (NSTEP.LT.N) GO TO 30
38C
39 40 SUM = A(KPIV) - SUM
40 42 IF (KPIV.LT.IPIV) GO TO 50
41#if !defined(CERNLIB_INTDOUBL)
42 DC = SQRT (SUM)
43#endif
44#if defined(CERNLIB_INTDOUBL)
45 DC = DSQRT (SUM)
46#endif
47 B(KPIV) = DC
48 IF (R .GT. 0.0) R = 1./DC
49 GO TO 60
50C
51 50 B(KPIV) = SUM*R
52C
53 60 KPIV = KPIV - 1
54 IF (KPIV.GT.IPIV-I) GO TO 20
55C
56 I = I - 1
57 IF (I.GT.0) GO TO 10
58C
59 RETURN
60 END