24 SUBROUTINE mnset(FCN,FUTIL)
38 IMPLICIT DOUBLE PRECISION (
a-
h,
o-
z)
59 2/mn7ext/ u(mne) ,alim(mne) ,blim(mne)
60 3/mn7err/ erp(mni) ,ern(mni) ,werr(mni) ,globcc(mni)
61 4/mn7inx/ nvarl(mne) ,niofex(mne),nexofi(mni)
62 5/mn7int/
x(mni) ,xt(mni) ,dirin(mni)
63 6/mn7fx2/
xs(mni) ,xts(mni) ,dirins(mni)
64 7/mn7der/ grd(mni) ,g2(mni) ,gstep(mni) ,gin(mne) ,dgrd(mni)
65 8/mn7fx3/ grds(mni) ,g2s(mni) ,gsteps(mni)
66 9/mn7fx1/ ipfix(mni) ,npfix
67 a/mn7var/ vhmat(mnihl)
68 b/mn7vat/ vthmat(mnihl)
69 c/mn7sim/
p(mni,mni+1),pstar(mni),pstst(mni) ,pbar(mni),prho(mni)
71 parameter(maxdbg=10, maxstk=10, maxcwd=20,
maxp=30, maxcpt=101)
74 d/mn7npr/ maxint ,npar ,maxext ,nu
75 e/mn7iou/ isysrd ,isyswr ,isyssa ,npagwd ,npagln ,newpag
76 e/mn7io2/ istkrd(maxstk) ,nstkrd ,istkwr(maxstk) ,nstkwr
77 f/mn7tit/ cfrom ,cstatu ,ctitl ,cword ,cundef ,cvrsn ,covmes
78 g/mn7flg/ isw(7) ,idbg(0:maxdbg) ,nblock ,icomnd
79 h/mn7min/ amin ,
up ,edm ,fval3 ,epsi ,apsi ,dcovar
80 i/mn7cnv/ nfcn ,nfcnmx ,nfcnlc ,nfcnfr ,itaur,istrat,nwrmes(2)
82 k/mn7log/ lwarn ,lrepor ,limset ,lnolim ,lnewmn ,lphead
83 l/mn7cns/ epsmac ,epsma2 ,vlimlo ,vlimhi ,undefi ,bigedm,updflt
84 m/mn7rpt/ xpt(maxcpt) ,ypt(maxcpt)
85 n/mn7cpt/ chpt(maxcpt)
86 o/mn7xcr/ xmidcr ,ymidcr ,xdircr ,ydircr ,ke1cr ,ke2cr
87 CHARACTER CTITL*50, CWORD*(maxcwd), CUNDEF*10, CFROM*8,
88 + cvrsn*6, covmes(0:3)*22, cstatu*10, chpt*1
89 LOGICAL LWARN, LREPOR, LIMSET, LNOLIM, LNEWMN, LPHEAD
94 CHARACTER CFNAME*64, CMODE*16
96 CHARACTER CKIND*4, COPT*3, CWARN*10
98 CHARACTER CPRLEV(-1:3)*34 ,CSTRAT(0:2)*44
101 CHARACTER*40 CDBOPT(0:numdbg)
103 CHARACTER*10 CNAME(30)
104 DATA cname( 1)/
'FCN value '/
105 DATA cname( 2)/
'PARameters'/
106 DATA cname( 3)/
'LIMits '/
107 DATA cname( 4)/
'COVariance'/
108 DATA cname( 5)/
'CORrelatio'/
109 DATA cname( 6)/
'PRInt levl'/
110 DATA cname( 7)/
'NOGradient'/
111 DATA cname( 8)/
'GRAdient '/
112 DATA cname( 9)/
'ERRor def '/
113 DATA cname(10)/
'INPut file'/
114 DATA cname(11)/
'WIDth page'/
115 DATA cname(12)/
'LINes page'/
116 DATA cname(13)/
'NOWarnings'/
117 DATA cname(14)/
'WARnings '/
118 DATA cname(15)/
'RANdom gen'/
119 DATA cname(16)/
'TITle '/
120 DATA cname(17)/
'STRategy '/
121 DATA cname(18)/
'EIGenvalue'/
122 DATA cname(19)/
'PAGe throw'/
123 DATA cname(20)/
'MINos errs'/
124 DATA cname(21)/
'EPSmachine'/
125 DATA cname(22)/
'OUTputfile'/
126 DATA cname(23)/
'BATch '/
127 DATA cname(24)/
'INTeractiv'/
128 DATA cname(25)/
'VERsion '/
131 DATA cname(26)/
'reserve '/
132 DATA cname(27)/
'NODebug '/
133 DATA cname(28)/
'DEBug '/
134 DATA cname(29)/
'SHOw '/
135 DATA cname(30)/
'SET '/
138 DATA cprlev(-1)/
'-1: NO OUTPUT EXCEPT FROM "SHOW" '/
139 DATA cprlev( 0)/
' 0: REDUCED OUTPUT '/
140 DATA cprlev( 1)/
' 1: NORMAL OUTPUT '/
141 DATA cprlev( 2)/
' 2: EXTRA OUTPUT FOR PROBLEM CASES'/
142 DATA cprlev( 3)/
' 3: MAXIMUM OUTPUT '/
144 DATA cstrat( 0)/
' 0: MINIMIZE THE NUMBER OF CALLS TO FUNCTION'/
145 DATA cstrat( 1)/
' 1: TRY TO BALANCE SPEED AGAINST RELIABILITY'/
146 DATA cstrat( 2)/
' 2: MAKE SURE MINIMUM TRUE, ERRORS CORRECT '/
148 DATA cdbopt(0)/
'REPORT ALL EXCEPTIONAL CONDITIONS '/
149 DATA cdbopt(1)/
'MNLINE: LINE SEARCH MINIMIZATION '/
150 DATA cdbopt(2)/
'MNDERI: FIRST DERIVATIVE CALCULATIONS '/
151 DATA cdbopt(3)/
'MNHESS: SECOND DERIVATIVE CALCULATIONS '/
152 DATA cdbopt(4)/
'MNMIGR: COVARIANCE MATRIX UPDATES '/
153 DATA cdbopt(5)/
'MNHES1: FIRST DERIVATIVE UNCERTAINTIES '/
154 DATA cdbopt(6)/
'MNCONT: MNCONTOUR PLOT (MNCROS SEARCH) '/
158 IF (index(cword(4:10),cname(
i)(1:3)) .GT. 0)
GO TO 5
164 IF (index(cword(1:4),
'HEL') .GT. 0)
GO TO 2000
165 IF (index(cword(1:4),
'SHO') .GT. 0)
GO TO 1000
166 IF (index(cword(1:4),
'SET') .EQ. 0)
GO TO 1900
170 IF (kname .LE. 0)
GO TO 1900
172 GO TO(3000, 20, 30, 40,3000, 60, 70, 80, 90, 100,
173 + 110, 120, 130, 140, 150, 160, 170,3000, 190,3000,
174 + 210, 220, 230, 240,3000,1900, 270, 280, 290, 300) , kname
179 IF (iprm .GT. nu)
GO TO 25
180 IF (iprm .LE. 0)
GO TO 25
181 IF (nvarl(iprm) .LT. 0)
GO TO 25
190 cstatu =
'NEW VALUES' 192 25
WRITE (isyswr,
'(A/)')
' UNDEFINED PARAMETER NUMBER. IGNORED.' 211 90
IF (word7(1) .EQ.
up)
GO TO 4000
212 IF (word7(1) .LE. zero)
THEN 213 IF (
up .EQ. updflt)
GO TO 4000
229 110 npagwd = word7(1)
230 npagwd = max(npagwd,50)
233 120 npagln = word7(1)
240 CALL mnwarn(
'W',
'SHO',
'SHO')
243 150 jseed = int(word7(1))
246 IF (isw(5) .GT. 0)
WRITE (isyswr, 151) jseed
247 151
FORMAT (
' MINUIT RANDOM NUMBER SEED SET TO ',i10)
254 170 istrat = word7(1)
255 istrat = max(istrat,0)
256 istrat = min(istrat,2)
257 IF (isw(5) .GT. 0)
GO TO 1172
260 190 newpag = word7(1)
263 210
IF (word7(1).GT.zero .AND. word7(1).LT.0.1) epsmac = word7(1)
264 epsma2 = sqrt(epsmac)
271 IF (isw(5) .GE. 0)
GO TO 1220
275 IF (isw(5) .GE. 0)
GO TO 1100
279 IF (isw(5) .GE. 0)
GO TO 1100
288 IF (idbopt .GT. numdbg)
GO TO 288
289 IF (idbopt .GE. 0)
THEN 291 IF (iset .EQ. 1) idbg(0) = 1
297 lrepor = (idbg(0) .GE. 1)
298 CALL mnwarn(
'D',
'SHO',
'SHO')
300 288
WRITE (isyswr,289) idbopt
301 289
FORMAT (
' UNKNOWN DEBUG OPTION',i6,
' REQUESTED. IGNORED')
312 IF (kname .LE. 0)
GO TO 1900
313 GO TO (1010,1020,1030,1040,1050,1060,1070,1070,1090,1100,
314 + 1110,1120,1130,1130,1150,1160,1170,1180,1190,1200,
315 + 1210,1220,1100,1100,1250,1900,1270,1270,1290,1300),kname
319 IF (amin .EQ. undefi)
CALL mnamin(fcn,futil)
324 IF (amin .EQ. undefi)
CALL mnamin(fcn,futil)
329 IF (amin .EQ. undefi)
CALL mnamin(fcn,futil)
340 IF (isw(5) .LT.-1) isw(5) = -1
341 IF (isw(5) .GT. 3) isw(5) = 3
342 WRITE (isyswr,
'(A)')
' ALLOWED PRINT LEVELS ARE:' 343 WRITE (isyswr,
'(27X,A)') cprlev
344 WRITE (isyswr,1061) cprlev(isw(5))
345 1061
FORMAT (/
' CURRENT PRINTOUT LEVEL IS ',
a)
349 IF (isw(3) .LE. 0)
THEN 351 1081
FORMAT(
' NOGRAD IS SET. DERIVATIVES NOT COMPUTED IN FCN.')
354 1082
FORMAT(
' GRAD IS SET. USER COMPUTES DERIVATIVES IN FCN.')
358 1090
WRITE (isyswr, 1091)
up 359 1091
FORMAT (
' ERRORS CORRESPOND TO FUNCTION CHANGE OF',g13.5)
364 INQUIRE(unit=isysrd,named=lname,name=cfname)
365 cmode =
'BATCH MODE ' 366 IF (isw(6) .EQ. 1) cmode =
'INTERACTIVE MODE' 367 IF (.NOT. lname) cfname=
'unknown' 368 WRITE (isyswr,1002) cmode,isysrd,cfname
369 1002
FORMAT (
' INPUT NOW BEING READ IN ',
a,
' FROM UNIT NO.',i3/
373 1110
WRITE (isyswr,1111) npagwd
374 1111
FORMAT (10
x,
'PAGE WIDTH IS SET TO',i4,
' COLUMNS')
377 1120
WRITE (isyswr,1121) npagln
378 1121
FORMAT (10
x,
'PAGE LENGTH IS SET TO',i4,
' LINES')
383 IF (lwarn) cwarn =
'REPORTED ' 384 WRITE (isyswr,1141) cwarn
385 1141
FORMAT (
' MINUIT WARNING MESSAGES ARE ',
a)
386 IF (.NOT. lwarn)
CALL mnwarn(
'W',
'SHO',
'SHO')
392 WRITE (isyswr, 1151) ikseed
393 1151
FORMAT (
' MINUIT RNDM SEED IS CURRENTLY=',i10/)
399 1160
WRITE (isyswr,
'(A,A)')
' TITLE OF CURRENT TASK IS:',ctitl
402 1170
WRITE (isyswr,
'(A)')
' ALLOWED STRATEGIES ARE:' 403 WRITE (isyswr,
'(20X,A)') cstrat
404 1172
WRITE (isyswr, 1175) cstrat(istrat)
405 1175
FORMAT (/
' NOW USING STRATEGY ',
a/)
411 IF (isw(2) .LT. 1)
THEN 412 WRITE (isyswr,
'(1X,A)') covmes(0)
419 1190
WRITE (isyswr,
'(A,I3)')
' PAGE THROW CARRIAGE CONTROL =',newpag
421 +
WRITE (isyswr,
'(A)')
' NO PAGE THROWS IN MINUIT OUTPUT' 426 IF (erp(ii).GT.zero .OR. ern(ii).LT.zero)
GO TO 1204
429 +
' THERE ARE NO MINOS ERRORS CURRENTLY VALID.' 435 1210
WRITE (isyswr,
'(A,E12.3)')
436 +
' FLOATING-POINT NUMBERS ASSUMED ACCURATE TO',epsmac
440 WRITE (isyswr,
'(A,I4)')
' MINUIT PRIMARY OUTPUT TO UNIT',isyswr
444 WRITE (isyswr,
'(A,A)')
' THIS IS MINUIT VERSION:',cvrsn
448 DO 1285 id= 0, numdbg
450 IF (idbg(id) .GE. 1) copt =
'ON ' 451 1285
WRITE (isyswr,1286) id, copt, cdbopt(id)
452 1286
FORMAT (10
x,
'DEBUG OPTION',i3,
' IS ',a3,
' :',
a)
453 IF (.NOT. lrepor)
CALL mnwarn(
'D',
'SHO',
'SHO')
463 1900
WRITE (isyswr, 1901) cword
464 1901
FORMAT (
' THE COMMAND:',a10,
' IS UNKNOWN.'/)
469 IF (index(cword(4:10),
'SHO') .GT. 0) ckind =
'SHOW' 470 2100
WRITE (isyswr, 2101) ckind,ckind, (cname(kk),kk=1,nname)
471 2101
FORMAT (
' THE FORMAT OF THE ',a4,
' COMMAND IS:'//
472 + 1
x,a4,
' xxx [numerical arguments if any]'//
473 +
' WHERE xxx MAY BE ONE OF THE FOLLOWING:'/
478 3000
WRITE (isyswr,
'('' ABOVE COMMAND IS ILLEGAL. IGNORED'')')
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
subroutine mngrad(FCN, FUTIL)
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
subroutine mnprin(INKODE, FVAL)
! 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
subroutine mnamin(FCN, FUTIL)
********************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
subroutine mnset(FCN, FUTIL)
dE dx *! Nuc Int sampling table b
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 h
dE dx *! Nuc Int sampling table g
subroutine mnwarn(COPT, CORG, CMES)
subroutine mnrn15(VAL, INSEED)
! 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