source: Sophya/trunk/SophyaExt/CodeMinuit/code/mnmnos.F@ 2403

Last change on this file since 2403 was 2403, checked in by cmv, 22 years ago

Creation du module de code source de MINUIT (CERNLIB) extrait par CMV

cmv 11/06/2003

File size: 2.6 KB
Line 
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"
12CC Performs a MINOS error analysis on those parameters for
13CC which it is requested on the MINOS command by calling
14CC 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
21C . 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
37C 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
41C 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
54C end of loop . . . . . . .
55 580 CONTINUE
56C . . . . 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
67C . . . 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
Note: See TracBrowser for help on using the repository browser.