Go to the source code of this file.
◆ cinisegatmos()
subroutine cinisegatmos |
( |
| ) |
|
Definition at line 2 of file ciniSegAtoms.f.
References cerrormsg(), copenf(), cskipcomment(), d0, fd1, and true.
13 call copenf(tempdev, atmosfile, icon)
14 if(icon .ne. 0) stop 9999
16 if(icon .ne. 0) stop 9999
21 read(tempdev, *, iostat=ios)
22 * atmos%z(nodes+1), atmos%T(nodes+1), atmos%P(nodes+1),
23 * atmos%rho(nodes+1), atmos%a(nodes+1), atmos%d0(nodes+1),
24 * atmos%cumd(nodes+1), atmos%H(nodes+1)
25 if(ios .ne. 0)
goto 10
26 if(nodes .ge. maxnodes)
then 27 write(msg,*)
'numbr of nodes for atmosphere > ', maxnodes
31 if(mostz .eq. 0 .and. znode(nodes) .gt. 2900.)
then 40 if(anode(
i) .ne. 0.)
then 41 fd1i(
i) =
fd1(znode(
i+1), anode(
i), znode(
i),
43 rhopnode(
i) = rhonode(
i) *(-1.
d0 -1.
d0/anode(
i)) *
44 * anode(
i)/scalehnode(
i)
45 pwp(
i) =-2.
d0-1.
d0/anode(
i)
47 fd0i(
i) = fd0( znode(
i+1), znode(
i), scalehnode(
i) )
subroutine cerrormsg(msg, needrtn)
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 cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
subroutine copenf(io, fnin, icon)
! to be included just before the execution code ! density as a function of height real * fd1
◆ cvh2den()
Definition at line 54 of file ciniSegAtoms.f.
References cerrormsg(), d0, and kdwhereis().
Referenced by __atmosd2.f__(), and cvh2den().
65 if(
z .ge. znode(mostz) .and.
z .lt. znode(mostz+1))
then 67 elseif(
z .ge znode(mostz + 1) .and.
z .lt. znode(mostz+2)
then 71 if(
z .ge. znode(
i-1) .and.
z .lt. znode(
i))
then 77 call cerrormsg(
'height becomes too small ', 0)
81 if(anode(
i) .ne. 0.)
then 85 * (
z-znode(
i))/scalehnode(
i) )**(-1.0-1.
d0/anode(
i))
88 * rhonode(
i) * exp(- (
z-znode(
i))/scalehnode(
i))
subroutine cerrormsg(msg, needrtn)
subroutine kdwhereis(x, in, a, step, loc)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
real *8 function cvh2den(z)
◆ cvh2den2p()
Definition at line 251 of file ciniSegAtoms.f.
References cstdatmos0(), ha, and hl.
Referenced by __atmosd2.f__(), cvh2den2p(), and main().
261 #include "Zstdatmos.h" 270 if(
z .lt. znode(2))
then 272 * * ( (
ha -
z)/
hl )**(
pw-2.d0node)
275 if(
z .lt. znode(
i) .or.
i .eq. nodes )
then 276 if(anode(
i-1) .ne. 0.)
then 278 * rhonodep(
i) * pwp(
i) *anode(
i-1)/scalehnode(
i-1)*
279 * (1.d0node + anode(
i-1)*
280 * (
z-znode(
i-1))/scalehnode(
i-1) )**(pwp(
i)-1.d0node)
284 * rhonode(
i-1) * exp(- (
z-znode(
i-1))/scalehnode(
i-1))
! common for std atmosphere real *AlmostVacH ! almost vacuum height real *AlmostVacT ! thickness there hl
real *8 function cvh2den2p(z)
! common for std atmosphere real *AlmostVacH ! almost vacuum height real *AlmostVacT ! thickness there hlhmi common comstdatm ha
◆ cvh2denp()
Definition at line 201 of file ciniSegAtoms.f.
References cerrormsg(), d0, and kdwhereis().
Referenced by __atmosd2.f__(), cvh2denp(), and main().
211 #include "Zstdatmos.h" 218 if(
z .ge. znode(mostz) .and.
z .lt. znode(mostz+1))
then 220 elseif(
z .ge znode(mostz + 1) .and.
z .lt. znode(mostz+2)
then 224 if(
z .ge. znode(
i-1) .and.
z .lt. znode(
i))
then 230 call cerrormsg(
'height becomes too small ', 0)
235 if(anode(
i) .ne. 0.)
then 242 * (
z-znode(
i))/scalehnode(
i) )**pwp(
i)
245 * -rhonode(
i) * exp(- (
z-znode(
i))/scalehnode(
i))
subroutine cerrormsg(msg, needrtn)
real *8 function cvh2denp(z)
subroutine kdwhereis(x, in, a, step, loc)
block data cblkEvhnp ! currently usable models data RegMdls ad *special data *Cekaon d0
◆ cvh2thick()
Definition at line 93 of file ciniSegAtoms.f.
References cerrormsg(), fd1, and kdwhereis().
Referenced by __atmosd2.f__(), and cvh2thick().
100 #include "Zstdatmos.h" 106 #include "Zstdatmosf.h" 117 if(
z .ge. znode(mostz) .and.
z .lt. znode(mostz+1))
then 119 elseif(
z .ge znode(mostz + 1) .and.
z .lt. znode(mostz+2)
then 123 if(
z .ge. znode(
i-1) .and.
z .lt. znode(
i))
then 129 call cerrormsg(
'height becomes too small ', 0)
134 if(anode(
i) .ne. 0.)
then 137 * 1.0-
fd1(
z, anode(
i), znode(
i), scalehnode(
i))
142 * fd0(
z, znode(
i), scalehnode(
i) )
subroutine cerrormsg(msg, needrtn)
subroutine kdwhereis(x, in, a, step, loc)
! to be included just before the execution code ! density as a function of height real * fd1
real *8 function cvh2thick(z)
◆ cvthick2h()
Definition at line 148 of file ciniSegAtoms.f.
References cerrormsg(), kdwhereis(), and z.
Referenced by cvthick2h().
161 if(
z .ge. znode(mostz) .and.
z .lt. znode(mostz+1))
then 163 elseif(
z .ge znode(mostz + 1) .and.
z .lt. znode(mostz+2)
then 167 if(
z .ge. znode(
i-1) .and.
z .lt. znode(
i))
then 173 call cerrormsg(
'height becomes too small ', 0)
178 if(anode(
i) .ne. 0. )
then 184 temp =1.0 - (dsumnode(
i) -
t )/d0node(
i)
187 * scalehnode(
i)/anode(
i) + znode(
i)
194 temp =1.0- (
t -dsumnode(
i)) /d0node(
i)
subroutine cerrormsg(msg, needrtn)
real *8 function cvthick2h(t)
subroutine kdwhereis(x, in, a, step, loc)