]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/02/15 17:49:55 mclareni | |
6 | * Kernlib | |
7 | * | |
8 | * | |
9 | #include "kerngen/pilot.h" | |
10 | SUBROUTINE TRASAT (A,S,R,M,N) | |
11 | C | |
12 | C CERN PROGLIB# F112 TRASAT .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(*),A(*),R(*) | |
19 | C | |
20 | IMAX = (M*M+M)/2 | |
21 | CALL VZERO (R,IMAX) | |
22 | MN = M*N | |
23 | IND = 0 | |
24 | I = 0 | |
25 | C | |
26 | 5 IND = IND + I | |
27 | IA = 0 | |
28 | IR = 0 | |
29 | C | |
30 | 10 IS = IND | |
31 | SUM = 0. | |
32 | K = 0 | |
33 | C | |
34 | 15 IF (K.GT.I) GO TO 20 | |
35 | IS = IS + 1 | |
36 | GO TO 30 | |
37 | 20 IS = IS + K | |
38 | 30 IA = IA + 1 | |
39 | SUM = SUM + S(IS)*A(IA) | |
40 | K = K + 1 | |
41 | IF (K.LT.N) GO TO 15 | |
42 | IAA = I + 1 | |
43 | 40 IR = IR + 1 | |
44 | R(IR) = R(IR) + SUM*A(IAA) | |
45 | IAA = IAA + N | |
46 | IF (IAA.LE.IA) GO TO 40 | |
47 | IF (IA.LT.MN) GO TO 10 | |
48 | C | |
49 | I = I + 1 | |
50 | IF (I.LT.N) GO TO 5 | |
51 | C | |
52 | RETURN | |
53 | END |