]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/02/15 17:49:56 mclareni | |
6 | * Kernlib | |
7 | * | |
8 | * | |
9 | #include "kerngen/pilot.h" | |
10 | SUBROUTINE TRQSQ (Q,S,R,M) | |
11 | C | |
12 | C CERN PROGLIB# F112 TRQSQ .VERSION KERNFOR 4.15 861204 | |
13 | C ORIG. 18/12/74 WH | |
14 | C | |
15 | #if defined(CERNLIB_INTDOUBL) | |
16 | DOUBLE PRECISION SUM | |
17 | #endif | |
18 | DIMENSION S(*),Q(*),R(*) | |
19 | C | |
20 | IMAX = (M*M+M)/2 | |
21 | CALL VZERO (R,IMAX) | |
22 | INDS = 0 | |
23 | I = 0 | |
24 | C | |
25 | 5 INDS = INDS + I | |
26 | IR = 0 | |
27 | INDQ = 0 | |
28 | J = 0 | |
29 | C | |
30 | 10 INDQ = INDQ + J | |
31 | IS = INDS | |
32 | IQ = INDQ | |
33 | SUM = 0. | |
34 | K = 0 | |
35 | C | |
36 | 15 IF (K.GT.I) GO TO 20 | |
37 | IS = IS + 1 | |
38 | GO TO 30 | |
39 | 20 IS = IS + K | |
40 | 30 IF (K.GT.J) GO TO 40 | |
41 | IQ = IQ + 1 | |
42 | GO TO 50 | |
43 | 40 IQ = IQ + K | |
44 | 50 SUM = SUM + S(IS)*Q(IQ) | |
45 | K = K + 1 | |
46 | IF (K.LT.M) GO TO 15 | |
47 | IQQ = INDS | |
48 | L = 0 | |
49 | C | |
50 | 60 IR = IR + 1 | |
51 | IF (L.GT.I) GO TO 70 | |
52 | IQQ = IQQ + 1 | |
53 | GO TO 80 | |
54 | 70 IQQ = IQQ + L | |
55 | 80 R(IR) = R(IR) + Q(IQQ)*SUM | |
56 | L = L + 1 | |
57 | IF (L.LE.J) GO TO 60 | |
58 | J = J + 1 | |
59 | IF (J.LT.M) GO TO 10 | |
60 | I = I + 1 | |
61 | IF (I.LT.M) GO TO 5 | |
62 | C | |
63 | RETURN | |
64 | END |