SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
oi_fctveg.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 SUBROUTINE oi_fctveg(KH,PVEG,&
6  pvgat1,pvgat2,pvgat3,pvgbt1,pvgbt2,pvgbt3,pvgct1,pvgct2, &
7  pvgah1,pvgah2,pvgah3,pvgbh1,pvgbh2,pvgbh3,pvgch1,pvgch2, &
8  psigt2mp,psighp2,pg1,pg2,pg3,pg4,&
9  pvgst,pvgsh,pvgpt1,pvgph1,pvgpt2,pvgph2)
10 !
11 !****-------------------------------------------------------------------
12 !
13 USE modd_assim, ONLY : xsighp1, xsigt2mr, xsigh2mr, xsigt2mo, xsigh2mo
14 !
15 USE yomhook ,ONLY : lhook, dr_hook
16 USE parkind1 ,ONLY : jprb
17 !
18 IMPLICIT NONE
19 !
20 INTEGER :: j
21 INTEGER, INTENT(IN) :: kh
22 !
23 REAL, DIMENSION(24), INTENT(IN) :: pvgat1,pvgat2,pvgat3
24 REAL, DIMENSION(24), INTENT(IN) :: pvgbt1,pvgbt2,pvgbt3
25 REAL, DIMENSION(24), INTENT(IN) :: pvgct1,pvgct2
26 REAL, DIMENSION(24), INTENT(IN) :: pvgah1,pvgah2,pvgah3
27 REAL, DIMENSION(24), INTENT(IN) :: pvgbh1,pvgbh2,pvgbh3
28 REAL, DIMENSION(24), INTENT(IN) :: pvgch1,pvgch2
29 REAL, DIMENSION(24), INTENT(IN) :: psigt2mp,psighp2
30 !
31 REAL, INTENT(IN) :: pveg
32 !
33 REAL, INTENT(OUT) :: pg1,pg2,pg3,pg4
34 REAL, INTENT(OUT) :: pvgst,pvgsh,pvgpt1,pvgph1,pvgpt2,pvgph2
35 !
36 REAL :: zsigh2mp
37 REAL :: zx1,zy1,zx2,zy2,zx3,zy3,zx4,zy4
38 !
39 REAL(KIND=JPRB) :: zhook_handle
40 !
41 !**---------------------------------------------------------------------
42 !** 1. Initialisation des polynomes bruts et des champs de reference.
43 !** -------------------------------------------------------------
44 !
45 ! fonction definissant la dependance par rapport aux erreurs d'observation
46 !REAL :: G
47 !REAL :: PX,PY
48 !G ( PX,PY ) = PX**2 / (PX**2 + PY**2 + (PX*PY)**2)
49 !
50 ! ecart-type d'erreurs de prevision sur H2m
51 !
52 IF (lhook) CALL dr_hook('OI_FCTVEG',0,zhook_handle)
53 zsigh2mp = xsighp1 + psighp2(kh)*pveg
54 !
55 !G1 = G(SIGH2MO/SIGH2MP(KH,PVEG),SIGT2MO/SIGT2MP(KH))
56 zx1 = xsigh2mo/zsigh2mp
57 zy1 = xsigt2mo/psigt2mp(kh)
58 pg1 = zx1**2 / (zx1**2 + zy1**2 + (zx1*zy1)**2)
59 !
60 !G2= G(SIGH2MR/SIGH2MP(KH,PVEG),SIGT2MR/SIGT2MP(KH))
61 zx2 = xsigh2mr/zsigh2mp
62 zy2 = xsigt2mr/psigt2mp(kh)
63 pg2 = zx2**2 / (zx2**2 + zy2**2 + (zx2*zy2)**2)
64 !
65 !G3= G(SIGT2MO/SIGT2MP(KH),SIGH2MO/SIGH2MP(KH,PVEG))
66 zx3 = xsigt2mo/psigt2mp(kh)
67 zy3 = xsigh2mo/zsigh2mp
68 pg3 = zx3**2 / (zx3**2 + zy3**2 + (zx3*zy3)**2)
69 !
70 !G4= G(SIGT2MR/SIGT2MP(KH),SIGH2MR/SIGH2MP(KH,PVEG))
71 zx4 = xsigt2mr/psigt2mp(kh)
72 zy4 = xsigh2mr/zsigh2mp
73 pg4 = zx4**2 / (zx4**2 + zy4**2 + (zx4*zy4)**2)
74 !
75 ! polynomes de base pour la dependance par rapport a l'indice de vegetation
76 !
77 pvgst = (1.0 - pveg)*(pvgat1(kh) + pvgat2(kh)*pveg + pvgat3(kh)*pveg**2)
78 pvgsh = (1.0 - pveg)*(pvgah1(kh) + pvgah2(kh)*pveg + pvgah3(kh)*pveg**2)
79 pvgpt1 = (1.0 - pveg)*(pvgbt1(kh) + pvgbt2(kh)*pveg + pvgbt3(kh)*pveg**2)
80 pvgph1 = (1.0 - pveg)*(pvgbh1(kh) + pvgbh2(kh)*pveg + pvgbh3(kh)*pveg**2)
81 pvgpt2 = pveg*(pvgct1(kh) + pvgct2(kh)*pveg)
82 pvgph2 = pveg*(pvgch1(kh) + pvgch2(kh)*pveg)
83 IF (lhook) CALL dr_hook('OI_FCTVEG',1,zhook_handle)
84 !
85 !**---------------------------------------------------------------------
86 END SUBROUTINE oi_fctveg
87 
subroutine oi_fctveg(KH, PVEG, PVGAT1, PVGAT2, PVGAT3, PVGBT1, PVGBT2, PVGBT3, PVGCT1, PVGCT2, PVGAH1, PVGAH2, PVGAH3, PVGBH1, PVGBH2, PVGBH3, PVGCH1, PVGCH2, PSIGT2MP, PSIGHP2, PG1, PG2, PG3, PG4, PVGST, PVGSH, PVGPT1, PVGPH1, PVGPT2, PVGPH2)
Definition: oi_fctveg.F90:5