*-- Author : S.Burke
SUBROUTINE FKLSPR(SFIL,CFIL,Z,DZ,RADL,QPRO,QGAIN,SPRO,CPRO,IERR)
**********************************************************************
* *
* Translate a state vector and its covariance, including multiple *
* scattering (simple version of FKLPRO) *
* *
* ERROR CONDITIONS; *
* IERR = 0 ; normal termination *
* -> IERR = 111 ; failure to invert projected covariance *
* *
* -> Fatal errors *
* *
**********************************************************************
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
PARAMETER (IUTIL=0,IROUT=11)
*KEEP,FKECODE.
PARAMETER (IWARN=0,IFATAL=1,IFPRO=2,IFFLT=3,IFSMO=4,IFPRS=5,
& IFPAS=6,IFPAF=7)
PARAMETER (IINF1=1,IINF2=2,IINF3=3,IINV=4,IDONE=5)
PARAMETER (IICV=6,IMCV=7,IOCV=11,IRCV=12,IOVCV=13,
& ITHGP2=16,ITHG1=17)
PARAMETER (IFREE=20,IFREE1=30,IFREE2=40,IFREE3=50)
*KEND.
DIMENSION SFIL(5),CFIL(5,5),QPRO(5,5),QGAIN(5,5)
&, SPRO(5),CPRO(5,5)
DIMENSION DTRAN(5,5)
**********************************************************************
IERR = 0
* Transform the state vector and covariance from Z to Z+DZ
CALL FKTRAN(DZ,Z,SFIL,SPRO,DTRAN)
CALL FKMUL(CFIL,DTRAN,CPRO)
* Compute the MS matrix and add to the projected error matrix
CALL FKSCAT(DZ,SFIL,RADL,DTRAN,QPRO)
CALL FKQADD(CPRO,QPRO)
* Calculate QGAIN for the smoother
CALL FKQG(CPRO,QPRO,QGAIN,IFAIL)
IF (IFAIL.NE.0) CALL FKERR(IUTIL,IROUT,IFATAL,IOCV,IERR)
RETURN
END
*