Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:04:08

0001       SUBROUTINE RNHRAN(Y,N,XLO,XWID,XRAN)
0002       CHARACTER*6 NAME(2)
0003  
0004       DIMENSION Y(*)
0005  
0006       DATA IERR /0/
0007       DATA NAME /'RNHRAN','RNHPRE'/
0008  
0009       NTRY=1
0010       IF(Y(N) .EQ. 1) GOTO 4
0011       WRITE(6,101) NAME(1),Y(N)
0012       GOTO 5
0013  
0014       ENTRY RNHPRE(Y,N)
0015       NTRY=2
0016  
0017     5 YTOT=0
0018       DO 1 I = 1,N
0019       IF(Y(I) .LT. 0) GOTO 9
0020       YTOT=YTOT+Y(I)
0021     1 Y(I)=YTOT
0022       IF(YTOT .LE. 0) GOTO 9
0023       YINV=1/YTOT
0024       DO 2 I = 1,N
0025     2 Y(I)=Y(I)*YINV
0026       Y(N)=1
0027       IF(NTRY .EQ. 2) RETURN
0028  
0029     4 CALL RANLUX(YR,1)
0030       L=LOCATR(Y,N,YR)
0031       IF(L .LT. 0) THEN
0032        L=-L
0033        XRAN=XLO+XWID*(L+((YR-Y(L))/(Y(L+1)-Y(L))))
0034       ELSEIF(L .EQ. 0) THEN
0035        XRAN=XLO+XWID*(YR/Y(1))
0036       ELSE
0037        XRAN=XLO+L*XWID
0038       ENDIF
0039       RETURN
0040  
0041     9 IERR=IERR+1
0042       IF(IERR .LT. 6) WRITE(6,102) NAME(NTRY)
0043       WRITE(6,'(1X,10F13.7)') (Y(K),K=1,N)
0044       XRAN=0
0045       RETURN
0046   101 FORMAT(/7X,'+++++ CERN V149 ',A6,' : Y(N) = ',E15.6,' .NE. 1; ',
0047      1           'Y(I) NOT IN CUMULATIVE FORM.'/)
0048   102 FORMAT(/7X,'+++++ CERN V149 ',A6,' : NOT ALL VALUES Y(I) > 0'/)
0049       END
0050