SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/oi_bc_soil_moisture.F90
Go to the documentation of this file.
00001 SUBROUTINE OI_BC_SOIL_MOISTURE (KNBPT,&
00002 !---------------------------------------------------------------------------------
00003 ! - INPUT  1D
00004    PSM_O,PSAB,&
00005 ! - OUTPUT 1D .
00006    PWS_O)    
00007 !
00008 !**** * BC_SOIL_MOISTURE * - BIAS CORRECTION OF ASCAT SUPERFICIAL SOIL MOISTURE
00009 
00010 !     Purpose.
00011 !     --------
00012 
00013 !     - Use of CDF matching technique (Koster and Reichle, 2004)
00014 !       
00015     
00016 !**   Interface.
00017 !     ----------
00018 !        *CALL* *BC_SOIL_MOISTURE*
00019 
00020 !----------------------------------------------------------------------------------
00021 
00022 !     Externals.
00023 !     ---------
00024 
00025 !     Method.  5th other polynomial correction
00026 !     -------
00027 
00028 !     Author.
00029 !     -------
00030 !        09-06, J.-F. Mahfouf
00031 
00032 !-----------------------------------------------------------------------
00033 !
00034 !  
00035 !
00036 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00037 USE PARKIND1  ,ONLY : JPRB
00038 !
00039 IMPLICIT NONE
00040 !  
00041 INTEGER    :: KNBPT
00042 INTEGER    :: JROF
00043 !
00044 REAL    ,INTENT(IN)    :: PSM_O(KNBPT) 
00045 REAL    ,INTENT(IN)    :: PSAB(KNBPT)
00046 !
00047 REAL    ,INTENT(OUT)   :: PWS_O(KNBPT) 
00048 !
00049 REAL    :: ZWSAT, ZA0, ZA1, ZA2, ZA3, ZA4, ZA5
00050 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00051 !
00052 ! Coefficient for 5th order polynomial fit
00053 !        
00054 IF (LHOOK) CALL DR_HOOK('OI_BC_SOIL_MOISTURE',0,ZHOOK_HANDLE)
00055 ZA0 =  8.80461E-08
00056 ZA1 = -2.21598E-05
00057 ZA2 =  0.00188043
00058 ZA3 = -0.0575883
00059 ZA4 =  0.0249301
00060 ZA5 =  15.7502
00061 !
00062 ! Perform the bias correction when observation available
00063 !
00064 DO JROF = 1,KNBPT
00065   IF (PSM_O(JROF) /= 999.0) THEN
00066     ZWSAT = -0.108*PSAB(JROF) + 0.494305
00067     PWS_O(JROF) = ZA0*PSM_O(JROF)**5 + ZA1*PSM_O(JROF)**4 + ZA2*PSM_O(JROF)**3 + &
00068                     ZA3*PSM_O(JROF)**2 + (1.+ZA4)*PSM_O(JROF) + ZA5  
00069     PWS_O(JROF) = PWS_O(JROF)*ZWSAT*0.01
00070   ELSE
00071     PWS_O(JROF) = 999.0 
00072   ENDIF 
00073 ENDDO
00074 IF (LHOOK) CALL DR_HOOK('OI_BC_SOIL_MOISTURE',1,ZHOOK_HANDLE)
00075 !
00076 END SUBROUTINE OI_BC_SOIL_MOISTURE