COSMOS v7.655  COSMOSv7655
(AirShowerMC)
mncntr.f
Go to the documentation of this file.
1 *
2 * $Id: mncntr.F,v 1.1.1.1 1996/03/07 14:31:28 mclareni Exp $
3 *
4 * $Log: mncntr.F,v $
5 * Revision 1.1.1.1 1996/03/07 14:31:28 mclareni
6 * Minuit
7 *
8 *
9  SUBROUTINE mncntr(FCN,KE1,KE2,IERRF,FUTIL)
10 *
11 * $Id: d506dp.inc,v 1.1.1.1 1996/03/07 14:31:32 mclareni Exp $
12 *
13 * $Log: d506dp.inc,v $
14 * Revision 1.1.1.1 1996/03/07 14:31:32 mclareni
15 * Minuit
16 *
17 *
18 *
19 *
20 * d506dp.inc
21 *
22 C ************ DOUBLE PRECISION VERSION *************
23  IMPLICIT DOUBLE PRECISION (a-h,o-z)
24 CC to print function contours in two variables, on line printer
25 CC
26 *
27 * $Id: d506cm.inc,v 1.1.1.1 1996/03/07 14:31:32 mclareni Exp $
28 *
29 * $Log: d506cm.inc,v $
30 * Revision 1.1.1.1 1996/03/07 14:31:32 mclareni
31 * Minuit
32 *
33 *
34 *
35 *
36 * d506cm.inc
37 *
38  parameter(mne=100 , mni=50)
39  parameter(mnihl=mni*(mni+1)/2)
40  CHARACTER*10 CPNAM
41  COMMON
42  1/mn7nam/ cpnam(mne)
43  2/mn7ext/ u(mne) ,alim(mne) ,blim(mne)
44  3/mn7err/ erp(mni) ,ern(mni) ,werr(mni) ,globcc(mni)
45  4/mn7inx/ nvarl(mne) ,niofex(mne),nexofi(mni)
46  5/mn7int/ x(mni) ,xt(mni) ,dirin(mni)
47  6/mn7fx2/ xs(mni) ,xts(mni) ,dirins(mni)
48  7/mn7der/ grd(mni) ,g2(mni) ,gstep(mni) ,gin(mne) ,dgrd(mni)
49  8/mn7fx3/ grds(mni) ,g2s(mni) ,gsteps(mni)
50  9/mn7fx1/ ipfix(mni) ,npfix
51  a/mn7var/ vhmat(mnihl)
52  b/mn7vat/ vthmat(mnihl)
53  c/mn7sim/ p(mni,mni+1),pstar(mni),pstst(mni) ,pbar(mni),prho(mni)
54 C
55  parameter(maxdbg=10, maxstk=10, maxcwd=20, maxp=30, maxcpt=101)
56  parameter(zero=0.0, one=1.0, half=0.5)
57  COMMON
58  d/mn7npr/ maxint ,npar ,maxext ,nu
59  e/mn7iou/ isysrd ,isyswr ,isyssa ,npagwd ,npagln ,newpag
60  e/mn7io2/ istkrd(maxstk) ,nstkrd ,istkwr(maxstk) ,nstkwr
61  f/mn7tit/ cfrom ,cstatu ,ctitl ,cword ,cundef ,cvrsn ,covmes
62  g/mn7flg/ isw(7) ,idbg(0:maxdbg) ,nblock ,icomnd
63  h/mn7min/ amin ,up ,edm ,fval3 ,epsi ,apsi ,dcovar
64  i/mn7cnv/ nfcn ,nfcnmx ,nfcnlc ,nfcnfr ,itaur,istrat,nwrmes(2)
65  j/mn7arg/ word7(maxp)
66  k/mn7log/ lwarn ,lrepor ,limset ,lnolim ,lnewmn ,lphead
67  l/mn7cns/ epsmac ,epsma2 ,vlimlo ,vlimhi ,undefi ,bigedm,updflt
68  m/mn7rpt/ xpt(maxcpt) ,ypt(maxcpt)
69  n/mn7cpt/ chpt(maxcpt)
70  o/mn7xcr/ xmidcr ,ymidcr ,xdircr ,ydircr ,ke1cr ,ke2cr
71  CHARACTER CTITL*50, CWORD*(maxcwd), CUNDEF*10, CFROM*8,
72  + cvrsn*6, covmes(0:3)*22, cstatu*10, chpt*1
73  LOGICAL LWARN, LREPOR, LIMSET, LNOLIM, LNEWMN, LPHEAD
74  EXTERNAL fcn,futil
75  parameter(numbcs=20,nxmax=115)
76  dimension contur(numbcs), fcna(nxmax),fcnb(nxmax)
77  CHARACTER CLABEL*(numbcs)
78  CHARACTER CHLN*(nxmax),CHMID*(nxmax),CHZERO*(nxmax)
79  DATA clabel/'0123456789ABCDEFGHIJ'/
80 C input arguments: parx, pary, devs, ngrid
81  IF (ke1.LE.0 .OR. ke2.LE.0) GO TO 1350
82  IF (ke1.GT.nu .OR. ke2.GT.nu) GO TO 1350
83  ki1 = niofex(ke1)
84  ki2 = niofex(ke2)
85  IF (ki1.LE.0 .OR. ki2.LE.0) GO TO 1350
86  IF (ki1 .EQ. ki2) GO TO 1350
87 C
88  IF (isw(2) .LT. 1) THEN
89  CALL mnhess(fcn,futil)
90  CALL mnwerr
91  ENDIF
92  nparx = npar
93  xsav = u(ke1)
94  ysav = u(ke2)
95  devs = word7(3)
96  IF (devs .LE. zero) devs=2.
97  xlo = u(ke1) - devs*werr(ki1)
98  xup = u(ke1) + devs*werr(ki1)
99  ylo = u(ke2) - devs*werr(ki2)
100  yup = u(ke2) + devs*werr(ki2)
101  ngrid = word7(4)
102  IF (ngrid .LE. 0) THEN
103  ngrid=25
104  nx = min(npagwd-15,ngrid)
105  ny = min(npagln-7, ngrid)
106  ELSE
107  nx = ngrid
108  ny = ngrid
109  ENDIF
110  IF (nx .LT. 11) nx=11
111  IF (ny .LT. 11) ny=11
112  IF (nx .GE. nxmax) nx=nxmax-1
113 C ask if parameter outside limits
114  IF (nvarl(ke1) .GT. 1) THEN
115  IF (xlo .LT. alim(ke1)) xlo = alim(ke1)
116  IF (xup .GT. blim(ke1)) xup = blim(ke1)
117  ENDIF
118  IF (nvarl(ke2) .GT. 1) THEN
119  IF (ylo .LT. alim(ke2)) ylo = alim(ke2)
120  IF (yup .GT. blim(ke2)) yup = blim(ke2)
121  ENDIF
122  bwidx = (xup-xlo)/REAL(nx)
123  bwidy = (yup-ylo)/REAL(ny)
124  ixmid = int((xsav-xlo)*REAL(nx)/(xup-xlo)) + 1
125  IF (amin .EQ. undefi) CALL mnamin(fcn,futil)
126  DO 185 i= 1, numbcs
127  contur(i) = amin + up*float(i-1)**2
128  185 CONTINUE
129  contur(1) = contur(1) + 0.01*up
130 C fill FCNB to prepare first row, and find column zero
131  u(ke2) = yup
132  ixzero = 0
133  xb4 = one
134  DO 200 ix= 1, nx+1
135  u(ke1) = xlo + REAL(ix-1)*BWIDX
136  CALL fcn(nparx,gin,ff,u,4,futil)
137  fcnb(ix) = ff
138  IF (xb4.LT.zero .AND. u(ke1).GT.zero) ixzero = ix-1
139  xb4 = u(ke1)
140  chmid(ix:ix) = '*'
141  chzero(ix:ix)= '-'
142  200 CONTINUE
143  WRITE (isyswr,'(A,I3,A,A)') ' Y-AXIS: PARAMETER ',
144  + ke2,': ',cpnam(ke2)
145  IF (ixzero .GT. 0) THEN
146  chzero(ixzero:ixzero) = '+'
147  chln = ' '
148  WRITE (isyswr,'(12X,A,A)') chln(1:ixzero),'X=0'
149  ENDIF
150 C loop over rows
151  DO 280 iy= 1, ny
152  unext = u(ke2) - bwidy
153 C prepare this line's background pattern for contour
154  chln = ' '
155  chln(ixmid:ixmid) = '*'
156  IF (ixzero .NE. 0) chln(ixzero:ixzero) = ':'
157  IF (u(ke2).GT.ysav .AND. unext.LT.ysav) chln=chmid
158  IF (u(ke2).GT.zero .AND. unext.LT.zero) chln=chzero
159  u(ke2) = unext
160  ylabel = u(ke2) + 0.5*bwidy
161 C move FCNB to FCNA and fill FCNB with next row
162  DO 220 ix= 1, nx+1
163  fcna(ix) = fcnb(ix)
164  u(ke1) = xlo + REAL(ix-1)*BWIDX
165  CALL fcn(nparx,gin,ff,u,4,futil)
166  fcnb(ix) = ff
167  220 CONTINUE
168 C look for contours crossing the FCNxy squares
169  DO 250 ix= 1, nx
170  fmx = max(fcna(ix),fcnb(ix),fcna(ix+1),fcnb(ix+1))
171  fmn = min(fcna(ix),fcnb(ix),fcna(ix+1),fcnb(ix+1))
172  DO 230 ics= 1, numbcs
173  IF (contur(ics) .GT. fmn) GO TO 240
174  230 CONTINUE
175  GO TO 250
176  240 IF (contur(ics) .LT. fmx) chln(ix:ix)=clabel(ics:ics)
177  250 CONTINUE
178 C print a row of the contour plot
179  WRITE (isyswr,'(1X,G12.4,1X,A)') ylabel,chln(1:nx)
180  280 CONTINUE
181 C contours printed, label x-axis
182  chln = ' '
183  chln( 1: 1) = 'I'
184  chln(ixmid:ixmid) = 'I'
185  chln(nx:nx) = 'I'
186  WRITE (isyswr,'(14X,A)') chln(1:nx)
187 C the hardest of all: print x-axis scale!
188  chln = ' '
189  IF (nx .LE. 26) THEN
190  nl = max(nx-12,2)
191  nl2 = nl/2
192  WRITE (isyswr,'(8X,G12.4,A,G12.4)') xlo,chln(1:nl),xup
193  WRITE (isyswr,'(14X,A,G12.4)') chln(1:nl2),xsav
194  ELSE
195  nl = max(nx-24,2)/2
196  nl2 = nl
197  IF (nl .GT. 10) nl2=nl-6
198  WRITE (isyswr,'(8X,G12.4,A,G12.4,A,G12.4)') xlo,
199  + chln(1:nl),xsav,chln(1:nl2),xup
200  ENDIF
201  WRITE (isyswr,'(6X,A,I3,A,A,A,G12.4)') ' X-AXIS: PARAMETER',
202  + ke1,': ',cpnam(ke1),' ONE COLUMN=',bwidx
203  WRITE (isyswr,'(A,G12.4,A,G12.4,A)') ' FUNCTION VALUES: F(I)=',
204  + amin,' +',up,' *I**2'
205 C finished. reset input values
206  u(ke1) = xsav
207  u(ke2) = ysav
208  ierrf = 0
209  RETURN
210  1350 WRITE (isyswr,1351)
211  1351 FORMAT (' INVALID PARAMETER NUMBER(S) REQUESTED. IGNORED.' /)
212  ierrf = 1
213  RETURN
214  END
integer npitbl real *nx parameter(n=101, npitbl=46, nx=n-1) real *8 uconst
nodes z
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
Definition: cblkMuInt.h:130
nodes i
subroutine mnwerr
Definition: mnwerr.f:10
! 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
Definition: Zglobalc.h:18
subroutine mnamin(FCN, FUTIL)
Definition: mnamin.f:10
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
********************block data cblkHeavy ********************integer j data *HeavyG2symbol *data *HeavyG2code kiron data j
Definition: cblkHeavy.h:36
subroutine mnhess(FCN, FUTIL)
Definition: mnhess.f:10
struct ob o[NpMax]
Definition: Zprivate.h:34
subroutine mncntr(FCN, KE1, KE2, IERRF, FUTIL)
Definition: mncntr.f:10
dE dx *! Nuc Int sampling table d
Definition: cblkMuInt.h:130
nodes a
dE dx *! Nuc Int sampling table b
Definition: cblkMuInt.h:130
block data include Zlatfit h c fitting region data data data data data d0 data data d0 data data m
Definition: ZlatfitBD.h:35
dE dx *! Nuc Int sampling table h
Definition: cblkMuInt.h:130
dE dx *! Nuc Int sampling table g
Definition: cblkMuInt.h:130
!onst int nl
Definition: Zprivate.h:1
!onst int maxp
Definition: Zprivate.h:3
integer n
Definition: Zcinippxc.h:1
integer, parameter half
Definition: csoftenPiK.f:108
! 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
Definition: Zptcl.h:21
dE dx *! Nuc Int sampling table f
Definition: cblkMuInt.h:130
dE dx *! Nuc Int sampling table c
Definition: cblkMuInt.h:130