113 real*4 int1, int2,
ans, xm,
tf, rf,
p 121 if(
p .le. 0.1
d0)
then 124 ans =((-0.57001
e-02*
p + 0.12049 )*
p+1.3470)*
p 131 int2 = 2.0**
p/
p * (
g**
p - xm**
p)
138 if(u .lt. int1/(int1+int2))
then 141 int1 = sqrt(2.0*(xm-1.0))
143 int2 = 2.0**
p/
p *(xm**
p-1.0)
145 if(int1 .eq. 0. .and. int2 .eq. 0.)
then 153 if(u .lt. int1 /(int1+int2))
then 156 x = (u*int1)**2/2.0+1.0
160 x =(
p*int2*u/2.0**
p+ 1.)**(1./
p)
162 if(
x .eq. 1.0)
goto 10
164 tf = 1./(
x-sqrt(
x*
x-1.0))**
p/sqrt(
x*
x-1.0)
165 rf = (2.0*
x)**
p/
x + 1.0/sqrt(2*(
x-1.0))
166 if(u .lt.
tf/rf)
goto 10
172 x =(
p*int2*u/2.0**
p+ xm**
p)**(1./
p)
subroutine cerrormsg(msg, needrtn)
dE dx *! Nuc Int sampling table e
integer nfrac tf(nfrac) data frac/0.05d0
atmos%rho(atmos%nodes) **exp(-(z-atmos%z(atmos%nodes))/Hinf) elseif(z .lt. atmos%z(1)) then ans=atmos%rho(1) **exp((atmos%z(1) -z)/atmos%H(1)) else call kdwhereis(z, atmos%nodes, atmos%z, 1, i) a=atmos%a(i) if(a .ne. 0.d0) then ans=atmos%rho(i) **(1+a *(z-atmos%z(i))/atmos%H(i)) **(-1.0d0-1.d0/a) else ans=*atmos%rho(i) *exp(-(z-atmos%z(i))/atmos%H(i)) endif endif ! zsave=z ! endif cvh2den=ans end ! ---------------------------------- real *8 function cvh2temp(z) implicit none ! vettical height to temperatur(Kelvin) real *8 z ! input. vertical height in m ! output is temperature of the atmospher in Kelvin real *8 ans integer i if(z .gt. atmos%z(atmos%nodes)) then ans=atmos%T(atmos%nodes) elseif(z .lt. atmos%z(1)) then ans=atmos%T(1)+atmos%b(1) *(z - atmos%z(1)) else call kdwhereis(z, atmos%nodes, atmos%z, 1, i) ans=atmos%T(i)+atmos%b(i) *(z-atmos%z(i)) endif cvh2temp=ans end !--------------------------------------------- real *8 function cthick2h(t) implicit none real *8 t ! input. air thickness in kg/m^2 real *8 logt, ans integer i real *8 dod0, fd, a logt=log(t) if(t .ge. atmos%cumd(1)) then ans=atmos%z(1) - *(logt - atmos%logcumd(1)) *atmos%H(1) elseif(t .le. atmos%cumd(atmos%nodes)) then ans=atmos%z(atmos%nodes) - *Hinf *log(t/atmos%cumd(atmos%nodes)) else call kdwhereis(t, atmos%nodes, atmos%cumd, 1, i) ! i is such that X(i) > x >=x(i+1) ans
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 true
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
dE dx *! Nuc Int sampling table g
! structure defining a particle at production ! Basic idea of what is to be contained in ! the particle structue is that dynamical ones should be included those derivable from the particle code ! is not included ******************************************************type fmom momentum sequence union map real e endmap map real * x