]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | #include "isajet/pilot.h" |
2 | SUBROUTINE DBOOST(ISIGN,F,P) | |
3 | C | |
4 | C DOUBLE PRECISION BOOST OF 5-VECTOR P BY 5-VECTOR F WITH SIGN | |
5 | C OF ISIGN. EXACT COMPONENTS ARE 1,2,5 AND LARGER OF +,- | |
6 | C | |
7 | DIMENSION F(5),P(5) | |
8 | DOUBLE PRECISION DF(5),DFPL,DFMN,DP(5),DPPL,DPMN,DBP,DSIGN | |
9 | C COPY TO DOUBLE PRECISION | |
10 | DO 100 K=1,5 | |
11 | DF(K)=F(K) | |
12 | 100 DP(K)=P(K) | |
13 | IF(ISIGN.GT.0) THEN | |
14 | DSIGN=1.D0 | |
15 | ELSE | |
16 | DSIGN=-1.D0 | |
17 | ENDIF | |
18 | C PUT ON DOUBLE PRECISION SHELL | |
19 | CALL DBLVEC(P,DP) | |
20 | C BOOST | |
21 | DBP=0.D0 | |
22 | DO 110 K=1,3 | |
23 | 110 DBP=DBP+DF(K)*DP(K) | |
24 | DBP=DBP/DF(5) | |
25 | DO 120 K=1,3 | |
26 | 120 DP(K)=DP(K)+DSIGN*DF(K)*DP(4)/DF(5)+DF(K)*DBP/(DF(4)+DF(5)) | |
27 | DP(4)=DF(4)*DP(4)/DF(5)+DSIGN*DBP | |
28 | C COPY BACK | |
29 | DO 130 K=1,4 | |
30 | 130 P(K)=DP(K) | |
31 | RETURN | |
32 | END |