SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/oi_kalman_gain.F90
Go to the documentation of this file.
00001 SUBROUTINE OI_KALMAN_GAIN(PDWG_DWG,PDWG_DW2,PD2,PK1,PK2)
00002 !
00003 !****-------------------------------------------------------------------
00004 !
00005 USE MODD_CSTS,  ONLY : XRHOLW 
00006 USE MODD_ASSIM, ONLY : RD1, SIGWGO, SIGWGB, SIGW2B
00007 !
00008 !
00009 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00010 USE PARKIND1  ,ONLY : JPRB
00011 !
00012 IMPLICIT NONE
00013 !
00014 REAL ,INTENT(IN)  :: PDWG_DWG, PDWG_DW2, PD2
00015 REAL ,INTENT(OUT) :: PK1, PK2
00016 !
00017 REAL :: ZSIG_WG,ZSIG_W2,ZSIG_WO,ZA,ZB,ZH1,ZH2,ZDENOM
00018 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00019 !
00020 ! Standard deviation of background and observation errors
00021 !
00022 IF (LHOOK) CALL DR_HOOK('OI_KALMAN_GAIN',0,ZHOOK_HANDLE)
00023 ZSIG_WG = SIGWGB
00024 ZSIG_W2 = SIGW2B
00025 ZSIG_WO = SIGWGO
00026 !
00027 ! Jacobians elements
00028 !
00029 ZH1 = PDWG_DWG
00030 ZH2 = PDWG_DW2
00031 !
00032 ! Elements of background covariance matrix
00033 !
00034 ZA = (ZSIG_WG*ZH1)**2 + (ZSIG_W2*ZH2)**2
00035 ZB =  ZSIG_W2**2
00036 !
00037 ZDENOM = (ZA + ZSIG_WO*ZSIG_WO)
00038 !
00039 ! Kalman gain elements (m3/m3)
00040 !
00041 PK1 =  ZA    /ZDENOM !*RD1*XRHOLW
00042 PK2 =  ZB*ZH2/ZDENOM !*PD2*XRHOLW
00043 IF (LHOOK) CALL DR_HOOK('OI_KALMAN_GAIN',1,ZHOOK_HANDLE)
00044 !
00045 !**---------------------------------------------------------------------
00046 END SUBROUTINE OI_KALMAN_GAIN
00047