
C **********************************************************************
C=* FROM: SPIDER - MODULAR IMAGE PROCESSING SYSTEM.   AUTHOR: J.FRANK  *
C=* Copyright (C) 1985-2005  Health Research Inc.                      *
C=*                                                                    *
C=* HEALTH RESEARCH INCORPORATED (HRI),                                *   
C=* ONE UNIVERSITY PLACE, RENSSELAER, NY 12144-3455.                   *
C=*                                                                    *
C=* Email:  spider@wadsworth.org                                       *
C=*                                                                    *
C=* This program is free software; you can redistribute it and/or      *
C=* modify it under the terms of the GNU General Public License as     *
C=* published by the Free Software Foundation; either version 2 of the *
C=* License, or (at your option) any later version.                    *
C=*                                                                    *
C=* This program is distributed in the hope that it will be useful,    *
C=* but WITHOUT ANY WARRANTY; without even the implied warranty of     *
C=* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
C=* General Public License for more details.                           *
C=*                                                                    *
C=* You should have received a copy of the GNU General Public License  *
C=* along with this program; if not, write to the                      *
C=* Free Software Foundation, Inc.,                                    *
C=* 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.      *
C=*                                                                    *
C **********************************************************************

C*--------------------------------------------------------------------*         
C*                                                                    *         
C*      EXHAUSTIVE RANDOM DRAWING OF K INDICES BETWEEN 1 AND N.       *         
C*      STORED IN IDK(*), IDN(N) IS A WORKING ARRAY.                  *         
C*      CALL ... SEN3A. REPLACED BY RAN FUNCTION WITH TIME-DEPENDENT  *         
C*      SEED J.F. 8/20/86. OPTION FOR SEED SPECIFICATION FROM PREVIOUS*
C*	RUN INSTALLED J.F. 11/26/86				      *         
C==06.07.80                                                           *         
C*--------------------------------------------------------------------*         

      SUBROUTINE RETIR(N,IDN,K,IDK)                                       

      DIMENSION  IDN(N) , IDK(K)

      DO J = 1,N                                                          
         IDN(J) = J                                                                 
      ENDDO

      KFIN  = K                                                                 
      IF (K .GT. N) KFIN = N 
                                
      DO  L = 1,KFIN                                                       
          X = N - L + 1                                                         
C         I = X*RAN(IST) + 1.0
	
          CALL RANDOM_NUMBER(VALUE)
          I = X * VALUE + 1.0
                                              
          IDK(L) = IDN(I)                                                            
          IF (I .NE. N) THEN 
             N1 = N - L                                                             
             IF (N1 .GT. 0) THEN                                
                DO   J = I,N1                                                         
                   IDN(J)= IDN(J+1)                                                          
                ENDDO
             ENDIF
          ENDIF
       ENDDO

       RETURN                                                                 
       END 
          

  
