SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
garden_soil_depth.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 ! #########
6  SUBROUTINE garden_soil_depth(HNVEG,HLVEG,HHVEG,PNVEG,PLVEG,PHVEG,PDG)
7 ! #########################################
8 !
9 !!**** *GARDEN_SOIL_DEPTH* - routine to initialise garden soil depth from data
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !!** METHOD
15 !! ------
16 !!
17 !! EXTERNAL
18 !! --------
19 !!
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !!
28 !! AUTHOR
29 !! ------
30 !! V. Masson *Meteo France*
31 !!
32 !! MODIFICATIONS
33 !! -------------
34 !! Original 10/2011
35 !! R. Alkama : Add 7 new vegtype (19 rather than 12)
36 !-------------------------------------------------------------------------------
37 !
38 !* 0. DECLARATIONS
39 ! ------------
40 !
41 USE modd_isba_par, ONLY : xoptimgrid, noptimlayer
42 !
43 USE modi_abor1_sfx
44 !
45 USE yomhook ,ONLY : lhook, dr_hook
46 USE parkind1 ,ONLY : jprb
47 !
48 IMPLICIT NONE
49 !
50 !* 0.1 Declarations of arguments
51 ! -------------------------
52 !
53  CHARACTER(LEN=3) :: hnveg ! type of no vegetation
54  CHARACTER(LEN=3) :: hlveg ! type of low vegetation
55  CHARACTER(LEN=3) :: hhveg ! type of high vegetation
56 REAL, DIMENSION(:), INTENT(IN) :: pnveg ! fraction of no vegetation
57 REAL, DIMENSION(:), INTENT(IN) :: plveg ! fraction of low vegetation
58 REAL, DIMENSION(:), INTENT(IN) :: phveg ! fraction of high vegetation
59 REAL, DIMENSION(:,:,:), INTENT(OUT):: pdg ! soil depth
60 !
61 !* 0.2 Declarations of local variables
62 ! -------------------------------
63 !
64 REAL, DIMENSION(SIZE(PDG,1),SIZE(PDG,2),3) :: zdata_dg
65 INTEGER :: jl, ji
66 !
67 REAL(KIND=JPRB) :: zhook_handle
68 !
69 !-------------------------------------------------------------------------------
70 !
71 IF (lhook) CALL dr_hook('GARDEN_SOIL_DEPTH',0,zhook_handle)
72 
73 IF (SIZE(pdg,2)<=3) THEN
74 
75  zdata_dg(:,1,:) = 0.01
76  zdata_dg(:,2,:) = 1.50
77  IF(hhveg=='TEBD') zdata_dg(:,2,1)= 2.0
78  IF(hhveg=='BONE') zdata_dg(:,2,1)= 2.0
79  IF(hhveg=='TRBE') zdata_dg(:,2,1)= 2.0
80  IF(hhveg=='TRBD') zdata_dg(:,2,1)= 2.0
81  IF(hhveg=='TEBE') zdata_dg(:,2,1)= 2.0
82  IF(hhveg=='TENE') zdata_dg(:,2,1)= 2.0
83  IF(hhveg=='BOBD') zdata_dg(:,2,1)= 2.0
84  IF(hhveg=='BOND') zdata_dg(:,2,1)= 2.0
85  IF(hhveg=='SHRB') zdata_dg(:,2,1)= 2.0
86  IF(hnveg=='NO ') zdata_dg(:,2,3)= 0.5
87  IF(hnveg=='ROCK') zdata_dg(:,2,3)= 0.5
88  IF(hnveg=='SNOW') zdata_dg(:,2,3)= 0.5
89 
90  IF (SIZE(pdg,2)==3) THEN
91  zdata_dg(:,3,:) = 2.00
92  IF(hhveg=='TEBD') zdata_dg(:,3,1)= 3.0
93  IF(hhveg=='BONE') zdata_dg(:,3,1)= 3.0
94  IF(hhveg=='TRBE') zdata_dg(:,3,1)= 3.0
95  IF(hhveg=='TRBD') zdata_dg(:,3,1)= 3.0
96  IF(hhveg=='TEBE') zdata_dg(:,3,1)= 3.0
97  IF(hhveg=='TENE') zdata_dg(:,3,1)= 3.0
98  IF(hhveg=='BOBD') zdata_dg(:,3,1)= 3.0
99  IF(hhveg=='BOND') zdata_dg(:,3,1)= 3.0
100  IF(hhveg=='SHRB') zdata_dg(:,3,1)= 3.0
101  IF(hnveg=='NO ') zdata_dg(:,3,3)= 1.0
102  IF(hnveg=='ROCK') zdata_dg(:,3,3)= 1.0
103  IF(hnveg=='SNOW') zdata_dg(:,3,3)= 1.0
104  ENDIF
105 
106 ELSEIF (SIZE(pdg,2)<=noptimlayer) THEN
107 
108  DO ji=1,SIZE(pdg,1)
109  DO jl=1,3
110  zdata_dg(ji,:,jl) = xoptimgrid(:)
111  ENDDO
112  ENDDO
113 
114 ELSE
115 
116  CALL abor1_sfx("GARDEN_SOIL_DEPTH: WITH MORE THAN 14 SOIL LAYERS, "//&
117  "without ecoclimap, garden cannot run")
118 
119 ENDIF
120 !
121 DO JL=1,SIZE(PDG,2)
122  PDG(:,JL,1) = ZDATA_DG(:,JL,1)*PHVEG(:) &
123  + ZDATA_DG(:,JL,2)*PLVEG(:) &
124  + ZDATA_DG(:,JL,3)*PNVEG(:)
125 END DO
126 !
127 IF (LHOOK) CALL DR_HOOK('GARDEN_SOIL_DEPTH',1,ZHOOK_HANDLE)
128 !
129 !
130 !-------------------------------------------------------------------------------
131 !
132 END SUBROUTINE GARDEN_SOIL_DEPTH
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine garden(DTCO, DTI, IG, I, TG, T, TOP, DTGR, TGRO, GDM, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZ_LOWCAN, PT_LOWCAN, PQ_LOWCAN, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PU_LOWCAN, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN_GARDEN, PH_GARDEN, PLE_GARDEN, PGFLUX_GARDEN, PSFCO2, PEVAP_GARDEN, PUW_GARDEN, PRUNOFF_GARDEN, PAC_GARDEN, PQSAT_GARDEN, PTS_GARDEN, PAC_AGG_GARDEN, PHU_AGG_GARDEN, PDRAIN_GARDEN, PIRRIG_GARDEN)
Definition: garden.F90:6