1 | *
|
---|
2 | * $Id: mnerrs.F,v 1.1.1.1 2003-06-11 14:18:27 cmv Exp $
|
---|
3 | *
|
---|
4 | * $Log: not supported by cvs2svn $
|
---|
5 | * Revision 1.1.1.1 1996/03/07 14:31:29 mclareni
|
---|
6 | * Minuit
|
---|
7 | *
|
---|
8 | *
|
---|
9 | #include "minuit/pilot.h"
|
---|
10 | SUBROUTINE MNERRS(NUMBER,EPLUS,EMINUS,EPARAB,GCC)
|
---|
11 | #include "minuit/d506dp.inc"
|
---|
12 | CC Called by user, utility routine to get MINOS errors
|
---|
13 | CC If NUMBER is positive, then it is external parameter number,
|
---|
14 | CC if negative, it is -internal number.
|
---|
15 | CC values returned by MNERRS:
|
---|
16 | CC EPLUS, EMINUS are MINOS errors of parameter NUMBER,
|
---|
17 | CC EPARAB is 'parabolic' error (from error matrix).
|
---|
18 | CC (Errors not calculated are set = 0.)
|
---|
19 | CC GCC is global correlation coefficient from error matrix
|
---|
20 | #include "minuit/d506cm.inc"
|
---|
21 | C
|
---|
22 | IEX = NUMBER
|
---|
23 | IF (NUMBER .LT. 0) THEN
|
---|
24 | IIN = -NUMBER
|
---|
25 | IF (IIN .GT. NPAR) GO TO 900
|
---|
26 | IEX = NEXOFI(IIN)
|
---|
27 | ENDIF
|
---|
28 | IF (IEX .GT. NU .OR. IEX .LE. 0) GO TO 900
|
---|
29 | IIN = NIOFEX(IEX)
|
---|
30 | IF (IIN .LE. 0) GO TO 900
|
---|
31 | C IEX is external number, IIN is internal number
|
---|
32 | EPLUS = ERP(IIN)
|
---|
33 | IF (EPLUS.EQ.UNDEFI) EPLUS=0.
|
---|
34 | EMINUS= ERN(IIN)
|
---|
35 | IF (EMINUS.EQ.UNDEFI) EMINUS=0.
|
---|
36 | CALL MNDXDI(X(IIN),IIN,DXDI)
|
---|
37 | NDIAG = IIN*(IIN+1)/2
|
---|
38 | EPARAB = ABS(DXDI*SQRT(ABS(UP*VHMAT(NDIAG))))
|
---|
39 | C global correlation coefficient
|
---|
40 | GCC = 0.
|
---|
41 | IF (ISW(2) .LT. 2) GO TO 990
|
---|
42 | GCC = GLOBCC(IIN)
|
---|
43 | GO TO 990
|
---|
44 | C ERROR. parameter number not valid
|
---|
45 | 900 EPLUS = 0.
|
---|
46 | EMINUS = 0.
|
---|
47 | EPARAB = 0.
|
---|
48 | GCC = 0.
|
---|
49 | 990 RETURN
|
---|
50 | END
|
---|