SURFEX v7.3
General documentation of Surfex
|
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