]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MINICERN/mathlib/gen/v/permu.F
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / v / permu.F
diff --git a/MINICERN/mathlib/gen/v/permu.F b/MINICERN/mathlib/gen/v/permu.F
deleted file mode 100644 (file)
index 0159d53..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-*
-* $Id$
-*
-* $Log$
-* Revision 1.1.1.1  1996/04/01 15:02:57  mclareni
-* Mathlib gen
-*
-*
-#include "gen/pilot.h"
-      SUBROUTINE PERMU(IA,N)
-C
-      CHARACTER*(*) NAME
-      PARAMETER(NAME='PERMUT')
-C
-      DIMENSION IA(*)
-      PARAMETER (IFD = 12)
-      DIMENSION IFCT(0:IFD),IV(IFD+1)
-      CHARACTER*80 ERRTXT
-
-      DATA (IFCT(I),I=0,IFD) /1,1,2,6,24,120,720,5040,40320,362880,
-     1                        3628800,39916800,479001600/
-
-      IF(N .LE. 0) RETURN
-      IF(IA(1) .EQ. 0) THEN
-       DO 11 I = 1,N
-   11  IA(I)=I
-       IF(N .EQ. 1) IA(1)=0
-      ELSE
-       DO 12 K1 = N,2,-1
-       K=K1
-       IF(IA(K-1) .LT. IA(K)) GO TO 14
-   12  CONTINUE
-       IA(1)=0
-       RETURN
-   14  KN=K+N
-       DO 15 L = K,KN/2
-       IB=IA(KN-L)
-       IA(KN-L)=IA(L)
-   15  IA(L)=IB
-       DO 16 L1 = K,N
-       L=L1
-       IF(IA(L) .GT. IA(K-1)) GO TO 17
-   16  CONTINUE
-   17  IB=IA(K-1)
-       IA(K-1)=IA(L)
-       IA(L)=IB
-      ENDIF
-      RETURN
-
-      ENTRY PERMUT(NRP,N,IA)
-
-      IF(N .LE. 0) RETURN
-      IF(N .GT. IFD) THEN
-       WRITE(ERRTXT,101) N
-       CALL MTLPRT(NAME,'V202.1',ERRTXT)
-      ELSEIF(NRP .GT. IFCT(N)) THEN
-       IA(1)=0
-       CALL MTLPRT(NAME,'V202.2',
-     +             'PERMUTATION OUTSIDE LEXICON REQUESTED')
-      ELSE
-       DO 21 I = 1,N
-   21  IV(I)=I
-       IO=NRP-1
-       DO 22 M = N-1,1,-1
-       IN=IO/IFCT(M)+1
-       IO=MOD(IO,IFCT(M))
-       IA(N-M)=IV(IN)
-       DO 23 I = IN,M
-   23  IV(I)=IV(I+1)
-   22  CONTINUE
-       IA(N)=IV(1)
-      END IF
-      RETURN
-
-      ENTRY COMBI(IA,N,J)
-
-      IF(N .LE. 0 .OR. J .LE. 0) RETURN
-      IF(J .GT. N) THEN
-       WRITE(ERRTXT,103) J,N
-       CALL MTLPRT(NAME,'V202.3',ERRTXT)
-      ELSEIF(IA(1) .EQ. 0) THEN
-       DO 31 I = 1,J
-   31  IA(I)=I
-       IA(J+1)=0
-      ELSE
-       DO 32 I1 = 1,N
-       I=I1
-       IF(IA(I+1) .NE. IA(I)+1) GO TO 33
-   32  IA(I)=I
-   33  IA(I)=IA(I)+1
-       IF(IA(J) .EQ. N+1) IA(1)=0
-      ENDIF
-      RETURN
-  101 FORMAT('N = ',I20,' TOO BIG')
-  103 FORMAT('J = ',I5,' > ',I5,' = N IS NOT PERMITTED')
-      END