69 real*8 function cnewcos(H, cost, L)
74 real*8 eps/1.d-8/, tmp
79 * ( ( tmp * (1.-cost**2)/2 -cost)*tmp +1.)
80 elseif(abs(cost) .ne. 1.
d0)
then 81 cnewcos = (cost - tmp)/ sqrt( (tmp - cost*2)*tmp +1.)
87 real*8 function cnewsin(H, cost, L)
93 sint = sqrt(1.
d0 - cost**2)
94 cnewsin = h * sint/ cnewh(h, cost, l)
97 real*8 function cnewh(H, cost, L)
99 real*8 H, cost, L, tmp
104 if(tmp .lt. eps)
then 105 cnewh = h * ( (tmp * (1.
d0 -cost**2)/2 - cost )* tmp + 1.
d0)
107 cnewh =h* sqrt( ( tmp - cost*2)*tmp + 1.
d0 )
111 subroutine cnewcossin(h1, cos1, leng, h2, cos2, sin2)
125 sin1 = sqrt(1.
d0 - cos1**2)
126 h2 = cnewh(h1, cos1, leng)
128 cos2 = (h1*cos1 -leng)/h2
141 real*8 sint, costp, sintp
144 sint = sqrt(1.
d0 - cost**2)
146 if(sintp .le. 1.0
d0)
then 148 costp = sqrt(1.
d0 - sintp**2)*sign(1.
d0, cost)
150 if(abs(1.
d0-sintp**2) .lt. 1.
d-6)
then 153 write(text, *)
'h1, h2, cost=', h1, h2, cost,
157 *
cerrormsg(
'h1,h2,cost invalid at clenbetwee2h', 0)
175 subroutine clenbetw2h(h1, h2, cost, leng, icon)
181 real*8 sint, costp, sintp
184 sint = sqrt(1.
d0 - cost**2)
187 if(sintp .le. 1.0
d0)
then 188 costp = sqrt(1.
d0 - sintp**2)*sign(1.
d0, cost)
189 leng = h1* cost - h2 * costp
191 if(abs(1.
d0-sintp**2) .lt. 1.
d-6)
then subroutine cerrormsg(msg, needrtn)
real *8 function cnewsin(H, cost, L)
real *8 function clenbetween2h(h1, h2, cost)
subroutine cnewcossin(h1, cos1, leng, h2, cos2, sin2)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
dE dx *! Nuc Int sampling table d
subroutine clenbetw2h(h1, h2, cost, leng, icon)
real *8 function cnewcos(H, cost, L)
real *8 function cnewh(H, cost, L)