*-- 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 *