5 * Revision 1.1.1.1 1996/04/01 15:01:48 mclareni
10 #if defined(CERNLIB_DOUBLE)
11 SUBROUTINE DTCLGN(J1,J2,J3,M1,M2,M3,DNUM,DDEN,KPEX)
12 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14 #if !defined(CERNLIB_DOUBLE)
15 SUBROUTINE DTCLGN(J1,J2,J3,M1,M2,M3,DNUM,DDEN,KPEX)
16 #include "gen/imp64.inc"
20 PARAMETER (NAME = 'DTCLGN')
25 DIMENSION IPRIM(MXP),PRIM(MXP),LS(MXP,12),LR(MXP,100)
26 DIMENSION ISD(11),JS(100),IA(7)
28 DATA (IA(I),I=1,7) /-1,1,1,-1,-1,1,1/
30 DATA (IPRIM(I),I=1,MXP)
31 1/ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
32 2 59, 61, 67, 71, 73, 79, 83, 89, 97,101,103,107,109,113,127,131,
33 3 137,139,149,151,157,163,167,173/
41 IF(J1 .LT. 0 .OR. J2 .LT. 0 .OR. J3 .LT. 0) GO TO 99
42 IF(MOD(J1+J2+J3,2) .NE. 0) GO TO 99
46 IF(J1 .LT. MX .OR. J2 .LT. MY .OR. J3 .LT. MZ) GO TO 99
47 IF(MOD(J1+MX,2) .NE. 0 .OR. MOD(J2+MY,2) .NE. 0) GOTO 99
48 IF(MOD(J3+MZ,2) .NE. 0) GOTO 99
49 IF(M1+M2 .NE. M3) GO TO 99
62 IF(ISD(2) .LT. 0 .OR. ISD(3) .LT. 0 .OR. ISD(4) .LT. 0) GO TO 99
67 IF(ISD(1) .GT. 1) THEN
72 IF(K .EQ. MXP+1) GO TO 48
73 43 IF(MOD(N1,IPRIM(K)) .NE. 0) GO TO 42
76 IF(N1 .NE. 1) GO TO 43
79 WRITE(ERRTXT,101) J1,J2,J3,M1,M2,M3
80 CALL MTLPRT(NAME,'U112.1',ERRTXT)
90 IF(K .EQ. MXP+1) GO TO 58
91 53 IF(MOD(N1,IPRIM(K)) .NE. 0) GO TO 52
94 IF(N1 .NE. 1) GO TO 53
97 WRITE(ERRTXT,101) J1,J2,J3,M1,M2,M3
98 CALL MTLPRT(NAME,'U112.1',ERRTXT)
105 5 LS(J,12)=LS(J,12)+LS(J,1)+LS(J,2)+LS(J,3)+LS(J,4)+LS(J,5)+LS(J,6)
106 1 -LS(J,7)-LS(J,8)-LS(J,9)-LS(J,10)-LS(J,11)
116 12 ISD(L)=ISD(L)/2-IA(L)
118 13 ISD(L)=ISD(L)+IA(L)
119 IF(ISD(2) .LT. 0 .OR. ISD(6) .LT. 0) GO TO 3
120 IF(ISD(1) .LT. 0 .OR. ISD(4) .LT. 0 .OR. ISD(5) .LT. 0) GO TO 4
130 IF(K .EQ. MXP+1) GO TO 68
131 63 IF(MOD(N1,IPRIM(K)) .NE. 0) GO TO 62
134 IF(N1 .NE. 1) GO TO 63
137 WRITE(ERRTXT,101) J1,J2,J3,M1,M2,M3
138 CALL MTLPRT(NAME,'U112.1',ERRTXT)
147 9 LR(J,MM)=LS(J,1)+LS(J,2)-LS(J,3)-LS(J,4)-LS(J,5)-LS(J,6)
153 31 LS(J,8)=MIN(LS(J,8),LR(J,JK))
159 IF(JEX .GT. 0) BNUM=BNUM*PRIM(J)**JEX
161 32 BSUM=BSUM+BNUM*JS(JM)
162 IF(BSUM .EQ. 0) GO TO 99
171 IF(K .EQ. MXP+1) GO TO 78
172 73 IF(MOD(A1,PRIM(K)) .NE. 0) GO TO 72
175 IF(A1 .NE. 1) GO TO 73
178 WRITE(ERRTXT,101) J1,J2,J3,M1,M2,M3
179 CALL MTLPRT(NAME,'U112.1',ERRTXT)
184 22 KPEX(J)=LS(J,12)+2*(LS(J,8)+LS(J,1))
188 PP=PRIM(J)**ABS(KPEX(J))
189 IF(KPEX(J) .GE. 0) THEN
198 101 FORMAT('LIST OF PRIME NUMBERS EXHAUSTED',2X,3I5,2X,3I5)