[2403] | 1 | *
|
---|
| 2 | * $Id: mnmnos.F,v 1.1.1.1 2003-06-11 14:18:28 cmv Exp $
|
---|
| 3 | *
|
---|
| 4 | * $Log: not supported by cvs2svn $
|
---|
| 5 | * Revision 1.1.1.1 1996/03/07 14:31:30 mclareni
|
---|
| 6 | * Minuit
|
---|
| 7 | *
|
---|
| 8 | *
|
---|
| 9 | #include "minuit/pilot.h"
|
---|
| 10 | SUBROUTINE MNMNOS(FCN,FUTIL)
|
---|
| 11 | #include "minuit/d506dp.inc"
|
---|
| 12 | CC Performs a MINOS error analysis on those parameters for
|
---|
| 13 | CC which it is requested on the MINOS command by calling
|
---|
| 14 | CC MNMNOT for each parameter requested.
|
---|
| 15 | #include "minuit/d506cm.inc"
|
---|
| 16 | EXTERNAL FCN,FUTIL
|
---|
| 17 | IF (NPAR .LE. 0) GO TO 700
|
---|
| 18 | NGOOD = 0
|
---|
| 19 | NBAD = 0
|
---|
| 20 | NFCNMI = NFCN
|
---|
| 21 | C . loop over parameters requested
|
---|
| 22 | DO 570 KNT= 1, NPAR
|
---|
| 23 | IF (INT(WORD7(2)) .EQ. 0) THEN
|
---|
| 24 | ILAX = NEXOFI(KNT)
|
---|
| 25 | ELSE
|
---|
| 26 | IF (KNT .GE. 7) GO TO 580
|
---|
| 27 | ILAX = INT(WORD7(KNT+1))
|
---|
| 28 | IF (ILAX .EQ. 0) GO TO 580
|
---|
| 29 | IF (ILAX .GT. 0 .AND. ILAX .LE. NU) THEN
|
---|
| 30 | IF (NIOFEX(ILAX) .GT. 0) GO TO 565
|
---|
| 31 | ENDIF
|
---|
| 32 | WRITE (ISYSWR,564) ILAX
|
---|
| 33 | 564 FORMAT (' PARAMETER NUMBER ',I5,' NOT VARIABLE. IGNORED.')
|
---|
| 34 | GO TO 570
|
---|
| 35 | ENDIF
|
---|
| 36 | 565 CONTINUE
|
---|
| 37 | C calculate one pair of M E's
|
---|
| 38 | ILAX2 = 0
|
---|
| 39 | CALL MNMNOT(FCN,ILAX,ILAX2,VAL2PL,VAL2MI,FUTIL)
|
---|
| 40 | IF (LNEWMN) GO TO 650
|
---|
| 41 | C update NGOOD and NBAD
|
---|
| 42 | IIN = NIOFEX(ILAX)
|
---|
| 43 | IF (ERP(IIN) .GT. ZERO) THEN
|
---|
| 44 | NGOOD=NGOOD+1
|
---|
| 45 | ELSE
|
---|
| 46 | NBAD=NBAD+1
|
---|
| 47 | ENDIF
|
---|
| 48 | IF (ERN(IIN) .LT. ZERO) THEN
|
---|
| 49 | NGOOD=NGOOD+1
|
---|
| 50 | ELSE
|
---|
| 51 | NBAD=NBAD+1
|
---|
| 52 | ENDIF
|
---|
| 53 | 570 CONTINUE
|
---|
| 54 | C end of loop . . . . . . .
|
---|
| 55 | 580 CONTINUE
|
---|
| 56 | C . . . . printout final values .
|
---|
| 57 | CFROM = 'MINOS '
|
---|
| 58 | NFCNFR = NFCNMI
|
---|
| 59 | CSTATU= 'UNCHANGED '
|
---|
| 60 | IF (NGOOD.EQ.0.AND.NBAD.EQ.0) GO TO 700
|
---|
| 61 | IF (NGOOD.GT.0.AND.NBAD.EQ.0) CSTATU='SUCCESSFUL'
|
---|
| 62 | IF (NGOOD.EQ.0.AND.NBAD.GT.0) CSTATU='FAILURE '
|
---|
| 63 | IF (NGOOD.GT.0.AND.NBAD.GT.0) CSTATU='PROBLEMS '
|
---|
| 64 | IF (ISW(5) .GE. 0) CALL MNPRIN(4,AMIN)
|
---|
| 65 | IF (ISW(5) .GE. 2) CALL MNMATU(0)
|
---|
| 66 | GO TO 900
|
---|
| 67 | C . . . new minimum found . . . .
|
---|
| 68 | 650 CONTINUE
|
---|
| 69 | CFROM = 'MINOS '
|
---|
| 70 | NFCNFR = NFCNMI
|
---|
| 71 | CSTATU= 'NEW MINIMU'
|
---|
| 72 | IF (ISW(5) .GE. 0) CALL MNPRIN(4,AMIN)
|
---|
| 73 | WRITE (ISYSWR,675)
|
---|
| 74 | 675 FORMAT(/50H NEW MINIMUM FOUND. GO BACK TO MINIMIZATION STEP./1H ,
|
---|
| 75 | +60(1H=)/60X,1HV/60X,1HV/60X,1HV/57X,7HVVVVVVV/58X,5HVVVVV/59X,
|
---|
| 76 | +3HVVV/60X,1HV//)
|
---|
| 77 | GO TO 900
|
---|
| 78 | 700 WRITE (ISYSWR,'(A)') ' THERE ARE NO MINOS ERRORS TO CALCULATE.'
|
---|
| 79 | 900 RETURN
|
---|
| 80 | END
|
---|