[2403] | 1 | *
|
---|
| 2 | * $Id: mnemat.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 MNEMAT(EMAT,NDIM)
|
---|
| 11 | #include "minuit/d506dp.inc"
|
---|
| 12 | DIMENSION EMAT(NDIM,NDIM)
|
---|
| 13 | CC Calculates the external error matrix from the internal
|
---|
| 14 | CC to be called by user, who must dimension EMAT at (NDIM,NDIM)
|
---|
| 15 | #include "minuit/d506cm.inc"
|
---|
| 16 | IF (ISW(2) .LT. 1) RETURN
|
---|
| 17 | IF (ISW(5) .GE. 2) WRITE (ISYSWR,'(/A,I4,A,I3,A,G10.3)')
|
---|
| 18 | + ' EXTERNAL ERROR MATRIX. NDIM=',NDIM,' NPAR=',NPAR,
|
---|
| 19 | + ' ERR DEF=',UP
|
---|
| 20 | C size of matrix to be printed
|
---|
| 21 | NPARD = NPAR
|
---|
| 22 | IF (NDIM .LT. NPAR) THEN
|
---|
| 23 | NPARD = NDIM
|
---|
| 24 | IF (ISW(5) .GE. 0) WRITE (ISYSWR,'(A,A)') ' USER-DIMENSIONED ',
|
---|
| 25 | + ' ARRAY EMAT NOT BIG ENOUGH. REDUCED MATRIX CALCULATED.'
|
---|
| 26 | ENDIF
|
---|
| 27 | C NPERLN is the number of elements that fit on one line
|
---|
| 28 | NPERLN = (NPAGWD-5)/10
|
---|
| 29 | NPERLN = MIN(NPERLN,13)
|
---|
| 30 | IF (ISW(5).GE. 1 .AND. NPARD.GT.NPERLN) WRITE (ISYSWR,'(A)')
|
---|
| 31 | + ' ELEMENTS ABOVE DIAGONAL ARE NOT PRINTED.'
|
---|
| 32 | C I counts the rows of the matrix
|
---|
| 33 | DO 110 I= 1, NPARD
|
---|
| 34 | CALL MNDXDI(X(I),I,DXDI)
|
---|
| 35 | KGA = I*(I-1)/2
|
---|
| 36 | DO 100 J= 1, I
|
---|
| 37 | CALL MNDXDI(X(J),J,DXDJ)
|
---|
| 38 | KGB = KGA + J
|
---|
| 39 | EMAT(I,J) = DXDI * VHMAT(KGB) * DXDJ * UP
|
---|
| 40 | EMAT(J,I) = EMAT(I,J)
|
---|
| 41 | 100 CONTINUE
|
---|
| 42 | 110 CONTINUE
|
---|
| 43 | C IZ is number of columns to be printed in row I
|
---|
| 44 | IF (ISW(5) .GE. 2) THEN
|
---|
| 45 | DO 160 I= 1, NPARD
|
---|
| 46 | IZ = NPARD
|
---|
| 47 | IF (NPARD .GE. NPERLN) IZ = I
|
---|
| 48 | DO 150 K= 1, IZ, NPERLN
|
---|
| 49 | K2 = K + NPERLN - 1
|
---|
| 50 | IF (K2 .GT. IZ) K2=IZ
|
---|
| 51 | WRITE (ISYSWR,'(1X,13E10.3)') (EMAT(I,KK),KK=K,K2)
|
---|
| 52 | 150 CONTINUE
|
---|
| 53 | 160 CONTINUE
|
---|
| 54 | ENDIF
|
---|
| 55 | RETURN
|
---|
| 56 | END
|
---|