]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/02/15 17:49:49 mclareni | |
6 | * Kernlib | |
7 | * | |
8 | * | |
9 | #include "kerngen/pilot.h" | |
10 | SUBROUTINE LOREN4 (DIR,P4IN,P4OUT) | |
11 | C | |
12 | C CERN PROGLIB# U101 LOREN4 .VERSION KERNFOR 4.07 830624 | |
13 | C ORIG. 20/02/68 | |
14 | C | |
15 | #if !defined(CERNLIB_B48M) | |
16 | DOUBLE PRECISION PCM2, ONMCM, EPBETA, PROD | |
17 | #endif | |
18 | DIMENSION DIR(4),P4IN(4),P4OUT(4) | |
19 | C | |
20 | C-- VN(A) MEANS N-VECTOR A | |
21 | C-- GAMMA=ECM/MCM | |
22 | C-- EPBETA=ECM*V3(PCM)*V3(BETA) | |
23 | C-- V3(BETA)=V3(PCM)/ECM | |
24 | C | |
25 | PCM2=DIR(1)*DIR(1)+DIR(2)*DIR(2)+DIR(3)*DIR(3) | |
26 | #if defined(CERNLIB_B48M) | |
27 | ONMCM=1.D0/ SQRT (DIR(4)*DIR(4)-PCM2) | |
28 | #endif | |
29 | #if !defined(CERNLIB_B48M) | |
30 | ONMCM=1.D0/DSQRT (DIR(4)*DIR(4)-PCM2) | |
31 | #endif | |
32 | EPBETA=P4IN(1)*DIR(1)+P4IN(2)*DIR(2)+P4IN(3)*DIR(3) | |
33 | PROD=EPBETA*(DIR(4)*ONMCM-1.D0)/PCM2-P4IN(4)*ONMCM | |
34 | P4OUT(4)=ONMCM*(P4IN(4)*DIR(4)-EPBETA) | |
35 | DO 50 I=1,3 | |
36 | 50 P4OUT(I)=P4IN(I)+DIR(I)*PROD | |
37 | RETURN | |
38 | END |