5 * Revision 1.1.1.1 1995/10/24 10:21:57 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/04 23/02/95 14.46.01 by S.Giani
12 SUBROUTINE ISOTPE(D,LD,KM,RHO,IN,IDICTS,LDICT,E,TSIG,NMED,
14 C THIS ROUTINE DETERMINES WHICH ISOTOPE HAS BEEN STRUCK
16 #include "geant321/minput.inc"
17 #include "geant321/mconst.inc"
18 #include "geant321/mmicab.inc"
20 DIMENSION D(*),LD(*),KM(*),RHO(*),IN(*),IDICTS(NNR,NNUC),
27 #if defined(CERNLIB_MDEBUG)
29 IF(KM(K).NE.NMED)GO TO 10
30 C DETERMINE ISOTOPE NUMBER
33 C DETERMINE TOTAL CROSS SECTION FOR THIS ISOTOPE
34 LS1=IDICTS(1,K1)+LMOX2
37 CALL TBSPLT(D(LS1),E,LEN,X)
39 PRINT *,' ISOTPE: K=',K,' RHO=',RHO(K),' Sig=',X*RHO(K),
40 + ' SUM=',SUM,' TSIG=',TSIG,' R=',R
45 IF(KM(K).NE.NMED)GO TO 30
46 C DETERMINE ISOTOPE NUMBER
49 C DETERMINE TOTAL CROSS SECTION FOR THIS ISOTOPE
50 LS1=IDICTS(1,K1)+LMOX2
53 CALL TBSPLT(D(LS1),E,LEN,X)
55 C CHECK TO SEE IF THIS ISOTOPE WAS HIT
56 IF(R.LE.SUM/TSIG)GO TO 40
58 C AN ISOTOPE WAS NOT CHOSEN, TRY AGAIN
66 #if defined(CERNLIB_MDEBUG)
67 PRINT *,' Isotope chosen : K=',K
70 50 WRITE(IOUT,10000)NMED,TSIG
71 10000 FORMAT(' MICAP: AN ISOTOPE WAS NOT CHOSEN IN 5 ATTEMPTS IN ',
72 +'ROUTINE ISOTPE',/,3X,'MEDIUM=',I5,5X,'MACROSCOPIC XSEC=',
74 WRITE(IOUT,10100)R,SUM,TSIG,X,E,RHO(K2),NMED,K1,K2
75 10100 FORMAT('0',1X,1P6E12.4,3I10)
76 WRITE(6,*) ' CALOR: ERROR in ISOTPE =====> STOP '