source: Sophya/trunk/SophyaExt/CodeMinuit/code/mnwerr.F

Last change on this file 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: 1.7 KB
Line 
1*
2* $Id: mnwerr.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
3*
4* $Log: not supported by cvs2svn $
5* Revision 1.1.1.1 1996/03/07 14:31:32 mclareni
6* Minuit
7*
8*
9#include "minuit/pilot.h"
10 SUBROUTINE MNWERR
11#include "minuit/d506dp.inc"
12CC Calculates the WERR, external parameter errors,
13CC and the global correlation coefficients, to be called
14CC whenever a new covariance matrix is available.
15CC
16#include "minuit/d506cm.inc"
17C calculate external error if v exists
18 IF (ISW(2) .GE. 1) THEN
19 DO 100 L= 1, NPAR
20 NDEX = L*(L+1)/2
21 DX = SQRT(ABS(VHMAT(NDEX)*UP))
22 I = NEXOFI(L)
23 IF (NVARL(I) .GT. 1) THEN
24 AL = ALIM(I)
25 BA = BLIM(I) - AL
26 DU1 = AL + 0.5 *(SIN(X(L)+DX) +1.0) * BA - U(I)
27 DU2 = AL + 0.5 *(SIN(X(L)-DX) +1.0) * BA - U(I)
28 IF (DX .GT. 1.0) DU1 = BA
29 DX = 0.5 * (ABS(DU1) + ABS(DU2))
30 ENDIF
31 WERR(L) = DX
32 100 CONTINUE
33 ENDIF
34C global correlation coefficients
35 IF (ISW(2) .GE. 1) THEN
36 DO 130 I= 1, NPAR
37 GLOBCC(I) = 0.
38 K1 = I*(I-1)/2
39 DO 130 J= 1, I
40 K = K1 + J
41 P(I,J) = VHMAT(K)
42 130 P(J,I) = P(I,J)
43 CALL MNVERT(P,MAXINT,MAXINT,NPAR,IERR)
44 IF (IERR .EQ. 0) THEN
45 DO 150 IIN= 1, NPAR
46 NDIAG = IIN*(IIN+1)/2
47 DENOM = P(IIN,IIN)*VHMAT(NDIAG)
48 IF (DENOM.LE.ONE .AND. DENOM.GE.ZERO) THEN
49 GLOBCC(IIN) = 0.
50 ELSE
51 GLOBCC(IIN) = SQRT(1.0-1.0/DENOM)
52 ENDIF
53 150 CONTINUE
54 ENDIF
55 ENDIF
56 RETURN
57 END
Note: See TracBrowser for help on using the repository browser.