This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / gheisha / add.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:06  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.38  by  S.Giani
11 *-- Author :
12 C
13 C *** VARIOUS VECTOR OPERATIONS ***
14 C
15 C COPIED FROM F14BLO.PAMLIB 23.4.82
16 C AUTHOR: V.BLOBEL (UNIVERSITY OF HAMBURG)
17 C DESYLIB
18 C
19 C *** BLANK COMMON REPLACED BY /VECUTY/ TO MATCH GEANT/GHEISHA CODE ***
20 C *** NOTE THAT P(10,100) HAS BECOME PV(10,200) DUE TO THIS         ***
21 C
22 C UN-USED ENTRIES REMOVED :
23 C     "PCOP" "PEXC" "PZER" "PWRT" "DOT4" "IMPU" "IMPULI" "ADD3"
24 C     "SUB3" "CROSS" "DOT" "SMUL" "NORZ" "PARPER" "PUNIT" "TRAP"
25 C
26 C *** ALL ENTRIES RE-WRITTEN AS SUBROUTINES USING ONLY NECESSARY ***
27 C *** "DOUBLE PRECISION" STMTS. AND ALL SPECIFIC FUNCTIONS HAVE  ***
28 C *** BEEN CHANGED TO THEIR GENERIC EQUIVALENCES                 ***
29 C *** NVE 29-MAR-1988 CERN GENEVA ***
30 C
31 C ORIGIN : H.FESEFELDT (22-JUNE-1984)
32 C
33       SUBROUTINE ADD(K,L,M)
34 C
35 C --- PV-ARRAY ---
36 #include "geant321/mxgkgh.inc"
37 #include "geant321/s_blankp.inc"
38 C
39       DOUBLE PRECISION A,B
40 C
41       A=PV(4,K)+PV(4,L)
42       PV(4,M)=A
43       B=A*A
44       DO 2 I=1,3
45       A=PV(I,K)+PV(I,L)
46       B=B-A*A
47       PV(I,M)=A
48  2    CONTINUE
49       PV(5,M)=SIGN(SQRT(ABS(B)),B)
50       RETURN
51       END