]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | *================================================================== | |
3 | ||
4 | FUNCTION RKZF(L1,P1,Q,RMB,L2,P2) | |
5 | * COMPUTES THE SCALAR STRUCTURE | |
6 | * U_BAR(L1,P1)(SLASH(Q)+RMB)U(L2,P2) | |
7 | IMPLICIT DOUBLE PRECISION(A-H,O-Z) | |
8 | COMPLEX RKZF,RKZPR,RKZSF | |
9 | COMPLEX ANSF(-1:1,1:4,1:8,-1:1,1:4) | |
10 | INTEGER DONF(-1:1,1:4,1:8,-1:1,1:4) | |
11 | COMMON/RKZFCO/ANSF,DONF | |
12 | DIMENSION P1(0:4),P2(0:4),Q(0:4),R(0:4) | |
13 | * CHECK ON CORRECT LABEL INPUT | |
14 | IP1=IDINT(P1(4)) | |
15 | IQ=IDINT(Q(4)) | |
16 | IP2=IDINT(P2(4)) | |
17 | IF(IABS(L1).NE.1.OR.IABS(L2).NE.1.OR. | |
18 | . IP1.LT.1.OR.IP1.GT.4 .OR. | |
19 | . IQ.LT.1.OR.IQ.GT.8 .OR. | |
20 | . IP2.LT.1.OR.IP2.GT.4) THEN | |
21 | WRITE(6,*) ' RKZF LABEL ERROR' | |
22 | WRITE(6,*) 'L1=',L1,' IP1=',IP1,' IQ=',IQ, | |
23 | . ' L2=',L2,' IP2=',IP2 | |
24 | STOP | |
25 | ENDIF | |
26 | * CHECK WHETHER THIS ONE HAS BEEN CALCULATED ALREADY | |
27 | IF(DONF(L1,IP1,IQ,L2,IP2).EQ.0) THEN | |
28 | * THIS ONE NOT DONE YET: DO IT AND STORE THE RESULT IN ARRAY 'ANSF' | |
29 | IF(L1.EQ.L2) THEN | |
30 | A=2D0*RKDOT(Q,P2) | |
31 | C IF(DABS(A).LT.(1D-10*P2(0)*Q(0))) THEN | |
32 | C...The check above is extended to following. | |
33 | IF(ABS(A).LT.MAX(1D-8,ABS(1D-10*P2(0)*Q(0)))) THEN | |
34 | ANSF(L1,IP1,IQ,L2,IP2)=(0.,0.) | |
35 | ELSE | |
36 | A=RKDOT(Q,Q)/A | |
37 | DO 100 K=0,3 | |
38 | R(K)=Q(K)-A*P2(K) | |
39 | 100 CONTINUE | |
40 | IF(R(0).GT.0D0) THEN | |
41 | C=1D0 | |
42 | ELSE | |
43 | DO 110 K=0,3 | |
44 | R(K)=-R(K) | |
45 | 110 CONTINUE | |
46 | C=-1D0 | |
47 | ENDIF | |
48 | ANSF(L1,IP1,IQ,L2,IP2)=C*RKZPR(L1,P1,R)*RKZPR(-L1,R,P2) | |
49 | ENDIF | |
50 | ELSEIF(L1.EQ.-L2) THEN | |
51 | ANSF(L1,IP1,IQ,L2,IP2)=RMB*RKZSF(L1,P1,L2,P2) | |
52 | ELSE | |
53 | WRITE(6,*) ' ERROR IN RKZF: L1=',L1,' L2=',L2 | |
54 | STOP | |
55 | ENDIF | |
56 | RKZF=ANSF(L1,IP1,IQ,L2,IP2) | |
57 | DONF(L1,IP1,IQ,L2,IP2)=1 | |
58 | ELSE | |
59 | RKZF=ANSF(L1,IP1,IQ,L2,IP2) | |
60 | ENDIF | |
61 | END |