24 SUBROUTINE mnderi(FCN,FUTIL)
38 IMPLICIT DOUBLE PRECISION (
a-
h,
o-
z)
61 2/mn7ext/ u(mne) ,alim(mne) ,blim(mne)
62 3/mn7err/ erp(mni) ,ern(mni) ,werr(mni) ,globcc(mni)
63 4/mn7inx/ nvarl(mne) ,niofex(mne),nexofi(mni)
64 5/mn7int/
x(mni) ,xt(mni) ,dirin(mni)
65 6/mn7fx2/
xs(mni) ,xts(mni) ,dirins(mni)
66 7/mn7der/ grd(mni) ,g2(mni) ,gstep(mni) ,gin(mne) ,dgrd(mni)
67 8/mn7fx3/ grds(mni) ,g2s(mni) ,gsteps(mni)
68 9/mn7fx1/ ipfix(mni) ,npfix
69 a/mn7var/ vhmat(mnihl)
70 b/mn7vat/ vthmat(mnihl)
71 c/mn7sim/
p(mni,mni+1),pstar(mni),pstst(mni) ,pbar(mni),prho(mni)
73 parameter(maxdbg=10, maxstk=10, maxcwd=20,
maxp=30, maxcpt=101)
76 d/mn7npr/ maxint ,npar ,maxext ,nu
77 e/mn7iou/ isysrd ,isyswr ,isyssa ,npagwd ,npagln ,newpag
78 e/mn7io2/ istkrd(maxstk) ,nstkrd ,istkwr(maxstk) ,nstkwr
79 f/mn7tit/ cfrom ,cstatu ,ctitl ,cword ,cundef ,cvrsn ,covmes
80 g/mn7flg/ isw(7) ,idbg(0:maxdbg) ,nblock ,icomnd
81 h/mn7min/ amin ,
up ,edm ,fval3 ,epsi ,apsi ,dcovar
82 i/mn7cnv/ nfcn ,nfcnmx ,nfcnlc ,nfcnfr ,itaur,istrat,nwrmes(2)
84 k/mn7log/ lwarn ,lrepor ,limset ,lnolim ,lnewmn ,lphead
85 l/mn7cns/ epsmac ,epsma2 ,vlimlo ,vlimhi ,undefi ,bigedm,updflt
86 m/mn7rpt/ xpt(maxcpt) ,ypt(maxcpt)
87 n/mn7cpt/ chpt(maxcpt)
88 o/mn7xcr/ xmidcr ,ymidcr ,xdircr ,ydircr ,ke1cr ,ke2cr
89 CHARACTER CTITL*50, CWORD*(maxcwd), CUNDEF*10, CFROM*8,
90 + cvrsn*6, covmes(0:3)*22, cstatu*10, chpt*1
91 LOGICAL LWARN, LREPOR, LIMSET, LNOLIM, LNEWMN, LPHEAD
96 ldebug = (idbg(2) .GE. 1)
97 IF (amin .EQ. undefi)
CALL mnamin(fcn,futil)
98 IF (isw(3) .EQ. 1)
GO TO 100
103 CALL fcn(nparx,gin,fs1,u,4,futil)
105 IF (fs1 .NE. amin)
THEN 107 WRITE (cbf1(1:12),
'(G12.3)') df
109 +
'function value differs from AMIN by '//cbf1(1:12) )
113 + (isyswr,
'(/'' FIRST DERIVATIVE DEBUG PRINTOUT. MNDERI''/ 114 + '' PAR DERIV STEP MINSTEP OPTSTEP '', 115 + '' D1-D2 2ND DRV'')')
117 dfmin = 8. * epsma2*(abs(amin)+
up)
118 vrysml = 8.* epsmac**2
119 IF (istrat .LE. 0)
THEN 123 ELSE IF (istrat .EQ. 1)
THEN 134 epspri = epsma2 + abs(grd(
i)*epsma2)
142 optstp = sqrt(dfmin/(abs(g2(
i))+epspri))
144 step = max(optstp, abs(0.1*gstep(
i)))
146 IF (gstep(
i).LT.zero .AND. step.GT.0.5) step=0.5
148 stpmax = 10.*abs(gstep(
i))
149 IF (step .GT. stpmax) step = stpmax
151 stpmin = max(vrysml, 8.*abs(epsma2*
x(
i)))
152 IF (step .LT. stpmin) step = stpmin
154 IF (abs((step-stepb4)/step) .LT. tlrstp)
GO TO 50
156 gstep(
i) = sign(step, gstep(
i))
160 CALL fcn(nparx,gin,fs1,u,4,futil)
165 CALL fcn(nparx,gin,fs2,u,4,futil)
168 grd(
i) = (fs1-fs2)/(2.0*step)
169 g2(
i) = (fs1+fs2-2.0*amin)/(step**2)
172 d1d2 = (fs1+fs2-2.0*amin)/step
173 WRITE (isyswr,41)
i,grd(
i),step,stpmin,optstp,d1d2,g2(
i)
174 41
FORMAT (i4,2g11.3,5g10.2)
177 IF (abs(grbfor-grd(
i))/(abs(grd(
i))+dfmin/step) .LT. tlrgrd)
181 IF (ncyc .EQ. 1)
GO TO 50
182 WRITE (cbf1,
'(2E11.3)') grd(
i),grbfor
184 +
'First derivative not converged. '//cbf1)
191 100
DO 150 iint= 1, npar
193 IF (nvarl(iext) .GT. 1)
GO TO 120
194 grd(iint) = gin(iext)
196 120 dd = (blim(iext)-alim(iext))*0.5 *
cos(
x(iint))
197 grd(iint) = gin(iext)*dd
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
! for length to thickness conversion or v v ! integer maxnodes real Hinf ! This is used when making table for dim simulation ! The slant length for vertical height to km is ! divided by LenStep m steps ! It can cover the slant length of about km for cos
! 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
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
dE dx *! Nuc Int sampling table h
dE dx *! Nuc Int sampling table g
subroutine mnderi(FCN, FUTIL)
subroutine mnwarn(COPT, CORG, CMES)
! 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