*-- Author : Stephen Burke
SUBROUTINE FKLSSM(Z,DZ,SVEC,CVEC,SPRO,QGAIN,QPRO,SSMT,CSMT,IERR)
*-----------------------------------------Updates 07/02/92-------
**: FKLSSM 30205.SB. Remove unused FKECODE sequence.
*-----------------------------------------Updates----------------
**********************************************************************
* *
* Simple Kalman Smoothing *
* *
* ERROR CONDITIONS; *
* IERR = 0 ; normal termination *
* IERR = 116 ; x, y or theta has silly value *
* IERR = 17 ; tan(theta) > 1 (warning) *
* *
**********************************************************************
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
PARAMETER (IUTIL=0,IROUT=13)
DIMENSION SVEC(5),CVEC(5,5),SPRO(5),QGAIN(5,5),QPRO(5,5)
&, SSMT(5),CSMT(5,5)
DIMENSION SADJ(5),DINV(5,5),AGAIN(5,5)
**********************************************************************
IERR = 0
* Adjust the old smoothed vector to allow for MS ...
CALL FKADJ(SVEC,SPRO,QGAIN,SADJ)
CALL FKNORM(SADJ,IFAIL)
IF (IFAIL.NE.0) CALL FKERR(IUTIL,IROUT,IFAIL/100,IFAIL,IERR)
IF (IFAIL.GE.100) RETURN
* ... translate to the new position ...
CALL FKTRAN(DZ,Z,SADJ,SSMT,DINV)
CALL FKNORM(SSMT,IFAIL)
IF (IFAIL.NE.0) CALL FKERR(IUTIL,IROUT,IFAIL/100,IFAIL,IERR)
IF (IFAIL.GE.100) RETURN
* ... and calculate the new covariance
CALL FKDMQD(DINV,QGAIN,AGAIN)
CALL FKMXM(CVEC,AGAIN,CSMT)
CALL FKDQA(DINV,QPRO,AGAIN,CSMT)
RETURN
END
*