COSMOS v7.655  COSMOSv7655
(AirShowerMC)
intePrim2.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine inteprim2 (comp, i1, i2, ans)
 

Function/Subroutine Documentation

◆ inteprim2()

subroutine inteprim2 ( type (component comp,
integer  i1,
integer  i2,
real*8  ans 
)

Definition at line 2 of file intePrim2.f.

Referenced by inteflux().

2  implicit none
3 #include "Zptcl.h"
4 #include "Zprimary.h"
5 ! primary flux at E
6  type(component)::comp
7  integer i1, i2
8  real*8 ans
9 
10  real*8 sum
11 
12  integer i
13  sum = 0.
14 
15  do i = i1, i2
16  if(comp%cut .ne. 0.) then
17  if(comp%emin .le. comp%energy(i)) then
18  sum = comp%norm_inte(i)
19  goto 100
20  endif
21  else
22  sum = comp%norm_inte(i)
23  goto 100
24  endif
25  enddo
26  100 continue
27  ans = sum * comp%inte_value
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
nodes i
Here is the caller graph for this function: