*-- Author : S.Burke
SUBROUTINE FKLXYZ(XY,CXYZ,SP,CP,SF,CF,CHISQ,IERR)
*-----------------------------------------Updates 02/06/92-------
**: FKLXYZ 50106 SB. Protect against divide by 0.
*-----------------------------------------Updates----------------
**********************************************************************
* *
* Kalman Filter an x/y point with errors on z *
* *
* ERROR CONDITIONS; *
* IERR = 0 ; normal termination *
* -> IERR = 107 ; failure to invert measurement covariance *
* -> IERR = 111 ; failure to invert filtered covariance *
* IERR = 17 ; tan(theta) > 1 (warning) *
* IERR = 12 ; covariance of filtered residuals n.p.d. *
* IERR = 20 + n ; 2 < n < 10 iterations *
* -> IERR = 130 ; 10 iterations *
* *
* -> Fatal errors *
* *
* NB Error 12 is not considered fatal, but the chi-sq will be zero *
* *
* Note that after an error 130 the output vectors are defined, but *
* are not guaranteed to be correct. *
* *
**********************************************************************
*KEEP,FKECODE.
*KEND.
*KEEP,FKNPL.
*
* Per-track values can go in H1WORK; note that LTRUE and LFIRST must
* be set at least per event.
*
* This is about 36k words long; the remaining common blocks are
* about 3.6k in total. Some of this could be in /H1WORK/, but the
* blocks would have to be reorganised.
*
* /FKPROJ/
* /FKFILT/
* /FKSMTH/
* /FKINT/
* /FKRSID/
* /FKTRUE/
* /FKDBG/
*KEEP,FKFTVX.
*KEND.
**********************************************************************
CALL FKLFXY(SP,CP,WMES,CMES,SF,CF,CHISQ,IFAIL)
IF (IFAIL.NE.0) CALL FKERR(IUTIL,IROUT,IFAIL/100,IFAIL,IERR)
CALL FKERR(IUTIL,IROUT,IFATAL,IFREE1,IERR)
IF (NPASS.GT.2) CALL FKERR(IUTIL,IROUT,IWARN,IFREE+NPASS,IERR)
*