SUBROUTINE FINOERR(PERERR,POBSERR,PFINOERR)

!****  SUBROUTINE FINOERR - FORM FINAL PRE-PROCESSING OBS. ERROR

!         D. VASILJEVIC     ECMWF    21/10/94

!      PURPOSE
!      -------

!        FINAL PRE-PROCESSING OBS. ERROR

!**   INTERFACE
!     ---------

!        CALL FINOERR(PERERR,POBSERR,PFINOERR)
!     WHERE:
!           PERERR   = PERSISTENCE ERROR
!           POBSERR  = OBS. ERROR
!           PFINOERR = FINAL OBS. ERROR

!         FINOERR IS CALLED BY SUBROUTINES

!     METHOD
!     ------

!        THE FINAL PRE-PROCESSING OBS. ERROR IS CREATED AS SQRT OF
!     PERSISTENCE AND OBSERVATION ERROR.

!     EXTERNALS
!     ---------

!        FINOEREV - FINAL OBS. ERROR EVALUATION (IFS COMMON ROUTINE)

!**   HISTORY
!     -------

!-----------------------------------------------------------------------

USE PARKIND1  ,ONLY : JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

USE YOMANCS  , ONLY : RMDI
IMPLICIT NONE

REAL(KIND=JPRB)   ,INTENT(IN)    :: PERERR 
REAL(KIND=JPRB)   ,INTENT(IN)    :: POBSERR 
REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFINOERR 
REAL(KIND=JPRB) :: ZHOOK_HANDLE

#include "finoerev.intfb.h"

!*

!        0.       PRESET
!                 ------

!*          0.1   PRESET TO MIISING IND.

IF (LHOOK) CALL DR_HOOK('FINOERR',0,ZHOOK_HANDLE)
CALL FINOEREV(PERERR,POBSERR,RMDI,PFINOERR)
!*
!-----------------------------------------------------------------------

!        2.       RETURN
!                 ------

2 CONTINUE
IF (LHOOK) CALL DR_HOOK('FINOERR',1,ZHOOK_HANDLE)
END SUBROUTINE FINOERR
