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