]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | *================================================================== | |
3 | ||
4 | FUNCTION RKZSF(L1,P1,L2,P2) | |
5 | IMPLICIT DOUBLE PRECISION(A-H,O-Z) | |
6 | COMPLEX RKZSF,RKZPR | |
7 | COMPLEX ANSS(-1:1,1:4,-1:1,1:4) | |
8 | INTEGER DONS(-1:1,1:4,-1:1,1:4) | |
9 | COMMON/RKZSCO/ANSS,DONS | |
10 | DIMENSION P1(0:4),P2(0:4) | |
11 | * CHECK ON CORRECT LABEL INPUT | |
12 | IP1=IDINT(P1(4)) | |
13 | IP2=IDINT(P2(4)) | |
14 | IF(IABS(L1).NE.1.OR.IABS(L2).NE.1.OR. | |
15 | . IP1.LT.1.OR.IP2.GT.4.OR.IP2.LT.1.OR.IP2.GT.4) THEN | |
16 | WRITE(6,*) | |
17 | . ' RKZSF: ERROR L1=',L1,' L2=',L2,' IP1=',IP1,' IP2=',IP2 | |
18 | STOP | |
19 | ENDIF | |
20 | * CHECK WHETER THIS ONE WAS ALREADY COMPUTED | |
21 | * DONS(,,,)=0: NOT YET COMPUTED, DONS(,,,)=1: ALREADY COMPUTED | |
22 | * IF NOT YET COMPUTED: COMPUTE IT, AND STORE IN ARRAY 'ANSS' | |
23 | * IF ALREADY COMPUTED: GET THE RESULT FROM ARRAY 'ANSS' | |
24 | IF(DONS(L1,IP1,L2,IP2).EQ.0) THEN | |
25 | IF(L1.EQ.L2) THEN | |
26 | ANSS(L1,IP1,L2,IP2)=(0.,0.) | |
27 | ELSE | |
28 | ANSS(L1,IP1,L2,IP2)=RKZPR(L1,P1,P2) | |
29 | ENDIF | |
30 | DONS(L1,IP1,L2,IP2)=1 | |
31 | ENDIF | |
32 | RKZSF=ANSS(L1,IP1,L2,IP2) | |
33 | END |