23 IMPLICIT DOUBLE PRECISION (
a-
h,
o-
z)
55 2/mn7ext/ u(mne) ,alim(mne) ,blim(mne)
56 3/mn7err/ erp(mni) ,ern(mni) ,werr(mni) ,globcc(mni)
57 4/mn7inx/ nvarl(mne) ,niofex(mne),nexofi(mni)
58 5/mn7int/
x(mni) ,xt(mni) ,dirin(mni)
59 6/mn7fx2/
xs(mni) ,xts(mni) ,dirins(mni)
60 7/mn7der/ grd(mni) ,g2(mni) ,gstep(mni) ,gin(mne) ,dgrd(mni)
61 8/mn7fx3/ grds(mni) ,g2s(mni) ,gsteps(mni)
62 9/mn7fx1/ ipfix(mni) ,npfix
63 a/mn7var/ vhmat(mnihl)
64 b/mn7vat/ vthmat(mnihl)
65 c/mn7sim/
p(mni,mni+1),pstar(mni),pstst(mni) ,pbar(mni),prho(mni)
67 parameter(maxdbg=10, maxstk=10, maxcwd=20,
maxp=30, maxcpt=101)
70 d/mn7npr/ maxint ,npar ,maxext ,nu
71 e/mn7iou/ isysrd ,isyswr ,isyssa ,npagwd ,npagln ,newpag
72 e/mn7io2/ istkrd(maxstk) ,nstkrd ,istkwr(maxstk) ,nstkwr
73 f/mn7tit/ cfrom ,cstatu ,ctitl ,cword ,cundef ,cvrsn ,covmes
74 g/mn7flg/ isw(7) ,idbg(0:maxdbg) ,nblock ,icomnd
75 h/mn7min/ amin ,
up ,edm ,fval3 ,epsi ,apsi ,dcovar
76 i/mn7cnv/ nfcn ,nfcnmx ,nfcnlc ,nfcnfr ,itaur,istrat,nwrmes(2)
78 k/mn7log/ lwarn ,lrepor ,limset ,lnolim ,lnewmn ,lphead
79 l/mn7cns/ epsmac ,epsma2 ,vlimlo ,vlimhi ,undefi ,bigedm,updflt
80 m/mn7rpt/ xpt(maxcpt) ,ypt(maxcpt)
81 n/mn7cpt/ chpt(maxcpt)
82 o/mn7xcr/ xmidcr ,ymidcr ,xdircr ,ydircr ,ke1cr ,ke2cr
83 CHARACTER ctitl*50, cword*(maxcwd), cundef*10, cfrom*8,
84 + cvrsn*6, covmes(0:3)*22, cstatu*10, chpt*1
85 LOGICAL lwarn, lrepor, limset, lnolim, lnewmn, lphead
86 CHARACTER crdbuf*(*),cunit*10,cfname*64,cgname*64,canswr*1
88 LOGICAL lopen,lrewin,noname,lname,
mnunpt 91 IF (index(crdbuf,
'*EOF') .EQ. 1)
GO TO 190
92 IF (index(crdbuf,
'*eof') .EQ. 1)
GO TO 190
96 IF (crdbuf(ic:ic) .EQ.
' ')
GO TO 25
97 IF (crdbuf(ic:ic) .EQ.
',')
GO TO 53
104 IF (crdbuf(ic:ic) .EQ.
' ')
GO TO 50
105 IF (crdbuf(ic:ic) .EQ.
',')
GO TO 53
113 IF (index(crdbuf(1:ic1),
'REW') .GT. 5) lrewin=.
true.
114 IF (index(crdbuf(1:ic1),
'rew') .GT. 5) lrewin=.
true.
117 IF (crdbuf(ic:ic) .EQ.
' ')
GO TO 75
118 IF (crdbuf(ic:ic) .EQ.
',')
GO TO 200
124 DO 100 ic= ic1+1,lend
125 IF (crdbuf(ic:ic) .EQ.
' ')
GO TO 108
126 IF (crdbuf(ic:ic) .EQ.
',')
GO TO 108
132 cunit = crdbuf(ic1:ic2)
133 WRITE (isyswr,
'(A,A)')
' UNIT NO. :',cunit
134 READ (cunit,
'(BN,F10.0)',err=500) funit
136 IF (iunit .EQ. 0)
GO TO 200
138 DO 120 ic= ic2+1,lend
139 IF (crdbuf(ic:ic) .EQ.
' ')
GO TO 120
140 IF (crdbuf(ic:ic) .EQ.
',')
GO TO 120
145 cfname = crdbuf(ic:lend)
147 WRITE (isyswr,
'(A,A)')
' FILE NAME IS:',cfname
150 INQUIRE(unit=iunit,opened=lopen,named=lname,name=cgname)
155 IF (.NOT.lname) cgname=
'unknown' 156 WRITE (isyswr,132) iunit,cgname,cfname
157 132
FORMAT (
' UNIT',i3,
' ALREADY OPENED WITH NAME:',
a/
158 +
' NEW NAME IGNORED:',
a)
162 WRITE (isyswr,135) iunit
163 135
FORMAT (
' UNIT',i3,
' IS NOT OPENED.')
165 WRITE (isyswr,
'(A)')
' NO FILE NAME GIVEN IN COMMAND.' 166 IF (isw(6) .LT. 1)
GO TO 800
167 WRITE (isyswr,
'(A)')
' PLEASE GIVE FILE NAME:' 168 READ (isysrd,
'(A)') cfname
170 OPEN (unit=iunit,file=cfname,status=
'OLD',err=600)
171 WRITE (isyswr,
'(A)')
' FILE OPENED SUCCESSFULLY.' 174 136
IF (lrewin)
GO TO 150
175 IF (isw(6) .LT. 1)
GO TO 300
176 WRITE (isyswr,137) iunit
177 137
FORMAT (
' SHOULD UNIT',i3,
' BE REWOUND?' )
178 READ (isysrd,
'(A)') canswr
179 IF (canswr.NE.
'Y' .AND. canswr.NE.
'y')
GO TO 300
184 IF (nstkrd .EQ. 0)
THEN 190 IF (nstkrd .EQ. 0)
THEN 191 WRITE (isyswr,
'(A,A)')
' COMMAND IGNORED:',crdbuf
192 WRITE (isyswr,
'(A)')
' ALREADY READING FROM PRIMARY INPUT' 194 isysrd = istkrd(nstkrd)
196 IF (nstkrd .EQ. 0) isw(6) = iabs(isw(6))
197 IF (isw(5) .GE. 0)
THEN 198 INQUIRE(unit=isysrd,named=lname,name=cfname)
199 cmode =
'BATCH MODE ' 200 IF (isw(6) .EQ. 1) cmode =
'INTERACTIVE MODE' 201 IF (.NOT.lname) cfname=
'unknown' 202 IF (
mnunpt(cfname)) cfname=
'unprintable' 203 WRITE (isyswr,290) cmode,isysrd,cfname
204 290
FORMAT (
' INPUT WILL NOW BE READ IN ',
a,
' FROM UNIT NO.',i3/
211 IF (nstkrd .GE. maxstk)
THEN 212 WRITE (isyswr,
'(A)')
' INPUT FILE STACK SIZE EXCEEDED.' 216 istkrd(nstkrd) = isysrd
220 IF (isw(6) .EQ. 1) isw(6) = -1
224 WRITE (isyswr,
'(A,A)')
' CANNOT READ FOLLOWING AS INTEGER:',cunit
227 WRITE (isyswr, 601) cfname
228 601
FORMAT (
' SYSTEM IS UNABLE TO OPEN FILE:',
a)
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
block data include Zlatfit h c fitting region data data data data data d0 data data d0 data data h g *is for param c g data up(2, 1)/7.0d0/
dE dx *! Nuc Int sampling table e
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
logical function mnunpt(CFNAME)
real(4), dimension(:), allocatable, save h
! constants thru Cosmos real ! if multiplied to deg radian Torad ! light velocity m sec ! infinty ! kg m2 *Togpcm2 g cm2 ! g cm2 *Tokgpm2 kg m2 ! cm *Tom m ! m *Tocm cm ! g cm3 *Tokgpm3 kg m3 ! kg m3 *Togpcm3 g cm3 ! sec *Tonsec nsec ! Tesla m ! Avogadro *A2deninv ! mfp *n * xs
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
dE dx *! Nuc Int sampling table d
block data include Zlatfit h c fitting region data data data data data d0 data data d0 data data m
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
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
dE dx *! Nuc Int sampling table f
dE dx *! Nuc Int sampling table c