SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/oi_fctveg.F90
Go to the documentation of this file.
00001 SUBROUTINE OI_FCTVEG(IH,PVEG,&
00002    VGAT1,VGAT2,VGAT3,VGBT1,VGBT2,VGBT3,VGCT1,VGCT2,  &
00003    VGAH1,VGAH2,VGAH3,VGBH1,VGBH2,VGBH3,VGCH1,VGCH2,&
00004    SIGT2MP,SIGHP2,&
00005    G1,G2,G3,G4,&
00006    VGST,VGSH,VGPT1,VGPH1,VGPT2,VGPH2)  
00007 !
00008 !****-------------------------------------------------------------------
00009 !
00010 USE MODD_ASSIM, ONLY : SIGHP1, SIGT2MR, SIGH2MR, SIGT2MO, SIGH2MO 
00011 !
00012 !
00013 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00014 USE PARKIND1  ,ONLY : JPRB
00015 !
00016 IMPLICIT NONE
00017 !
00018 INTEGER :: J
00019 INTEGER :: IH
00020 !
00021 REAL ,INTENT(IN) :: VGAT1(24),VGAT2(24),VGAT3(24)
00022 REAL ,INTENT(IN) :: VGBT1(24),VGBT2(24),VGBT3(24)
00023 REAL ,INTENT(IN) :: VGCT1(24),VGCT2(24)
00024 REAL ,INTENT(IN) :: VGAH1(24),VGAH2(24),VGAH3(24)
00025 REAL ,INTENT(IN) :: VGBH1(24),VGBH2(24),VGBH3(24)
00026 REAL ,INTENT(IN) :: VGCH1(24),VGCH2(24)
00027 REAL ,INTENT(IN) :: SIGT2MP(24),SIGHP2(24)
00028 !
00029 REAL :: PVEG
00030 REAL :: SIGH2MP
00031 !
00032 REAL :: VGST,VGSH,VGPT1,VGPH1,VGPT2,VGPH2
00033 !
00034 REAL :: G1,G2,G3,G4
00035 REAL :: PX1,PY1,PX2,PY2,PX3,PY3,PX4,PY4
00036 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00037 !
00038 !**---------------------------------------------------------------------
00039 !**  1. Initialisation des polynomes bruts et des champs de reference.
00040 !**     -------------------------------------------------------------
00041 !
00042 ! fonction definissant la dependance par rapport aux erreurs d'observation
00043 !REAL :: G
00044 !REAL :: PX,PY
00045 !G ( PX,PY ) = PX**2 / (PX**2 + PY**2 + (PX*PY)**2)
00046 !
00047 ! ecart-type d'erreurs de prevision sur H2m
00048 !
00049 IF (LHOOK) CALL DR_HOOK('OI_FCTVEG',0,ZHOOK_HANDLE)
00050 SIGH2MP  = SIGHP1 + SIGHP2(IH)*PVEG
00051 !
00052 !G1 = G(SIGH2MO/SIGH2MP(IH,PVEG),SIGT2MO/SIGT2MP(IH))
00053 PX1 = SIGH2MO/SIGH2MP
00054 PY1 = SIGT2MO/SIGT2MP(IH)
00055 G1  = PX1**2 / (PX1**2 + PY1**2 + (PX1*PY1)**2)
00056 !
00057 !G2= G(SIGH2MR/SIGH2MP(IH,PVEG),SIGT2MR/SIGT2MP(IH))
00058 PX2 = SIGH2MR/SIGH2MP
00059 PY2 = SIGT2MR/SIGT2MP(IH)          
00060 G2  = PX2**2 / (PX2**2 + PY2**2 + (PX2*PY2)**2)
00061 !
00062 !G3= G(SIGT2MO/SIGT2MP(IH),SIGH2MO/SIGH2MP(IH,PVEG))
00063 PX3 = SIGT2MO/SIGT2MP(IH)
00064 PY3 = SIGH2MO/SIGH2MP
00065 G3  = PX3**2 / (PX3**2 + PY3**2 + (PX3*PY3)**2)
00066 !
00067 !G4= G(SIGT2MR/SIGT2MP(KH),SIGH2MR/SIGH2MP(IH,PVEG))
00068 PX4 = SIGT2MR/SIGT2MP(IH)
00069 PY4 = SIGH2MR/SIGH2MP          
00070 G4  = PX4**2 / (PX4**2 + PY4**2 + (PX4*PY4)**2)
00071 !
00072 ! polynomes de base pour la dependance par rapport a l'indice de vegetation
00073 !
00074 VGST  = (1.0 - PVEG)*(VGAT1(IH) + VGAT2(IH)*PVEG + VGAT3(IH)*PVEG**2)
00075 VGSH  = (1.0 - PVEG)*(VGAH1(IH) + VGAH2(IH)*PVEG + VGAH3(IH)*PVEG**2)
00076 VGPT1 = (1.0 - PVEG)*(VGBT1(IH) + VGBT2(IH)*PVEG + VGBT3(IH)*PVEG**2)
00077 VGPH1 = (1.0 - PVEG)*(VGBH1(IH) + VGBH2(IH)*PVEG + VGBH3(IH)*PVEG**2)
00078 VGPT2 = PVEG*(VGCT1(IH) + VGCT2(IH)*PVEG)
00079 VGPH2 = PVEG*(VGCH1(IH) + VGCH2(IH)*PVEG)
00080 IF (LHOOK) CALL DR_HOOK('OI_FCTVEG',1,ZHOOK_HANDLE)
00081 !
00082 !**---------------------------------------------------------------------
00083 END SUBROUTINE OI_FCTVEG
00084