SURFEX v8.1
General documentation of Surfex
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 (DTV, IO, KDIM, HPROGRAM)
7 ! ################################################
8 !
9 !!**** *READ_PGD_TEB_GARDEN_PAR_n* - reads ISBA physiographic fields
10 !!
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! V. Masson *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 01/2003
36 !! P. Le Moigne 12/2004 : add type of photosynthesis
37 !! R. Alkama 05/2012 : Add 7 new vegtypes (19 rather than 12)
38 !! B. Decharme 05/13 : new param for equatorial forest
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 !
45 !
46 !
47 !
48 USE modd_data_isba_n, ONLY : data_isba_t
50 !
51 USE modd_csts, ONLY : xday
52 USE modd_surf_par, ONLY : xundef
53 USE modd_isba_par, ONLY : xoptimgrid, noptimlayer
54 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
55  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
56  nvt_irr, nvt_gras, nvt_trog,nvt_park, &
57  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
58  nvt_bond, nvt_bogr, nvt_shrb, nvt_c3w, &
59  nvt_c3s, nvt_fltr, nvt_flgr, nvegtype
60 !
65 USE modi_abor1_sfx
66 !
68 !
69 USE yomhook ,ONLY : lhook, dr_hook
70 USE parkind1 ,ONLY : jprb
71 !
72 IMPLICIT NONE
73 !
74 !* 0.1 Declarations of arguments
75 ! -------------------------
76 !
77 !
78 !
79 !
80 TYPE(data_isba_t), INTENT(INOUT) :: dtv
81 TYPE(isba_options_t), INTENT(INOUT) :: io
82 INTEGER, INTENT(IN) :: kdim
83 !
84  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling
85 !
86 !* 0.2 Declarations of local variables
87 ! -------------------------------
88 !
89 INTEGER :: iresp ! IRESP : return-code if a problem appears
90  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
91  CHARACTER(LEN=100) :: ycomment ! Comment string
92 INTEGER :: ji, jlayer ! loop index
93 INTEGER :: jtime ! loop index
94 !
95 REAL, DIMENSION(KDIM,3) :: zdata_rsmin
96 REAL, DIMENSION(KDIM,3) :: zdata_gamma
97 REAL, DIMENSION(KDIM,3) :: zdata_wrmax_cf
98 REAL, DIMENSION(KDIM,3) :: zdata_rgl
99 REAL, DIMENSION(KDIM,3) :: zdata_cv
100 REAL, DIMENSION(KDIM,IO%NGROUND_LAYER,3) :: zdata_dg
101 REAL, DIMENSION(KDIM,3) :: zdata_albnir_veg
102 REAL, DIMENSION(KDIM,3) :: zdata_albvis_veg
103 REAL, DIMENSION(KDIM,3) :: zdata_albuv_veg
104 REAL, DIMENSION(KDIM,3) :: zdata_gmes
105 REAL, DIMENSION(KDIM,3) :: zdata_re25
106 REAL, DIMENSION(KDIM,3) :: zdata_bslai
107 REAL, DIMENSION(KDIM,3) :: zdata_laimin
108 REAL, DIMENSION(KDIM,3) :: zdata_sefold
109 REAL, DIMENSION(KDIM,3) :: zdata_gc
110 REAL, DIMENSION(KDIM,3) :: zdata_dmax
111 REAL, DIMENSION(KDIM,3) :: zdata_ce_nitro
112 REAL, DIMENSION(KDIM,3) :: zdata_cf_nitro
113 REAL, DIMENSION(KDIM,3) :: zdata_cna_nitro
114 !
115 LOGICAL :: gagri_to_grass
116 !
117 REAL(KIND=JPRB) :: zhook_handle
118 !
119 !-------------------------------------------------------------------------------
120 !
121 !* 1. Reading of PGD file
122 ! --------------------
123 !
124 IF (lhook) CALL dr_hook('READ_PGD_TEB_GARDEN_PAR_N',0,zhook_handle)
125 dtv%NTIME= 12
126 !
127 gagri_to_grass=.false.
128 !
129 yrecfm='GD_NTIME'
130  CALL read_surf(hprogram,yrecfm,dtv%NTIME,iresp,hcomment=ycomment)
131 !
132 dtv%LIMP_VEG=.false.
133 dtv%LIMP_Z0=.false.
134 dtv%LIMP_EMIS=.false.
135 !
136 ALLOCATE(dtv%XPAR_FRAC_HVEG (kdim))
137 ALLOCATE(dtv%XPAR_FRAC_LVEG (kdim))
138 ALLOCATE(dtv%XPAR_FRAC_NVEG (kdim))
139 ALLOCATE(dtv%XPAR_LAI_HVEG (kdim,dtv%NTIME))
140 ALLOCATE(dtv%XPAR_LAI_LVEG (kdim,dtv%NTIME))
141 ALLOCATE(dtv%XPAR_H_HVEG (kdim))
142 !
143 ! Read type of high vegetation
144 yrecfm='D_TYPE_HVEG'
145  CALL read_surf(hprogram,yrecfm,io%CTYPE_HVEG,iresp,hcomment=ycomment)
146 !
147 ! Read type of low vegetation
148 yrecfm='D_TYPE_LVEG'
149  CALL read_surf(hprogram,yrecfm,io%CTYPE_LVEG,iresp,hcomment=ycomment)
150 !
151 ! Read type of bare soil (no vegetation)
152 yrecfm='D_TYPE_NVEG'
153  CALL read_surf(hprogram,yrecfm,io%CTYPE_NVEG,iresp,hcomment=ycomment)
154 !
155 ! Read fraction of high vegetation
156 yrecfm='D_FRAC_HVEG'
157  CALL read_surf(hprogram,yrecfm,dtv%XPAR_FRAC_HVEG,iresp,hcomment=ycomment)
158 !
159 ! Read fraction of low vegetation
160 yrecfm='D_FRAC_LVEG'
161  CALL read_surf(hprogram,yrecfm,dtv%XPAR_FRAC_LVEG,iresp,hcomment=ycomment)
162 !
163 ! Read fraction of bare soil (no vegetation)
164 yrecfm='D_FRAC_NVEG'
165  CALL read_surf(hprogram,yrecfm,dtv%XPAR_FRAC_NVEG,iresp,hcomment=ycomment)
166 !
167 ! Read height of trees( for high vegetation)
168 yrecfm='D_H_HVEG'
169  CALL read_surf(hprogram,yrecfm,dtv%XPAR_H_HVEG,iresp,hcomment=ycomment)
170 !
171 ! Read LAI of high vegetation
172 DO jtime=1,dtv%NTIME
173  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_HVEG',jtime
174  CALL read_surf(hprogram,yrecfm,dtv%XPAR_LAI_HVEG(:,jtime),iresp,hcomment=ycomment)
175  WRITE(yrecfm,fmt='(A10,I2.2)') 'D_LAI_LVEG',jtime
176  CALL read_surf(hprogram,yrecfm,dtv%XPAR_LAI_LVEG(:,jtime),iresp,hcomment=ycomment)
177 END DO
178 !
179 !-------------------------------------------------------------------------------
180 !
181 !* 2. Definition of ISBA parameters
182 ! -----------------------------
183 !
184 ALLOCATE(dtv%XPAR_LAI (kdim,dtv%NTIME,1))
185 ALLOCATE(dtv%XPAR_VEG (kdim,dtv%NTIME,1))
186 ALLOCATE(dtv%XPAR_RSMIN (kdim,1))
187 ALLOCATE(dtv%XPAR_GAMMA (kdim,1))
188 ALLOCATE(dtv%XPAR_WRMAX_CF (kdim,1))
189 ALLOCATE(dtv%XPAR_RGL (kdim,1))
190 ALLOCATE(dtv%XPAR_CV (kdim,1))
191 ALLOCATE(dtv%XPAR_DG (kdim,io%NGROUND_LAYER,1))
192 ALLOCATE(dtv%XPAR_ROOTFRAC (kdim,io%NGROUND_LAYER,1))
193 ALLOCATE(dtv%XPAR_DICE (kdim,1))
194 ALLOCATE(dtv%XPAR_Z0 (kdim,dtv%NTIME,1))
195 ALLOCATE(dtv%XPAR_Z0_O_Z0H (kdim,1))
196 ALLOCATE(dtv%XPAR_ALBNIR_VEG (kdim,1,1))
197 ALLOCATE(dtv%XPAR_ALBVIS_VEG (kdim,1,1))
198 ALLOCATE(dtv%XPAR_ALBUV_VEG (kdim,1,1))
199 ALLOCATE(dtv%XPAR_ALBNIR_SOIL(kdim,1,1))
200 ALLOCATE(dtv%XPAR_ALBVIS_SOIL(kdim,1,1))
201 ALLOCATE(dtv%XPAR_ALBUV_SOIL (kdim,1,1))
202 ALLOCATE(dtv%XPAR_EMIS (kdim,dtv%NTIME,1))
203 ALLOCATE(dtv%XPAR_VEGTYPE (kdim,nvegtype))
204 ALLOCATE(dtv%XPAR_GMES (kdim,1))
205 ALLOCATE(dtv%XPAR_RE25 (kdim,1))
206 ALLOCATE(dtv%XPAR_BSLAI (kdim,1))
207 ALLOCATE(dtv%XPAR_LAIMIN (kdim,1))
208 ALLOCATE(dtv%XPAR_SEFOLD (kdim,1))
209 ALLOCATE(dtv%XPAR_GC (kdim,1))
210 ALLOCATE(dtv%XPAR_DMAX (kdim,1))
211 ALLOCATE(dtv%XPAR_F2I (kdim,1))
212 ALLOCATE(dtv%LPAR_STRESS (kdim,1))
213 ALLOCATE(dtv%XPAR_H_TREE (kdim,1))
214 ALLOCATE(dtv%XPAR_CE_NITRO (kdim,1))
215 ALLOCATE(dtv%XPAR_CF_NITRO (kdim,1))
216 ALLOCATE(dtv%XPAR_CNA_NITRO (kdim,1))
217 !
218 dtv%XPAR_LAI (:,:,:) = xundef
219 dtv%XPAR_VEG (:,:,:) = xundef
220 dtv%XPAR_RSMIN (:,:) = xundef
221 dtv%XPAR_GAMMA (:,:) = xundef
222 dtv%XPAR_WRMAX_CF (:,:) = xundef
223 dtv%XPAR_RGL (:,:) = xundef
224 dtv%XPAR_CV (:,:) = xundef
225 dtv%XPAR_DG (:,:,:) = xundef
226 dtv%XPAR_DICE (:,:) = xundef
227 dtv%XPAR_ROOTFRAC (:,:,:) = xundef
228 dtv%XPAR_Z0 (:,:,:) = xundef
229 dtv%XPAR_Z0_O_Z0H (:,:) = xundef
230 dtv%XPAR_ALBNIR_VEG (:,:,:) = xundef
231 dtv%XPAR_ALBVIS_VEG (:,:,:) = xundef
232 dtv%XPAR_ALBUV_VEG (:,:,:) = xundef
233 dtv%XPAR_ALBNIR_SOIL (:,:,:) = xundef
234 dtv%XPAR_ALBVIS_SOIL (:,:,:) = xundef
235 dtv%XPAR_ALBUV_SOIL (:,:,:) = xundef
236 dtv%XPAR_EMIS (:,:,:) = xundef
237 dtv%XPAR_VEGTYPE (:,:) = xundef
238 dtv%XPAR_GMES (:,:) = xundef
239 dtv%XPAR_RE25 (:,:) = xundef
240 dtv%XPAR_BSLAI (:,:) = xundef
241 dtv%XPAR_LAIMIN (:,:) = xundef
242 dtv%XPAR_SEFOLD (:,:) = xundef
243 dtv%XPAR_GC (:,:) = xundef
244 dtv%XPAR_DMAX (:,:) = xundef
245 dtv%XPAR_F2I (:,:) = xundef
246 dtv%LPAR_STRESS (:,:) = .false.
247 dtv%XPAR_H_TREE (:,:) = xundef
248 dtv%XPAR_CE_NITRO (:,:) = xundef
249 dtv%XPAR_CF_NITRO (:,:) = xundef
250 dtv%XPAR_CNA_NITRO (:,:) = xundef
251 !
252 ! Vegtypes
253 dtv%XPAR_VEGTYPE(:,:) = 0.
254 IF (io%CTYPE_NVEG == 'NO ') dtv%XPAR_VEGTYPE(:, nvt_no ) = dtv%XPAR_FRAC_NVEG(:)
255 IF (io%CTYPE_NVEG == 'ROCK') dtv%XPAR_VEGTYPE(:, nvt_rock) = dtv%XPAR_FRAC_NVEG(:)
256 IF (io%CTYPE_NVEG == 'SNOW') dtv%XPAR_VEGTYPE(:, nvt_snow) = dtv%XPAR_FRAC_NVEG(:)
257 IF (io%CTYPE_HVEG == 'TEBD') dtv%XPAR_VEGTYPE(:, nvt_tebd) = dtv%XPAR_FRAC_HVEG(:)
258 IF (io%CTYPE_HVEG == 'TRBD') dtv%XPAR_VEGTYPE(:, nvt_trbd) = dtv%XPAR_FRAC_HVEG(:)
259 IF (io%CTYPE_HVEG == 'TEBE') dtv%XPAR_VEGTYPE(:, nvt_tebe) = dtv%XPAR_FRAC_HVEG(:)
260 IF (io%CTYPE_HVEG == 'BOBD') dtv%XPAR_VEGTYPE(:, nvt_bobd) = dtv%XPAR_FRAC_HVEG(:)
261 IF (io%CTYPE_HVEG == 'SHRB') dtv%XPAR_VEGTYPE(:, nvt_shrb) = dtv%XPAR_FRAC_HVEG(:)
262 IF (io%CTYPE_HVEG == 'BONE') dtv%XPAR_VEGTYPE(:, nvt_bone) = dtv%XPAR_FRAC_HVEG(:)
263 IF (io%CTYPE_HVEG == 'TENE') dtv%XPAR_VEGTYPE(:, nvt_tene) = dtv%XPAR_FRAC_HVEG(:)
264 IF (io%CTYPE_HVEG == 'BOND') dtv%XPAR_VEGTYPE(:, nvt_bond) = dtv%XPAR_FRAC_HVEG(:)
265 IF (io%CTYPE_HVEG == 'TRBE') dtv%XPAR_VEGTYPE(:, nvt_trbe) = dtv%XPAR_FRAC_HVEG(:)
266 !
267 IF (io%CTYPE_LVEG == 'C3 ') THEN
268  IF (nvt_c3>0) THEN
269  dtv%XPAR_VEGTYPE(:, nvt_c3 ) = dtv%XPAR_FRAC_LVEG(:)
270  ELSEIF (nvt_c3w>0) THEN
271  dtv%XPAR_VEGTYPE(:, nvt_c3w ) = dtv%XPAR_FRAC_LVEG(:)
272  ENDIF
273 ENDIF
274 !
275 IF (io%CTYPE_LVEG == 'C3W ') THEN
276  IF (nvt_c3w>0) THEN
277  dtv%XPAR_VEGTYPE(:, nvt_c3w ) = dtv%XPAR_FRAC_LVEG(:)
278  ELSE
279  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: NO VEGTYPE C3W WITHOUT ECOSG")
280  ENDIF
281 ENDIF
282 !
283 IF (io%CTYPE_LVEG == 'C3S ') THEN
284  IF (nvt_c3s>0) THEN
285  dtv%XPAR_VEGTYPE(:, nvt_c3s ) = dtv%XPAR_FRAC_LVEG(:)
286  ELSE
287  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: NO VEGTYPE C3S WITHOUT ECOSG")
288  ENDIF
289 ENDIF
290 !
291 IF (io%CTYPE_LVEG == 'C4 ') dtv%XPAR_VEGTYPE(:, nvt_c4 ) = dtv%XPAR_FRAC_LVEG(:)
292 !
293 IF (io%CTYPE_LVEG == 'IRR ') THEN
294  IF (nvt_irr>0) THEN
295  dtv%XPAR_VEGTYPE(:, nvt_irr ) = dtv%XPAR_FRAC_LVEG(:)
296  ELSE
297  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: NO VEGTYPE IRR WITH ECOSG")
298  ENDIF
299 ENDIF
300 !
301 IF (io%CTYPE_LVEG == 'GRAS') dtv%XPAR_VEGTYPE(:, nvt_gras) = dtv%XPAR_FRAC_LVEG(:)
302 IF (io%CTYPE_LVEG == 'BOGR') dtv%XPAR_VEGTYPE(:, nvt_bogr) = dtv%XPAR_FRAC_LVEG(:)
303 IF (io%CTYPE_LVEG == 'TROG') dtv%XPAR_VEGTYPE(:, nvt_trog) = dtv%XPAR_FRAC_LVEG(:)
304 !
305 IF (io%CTYPE_LVEG == 'PARK') THEN
306  IF (nvt_park>0) THEN
307  dtv%XPAR_VEGTYPE(:, nvt_park) = dtv%XPAR_FRAC_LVEG(:)
308  ELSEIF (nvt_flgr>0) THEN
309  dtv%XPAR_VEGTYPE(:, nvt_flgr) = dtv%XPAR_FRAC_LVEG(:)
310  ENDIF
311 ENDIF
312 !
313 IF (io%CTYPE_LVEG == 'FLGR') THEN
314  IF (nvt_flgr>0) THEN
315  dtv%XPAR_VEGTYPE(:, nvt_flgr) = dtv%XPAR_FRAC_LVEG(:)
316  ELSE
317  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: NO VEGTYPE FLGR WITHOUT ECOSG")
318  ENDIF
319 ENDIF
320 IF (io%CTYPE_LVEG == 'FLTR') THEN
321  IF (nvt_fltr>0) THEN
322  dtv%XPAR_VEGTYPE(:, nvt_fltr) = dtv%XPAR_FRAC_HVEG(:)
323  ELSE
324  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: NO VEGTYPE FLTR WITHOUT ECOSG")
325  ENDIF
326 ENDIF
327 !
328 ! Height of trees
329 dtv%XPAR_H_TREE (:,1) = dtv%XPAR_H_HVEG(:)
330 !
331 ! Critical normilized soil water content for stress parameterisation
332 dtv%XPAR_F2I (:,1) = 0.3
333 !
334 ! Ratio between roughness length for momentum and heat
335 dtv%XPAR_Z0_O_Z0H(:,1) = 10.
336 !
337 ! Defensive/offensive strategy (1/0)
338 dtv%LPAR_STRESS (:,1) = .false.
339 !
340 DO ji=1,kdim
341 !
342 ! Near-IR, visible, and UV albedo (vegetation only)
343 
344  zdata_albnir_veg(ji,:)= 0.30
345  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albnir_veg(ji,1)= 0.25
346  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albnir_veg(ji,1)= 0.25
347  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albnir_veg(ji,1)= 0.25
348  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albnir_veg(ji,1)= 0.25
349  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albnir_veg(ji,1)= 0.25
350  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_albnir_veg(ji,1)= 0.15
351  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_albnir_veg(ji,1)= 0.15
352  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_albnir_veg(ji,1)= 0.15
353  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albnir_veg(ji,1)= 0.21
354  IF (nvt_fltr>0) THEN
355  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_albnir_veg(ji,1) = 0.25
356  ENDIF
357 
358  zdata_albvis_veg(ji,:)= 0.10
359  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albvis_veg(ji,1)= 0.05
360  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albvis_veg(ji,1)= 0.05
361  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albvis_veg(ji,1)= 0.05
362  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albvis_veg(ji,1)= 0.05
363  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albvis_veg(ji,1)= 0.05
364  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_albvis_veg(ji,1)= 0.05
365  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_albvis_veg(ji,1)= 0.05
366  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_albvis_veg(ji,1)= 0.05
367  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albvis_veg(ji,1)= 0.05
368  IF (nvt_fltr>0) THEN
369  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_albvis_veg(ji,1) = 0.05
370  ENDIF
371 
372  zdata_albuv_veg(ji,:)= 0.06
373  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
374  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
375  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_albuv_veg(ji,1)= 0.0525
376  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_albuv_veg(ji,1)= 0.0525
377  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_albuv_veg(ji,1)= 0.0525
378  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_albuv_veg(ji,1)= 0.0425
379  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_albuv_veg(ji,1)= 0.0425
380  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_albuv_veg(ji,1)= 0.0425
381  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_albuv_veg(ji,1)= 0.0380
382  IF (nvt_fltr>0) THEN
383  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_albuv_veg(ji,1) = 0.0525
384  ENDIF
385  IF(dtv%XPAR_VEGTYPE(ji,nvt_gras)>0. ) zdata_albuv_veg(ji,2)= 0.0800
386  IF(dtv%XPAR_VEGTYPE(ji,nvt_bogr)>0. ) zdata_albuv_veg(ji,2)= 0.0800
387  IF(dtv%XPAR_VEGTYPE(ji,nvt_trog)>0. ) zdata_albuv_veg(ji,2)= 0.1250
388  IF (nvt_irr>0) THEN
389  IF(dtv%XPAR_VEGTYPE(ji,nvt_irr )>0. ) zdata_albuv_veg(ji,2)= 0.0450
390  ENDIF
391  IF (nvt_park>0) THEN
392  IF(dtv%XPAR_VEGTYPE(ji,nvt_park)>0. ) zdata_albuv_veg(ji,2)= 0.0450
393  ELSEIF (nvt_flgr>0) THEN
394  IF(dtv%XPAR_VEGTYPE(ji,nvt_flgr)>0. ) zdata_albuv_veg(ji,2)= 0.0450
395  ENDIF
396 
397  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) THEN
398  dtv%XPAR_ALBNIR_VEG(ji,1,1) = ( zdata_albnir_veg(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
399  + zdata_albnir_veg(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
400  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
401 !
402  dtv%XPAR_ALBVIS_VEG(ji,1,1) = ( zdata_albvis_veg(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
403  + zdata_albvis_veg(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
404  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
405 !
406  dtv%XPAR_ALBUV_VEG (ji,1,1) = ( zdata_albuv_veg(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
407  + zdata_albuv_veg(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
408  / ( dtv%XPAR_FRAC_HVEG (ji)+dtv%XPAR_FRAC_LVEG(ji) )
409  ENDIF
410 !
411 ! Min stomatal resistance
412  zdata_rsmin(ji,:)= 40.
413  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_rsmin(ji,1)= 150.
414  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_rsmin(ji,1)= 150.
415  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_rsmin(ji,1)= 150.
416  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_rsmin(ji,1)= 150.
417  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_rsmin(ji,1)= 150.
418  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_rsmin(ji,1)= 150.
419  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_rsmin(ji,1)= 150.
420  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_rsmin(ji,1)= 150.
421  IF (nvt_fltr>0) THEN
422  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_rsmin(ji,1) = 150.
423  ENDIF
424  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_rsmin(ji,1)= xeverg_rsmin
425  IF(dtv%XPAR_VEGTYPE(ji,nvt_trog)>0. ) zdata_rsmin(ji,2)= 120.
426  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_rsmin(ji,2)= 120.
427  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
428  dtv%XPAR_RSMIN(ji,1) = ( zdata_rsmin(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
429  + zdata_rsmin(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
430  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
431 !
432 ! Gamma parameter
433  zdata_gamma(ji,:)= 0.
434  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gamma(ji,1)= 0.04
435  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gamma(ji,1)= 0.04
436  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gamma(ji,1)= 0.04
437  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gamma(ji,1)= 0.04
438  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gamma(ji,1)= 0.04
439  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_gamma(ji,1)= 0.04
440  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_gamma(ji,1)= 0.04
441  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_gamma(ji,1)= 0.04
442  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gamma(ji,1)= 0.04
443  IF (nvt_fltr>0) THEN
444  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_gamma(ji,1) = 0.04
445  ENDIF
446  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
447  dtv%XPAR_GAMMA(ji,1) = ( zdata_gamma(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
448  + zdata_gamma(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
449  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
450 !
451 ! Wrmax_cf
452  zdata_wrmax_cf(ji,:)= 0.2
453  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
454  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
455  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_wrmax_cf(ji,1)= 0.1
456  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_wrmax_cf(ji,1)= 0.1
457  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_wrmax_cf(ji,1)= 0.1
458  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_wrmax_cf(ji,1)= 0.1
459  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_wrmax_cf(ji,1)= 0.1
460  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_wrmax_cf(ji,1)= 0.1
461  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_wrmax_cf(ji,1)= 0.1
462  IF (nvt_fltr>0) THEN
463  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_wrmax_cf(ji,1) = 0.1
464  ENDIF
465  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
466  dtv%XPAR_WRMAX_CF(ji,1) = ( zdata_wrmax_cf(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
467  + zdata_wrmax_cf(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
468  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
469 !
470 ! Rgl
471  zdata_rgl(ji,:)= 100.
472  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_rgl(ji,1)= 30.
473  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_rgl(ji,1)= 30.
474  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_rgl(ji,1)= 30.
475  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_rgl(ji,1)= 30.
476  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_rgl(ji,1)= 30.
477  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_rgl(ji,1)= 30.
478  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_rgl(ji,1)= 30.
479  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_rgl(ji,1)= 30.
480  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_rgl(ji,1)= 30.
481  IF (nvt_fltr>0) THEN
482  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_rgl(ji,1) = 30.
483  ENDIF
484  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
485  dtv%XPAR_RGL(ji,1) = ( zdata_rgl(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
486  + zdata_rgl(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
487  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
488 !
489 ! Cv
490  zdata_cv(ji,:)= 2.e-5
491  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cv(ji,1)= 1.e-5
492  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cv(ji,1)= 1.e-5
493  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cv(ji,1)= 1.e-5
494  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cv(ji,1)= 1.e-5
495  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cv(ji,1)= 1.e-5
496  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_cv(ji,1)= 1.e-5
497  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_cv(ji,1)= 1.e-5
498  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_cv(ji,1)= 1.e-5
499  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cv(ji,1)= 1.e-5
500  IF (nvt_fltr>0) THEN
501  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_cv(ji,1) = 1.e-5
502  ENDIF
503  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
504  dtv%XPAR_CV(ji,1) = ( zdata_cv(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
505  + zdata_cv(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
506  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
507 !
508 ! Mesophyll conductance (m s-1)
509  zdata_gmes(ji,:)=0.020
510  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gmes(ji,1)= 0.001
511  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gmes(ji,1)= 0.001
512  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gmes(ji,1)= 0.001
513  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gmes(ji,1)= 0.001
514  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gmes(ji,1)= 0.001
515  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_gmes(ji,1)= 0.001
516  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_gmes(ji,1)= 0.001
517  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_gmes(ji,1)= 0.001
518  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gmes(ji,1)= 0.001
519  IF (nvt_fltr>0) THEN
520  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_gmes(ji,1) = 0.001
521  ENDIF
522  IF (nvt_c3>0) THEN
523  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3 )>0. ) zdata_gmes(ji,2)= 0.003
524  ENDIF
525  IF (nvt_c3w>0) THEN
526  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3w )>0. ) zdata_gmes(ji,2)= 0.003
527  ENDIF
528  IF (nvt_c3s>0) THEN
529  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3s )>0. ) zdata_gmes(ji,2)= 0.003
530  ENDIF
531  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_gmes(ji,2)= 0.003
532  IF (nvt_irr>0) THEN
533  IF(dtv%XPAR_VEGTYPE(ji,nvt_irr )>0. ) zdata_gmes(ji,2)= 0.003
534  ENDIF
535  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
536  dtv%XPAR_GMES(ji,1) = ( zdata_gmes(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
537  + zdata_gmes(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
538  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
539 !
540 ! Ecosystem Respiration (kg/kg.m.s-1)
541  zdata_re25(ji,:)= 3.0e-7
542  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_re25(ji,1)= 1.5e-7
543  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_re25(ji,1)= 1.5e-7
544  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_re25(ji,1)= 1.5e-7
545  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_re25(ji,2)= 2.5e-7
546  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
547  dtv%XPAR_RE25(ji,1) = ( zdata_re25(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
548  + zdata_re25(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
549  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
550 !
551 ! Cuticular conductance (m s-1)
552  zdata_gc(ji,:)=0.00025
553  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_gc(ji,1)= 0.00015
554  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_gc(ji,1)= 0.00015
555  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_gc(ji,1)= 0.00015
556  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_gc(ji,1)= 0.00015
557  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_gc(ji,1)= 0.00015
558  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_gc(ji,1)= 0.
559  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_gc(ji,1)= 0.
560  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_gc(ji,1)= 0.
561  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_gc(ji,1)= 0.00015
562  IF (nvt_fltr>0) THEN
563  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_gc(ji,1) = 0.00015
564  ENDIF
565  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
566  dtv%XPAR_GC(ji,1) = ( zdata_gc(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
567  + zdata_gc(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
568  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
569 !
570 ! Ratio d(biomass)/d(lai) (kg/m2)
571  zdata_bslai(ji,:)=0.36
572  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_bslai(ji,1)= 0.25
573  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_bslai(ji,1)= 0.25
574  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_bslai(ji,1)= 0.25
575  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_bslai(ji,1)= 0.25
576  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_bslai(ji,1)= 0.25
577  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_bslai(ji,1)= 0.25
578  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_bslai(ji,1)= 0.25
579  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_bslai(ji,1)= 0.25
580  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_bslai(ji,1)= 0.25
581  IF (nvt_fltr>0) THEN
582  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_bslai(ji,1) = 0.25
583  ENDIF
584  IF (nvt_c3>0) THEN
585  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3 )>0. ) zdata_bslai(ji,2)= 0.06
586  ENDIF
587  IF (nvt_c3w>0) THEN
588  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3w )>0. ) zdata_bslai(ji,2)= 0.06
589  ENDIF
590  IF (nvt_c3s>0) THEN
591  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3s )>0. ) zdata_bslai(ji,2)= 0.06
592  ENDIF
593  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_bslai(ji,2)= 0.06
594  IF (nvt_irr>0) THEN
595  IF(dtv%XPAR_VEGTYPE(ji,nvt_irr )>0. ) zdata_bslai(ji,2)= 0.06
596  ENDIF
597  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
598  dtv%XPAR_BSLAI(ji,1) = ( zdata_bslai(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
599  + zdata_bslai(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
600  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
601 !
602 ! Maximum air saturation deficit tolerate by vegetation (kg/kg)
603  zdata_dmax(ji,:) = 0.1
604  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dmax(ji,1)= 0.1
605  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dmax(ji,1)= 0.1
606  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dmax(ji,1)= 0.1
607  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dmax(ji,1)= 0.1
608  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dmax(ji,1)= 0.1
609  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_dmax(ji,1)= 0.1
610  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_dmax(ji,1)= 0.1
611  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_dmax(ji,1)= 0.1
612  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dmax(ji,1)= 0.1
613  IF (nvt_fltr>0) THEN
614  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_dmax(ji,1) = 0.1
615  ENDIF
616  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
617  dtv%XPAR_DMAX(ji,1) = ( zdata_dmax(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
618  + zdata_dmax(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
619  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
620 !
621 ! e-folding time for senescence (days)
622  zdata_sefold(ji,:)=90. * xday
623  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_sefold(ji,1)= 365.* xday
624  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_sefold(ji,1)= 365.* xday
625  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_sefold(ji,1)= 365.* xday
626  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_sefold(ji,1)= 365.* xday
627  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_sefold(ji,1)= 365.* xday
628  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_sefold(ji,1)= 365.* xday
629  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_sefold(ji,1)= 365.* xday
630  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_sefold(ji,1)= 365.* xday
631  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_sefold(ji,1)= 365.* xday
632  IF (nvt_fltr>0) THEN
633  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_sefold(ji,1) = 365.*xday
634  ENDIF
635  IF (nvt_c3>0) THEN
636  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3 )>0. ) zdata_sefold(ji,2)= 60.* xday
637  ENDIF
638  IF (nvt_c3w>0) THEN
639  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3w )>0. ) zdata_sefold(ji,2)= 60.* xday
640  ENDIF
641  IF (nvt_c3s>0) THEN
642  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3s )>0. ) zdata_sefold(ji,2)= 60.* xday
643  ENDIF
644  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_sefold(ji,2)= 60.* xday
645  IF (nvt_irr>0) THEN
646  IF(dtv%XPAR_VEGTYPE(ji,nvt_irr )>0. ) zdata_sefold(ji,2)= 60.* xday
647  ENDIF
648  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
649  dtv%XPAR_SEFOLD(ji,1) = ( zdata_sefold(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
650  + zdata_sefold(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
651  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
652 !
653 ! Minimum LAI (m2/m2)
654  zdata_laimin(ji,:) = 0.3
655  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_laimin(ji,1)= 1.0
656  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_laimin(ji,1)= 1.0
657  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_laimin(ji,1)= 1.0
658  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_laimin(ji,1)= 1.0
659  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
660  dtv%XPAR_LAIMIN(ji,1) = ( zdata_laimin(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
661  + zdata_laimin(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
662  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
663 !
664 ! Leaf aera ratio sensitivity to nitrogen concentration
665  zdata_ce_nitro(ji,:)=7.68
666  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_ce_nitro(ji,1)= 4.83
667  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_ce_nitro(ji,1)= 4.83
668  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_ce_nitro(ji,1)= 4.83
669  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_ce_nitro(ji,1)= 4.83
670  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_ce_nitro(ji,1)= 4.83
671  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_ce_nitro(ji,1)= 4.85
672  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_ce_nitro(ji,1)= 4.85
673  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_ce_nitro(ji,1)= 4.85
674  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_ce_nitro(ji,1)= 4.83
675  IF (nvt_fltr>0) THEN
676  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_ce_nitro(ji,1) = 4.83
677  ENDIF
678  IF (nvt_c3>0) THEN
679  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3 )>0. ) zdata_ce_nitro(ji,2)= 3.79
680  ENDIF
681  IF (nvt_c3w>0) THEN
682  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3w )>0. ) zdata_ce_nitro(ji,2)= 3.79
683  ENDIF
684  IF (nvt_c3s>0) THEN
685  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3s )>0. ) zdata_ce_nitro(ji,2)= 3.79
686  ENDIF
687  IF(dtv%XPAR_VEGTYPE(ji,nvt_gras)>0. ) zdata_ce_nitro(ji,2)= 5.56
688  IF(dtv%XPAR_VEGTYPE(ji,nvt_bogr)>0. ) zdata_ce_nitro(ji,2)= 5.56
689  IF (nvt_park>0) THEN
690  IF(dtv%XPAR_VEGTYPE(ji,nvt_park)>0. ) zdata_ce_nitro(ji,2)= 5.56
691  ELSEIF (nvt_flgr>0) THEN
692  IF(dtv%XPAR_VEGTYPE(ji,nvt_flgr)>0. ) zdata_ce_nitro(ji,2)= 5.56
693  ENDIF
694  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
695  dtv%XPAR_CE_NITRO(ji,1) = ( zdata_ce_nitro(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
696  + zdata_ce_nitro(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
697  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
698 !
699 ! Lethal minimum value of leaf area ratio
700  zdata_cf_nitro(ji,:)=-4.33
701  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cf_nitro(ji,1)= 2.53
702  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cf_nitro(ji,1)= 2.53
703  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cf_nitro(ji,1)= 2.53
704  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cf_nitro(ji,1)= 2.53
705  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cf_nitro(ji,1)= 2.53
706  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_cf_nitro(ji,1)= -0.24
707  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_cf_nitro(ji,1)= -0.24
708  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_cf_nitro(ji,1)= -0.24
709  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cf_nitro(ji,1)= 0.12
710  IF (nvt_fltr>0) THEN
711  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_cf_nitro(ji,1) = 2.53
712  ENDIF
713  IF (nvt_c3>0) THEN
714  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3 )>0. ) zdata_cf_nitro(ji,2)= 9.84
715  ENDIF
716  IF (nvt_c3w>0) THEN
717  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3w )>0. ) zdata_cf_nitro(ji,2)= 9.84
718  ENDIF
719  IF (nvt_c3s>0) THEN
720  IF(dtv%XPAR_VEGTYPE(ji,nvt_c3s )>0. ) zdata_cf_nitro(ji,2)= 9.84
721  ENDIF
722  IF(dtv%XPAR_VEGTYPE(ji,nvt_gras)>0. ) zdata_cf_nitro(ji,2)= 6.73
723  IF(dtv%XPAR_VEGTYPE(ji,nvt_bogr)>0. ) zdata_cf_nitro(ji,2)= 6.73
724  IF (nvt_park>0) THEN
725  IF(dtv%XPAR_VEGTYPE(ji,nvt_park)>0. ) zdata_cf_nitro(ji,2)= 6.73
726  ELSEIF (nvt_flgr>0) THEN
727  IF(dtv%XPAR_VEGTYPE(ji,nvt_flgr)>0. ) zdata_cf_nitro(ji,2)= 6.73
728  ENDIF
729  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
730  dtv%XPAR_CF_NITRO(ji,1) = ( zdata_cf_nitro(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
731  + zdata_cf_nitro(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
732  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
733 !
734 ! Nitrogen concentration of active biomass
735  zdata_cna_nitro(ji,:)=1.3
736  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_cna_nitro(ji,1)= 2.0
737  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_cna_nitro(ji,1)= 2.0
738  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_cna_nitro(ji,1)= 2.0
739  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_cna_nitro(ji,1)= 2.0
740  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_cna_nitro(ji,1)= 2.0
741  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_cna_nitro(ji,1)= 2.8
742  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_cna_nitro(ji,1)= 2.8
743  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_cna_nitro(ji,1)= 2.8
744  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_cna_nitro(ji,1)= 1.7
745  IF (nvt_fltr>0) THEN
746  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_cna_nitro(ji,1) = 2.0
747  ENDIF
748  IF(dtv%XPAR_VEGTYPE(ji,nvt_c4 )>0. ) zdata_cna_nitro(ji,2)= 1.9
749  IF (nvt_irr>0) THEN
750  IF(dtv%XPAR_VEGTYPE(ji,nvt_irr )>0. ) zdata_cna_nitro(ji,2)= 1.9
751  ENDIF
752  IF (dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) .GT. 0.) &
753  dtv%XPAR_CNA_NITRO(ji,1) = ( zdata_cna_nitro(ji,1)*dtv%XPAR_FRAC_HVEG(ji) &
754  + zdata_cna_nitro(ji,2)*dtv%XPAR_FRAC_LVEG(ji) ) &
755  / ( dtv%XPAR_FRAC_HVEG(ji)+dtv%XPAR_FRAC_LVEG(ji) )
756 !
757 ! Ground layers
758  IF (io%NGROUND_LAYER<=3) THEN
759  zdata_dg(ji,1,:) = 0.01
760  zdata_dg(ji,2,:) = 1.50
761  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dg(ji,2,1)= 2.0
762  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dg(ji,2,1)= 2.0
763  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dg(ji,2,1)= 2.0
764  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dg(ji,2,1)= 2.0
765  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dg(ji,2,1)= 2.0
766  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_dg(ji,2,1)= 2.0
767  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_dg(ji,2,1)= 2.0
768  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_dg(ji,2,1)= 2.0
769  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dg(ji,2,1)= 2.0
770  IF (nvt_fltr>0) THEN
771  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_dg(ji,2,1) = 2.0
772  ENDIF
773  !
774  IF(dtv%XPAR_VEGTYPE(ji,nvt_no )>0. ) zdata_dg(ji,2,3)= 0.5
775  IF(dtv%XPAR_VEGTYPE(ji,nvt_rock)>0. ) zdata_dg(ji,2,3)= 0.5
776  IF(dtv%XPAR_VEGTYPE(ji,nvt_snow)>0. ) zdata_dg(ji,2,3)= 0.5
777  !
778  IF (io%NGROUND_LAYER==3) THEN
779  zdata_dg(ji,3,:) = 2.00
780  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebd)>0. ) zdata_dg(ji,3,1)= 3.0
781  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbd)>0. ) zdata_dg(ji,3,1)= 3.0
782  IF(dtv%XPAR_VEGTYPE(ji,nvt_tebe)>0. ) zdata_dg(ji,3,1)= 3.0
783  IF(dtv%XPAR_VEGTYPE(ji,nvt_bobd)>0. ) zdata_dg(ji,3,1)= 3.0
784  IF(dtv%XPAR_VEGTYPE(ji,nvt_shrb)>0. ) zdata_dg(ji,3,1)= 3.0
785  IF(dtv%XPAR_VEGTYPE(ji,nvt_bone)>0. ) zdata_dg(ji,3,1)= 3.0
786  IF(dtv%XPAR_VEGTYPE(ji,nvt_tene)>0. ) zdata_dg(ji,3,1)= 3.0
787  IF(dtv%XPAR_VEGTYPE(ji,nvt_bond)>0. ) zdata_dg(ji,3,1)= 3.0
788  IF(dtv%XPAR_VEGTYPE(ji,nvt_trbe)>0. ) zdata_dg(ji,3,1)= 3.0
789  IF (nvt_fltr>0) THEN
790  IF (dtv%XPAR_VEGTYPE(ji,nvt_fltr)>0.) zdata_dg(ji,3,1) = 3.0
791  ENDIF
792  !
793  IF(dtv%XPAR_VEGTYPE(ji,nvt_no )>0. ) zdata_dg(ji,3,3)= 1.0
794  IF(dtv%XPAR_VEGTYPE(ji,nvt_rock)>0. ) zdata_dg(ji,3,3)= 1.0
795  IF(dtv%XPAR_VEGTYPE(ji,nvt_snow)>0. ) zdata_dg(ji,3,3)= 1.0
796  ENDIF
797  dtv%XPAR_DG(ji,:,1) = zdata_dg(ji,:,1)*dtv%XPAR_FRAC_HVEG(ji) &
798  + zdata_dg(ji,:,2)*dtv%XPAR_FRAC_LVEG(ji) &
799  + zdata_dg(ji,:,3)*dtv%XPAR_FRAC_NVEG(ji)
800  ELSEIF (io%NGROUND_LAYER<=noptimlayer) THEN
801  dtv%XPAR_DG(ji,:,1) = xoptimgrid(:)
802  ELSE
803  CALL abor1_sfx("READ_PGD_TEB_GARDEN_PAR: WITH MORE THAN 14 SOIL LAYERS, "//&
804  "without ecoclimap, garden cannot run")
805  ENDIF
806 !
807 ! Root fractions
808  DTV%XPAR_ROOTFRAC(JI,IO%NGROUND_LAYER,1) = 1.
809  DTV%XPAR_ROOTFRAC(JI,1,1) = 0.20
810  IF (IO%NGROUND_LAYER>2) THEN
811  DO JLAYER = IO%NGROUND_LAYER-1,2,-1
812  DTV%XPAR_ROOTFRAC(JI,JLAYER,1) = DTV%XPAR_ROOTFRAC(JI,JLAYER+1,1)-0.8/(IO%NGROUND_LAYER-1)
813  ENDDO
814  ENDIF
815 !
816  DTV%XPAR_DICE(JI,1) = DTV%XPAR_DG(JI,2,1)
817 !
818  DO JTIME=1,DTV%NTIME
819 ! Leaf Area Index
820 .GT. IF (DTV%XPAR_FRAC_HVEG(JI)+DTV%XPAR_FRAC_LVEG(JI) 0.) &
821  DTV%XPAR_LAI (JI,JTIME,1) = ( DTV%XPAR_LAI_HVEG(JI,JTIME)*DTV%XPAR_FRAC_HVEG(JI) &
822  + DTV%XPAR_LAI_LVEG(JI,JTIME)*DTV%XPAR_FRAC_LVEG(JI)) &
823  /( DTV%XPAR_FRAC_HVEG(JI)+DTV%XPAR_FRAC_LVEG(JI))
824 ! Fraction of vegetation
825  DTV%XPAR_VEG (JI,JTIME,1) = VEG_FROM_LAI (DTV%XPAR_LAI (JI,JTIME,1), &
826  DTV%XPAR_VEGTYPE(JI,:),GAGRI_TO_GRASS)
827 ! Roughness length for momentum
828  DTV%XPAR_Z0 (JI,JTIME,1) = Z0V_FROM_LAI (DTV%XPAR_LAI (JI,JTIME,1), &
829  DTV%XPAR_H_TREE (JI,1), &
830  DTV%XPAR_VEGTYPE(JI,:),GAGRI_TO_GRASS)
831 ! Emissivity
832  DTV%XPAR_EMIS (JI,JTIME,1) = EMIS_FROM_VEG (DTV%XPAR_VEG (JI,JTIME,1), &
833  DTV%XPAR_VEGTYPE(JI,:))
834  END DO
835 !
836 ENDDO
837 IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_GARDEN_PAR_N',1,ZHOOK_HANDLE)
838 !
839 !-------------------------------------------------------------------------------
840 !
841 END SUBROUTINE READ_PGD_TEB_GARDEN_PAR_n
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
real, save xday
Definition: modd_csts.F90:45
logical lhook
Definition: yomhook.F90:15
subroutine garden(DTCO, G, T, TOP, TIR, DTV, GB, DK, DEK, DMK, GDO, S, K, P, PEK, HIMPLICIT_WIND, TPTIME, PTSUN, PPEW_A_COEF, PPEW_B_COEF, PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, PTSTEP, PZREF, PTA, PQA, PEXNS, PRHOA, PCO2, PPS, PRR, PSR, PZENITH, PSW, PLW, PVMOD, PALBNIR_TVEG, PALBVIS_TVEG, PALBNIR_TSOIL, PALBVIS_TSOIL, PRN, PH, PLE, PGFLUX, PSFCO2, PEVAP, PUW, PRUNOFF, PAC, PQSAT, PTSRAD, PAC_AGG, PHU_AGG, PIRRIG)
Definition: garden.F90:14