97 integer iseed(25), ir1(2), ir2, jold, jnew
98 logical first2/.true./
107 elseif(jsw .eq. 2)
then 110 call rnd2ix(31415926)
116 write(*,*)
' switch value error=',jsw,
' in rndc ' 130 elseif(jsw .eq. 2)
then 133 call rnd2ix(31415926)
137 write(*,*)
' switch value error=',jsw,
' in rndd ' 154 entry rndsw(jold, jnew)
160 subroutine rnd1u(ua, n)
179 integer irin(2), irout(2), iseed1, iseed2, i, k, iz
181 data iseed1,iseed2 /12345,67890/
185 iseed1 = 40014*(iseed1 - k*53668) - k*12211
186 if(iseed1 .lt. 0) iseed1=iseed1+2147483563
189 iseed2 = 40692*(iseed2 - k*52774) - k* 3791
190 if(iseed2 .lt. 0) iseed2=iseed2+2147483399
193 if(iz .lt. 1) iz = iz + 2147483562
195 ua(i) = iz * 4.656613
d-10
211 subroutine rnd2u(ua,n)
233 integer ns, ns1, i, isd, k
235 real*8 seeds(ns), uni
236 integer iseeds(ns), isdin(ns1), isdout(ns1), icarry
237 real*8 twop24, twom24
238 integer itwo24, icons, i24, j24, ivec, jseed, inseed
240 parameter(twom24=2.**(-24), itwo24=2**24, icons=2147483563)
242 save i24, j24, carry, seeds
243 data i24, j24, carry/ns, 10, 0./
250 uni = seeds(i24) - seeds(j24) - carry
251 if(uni .lt. 0.
d0)
then 258 if(uni .eq. 0.
d0)
then 263 if(i24 .eq. 0) i24 = ns
265 if(j24 .eq. 0) j24 = ns
274 seeds(i) =isdin(i)*twom24
276 carry = mod(isdin(ns1),10)*twom24
287 isdout(i) = int(seeds(i)*twop24)
289 if(carry .gt. 0.)
then 294 isdout(ns1) = 1000*j24 + 10*i24 + icarry
303 jseed = 40014*(jseed-k*53668) -k*12211
304 if(jseed .lt. 0) jseed = jseed+icons
305 iseeds(i) = mod(jseed,itwo24)
308 seeds(i) =iseeds(i)*twom24
313 if(seeds(ns) .lt. seeds(14)) carry = twom24
315 subroutine rnde(ua,n)
331 integer,
intent(in):: n
332 real*8 ua(n), sina(102)
333 logical first/.true./
366 integer,
intent(in):: n
372 real(8):: u(97), uni, s, t, zuni
373 real*8 sina(102), sout(102)
375 integer ns, ijkl, i97, j97, ij, kl, i, j, k, l, ii, ivec
376 real*8 twom24, c, cd, cm
378 save c, cd, cm, i97, j97
382 i = mod(ij/177, 177) + 2
384 k = mod(kl/169, 178) + 1
390 m = mod(mod(i*j,179)*k, 179)
395 if(mod(l*m,64) .ge. 32) s = s+t
402 cm = 16777213.*twom24
411 if(uni .lt. 0.) uni=uni+1.
414 if(i97 .eq. 0) i97=97
416 if(j97 .eq. 0) j97=97
420 if(uni .lt. 0.) uni=uni+1.
426 if(zuni .eq. 0.) zuni= twom24*twom24
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
dE dx *! Nuc Int sampling table d
block data cblkElemag data *AnihiE ! Eposi< 1 TeV, anihilation considered *X0/365.667/, ! radiation length of air in kg/m2 *Ecrit/81.e-3/, ! critical energy of air in GeV *MaxComptonE/1./, ! compton is considered below 1 GeV *MaxPhotoE/1.e-3/, ! above this, PhotoElectric effect neg. *MinPhotoProdE/153.e-3/, ! below 153 MeV, no gp --> hadrons ! scattering const not MeV *Knockon ! knockon is considered Obsolete *PhotoProd false