SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_pgd_teb_garden_parn.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 read_pgd_teb_garden_par_n (&
7  dtgd, tgdo, tgdp, tg, &
8  hprogram)
9 ! ################################################
10 !
11 !!**** *READ_PGD_TEB_GARDEN_PAR_n* - reads ISBA physiographic fields
12 !!
13 !!
14 !! PURPOSE
15 !! -------
16 !!
17 !!** METHOD
18 !! ------
19 !!
20 !! EXTERNAL
21 !! --------
22 !!
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !!
31 !! AUTHOR
32 !! ------
33 !! V. Masson *Meteo France*
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !! Original 01/2003
38 !! P. Le Moigne 12/2004 : add type of photosynthesis
39 !! R. Alkama 05/2012 : Add 7 new vegtypes (19 rather than 12)
40 !! B. Decharme 05/13 : new param for equatorial forest
41 !-------------------------------------------------------------------------------
42 !
43 !* 0. DECLARATIONS
44 ! ------------
45 !
46 !
47 !
48 !
49 !
53 USE modd_teb_grid_n, ONLY : teb_grid_t
54 !
55 USE modd_csts, ONLY : xday
56 USE modd_surf_par, ONLY : xundef
57 USE modd_isba_par, ONLY : xoptimgrid, noptimlayer
58 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
59  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
60  nvt_irr, nvt_gras, nvt_trog,nvt_park, &
61  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
62  nvt_bond, nvt_bogr, nvt_shrb, nvegtype
63 !
70 USE modi_abor1_sfx
71 !
72 USE modd_reprod_oper, ONLY : xeverg_rsmin
73 !
74 USE yomhook ,ONLY : lhook, dr_hook
75 USE parkind1 ,ONLY : jprb
76 !
77 IMPLICIT NONE
78 !
79 !* 0.1 Declarations of arguments
80 ! -------------------------
81 !
82 !
83 !
84 !
85 TYPE(data_teb_garden_t), INTENT(INOUT) :: dtgd
86 TYPE(teb_garden_options_t), INTENT(INOUT) :: tgdo
87 TYPE(teb_garden_pgd_t), INTENT(INOUT) :: tgdp
88 TYPE(teb_grid_t), INTENT(INOUT) :: tg
89 !
90  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling
91 !
92 !* 0.2 Declarations of local variables
93 ! -------------------------------
94 !
95 INTEGER :: iresp ! IRESP : return-code if a problem appears
96  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
97  CHARACTER(LEN=100) :: ycomment ! Comment string
98 INTEGER :: ji, jlayer ! loop index
99 INTEGER :: jtime ! loop index
100 !
101 REAL, DIMENSION(TG%NDIM,3) :: zdata_rsmin
102 REAL, DIMENSION(TG%NDIM,3) :: zdata_gamma
103 REAL, DIMENSION(TG%NDIM,3) :: zdata_wrmax_cf
104 REAL, DIMENSION(TG%NDIM,3) :: zdata_rgl
105 REAL, DIMENSION(TG%NDIM,3) :: zdata_cv
106 REAL, DIMENSION(TG%NDIM,TGDO%NGROUND_LAYER,3) :: zdata_dg
107 REAL, DIMENSION(TG%NDIM,3) :: zdata_albnir_veg
108 REAL, DIMENSION(TG%NDIM,3) :: zdata_albvis_veg
109 REAL, DIMENSION(TG%NDIM,3) :: zdata_albuv_veg
110 REAL, DIMENSION(TG%NDIM,3) :: zdata_gmes
111 REAL, DIMENSION(TG%NDIM,3) :: zdata_re25
112 REAL, DIMENSION(TG%NDIM,3) :: zdata_bslai
113 REAL, DIMENSION(TG%NDIM,3) :: zdata_laimin
114 REAL, DIMENSION(TG%NDIM,3) :: zdata_sefold
115 REAL, DIMENSION(TG%NDIM,3) :: zdata_gc
116 REAL, DIMENSION(TG%NDIM,3) :: zdata_dmax
117 REAL, DIMENSION(TG%NDIM,3) :: zdata_ce_nitro
118 REAL, DIMENSION(TG%NDIM,3) :: zdata_cf_nitro
119 REAL, DIMENSION(TG%NDIM,3) :: zdata_cna_nitro
120 !
121 REAL, DIMENSION(TG%NDIM) :: zdata_wg1
122 REAL, DIMENSION(TG%NDIM) :: zdata_wgsat
123 !
124 LOGICAL :: gagri_to_grass
125 !
126 REAL(KIND=JPRB) :: zhook_handle
127 !
128 !-------------------------------------------------------------------------------
129 !
130 !* 1. Reading of PGD file
131 ! --------------------
132 !
133 IF (lhook) CALL dr_hook('READ_PGD_TEB_GARDEN_PAR_N',0,zhook_handle)
134 dtgd%NTIME= 12
135 !
136 gagri_to_grass=.false.
137 !
138 yrecfm='GD_NTIME'
139  CALL read_surf(&
140  hprogram,yrecfm,dtgd%NTIME,iresp,hcomment=ycomment)
141 !
142 ALLOCATE(dtgd%XDATA_FRAC_HVEG (tg%NDIM))
143 ALLOCATE(dtgd%XDATA_FRAC_LVEG (tg%NDIM))
144 ALLOCATE(dtgd%XDATA_FRAC_NVEG (tg%NDIM))
145 ALLOCATE(dtgd%XDATA_LAI_HVEG (tg%NDIM,dtgd%NTIME))
146 ALLOCATE(dtgd%XDATA_LAI_LVEG (tg%NDIM,dtgd%NTIME))
147 ALLOCATE(dtgd%XDATA_H_HVEG (tg%NDIM))
148 !
149 ! Read type of high vegetation
150 yrecfm='D_TYPE_HVEG'
151  CALL read_surf(&
152  hprogram,yrecfm,tgdp%CTYPE_HVEG,iresp,hcomment=ycomment)
153 !
154 ! Read type of low vegetation
155 yrecfm='D_TYPE_LVEG'
156  CALL read_surf(&
157  hprogram,yrecfm,tgdp%CTYPE_LVEG,iresp,hcomment=ycomment)
158 !
159 ! Read type of bare soil (no vegetation)
160 yrecfm='D_TYPE_NVEG'
161  CALL read_surf(&
162  hprogram,yrecfm,tgdp%CTYPE_NVEG,iresp,hcomment=ycomment)
163 !
164 ! Read fraction of high vegetation
165 yrecfm='D_FRAC_HVEG'
166  CALL read_surf(&
167  hprogram,yrecfm,dtgd%XDATA_FRAC_HVEG,iresp,hcomment=ycomment)
168 !
169 ! Read fraction of low vegetation
170 yrecfm='D_FRAC_LVEG'
171  CALL read_surf(&
172  hprogram,yrecfm,dtgd%XDATA_FRAC_LVEG,iresp,hcomment=ycomment)
173 !
174 ! Read fraction of bare soil (no vegetation)
175 yrecfm='D_FRAC_NVEG'
176  CALL read_surf(&
177  hprogram,yrecfm,dtgd%XDATA_FRAC_NVEG,iresp,hcomment=ycomment)
178 !
179 ! Read height of trees( for high vegetation)
180 yrecfm='D_H_HVEG'
181  CALL read_surf(&
182  hprogram,yrecfm,dtgd%XDATA_H_HVEG,iresp,hcomment=ycomment)
183 !
184 ! Read LAI of high vegetation
185 DO jtime=1,dtgd%NTIME
186  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_HVEG',jtime
187  CALL read_surf(&
188  hprogram,yrecfm,dtgd%XDATA_LAI_HVEG(:,jtime),iresp,hcomment=ycomment)
189  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_LVEG',jtime
190  CALL read_surf(&
191  hprogram,yrecfm,dtgd%XDATA_LAI_LVEG(:,jtime),iresp,hcomment=ycomment)
192 END DO
193 !
194 !-------------------------------------------------------------------------------
195 !
196 !* 2. Definition of ISBA parameters
197 ! -----------------------------
198 !
199 ALLOCATE(dtgd%XDATA_LAI (tg%NDIM,dtgd%NTIME))
200 ALLOCATE(dtgd%XDATA_VEG (tg%NDIM,dtgd%NTIME))
201 ALLOCATE(dtgd%XDATA_RSMIN (tg%NDIM))
202 ALLOCATE(dtgd%XDATA_GAMMA (tg%NDIM))
203 ALLOCATE(dtgd%XDATA_WRMAX_CF (tg%NDIM))
204 ALLOCATE(dtgd%XDATA_RGL (tg%NDIM))
205 ALLOCATE(dtgd%XDATA_CV (tg%NDIM))
206 ALLOCATE(dtgd%XDATA_DG (tg%NDIM,tgdo%NGROUND_LAYER))
207 ALLOCATE(dtgd%XDATA_ROOTFRAC (tg%NDIM,tgdo%NGROUND_LAYER))
208 ALLOCATE(dtgd%XDATA_DICE (tg%NDIM))
209 ALLOCATE(dtgd%XDATA_Z0 (tg%NDIM,dtgd%NTIME))
210 ALLOCATE(dtgd%XDATA_Z0_O_Z0H (tg%NDIM))
211 ALLOCATE(dtgd%XDATA_ALBNIR_VEG (tg%NDIM))
212 ALLOCATE(dtgd%XDATA_ALBVIS_VEG (tg%NDIM))
213 ALLOCATE(dtgd%XDATA_ALBUV_VEG (tg%NDIM))
214 ALLOCATE(dtgd%XDATA_ALBNIR_SOIL(tg%NDIM))
215 ALLOCATE(dtgd%XDATA_ALBVIS_SOIL(tg%NDIM))
216 ALLOCATE(dtgd%XDATA_ALBUV_SOIL (tg%NDIM))
217 ALLOCATE(dtgd%XDATA_ALBNIR_DRY (tg%NDIM))
218 ALLOCATE(dtgd%XDATA_ALBVIS_DRY (tg%NDIM))
219 ALLOCATE(dtgd%XDATA_ALBUV_DRY (tg%NDIM))
220 ALLOCATE(dtgd%XDATA_ALBNIR_WET (tg%NDIM))
221 ALLOCATE(dtgd%XDATA_ALBVIS_WET (tg%NDIM))
222 ALLOCATE(dtgd%XDATA_ALBUV_WET (tg%NDIM))
223 ALLOCATE(dtgd%XDATA_EMIS (tg%NDIM,dtgd%NTIME))
224 ALLOCATE(dtgd%XDATA_VEGTYPE (tg%NDIM,nvegtype))
225 ALLOCATE(dtgd%XDATA_GMES (tg%NDIM))
226 ALLOCATE(dtgd%XDATA_RE25 (tg%NDIM))
227 ALLOCATE(dtgd%XDATA_BSLAI (tg%NDIM))
228 ALLOCATE(dtgd%XDATA_LAIMIN (tg%NDIM))
229 ALLOCATE(dtgd%XDATA_SEFOLD (tg%NDIM))
230 ALLOCATE(dtgd%XDATA_GC (tg%NDIM))
231 ALLOCATE(dtgd%XDATA_DMAX (tg%NDIM))
232 ALLOCATE(dtgd%XDATA_F2I (tg%NDIM))
233 ALLOCATE(dtgd%LDATA_STRESS (tg%NDIM))
234 ALLOCATE(dtgd%XDATA_H_TREE (tg%NDIM))
235 ALLOCATE(dtgd%XDATA_CE_NITRO (tg%NDIM))
236 ALLOCATE(dtgd%XDATA_CF_NITRO (tg%NDIM))
237 ALLOCATE(dtgd%XDATA_CNA_NITRO (tg%NDIM))
238 !
239 dtgd%XDATA_LAI (:,:) = xundef
240 dtgd%XDATA_VEG (:,:) = xundef
241 dtgd%XDATA_RSMIN (:) = xundef
242 dtgd%XDATA_GAMMA (:) = xundef
243 dtgd%XDATA_WRMAX_CF (:) = xundef
244 dtgd%XDATA_RGL (:) = xundef
245 dtgd%XDATA_CV (:) = xundef
246 dtgd%XDATA_DG (:,:) = xundef
247 dtgd%XDATA_DICE (:) = xundef
248 dtgd%XDATA_ROOTFRAC (:,:) = xundef
249 dtgd%XDATA_Z0 (:,:) = xundef
250 dtgd%XDATA_Z0_O_Z0H (:) = xundef
251 dtgd%XDATA_ALBNIR_VEG (:) = xundef
252 dtgd%XDATA_ALBVIS_VEG (:) = xundef
253 dtgd%XDATA_ALBUV_VEG (:) = xundef
254 dtgd%XDATA_ALBNIR_SOIL (:) = xundef
255 dtgd%XDATA_ALBVIS_SOIL (:) = xundef
256 dtgd%XDATA_ALBUV_SOIL (:) = xundef
257 dtgd%XDATA_ALBNIR_DRY (:) = xundef
258 dtgd%XDATA_ALBVIS_DRY (:) = xundef
259 dtgd%XDATA_ALBUV_DRY (:) = xundef
260 dtgd%XDATA_ALBNIR_WET (:) = xundef
261 dtgd%XDATA_ALBVIS_WET (:) = xundef
262 dtgd%XDATA_ALBUV_WET (:) = xundef
263 dtgd%XDATA_EMIS (:,:) = xundef
264 dtgd%XDATA_VEGTYPE (:,:) = xundef
265 dtgd%XDATA_GMES (:) = xundef
266 dtgd%XDATA_RE25 (:) = xundef
267 dtgd%XDATA_BSLAI (:) = xundef
268 dtgd%XDATA_LAIMIN (:) = xundef
269 dtgd%XDATA_SEFOLD (:) = xundef
270 dtgd%XDATA_GC (:) = xundef
271 dtgd%XDATA_DMAX (:) = xundef
272 dtgd%XDATA_F2I (:) = xundef
273 dtgd%LDATA_STRESS (:) = .false.
274 dtgd%XDATA_H_TREE (:) = xundef
275 dtgd%XDATA_CE_NITRO (:) = xundef
276 dtgd%XDATA_CF_NITRO (:) = xundef
277 dtgd%XDATA_CNA_NITRO (:) = xundef
278 !
279 ! Vegtypes
280 dtgd%XDATA_VEGTYPE(:,:) = 0.
281 IF (tgdp%CTYPE_NVEG == 'NO ') dtgd%XDATA_VEGTYPE(:, nvt_no ) = dtgd%XDATA_FRAC_NVEG(:)
282 IF (tgdp%CTYPE_NVEG == 'ROCK') dtgd%XDATA_VEGTYPE(:, nvt_rock) = dtgd%XDATA_FRAC_NVEG(:)
283 IF (tgdp%CTYPE_NVEG == 'SNOW') dtgd%XDATA_VEGTYPE(:, nvt_snow) = dtgd%XDATA_FRAC_NVEG(:)
284 IF (tgdp%CTYPE_HVEG == 'TEBD') dtgd%XDATA_VEGTYPE(:, nvt_tebd) = dtgd%XDATA_FRAC_HVEG(:)
285 IF (tgdp%CTYPE_HVEG == 'TRBD') dtgd%XDATA_VEGTYPE(:, nvt_trbd) = dtgd%XDATA_FRAC_HVEG(:)
286 IF (tgdp%CTYPE_HVEG == 'TEBE') dtgd%XDATA_VEGTYPE(:, nvt_tebe) = dtgd%XDATA_FRAC_HVEG(:)
287 IF (tgdp%CTYPE_HVEG == 'BOBD') dtgd%XDATA_VEGTYPE(:, nvt_bobd) = dtgd%XDATA_FRAC_HVEG(:)
288 IF (tgdp%CTYPE_HVEG == 'SHRB') dtgd%XDATA_VEGTYPE(:, nvt_shrb) = dtgd%XDATA_FRAC_HVEG(:)
289 IF (tgdp%CTYPE_HVEG == 'BONE') dtgd%XDATA_VEGTYPE(:, nvt_bone) = dtgd%XDATA_FRAC_HVEG(:)
290 IF (tgdp%CTYPE_HVEG == 'TENE') dtgd%XDATA_VEGTYPE(:, nvt_tene) = dtgd%XDATA_FRAC_HVEG(:)
291 IF (tgdp%CTYPE_HVEG == 'BOND') dtgd%XDATA_VEGTYPE(:, nvt_bond) = dtgd%XDATA_FRAC_HVEG(:)
292 IF (tgdp%CTYPE_HVEG == 'TRBE') dtgd%XDATA_VEGTYPE(:, nvt_trbe) = dtgd%XDATA_FRAC_HVEG(:)
293 IF (tgdp%CTYPE_LVEG == 'C3 ') dtgd%XDATA_VEGTYPE(:, nvt_c3 ) = dtgd%XDATA_FRAC_LVEG(:)
294 IF (tgdp%CTYPE_LVEG == 'C4 ') dtgd%XDATA_VEGTYPE(:, nvt_c4 ) = dtgd%XDATA_FRAC_LVEG(:)
295 IF (tgdp%CTYPE_LVEG == 'IRR ') dtgd%XDATA_VEGTYPE(:, nvt_irr ) = dtgd%XDATA_FRAC_LVEG(:)
296 IF (tgdp%CTYPE_LVEG == 'GRAS') dtgd%XDATA_VEGTYPE(:, nvt_gras) = dtgd%XDATA_FRAC_LVEG(:)
297 IF (tgdp%CTYPE_LVEG == 'BOGR') dtgd%XDATA_VEGTYPE(:, nvt_bogr) = dtgd%XDATA_FRAC_LVEG(:)
298 IF (tgdp%CTYPE_LVEG == 'TROG') dtgd%XDATA_VEGTYPE(:, nvt_trog) = dtgd%XDATA_FRAC_LVEG(:)
299 IF (tgdp%CTYPE_LVEG == 'PARK') dtgd%XDATA_VEGTYPE(:, nvt_park) = dtgd%XDATA_FRAC_LVEG(:)
300 
301 !
302 ! Dry/Wet soil albedo
303  CALL dry_wet_soil_albedos(tgdp%XSAND(:,1),tgdp%XCLAY(:,1), &
304  dtgd%XDATA_VEGTYPE, &
305  dtgd%XDATA_ALBNIR_DRY,dtgd%XDATA_ALBVIS_DRY,dtgd%XDATA_ALBUV_DRY, &
306  dtgd%XDATA_ALBNIR_WET,dtgd%XDATA_ALBVIS_WET,dtgd%XDATA_ALBUV_WET )
307 !
308 ! Height of trees
309 dtgd%XDATA_H_TREE (:) = dtgd%XDATA_H_HVEG(:)
310 !
311 ! Critical normilized soil water content for stress parameterisation
312 dtgd%XDATA_F2I (:) = 0.3
313 !
314 ! Ratio between roughness length for momentum and heat
315 dtgd%XDATA_Z0_O_Z0H(:) = 10.
316 !
317 ! Defensive/offensive strategy (1/0)
318 dtgd%LDATA_STRESS (:) = .false.
319 !
320 DO ji=1,tg%NDIM
321 !
322 ! Near-IR, visible, and UV albedo (vegetation only)
323 
324  zdata_albnir_veg(ji,:)= 0.30
325  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albnir_veg(ji,1)= 0.25
326  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albnir_veg(ji,1)= 0.25
327  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albnir_veg(ji,1)= 0.25
328  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albnir_veg(ji,1)= 0.25
329  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albnir_veg(ji,1)= 0.25
330  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_albnir_veg(ji,1)= 0.15
331  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_albnir_veg(ji,1)= 0.15
332  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_albnir_veg(ji,1)= 0.15
333  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albnir_veg(ji,1)= 0.21
334 
335  zdata_albvis_veg(ji,:)= 0.10
336  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albvis_veg(ji,1)= 0.05
337  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albvis_veg(ji,1)= 0.05
338  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albvis_veg(ji,1)= 0.05
339  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albvis_veg(ji,1)= 0.05
340  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albvis_veg(ji,1)= 0.05
341  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_albvis_veg(ji,1)= 0.05
342  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_albvis_veg(ji,1)= 0.05
343  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_albvis_veg(ji,1)= 0.05
344  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albvis_veg(ji,1)= 0.05
345 
346  zdata_albuv_veg(ji,:)= 0.06
347  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
348  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
349  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albuv_veg(ji,1)= 0.0525
350  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
351  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albuv_veg(ji,1)= 0.0525
352  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_albuv_veg(ji,1)= 0.0425
353  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_albuv_veg(ji,1)= 0.0425
354  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_albuv_veg(ji,1)= 0.0425
355  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albuv_veg(ji,1)= 0.0380
356  IF(dtgd%XDATA_VEGTYPE(ji,nvt_gras)>0. ) zdata_albuv_veg(ji,2)= 0.0800
357  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bogr)>0. ) zdata_albuv_veg(ji,2)= 0.0800
358  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trog)>0. ) zdata_albuv_veg(ji,2)= 0.1250
359  IF(dtgd%XDATA_VEGTYPE(ji,nvt_irr )>0. ) zdata_albuv_veg(ji,2)= 0.0450
360  IF(dtgd%XDATA_VEGTYPE(ji,nvt_park)>0. ) zdata_albuv_veg(ji,2)= 0.0450
361 
362  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) THEN
363  dtgd%XDATA_ALBNIR_VEG(ji) = ( zdata_albnir_veg(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
364  + zdata_albnir_veg(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
365  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
366 !
367  dtgd%XDATA_ALBVIS_VEG(ji) = ( zdata_albvis_veg(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
368  + zdata_albvis_veg(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
369  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
370 !
371  dtgd%XDATA_ALBUV_VEG (ji) = ( zdata_albuv_veg(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
372  + zdata_albuv_veg(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
373  / ( dtgd%XDATA_FRAC_HVEG (ji)+dtgd%XDATA_FRAC_LVEG(ji) )
374  ENDIF
375 !
376 ! Soil albedo
377  zdata_wgsat(:) = 0.
378  zdata_wg1(:) = 0.
379  CALL soil_albedo('DRY', &
380  zdata_wgsat, zdata_wg1, &
381  dtgd%XDATA_ALBVIS_DRY, dtgd%XDATA_ALBNIR_DRY, dtgd%XDATA_ALBUV_DRY, &
382  dtgd%XDATA_ALBVIS_WET, dtgd%XDATA_ALBNIR_WET, dtgd%XDATA_ALBUV_WET, &
383  dtgd%XDATA_ALBVIS_SOIL,dtgd%XDATA_ALBNIR_SOIL,dtgd%XDATA_ALBUV_SOIL )
384 !
385 ! Min stomatal resistance
386  zdata_rsmin(ji,:)= 40.
387  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_rsmin(ji,1)= 150.
388  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_rsmin(ji,1)= 150.
389  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_rsmin(ji,1)= 150.
390  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_rsmin(ji,1)= 150.
391  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_rsmin(ji,1)= 150.
392  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_rsmin(ji,1)= 150.
393  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_rsmin(ji,1)= 150.
394  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_rsmin(ji,1)= 150.
395  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_rsmin(ji,1)= xeverg_rsmin
396  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trog)>0. ) zdata_rsmin(ji,2)= 120.
397  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_rsmin(ji,2)= 120.
398  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
399  dtgd%XDATA_RSMIN(ji) = ( zdata_rsmin(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
400  + zdata_rsmin(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
401  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
402 !
403 ! Gamma parameter
404  zdata_gamma(ji,:)= 0.
405  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gamma(ji,1)= 0.04
406  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gamma(ji,1)= 0.04
407  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gamma(ji,1)= 0.04
408  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gamma(ji,1)= 0.04
409  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gamma(ji,1)= 0.04
410  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_gamma(ji,1)= 0.04
411  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_gamma(ji,1)= 0.04
412  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_gamma(ji,1)= 0.04
413  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gamma(ji,1)= 0.04
414  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
415  dtgd%XDATA_GAMMA(ji) = ( zdata_gamma(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
416  + zdata_gamma(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
417  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
418 !
419 ! Wrmax_cf
420  zdata_wrmax_cf(ji,:)= 0.2
421  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
422  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
423  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_wrmax_cf(ji,1)= 0.1
424  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
425  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_wrmax_cf(ji,1)= 0.1
426  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_wrmax_cf(ji,1)= 0.1
427  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_wrmax_cf(ji,1)= 0.1
428  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_wrmax_cf(ji,1)= 0.1
429  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_wrmax_cf(ji,1)= 0.1
430  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
431  dtgd%XDATA_WRMAX_CF(ji) = ( zdata_wrmax_cf(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
432  + zdata_wrmax_cf(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
433  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
434 !
435 ! Rgl
436  zdata_rgl(ji,:)= 100.
437  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_rgl(ji,1)= 30.
438  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_rgl(ji,1)= 30.
439  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_rgl(ji,1)= 30.
440  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_rgl(ji,1)= 30.
441  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_rgl(ji,1)= 30.
442  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_rgl(ji,1)= 30.
443  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_rgl(ji,1)= 30.
444  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_rgl(ji,1)= 30.
445  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_rgl(ji,1)= 30.
446  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
447  dtgd%XDATA_RGL(ji) = ( zdata_rgl(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
448  + zdata_rgl(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
449  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
450 !
451 ! Cv
452  zdata_cv(ji,:)= 2.e-5
453  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cv(ji,1)= 1.e-5
454  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cv(ji,1)= 1.e-5
455  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cv(ji,1)= 1.e-5
456  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cv(ji,1)= 1.e-5
457  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cv(ji,1)= 1.e-5
458  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_cv(ji,1)= 1.e-5
459  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_cv(ji,1)= 1.e-5
460  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_cv(ji,1)= 1.e-5
461  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cv(ji,1)= 1.e-5
462  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
463  dtgd%XDATA_CV(ji) = ( zdata_cv(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
464  + zdata_cv(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
465  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
466 !
467 ! Mesophyll conductance (m s-1)
468  zdata_gmes(ji,:)=0.020
469  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gmes(ji,1)= 0.001
470  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gmes(ji,1)= 0.001
471  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gmes(ji,1)= 0.001
472  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gmes(ji,1)= 0.001
473  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gmes(ji,1)= 0.001
474  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_gmes(ji,1)= 0.001
475  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_gmes(ji,1)= 0.001
476  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_gmes(ji,1)= 0.001
477  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gmes(ji,1)= 0.001
478  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c3 )>0. ) zdata_gmes(ji,2)= 0.003
479  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_gmes(ji,2)= 0.003
480  IF(dtgd%XDATA_VEGTYPE(ji,nvt_irr )>0. ) zdata_gmes(ji,2)= 0.003
481  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
482  dtgd%XDATA_GMES(ji) = ( zdata_gmes(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
483  + zdata_gmes(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
484  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
485 !
486 ! Ecosystem Respiration (kg/kg.m.s-1)
487  zdata_re25(ji,:)= 3.0e-7
488  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_re25(ji,1)= 1.5e-7
489  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_re25(ji,1)= 1.5e-7
490  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_re25(ji,1)= 1.5e-7
491  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_re25(ji,2)= 2.5e-7
492  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
493  dtgd%XDATA_RE25(ji) = ( zdata_re25(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
494  + zdata_re25(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
495  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
496 !
497 ! Cuticular conductance (m s-1)
498  zdata_gc(ji,:)=0.00025
499  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gc(ji,1)= 0.00015
500  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gc(ji,1)= 0.00015
501  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gc(ji,1)= 0.00015
502  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gc(ji,1)= 0.00015
503  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gc(ji,1)= 0.00015
504  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_gc(ji,1)= 0.
505  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_gc(ji,1)= 0.
506  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_gc(ji,1)= 0.
507  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gc(ji,1)= 0.00015
508  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
509  dtgd%XDATA_GC(ji) = ( zdata_gc(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
510  + zdata_gc(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
511  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
512 !
513 ! Ratio d(biomass)/d(lai) (kg/m2)
514  zdata_bslai(ji,:)=0.36
515  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_bslai(ji,1)= 0.25
516  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_bslai(ji,1)= 0.25
517  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_bslai(ji,1)= 0.25
518  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_bslai(ji,1)= 0.25
519  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_bslai(ji,1)= 0.25
520  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_bslai(ji,1)= 0.25
521  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_bslai(ji,1)= 0.25
522  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_bslai(ji,1)= 0.25
523  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_bslai(ji,1)= 0.25
524  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c3 )>0. ) zdata_bslai(ji,2)= 0.06
525  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_bslai(ji,2)= 0.06
526  IF(dtgd%XDATA_VEGTYPE(ji,nvt_irr )>0. ) zdata_bslai(ji,2)= 0.06
527  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
528  dtgd%XDATA_BSLAI(ji) = ( zdata_bslai(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
529  + zdata_bslai(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
530  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
531 !
532 ! Maximum air saturation deficit tolerate by vegetation (kg/kg)
533  zdata_dmax(ji,:) = 0.1
534  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dmax(ji,1)= 0.1
535  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dmax(ji,1)= 0.1
536  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dmax(ji,1)= 0.1
537  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dmax(ji,1)= 0.1
538  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dmax(ji,1)= 0.1
539  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_dmax(ji,1)= 0.1
540  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_dmax(ji,1)= 0.1
541  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_dmax(ji,1)= 0.1
542  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dmax(ji,1)= 0.1
543  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
544  dtgd%XDATA_DMAX(ji) = ( zdata_dmax(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
545  + zdata_dmax(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
546  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
547 !
548 ! e-folding time for senescence (days)
549  zdata_sefold(ji,:)=90. * xday
550  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_sefold(ji,1)= 365.* xday
551  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_sefold(ji,1)= 365.* xday
552  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_sefold(ji,1)= 365.* xday
553  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_sefold(ji,1)= 365.* xday
554  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_sefold(ji,1)= 365.* xday
555  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_sefold(ji,1)= 365.* xday
556  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_sefold(ji,1)= 365.* xday
557  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_sefold(ji,1)= 365.* xday
558  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_sefold(ji,1)= 365.* xday
559  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c3 )>0. ) zdata_sefold(ji,2)= 60.* xday
560  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_sefold(ji,2)= 60.* xday
561  IF(dtgd%XDATA_VEGTYPE(ji,nvt_irr )>0. ) zdata_sefold(ji,2)= 60.* xday
562  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
563  dtgd%XDATA_SEFOLD(ji) = ( zdata_sefold(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
564  + zdata_sefold(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
565  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
566 !
567 ! Minimum LAI (m2/m2)
568  zdata_laimin(ji,:) = 0.3
569  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_laimin(ji,1)= 1.0
570  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_laimin(ji,1)= 1.0
571  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_laimin(ji,1)= 1.0
572  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_laimin(ji,1)= 1.0
573  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
574  dtgd%XDATA_LAIMIN(ji) = ( zdata_laimin(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
575  + zdata_laimin(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
576  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
577 !
578 ! Leaf aera ratio sensitivity to nitrogen concentration
579  zdata_ce_nitro(ji,:)=7.68
580  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_ce_nitro(ji,1)= 4.83
581  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_ce_nitro(ji,1)= 4.83
582  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_ce_nitro(ji,1)= 4.83
583  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_ce_nitro(ji,1)= 4.83
584  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_ce_nitro(ji,1)= 4.83
585  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_ce_nitro(ji,1)= 4.85
586  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_ce_nitro(ji,1)= 4.85
587  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_ce_nitro(ji,1)= 4.85
588  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_ce_nitro(ji,1)= 4.83
589  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c3 )>0. ) zdata_ce_nitro(ji,2)= 3.79
590  IF(dtgd%XDATA_VEGTYPE(ji,nvt_gras)>0. ) zdata_ce_nitro(ji,2)= 5.56
591  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bogr)>0. ) zdata_ce_nitro(ji,2)= 5.56
592  IF(dtgd%XDATA_VEGTYPE(ji,nvt_park)>0. ) zdata_ce_nitro(ji,2)= 5.56
593  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
594  dtgd%XDATA_CE_NITRO(ji) = ( zdata_ce_nitro(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
595  + zdata_ce_nitro(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
596  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
597 !
598 ! Lethal minimum value of leaf area ratio
599  zdata_cf_nitro(ji,:)=-4.33
600  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cf_nitro(ji,1)= 2.53
601  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cf_nitro(ji,1)= 2.53
602  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cf_nitro(ji,1)= 2.53
603  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cf_nitro(ji,1)= 2.53
604  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cf_nitro(ji,1)= 2.53
605  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_cf_nitro(ji,1)= -0.24
606  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_cf_nitro(ji,1)= -0.24
607  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_cf_nitro(ji,1)= -0.24
608  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cf_nitro(ji,1)= 0.12
609  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c3 )>0. ) zdata_cf_nitro(ji,2)= 9.84
610  IF(dtgd%XDATA_VEGTYPE(ji,nvt_gras)>0. ) zdata_cf_nitro(ji,2)= 6.73
611  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bogr)>0. ) zdata_cf_nitro(ji,2)= 6.73
612  IF(dtgd%XDATA_VEGTYPE(ji,nvt_park)>0. ) zdata_cf_nitro(ji,2)= 6.73
613  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
614  dtgd%XDATA_CF_NITRO(ji) = ( zdata_cf_nitro(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
615  + zdata_cf_nitro(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
616  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
617 !
618 ! Nitrogen concentration of active biomass
619  zdata_cna_nitro(ji,:)=1.3
620  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cna_nitro(ji,1)= 2.0
621  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cna_nitro(ji,1)= 2.0
622  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cna_nitro(ji,1)= 2.0
623  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cna_nitro(ji,1)= 2.0
624  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cna_nitro(ji,1)= 2.0
625  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_cna_nitro(ji,1)= 2.8
626  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_cna_nitro(ji,1)= 2.8
627  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_cna_nitro(ji,1)= 2.8
628  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cna_nitro(ji,1)= 1.7
629  IF(dtgd%XDATA_VEGTYPE(ji,nvt_c4 )>0. ) zdata_cna_nitro(ji,2)= 1.9
630  IF(dtgd%XDATA_VEGTYPE(ji,nvt_irr )>0. ) zdata_cna_nitro(ji,2)= 1.9
631  IF (dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) .GT. 0.) &
632  dtgd%XDATA_CNA_NITRO(ji) = ( zdata_cna_nitro(ji,1)*dtgd%XDATA_FRAC_HVEG(ji) &
633  + zdata_cna_nitro(ji,2)*dtgd%XDATA_FRAC_LVEG(ji) ) &
634  / ( dtgd%XDATA_FRAC_HVEG(ji)+dtgd%XDATA_FRAC_LVEG(ji) )
635 !
636 ! Ground layers
637  IF (tgdo%NGROUND_LAYER<=3) THEN
638  zdata_dg(ji,1,:) = 0.01
639  zdata_dg(ji,2,:) = 1.50
640  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dg(ji,2,1)= 2.0
641  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dg(ji,2,1)= 2.0
642  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dg(ji,2,1)= 2.0
643  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dg(ji,2,1)= 2.0
644  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dg(ji,2,1)= 2.0
645  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_dg(ji,2,1)= 2.0
646  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_dg(ji,2,1)= 2.0
647  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_dg(ji,2,1)= 2.0
648  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dg(ji,2,1)= 2.0
649  IF(dtgd%XDATA_VEGTYPE(ji,nvt_no )>0. ) zdata_dg(ji,2,3)= 0.5
650  IF(dtgd%XDATA_VEGTYPE(ji,nvt_rock)>0. ) zdata_dg(ji,2,3)= 0.5
651  IF(dtgd%XDATA_VEGTYPE(ji,nvt_snow)>0. ) zdata_dg(ji,2,3)= 0.5
652  IF (tgdo%NGROUND_LAYER==3) THEN
653  zdata_dg(ji,3,:) = 2.00
654  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dg(ji,3,1)= 3.0
655  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dg(ji,3,1)= 3.0
656  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dg(ji,3,1)= 3.0
657  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dg(ji,3,1)= 3.0
658  IF(dtgd%XDATA_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dg(ji,3,1)= 3.0
659  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bone)>0. ) zdata_dg(ji,3,1)= 3.0
660  IF(dtgd%XDATA_VEGTYPE(ji,nvt_tene)>0. ) zdata_dg(ji,3,1)= 3.0
661  IF(dtgd%XDATA_VEGTYPE(ji,nvt_bond)>0. ) zdata_dg(ji,3,1)= 3.0
662  IF(dtgd%XDATA_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dg(ji,3,1)= 3.0
663  IF(dtgd%XDATA_VEGTYPE(ji,nvt_no )>0. ) zdata_dg(ji,3,3)= 1.0
664  IF(dtgd%XDATA_VEGTYPE(ji,nvt_rock)>0. ) zdata_dg(ji,3,3)= 1.0
665  IF(dtgd%XDATA_VEGTYPE(ji,nvt_snow)>0. ) zdata_dg(ji,3,3)= 1.0
666  ENDIF
667  dtgd%XDATA_DG(ji,:) = zdata_dg(ji,:,1)*dtgd%XDATA_FRAC_HVEG(ji) &
668  + zdata_dg(ji,:,2)*dtgd%XDATA_FRAC_LVEG(ji) &
669  + zdata_dg(ji,:,3)*dtgd%XDATA_FRAC_NVEG(ji)
670  ELSEIF (tgdo%NGROUND_LAYER<=noptimlayer) THEN
671  dtgd%XDATA_DG(ji,:) = xoptimgrid(:)
672  ELSE
673  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: WITH MORE THAN 14 SOIL LAYERS, "//&
674  "without ecoclimap, garden cannot run")
675  ENDIF
676 !
677 ! Root fractions
678  DTGD%XDATA_ROOTFRAC(JI,TGDO%NGROUND_LAYER) = 1.
679  DTGD%XDATA_ROOTFRAC(JI,1) = 0.20
680  IF (TGDO%NGROUND_LAYER>2) THEN
681  DO JLAYER = TGDO%NGROUND_LAYER-1,2,-1
682  DTGD%XDATA_ROOTFRAC(JI,JLAYER) = DTGD%XDATA_ROOTFRAC(JI,JLAYER+1)-0.8/(TGDO%NGROUND_LAYER-1)
683  ENDDO
684  ENDIF
685 !
686  DTGD%XDATA_DICE(JI) = DTGD%XDATA_DG(JI,2)
687 !
688  DO JTIME=1,DTGD%NTIME
689 ! Leaf Area Index
690 .GT. IF (DTGD%XDATA_FRAC_HVEG(JI)+DTGD%XDATA_FRAC_LVEG(JI) 0.) &
691  DTGD%XDATA_LAI (JI,JTIME) = ( DTGD%XDATA_LAI_HVEG(JI,JTIME)*DTGD%XDATA_FRAC_HVEG(JI) &
692  + DTGD%XDATA_LAI_LVEG(JI,JTIME)*DTGD%XDATA_FRAC_LVEG(JI)) &
693  /( DTGD%XDATA_FRAC_HVEG(JI)+DTGD%XDATA_FRAC_LVEG(JI))
694 ! Fraction of vegetation
695  DTGD%XDATA_VEG (JI,JTIME) = VEG_FROM_LAI (DTGD%XDATA_LAI (JI,JTIME), &
696  DTGD%XDATA_VEGTYPE(JI,:),GAGRI_TO_GRASS)
697 ! Roughness length for momentum
698  DTGD%XDATA_Z0 (JI,JTIME) = Z0V_FROM_LAI (DTGD%XDATA_LAI (JI,JTIME), &
699  DTGD%XDATA_H_TREE (JI), &
700  DTGD%XDATA_VEGTYPE(JI,:),GAGRI_TO_GRASS)
701 ! Emissivity
702  DTGD%XDATA_EMIS (JI,JTIME) = EMIS_FROM_VEG (DTGD%XDATA_VEG (JI,JTIME), &
703  DTGD%XDATA_VEGTYPE(JI,:))
704  END DO
705 !
706 ENDDO
707 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_PAR_N',1,ZHOOK_HANDLE)
708 !
709 !-------------------------------------------------------------------------------
710 !
711 END SUBROUTINE READ_PGD_TEB_GARDEN_PAR_n
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