SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
ini_data_param.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 ini_data_param(PTYPE,PSURF, PSURF2, PLAI, PH_TREE, &
7  palbnir_veg, palbvis_veg, palbuv_veg, prsmin, &
8  prgl, pcv, pgamma, pgmes, pgc, pbslai, psefold, &
9  plaimin_in, plaimin_out, pdmax, pstress, pf2i, &
10  pveg_in, pveg_out, &
11  pgreen, pz0, pz0_o_z0h, pemis_eco, pwrmax_cf, &
12  proot_lin, proot_extinction, psoilrc_so2, &
13  psoilrc_o3, pre25, pce_nitro, pcf_nitro, pcna_nitro,&
14  pgmes_st, pgc_st, pbslai_st, psefold_st, pdmax_st ,&
15  pgndlitter,pzf_tallveg, prglgv,pgammagv, &
16  prsmingv, proot_extinctiongv, pwrmax_cfgv, &
17  ph_veg, plaigv_in, plaigv_out, pz0litter, &
18  oagri_to_grass )
19 ! #########################
20 !
21 !!**** *INI_DATA_PARAM* initializes secondary cover-field correspondance arrays
22 !! from VEGTYPE and LAI
23 !!
24 !! PURPOSE
25 !! -------
26 !!
27 !! METHOD
28 !! ------
29 !!
30 !!
31 !! EXTERNAL
32 !! --------
33 !!
34 !! IMPLICIT ARGUMENTS
35 !! ------------------
36 !!
37 !! REFERENCE
38 !! ---------
39 !!
40 !! AUTHOR
41 !! ------
42 !!
43 !! V. Masson Meteo-France
44 !!
45 !! MODIFICATION
46 !! ------------
47 !!
48 !! Original 06/01/2000
49 !! F.solmon 01/06/2000 adaptation for patch approach: calculation of parameters
50 !! for each vegtypes of basic covers
51 !! V Masson 03/04/2002 set RSMIN value to 120 for NVT_TROG and NVT_C4
52 !! L Jarlan 15/10/2004 modify xdata_gmes following Gibelin
53 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan (duplicate arrays for ast, lst or nit options)
54 !! S. Lafont 03/09 : change unit of RE25
55 !! S. Faroux 03/09 : irrigated crops are assumed C4 crops
56 !! S. Lafont 09/11 : Reco bare soil is 0; corrected comments
57 !! B. Decharme 07/12 : Ponderation coefficient for cumulative root fraction of evergreen forest
58 !! R. Alkama 05/12 : Add 7 new vegtype (19 rather than 12)
59 !! B. Decharme 05/13 : new param for equatorial forest
60 !! P. Samuelsson 10/14 : Multi-energy balance (MEB)
61 !!Seferian & Delire 06/15 : Updating Nitrogen content and coef (PCF,PCNA) and
62 ! mesophyl conductance based on TRY database (Kattge et al., GCB 2011) and Jacobs Thesis
63 !!
64 !----------------------------------------------------------------------------
65 !
66 !* 0. DECLARATION
67 ! -----------
68 !
69 USE modd_csts, ONLY : xday
70 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
71  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
72  nvt_irr, nvt_gras, nvt_trog,nvt_park, &
73  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
74  nvt_bond, nvt_bogr, nvt_shrb, &
75  nvegtype, jpcover
76 !
77 USE modd_reprod_oper, ONLY : xeverg_rsmin
78 !
83 USE modi_abor1_sfx
85 !
86 !
87 USE yomhook ,ONLY : lhook, dr_hook
88 USE parkind1 ,ONLY : jprb
89 !
90 IMPLICIT NONE
91 !
92 !* 0.1 Declaration of arguments
93 ! ------------------------
94 !
95 REAL, DIMENSION(:,:), INTENT(IN) :: ptype
96 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: psurf
97 REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: psurf2
98 REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: plai
99 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: ph_tree
100 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: palbnir_veg
101 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: palbvis_veg
102 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: palbuv_veg
103 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: prsmin
104 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: prgl
105 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pcv
106 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgamma
107 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgmes
108 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgc
109 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pbslai
110 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: psefold
111 REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: plaimin_in
112 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: plaimin_out
113 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pdmax
114 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pstress
115 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pf2i
116 REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: pveg_in
117 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pveg_out
118 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pgreen
119 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pz0
120 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pz0_o_z0h
121 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pemis_eco
122 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pwrmax_cf
123 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: proot_lin
124 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: proot_extinction
125 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: psoilrc_so2
126 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: psoilrc_o3
127 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pre25
128 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pce_nitro
129 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pcf_nitro
130 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pcna_nitro
131 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgmes_st
132 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgc_st
133 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pbslai_st
134 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: psefold_st
135 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pdmax_st
136 !
137 LOGICAL, OPTIONAL, INTENT(IN) :: oagri_to_grass
138 !
139 ! MEB parameters
140 ! --------------
141 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pzf_tallveg
142 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: prglgv
143 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pgammagv
144 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: prsmingv
145 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: proot_extinctiongv
146 REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: pwrmax_cfgv
147 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: ph_veg
148 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: plaigv_out
149 REAL, DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: plaigv_in
150 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pz0litter
151 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: pgndlitter
152 !
153 !* 0.2 Declaration of local variables
154 ! ------------------------------
155 !
156 REAL, DIMENSION(SIZE(PTYPE,1)) :: zgarden
157 LOGICAL :: gsurf, gagri_to_grass
158 REAL, DIMENSION(SIZE(PTYPE,1),NVEGTYPE) :: zlaifrgv
159 INTEGER :: jloop ! class loop counter
160 !
161 INTEGER :: jmonth ! month loop counter
162 REAL(KIND=JPRB) :: zhook_handle
163 !
164 !-------------------------------------------------------------------------------
165 !-------------------------------------------------------------------------------
166 !
167 !* 7. Secondary variables on natural covers
168 ! -------------------------------------
169 !
170 IF (lhook) CALL dr_hook('INI_DATA_PARAM',0,zhook_handle)
171 !
172 gsurf = .true.
173 gagri_to_grass = .false.
174 !
175 !When set, C3 and C4 crop values are replaced by value for C3 grass
176 IF(present(oagri_to_grass))gagri_to_grass=oagri_to_grass
177 !
178 DO jloop=1,SIZE(ptype,1)
179 !
180  IF (present(psurf2) .AND. present(psurf)) THEN
181  gsurf=(psurf(jloop)>0. .OR. psurf2(jloop)>0.)
182  ELSEIF (present(psurf)) THEN
183  gsurf=(psurf(jloop)>0.)
184  ENDIF
185 !
186 !-------------------------------------------------------------------------------
187 !
188 !* nature exists for this cover type
189 !
190  IF (gsurf) THEN
191 !
192 !-------------------------------------------------------------------------------
193 !* 7.5 albnir (veg only)
194 ! ------
195  IF (present(palbnir_veg)) THEN
196  palbnir_veg(jloop,:)= 0.30
197  IF(ptype(jloop,nvt_tebd)>0. ) palbnir_veg(jloop,nvt_tebd)= 0.25
198  IF(ptype(jloop,nvt_trbd)>0. ) palbnir_veg(jloop,nvt_trbd)= 0.25
199  IF(ptype(jloop,nvt_tebe)>0. ) palbnir_veg(jloop,nvt_tebe)= 0.25
200  IF(ptype(jloop,nvt_bobd)>0. ) palbnir_veg(jloop,nvt_bobd)= 0.25
201  IF(ptype(jloop,nvt_shrb)>0. ) palbnir_veg(jloop,nvt_shrb)= 0.25
202  IF(ptype(jloop,nvt_bone)>0. ) palbnir_veg(jloop,nvt_bone)= 0.15
203  IF(ptype(jloop,nvt_tene)>0. ) palbnir_veg(jloop,nvt_tene)= 0.15
204  IF(ptype(jloop,nvt_bond)>0. ) palbnir_veg(jloop,nvt_bond)= 0.15
205  IF(ptype(jloop,nvt_trbe)>0. ) palbnir_veg(jloop,nvt_trbe)= 0.21
206  ENDIF
207 !-------------------------------------------------------------------------------
208 !* 7.6 albvis (veg only)
209 ! ------
210  IF (present(palbvis_veg)) THEN
211  palbvis_veg(jloop,:)= 0.10
212  IF(ptype(jloop,nvt_tebd)>0. ) palbvis_veg(jloop,nvt_tebd)= 0.05
213  IF(ptype(jloop,nvt_trbd)>0. ) palbvis_veg(jloop,nvt_trbd)= 0.05
214  IF(ptype(jloop,nvt_tebe)>0. ) palbvis_veg(jloop,nvt_tebe)= 0.05
215  IF(ptype(jloop,nvt_bobd)>0. ) palbvis_veg(jloop,nvt_bobd)= 0.05
216  IF(ptype(jloop,nvt_shrb)>0. ) palbvis_veg(jloop,nvt_shrb)= 0.05
217  IF(ptype(jloop,nvt_bone)>0. ) palbvis_veg(jloop,nvt_bone)= 0.05
218  IF(ptype(jloop,nvt_tene)>0. ) palbvis_veg(jloop,nvt_tene)= 0.05
219  IF(ptype(jloop,nvt_bond)>0. ) palbvis_veg(jloop,nvt_bond)= 0.05
220  IF(ptype(jloop,nvt_trbe)>0. ) palbvis_veg(jloop,nvt_trbe)= 0.05
221  ENDIF
222 !-------------------------------------------------------------------------------
223 !* 7.6 albUV (veg only)
224 ! -----
225  IF (present(palbuv_veg)) THEN
226  palbuv_veg(jloop,:)= 0.06
227  IF(ptype(jloop,nvt_tebd)>0. ) palbuv_veg(jloop,nvt_tebd)= 0.0525
228  IF(ptype(jloop,nvt_trbd)>0. ) palbuv_veg(jloop,nvt_trbd)= 0.0525
229  IF(ptype(jloop,nvt_tebe)>0. ) palbuv_veg(jloop,nvt_tebe)= 0.0525
230  IF(ptype(jloop,nvt_bobd)>0. ) palbuv_veg(jloop,nvt_bobd)= 0.0525
231  IF(ptype(jloop,nvt_shrb)>0. ) palbuv_veg(jloop,nvt_shrb)= 0.0525
232  IF(ptype(jloop,nvt_bone)>0. ) palbuv_veg(jloop,nvt_bone)= 0.0425
233  IF(ptype(jloop,nvt_tene)>0. ) palbuv_veg(jloop,nvt_tene)= 0.0425
234  IF(ptype(jloop,nvt_bond)>0. ) palbuv_veg(jloop,nvt_bond)= 0.0425
235  IF(ptype(jloop,nvt_trbe)>0. ) palbuv_veg(jloop,nvt_trbe)= 0.038
236  IF(ptype(jloop,nvt_gras)>0. ) palbuv_veg(jloop,nvt_gras)= 0.08
237  IF(ptype(jloop,nvt_bogr)>0. ) palbuv_veg(jloop,nvt_bogr)= 0.08
238  IF(ptype(jloop,nvt_trog)>0. ) palbuv_veg(jloop,nvt_trog)= 0.125
239  IF(gagri_to_grass)THEN
240  IF(ptype(jloop,nvt_c3 )>0. ) palbuv_veg(jloop,nvt_c3 )= 0.08
241  IF(ptype(jloop,nvt_c4 )>0. ) palbuv_veg(jloop,nvt_c4 )= 0.08
242  IF(ptype(jloop,nvt_irr )>0. ) palbuv_veg(jloop,nvt_irr )= 0.08
243  ELSE
244  IF(ptype(jloop,nvt_irr )>0. ) palbuv_veg(jloop,nvt_irr )= 0.045
245  ENDIF
246  IF(ptype(jloop,nvt_park)>0. ) palbuv_veg(jloop,nvt_park)= 0.08
247  ENDIF
248 !------------------------------------------------------------------------------
249 !* 7.7 Rsmin
250 ! -----
251  IF (present(prsmin)) THEN
252  prsmin(jloop,:)= 40.
253  IF(ptype(jloop,nvt_tebd)>0. ) prsmin(jloop,nvt_tebd)= 150.
254  IF(ptype(jloop,nvt_trbd)>0. ) prsmin(jloop,nvt_trbd)= 150.
255  IF(ptype(jloop,nvt_tebe)>0. ) prsmin(jloop,nvt_tebe)= 150.
256  IF(ptype(jloop,nvt_bobd)>0. ) prsmin(jloop,nvt_bobd)= 150.
257  IF(ptype(jloop,nvt_shrb)>0. ) prsmin(jloop,nvt_shrb)= 150.
258  IF(ptype(jloop,nvt_bone)>0. ) prsmin(jloop,nvt_bone)= 150.
259  IF(ptype(jloop,nvt_tene)>0. ) prsmin(jloop,nvt_tene)= 150.
260  IF(ptype(jloop,nvt_bond)>0. ) prsmin(jloop,nvt_bond)= 150.
261  IF(ptype(jloop,nvt_trbe)>0. ) prsmin(jloop,nvt_trbe)= xeverg_rsmin
262  IF(ptype(jloop,nvt_trog)>0. ) prsmin(jloop,nvt_trog)= 120.
263  IF(gagri_to_grass)THEN
264  IF(ptype(jloop,nvt_c4 )>0. ) prsmin(jloop,nvt_c4 )= 40.
265  IF(ptype(jloop,nvt_irr )>0. ) prsmin(jloop,nvt_irr )= 40.
266  ELSE
267  IF(ptype(jloop,nvt_c4 )>0. ) prsmin(jloop,nvt_c4 )= 120.
268  IF(ptype(jloop,nvt_irr )>0. ) prsmin(jloop,nvt_irr )= 120.
269  ENDIF
270  ENDIF
271 !-------------------------------------------------------------------------------
272 !* 7.8 Gamma
273 ! -----
274  IF (present(pgamma)) THEN
275  pgamma(jloop,:)= 0.
276  IF(ptype(jloop,nvt_tebd)>0. ) pgamma(jloop,nvt_tebd)= 0.04
277  IF(ptype(jloop,nvt_trbd)>0. ) pgamma(jloop,nvt_trbd)= 0.04
278  IF(ptype(jloop,nvt_tebe)>0. ) pgamma(jloop,nvt_tebe)= 0.04
279  IF(ptype(jloop,nvt_bobd)>0. ) pgamma(jloop,nvt_bobd)= 0.04
280  IF(ptype(jloop,nvt_shrb)>0. ) pgamma(jloop,nvt_shrb)= 0.04
281  IF(ptype(jloop,nvt_bone)>0. ) pgamma(jloop,nvt_bone)= 0.04
282  IF(ptype(jloop,nvt_tene)>0. ) pgamma(jloop,nvt_tene)= 0.04
283  IF(ptype(jloop,nvt_bond)>0. ) pgamma(jloop,nvt_bond)= 0.04
284  IF(ptype(jloop,nvt_trbe)>0. ) pgamma(jloop,nvt_trbe)= 0.04
285  ENDIF
286 !-------------------------------------------------------------------------------
287 !* 7.8 Wrmax_cf
288 ! --------
289  IF (present(pwrmax_cf)) THEN
290  pwrmax_cf(jloop,:)= 0.2
291  IF(ptype(jloop,nvt_tebd)>0. ) pwrmax_cf(jloop,nvt_tebd)= 0.1
292  IF(ptype(jloop,nvt_trbd)>0. ) pwrmax_cf(jloop,nvt_trbd)= 0.1
293  IF(ptype(jloop,nvt_tebe)>0. ) pwrmax_cf(jloop,nvt_tebe)= 0.1
294  IF(ptype(jloop,nvt_bobd)>0. ) pwrmax_cf(jloop,nvt_bobd)= 0.1
295  IF(ptype(jloop,nvt_shrb)>0. ) pwrmax_cf(jloop,nvt_shrb)= 0.1
296  IF(ptype(jloop,nvt_bone)>0. ) pwrmax_cf(jloop,nvt_bone)= 0.1
297  IF(ptype(jloop,nvt_tene)>0. ) pwrmax_cf(jloop,nvt_tene)= 0.1
298  IF(ptype(jloop,nvt_bond)>0. ) pwrmax_cf(jloop,nvt_bond)= 0.1
299  IF(ptype(jloop,nvt_trbe)>0. ) pwrmax_cf(jloop,nvt_trbe)= 0.1
300  ENDIF
301 !-------------------------------------------------------------------------------
302 !* 7.9 Rgl
303 ! ---
304  IF (present(prgl)) THEN
305  prgl(jloop,:)= 100.
306  IF(ptype(jloop,nvt_tebd)>0. ) prgl(jloop,nvt_tebd)= 30.
307  IF(ptype(jloop,nvt_trbd)>0. ) prgl(jloop,nvt_trbd)= 30.
308  IF(ptype(jloop,nvt_tebe)>0. ) prgl(jloop,nvt_tebe)= 30.
309  IF(ptype(jloop,nvt_bobd)>0. ) prgl(jloop,nvt_bobd)= 30.
310  IF(ptype(jloop,nvt_shrb)>0. ) prgl(jloop,nvt_shrb)= 30.
311  IF(ptype(jloop,nvt_bone)>0. ) prgl(jloop,nvt_bone)= 30.
312  IF(ptype(jloop,nvt_tene)>0. ) prgl(jloop,nvt_tene)= 30.
313  IF(ptype(jloop,nvt_bond)>0. ) prgl(jloop,nvt_bond)= 30.
314  IF(ptype(jloop,nvt_trbe)>0. ) prgl(jloop,nvt_trbe)= 30.
315  ENDIF
316 !-------------------------------------------------------------------------------
317 !* 7.10 Cv
318 ! --
319  IF (present(pcv)) THEN
320  pcv(jloop,:)=2.e-5
321  IF(ptype(jloop,nvt_tebd)>0. ) pcv(jloop,nvt_tebd)= 1.e-5
322  IF(ptype(jloop,nvt_trbd)>0. ) pcv(jloop,nvt_trbd)= 1.e-5
323  IF(ptype(jloop,nvt_tebe)>0. ) pcv(jloop,nvt_tebe)= 1.e-5
324  IF(ptype(jloop,nvt_bobd)>0. ) pcv(jloop,nvt_bobd)= 1.e-5
325  IF(ptype(jloop,nvt_shrb)>0. ) pcv(jloop,nvt_shrb)= 1.e-5
326  IF(ptype(jloop,nvt_bone)>0. ) pcv(jloop,nvt_bone)= 1.e-5
327  IF(ptype(jloop,nvt_tene)>0. ) pcv(jloop,nvt_tene)= 1.e-5
328  IF(ptype(jloop,nvt_bond)>0. ) pcv(jloop,nvt_bond)= 1.e-5
329  IF(ptype(jloop,nvt_trbe)>0. ) pcv(jloop,nvt_trbe)= 1.e-5
330  ENDIF
331 !-------------------------------------------------------------------------------
332 !* 7.11 mesophyll conductance (m s-1)
333 ! -----------------------------
334 ! Uptdated values using Kattge et al. 2009 median values of Vcmax at 25C
335 ! (For TRBE, used median + 1 standard deviation)
336 ! For C3 tree PFTs :
337 ! gmes = Vcmax / (gamma + Kc*(1 + O2/Ko))
338 ! from Jacobs eq [A8.5] and Farquhar, 1980 eq 42 : gm = dA/dC estimated at Ci=Gamma
339 ! For grasses (C3 and C4): used V7 value
340 ! crops : used N. Canal's PhD thesis
341 ! --------------------------------------------------------------------
342  IF (present(pgmes)) THEN
343  pgmes(jloop,:)=0.020
344  IF(ptype(jloop,nvt_tebd)>0. ) pgmes(jloop,nvt_tebd)= 0.001
345  IF(ptype(jloop,nvt_trbd)>0. ) pgmes(jloop,nvt_trbd)= 0.001
346  IF(ptype(jloop,nvt_tebe)>0. ) pgmes(jloop,nvt_tebe)= 0.001
347  IF(ptype(jloop,nvt_bobd)>0. ) pgmes(jloop,nvt_bobd)= 0.001
348  IF(ptype(jloop,nvt_shrb)>0. ) pgmes(jloop,nvt_shrb)= 0.001
349  IF(ptype(jloop,nvt_bone)>0. ) pgmes(jloop,nvt_bone)= 0.001
350  IF(ptype(jloop,nvt_tene)>0. ) pgmes(jloop,nvt_tene)= 0.001
351  IF(ptype(jloop,nvt_bond)>0. ) pgmes(jloop,nvt_bond)= 0.001
352  IF(ptype(jloop,nvt_trbe)>0. ) pgmes(jloop,nvt_trbe)= 0.001
353  IF(gagri_to_grass)THEN
354  IF(ptype(jloop,nvt_c3 )>0. ) pgmes(jloop,nvt_c3 )= 0.020
355  IF(ptype(jloop,nvt_c4 )>0. ) pgmes(jloop,nvt_c4 )= 0.020
356  IF(ptype(jloop,nvt_irr )>0. ) pgmes(jloop,nvt_irr )= 0.020
357  ELSE
358  IF(ptype(jloop,nvt_c3 )>0. ) pgmes(jloop,nvt_c3 )= 0.003
359  IF(ptype(jloop,nvt_c4 )>0. ) pgmes(jloop,nvt_c4 )= 0.003
360  IF(ptype(jloop,nvt_irr )>0. ) pgmes(jloop,nvt_irr )= 0.003
361  ENDIF
362  ENDIF
363 !
364  IF (present(pgmes_st)) THEN
365  pgmes_st(jloop,:)=0.003
366  IF(ptype(jloop,nvt_tebd)>0. ) pgmes_st(jloop,nvt_tebd)= 0.0018
367  IF(ptype(jloop,nvt_trbd)>0. ) pgmes_st(jloop,nvt_trbd)= 0.0012
368  IF(ptype(jloop,nvt_tebe)>0. ) pgmes_st(jloop,nvt_tebe)= 0.0019
369  IF(ptype(jloop,nvt_bobd)>0. ) pgmes_st(jloop,nvt_bobd)= 0.0018
370  IF(ptype(jloop,nvt_shrb)>0. ) pgmes_st(jloop,nvt_shrb)= 0.0016
371  IF(ptype(jloop,nvt_bone)>0. ) pgmes_st(jloop,nvt_bone)= 0.0019
372  IF(ptype(jloop,nvt_tene)>0. ) pgmes_st(jloop,nvt_tene)= 0.0019
373  IF(ptype(jloop,nvt_bond)>0. ) pgmes_st(jloop,nvt_bond)= 0.0012
374  IF(ptype(jloop,nvt_trbe)>0. ) pgmes_st(jloop,nvt_trbe)= 0.0012
375  IF(gagri_to_grass)THEN
376  IF(ptype(jloop,nvt_c3 )>0. ) pgmes_st(jloop,nvt_c3 )= 0.001
377  IF(ptype(jloop,nvt_c4 )>0. ) pgmes_st(jloop,nvt_c4 )= 0.006
378  IF(ptype(jloop,nvt_irr )>0. ) pgmes_st(jloop,nvt_irr )= 0.006
379  ELSE
380  IF(ptype(jloop,nvt_c3 )>0. ) pgmes_st(jloop,nvt_c3 )= 0.00175
381  IF(ptype(jloop,nvt_c4 )>0. ) pgmes_st(jloop,nvt_c4 )= 0.0098
382  IF(ptype(jloop,nvt_irr )>0. ) pgmes_st(jloop,nvt_irr )= 0.0098
383  ENDIF
384  IF(ptype(jloop,nvt_gras)>0. ) pgmes_st(jloop,nvt_gras )= 0.001
385  IF(ptype(jloop,nvt_bogr)>0. ) pgmes_st(jloop,nvt_bogr )= 0.001
386  IF(ptype(jloop,nvt_trog)>0. ) pgmes_st(jloop,nvt_trog )= 0.006
387  IF(ptype(jloop,nvt_park)>0. ) pgmes_st(jloop,nvt_park )= 0.001
388  ENDIF
389 !-------------------------------------------------------------------------------
390 !* 7.11 Ecosystem Respiration (kg m-2 s-1)
391 ! -----------------------------------
392  IF (present(pre25)) THEN
393  pre25(jloop,:)= 3.6e-7
394  IF(ptype(jloop,nvt_bone)>0. ) pre25(jloop,nvt_bone)= 1.8e-7
395  IF(ptype(jloop,nvt_tene)>0. ) pre25(jloop,nvt_tene)= 1.8e-7
396  IF(ptype(jloop,nvt_bond)>0. ) pre25(jloop,nvt_bond)= 1.8e-7
397  IF(gagri_to_grass)THEN
398  IF(ptype(jloop,nvt_c3 )>0. ) pre25(jloop,nvt_c3 )= 3.6e-7
399  IF(ptype(jloop,nvt_c4 )>0. ) pre25(jloop,nvt_c4 )= 3.6e-7
400  IF(ptype(jloop,nvt_irr )>0. ) pre25(jloop,nvt_irr )= 3.6e-7
401  ELSE
402  IF(ptype(jloop,nvt_c3 )>0. ) pre25(jloop,nvt_c3 )= 3.6e-7
403  IF(ptype(jloop,nvt_c4 )>0. ) pre25(jloop,nvt_c4 )= 3.0e-7
404  IF(ptype(jloop,nvt_irr )>0. ) pre25(jloop,nvt_irr )= 3.0e-7
405  ENDIF
406  !ecosystem respiration only if vegetetation is present
407  IF(ptype(jloop,nvt_no )>0. ) pre25(jloop,nvt_no )= 0.
408  IF(ptype(jloop,nvt_rock)>0. ) pre25(jloop,nvt_rock)= 0.
409  IF(ptype(jloop,nvt_snow)>0. ) pre25(jloop,nvt_snow)= 0.
410  ENDIF
411 !-------------------------------------------------------------------------------
412 !* 7.11 cuticular conductance (m s-1)
413 ! -----------------------------
414  IF (present(pgc)) THEN
415  pgc(jloop,:)=0.00025
416  IF(ptype(jloop,nvt_tebd)>0. ) pgc(jloop,nvt_tebd)= 0.00015
417  IF(ptype(jloop,nvt_trbd)>0. ) pgc(jloop,nvt_trbd)= 0.00015
418  IF(ptype(jloop,nvt_tebe)>0. ) pgc(jloop,nvt_tebe)= 0.00015
419  IF(ptype(jloop,nvt_bobd)>0. ) pgc(jloop,nvt_bobd)= 0.00015
420  IF(ptype(jloop,nvt_shrb)>0. ) pgc(jloop,nvt_shrb)= 0.00015
421  IF(ptype(jloop,nvt_bone)>0. ) pgc(jloop,nvt_bone)= 0.
422  IF(ptype(jloop,nvt_tene)>0. ) pgc(jloop,nvt_tene)= 0.
423  IF(ptype(jloop,nvt_bond)>0. ) pgc(jloop,nvt_bond)= 0.
424  IF(ptype(jloop,nvt_trbe)>0. ) pgc(jloop,nvt_trbe)= 0.00015
425  ENDIF
426 !
427  IF (present(pgc_st)) THEN
428  pgc_st(jloop,:)=0.00015
429  IF(ptype(jloop,nvt_bone)>0. ) pgc_st(jloop,nvt_bone)= 0.
430  IF(ptype(jloop,nvt_tene)>0. ) pgc_st(jloop,nvt_tene)= 0.
431  IF(ptype(jloop,nvt_bond)>0. ) pgc_st(jloop,nvt_bond)= 0.
432  IF(ptype(jloop,nvt_c3 )>0. ) pgc_st(jloop,nvt_c3 )= 0.00025
433  IF(ptype(jloop,nvt_gras)>0. ) pgc_st(jloop,nvt_gras)= 0.00025
434  IF(ptype(jloop,nvt_bogr)>0. ) pgc_st(jloop,nvt_bogr)= 0.00025
435  IF(ptype(jloop,nvt_park)>0. ) pgc_st(jloop,nvt_park)= 0.001
436  IF(gagri_to_grass)THEN
437  IF(ptype(jloop,nvt_c4 )>0. ) pgc_st(jloop,nvt_c4 )= 0.00025
438  IF(ptype(jloop,nvt_irr )>0. ) pgc_st(jloop,nvt_irr )= 0.00025
439  ENDIF
440  ENDIF
441 !-------------------------------------------------------------------------------
442 !* 7.11 critical normilized soil water content for stress parameterisation
443 ! ------------------------------------------------------------------
444  IF (present(pf2i)) pf2i(jloop,:)=0.3
445 !-------------------------------------------------------------------------------
446 !* 7.12 ratio d(biomass)/d(lai) (kg/m2)
447 ! -----------------------
448  IF (present(pbslai)) THEN
449  pbslai(jloop,:)=0.36
450  IF(ptype(jloop,nvt_tebd)>0. ) pbslai(jloop,nvt_tebd)= 0.25
451  IF(ptype(jloop,nvt_trbd)>0. ) pbslai(jloop,nvt_trbd)= 0.25
452  IF(ptype(jloop,nvt_tebe)>0. ) pbslai(jloop,nvt_tebe)= 0.25
453  IF(ptype(jloop,nvt_bobd)>0. ) pbslai(jloop,nvt_bobd)= 0.25
454  IF(ptype(jloop,nvt_shrb)>0. ) pbslai(jloop,nvt_shrb)= 0.25
455  IF(ptype(jloop,nvt_bone)>0. ) pbslai(jloop,nvt_bone)= 0.25
456  IF(ptype(jloop,nvt_tene)>0. ) pbslai(jloop,nvt_tene)= 0.25
457  IF(ptype(jloop,nvt_bond)>0. ) pbslai(jloop,nvt_bond)= 0.25
458  IF(ptype(jloop,nvt_trbe)>0. ) pbslai(jloop,nvt_trbe)= 0.25
459  IF(gagri_to_grass)THEN
460  IF(ptype(jloop,nvt_c3 )>0. ) pbslai(jloop,nvt_c3 )= 0.36
461  IF(ptype(jloop,nvt_c4 )>0. ) pbslai(jloop,nvt_c4 )= 0.36
462  IF(ptype(jloop,nvt_irr )>0. ) pbslai(jloop,nvt_irr )= 0.36
463  ELSE
464  IF(ptype(jloop,nvt_c3 )>0. ) pbslai(jloop,nvt_c3 )= 0.06
465  IF(ptype(jloop,nvt_c4 )>0. ) pbslai(jloop,nvt_c4 )= 0.06
466  IF(ptype(jloop,nvt_irr )>0. ) pbslai(jloop,nvt_irr )= 0.06
467  ENDIF
468  ENDIF
469 !
470  IF (present(pbslai_st)) THEN
471  pbslai_st(jloop,:)=0.08
472  IF(ptype(jloop,nvt_tebd)>0. ) pbslai_st(jloop,nvt_tebd)= 0.125
473  IF(ptype(jloop,nvt_trbd)>0. ) pbslai_st(jloop,nvt_trbd)= 0.125
474  IF(ptype(jloop,nvt_tebe)>0. ) pbslai_st(jloop,nvt_tebe)= 0.125
475  IF(ptype(jloop,nvt_bobd)>0. ) pbslai_st(jloop,nvt_bobd)= 0.125
476  IF(ptype(jloop,nvt_shrb)>0. ) pbslai_st(jloop,nvt_shrb)= 0.125
477  IF(ptype(jloop,nvt_bone)>0. ) pbslai_st(jloop,nvt_bone)= 0.50
478  IF(ptype(jloop,nvt_tene)>0. ) pbslai_st(jloop,nvt_tene)= 0.50
479  IF(ptype(jloop,nvt_bond)>0. ) pbslai_st(jloop,nvt_bond)= 0.50
480  IF(ptype(jloop,nvt_trbe)>0. ) pbslai_st(jloop,nvt_trbe)= 0.25
481  IF(gagri_to_grass)THEN
482  IF(ptype(jloop,nvt_c3 )>0. ) pbslai_st(jloop,nvt_c3 )= 0.08
483  IF(ptype(jloop,nvt_c4 )>0. ) pbslai_st(jloop,nvt_c4 )= 0.08
484  IF(ptype(jloop,nvt_irr )>0. ) pbslai_st(jloop,nvt_irr )= 0.08
485  ELSE
486  IF(ptype(jloop,nvt_c3 )>0. ) pbslai_st(jloop,nvt_c3 )= 0.06
487  IF(ptype(jloop,nvt_c4 )>0. ) pbslai_st(jloop,nvt_c4 )= 0.06
488  IF(ptype(jloop,nvt_irr )>0. ) pbslai_st(jloop,nvt_irr )= 0.06
489  ENDIF
490  ENDIF
491 !
492 !-------------------------------------------------------------------------------
493 !* 7.12 maximum air saturation deficit tolerate by vegetation (kg/kg)
494 ! -----------------------------------------------------
495  IF (present(pdmax)) THEN
496  pdmax(jloop,:) = 0.1
497  IF(ptype(jloop,nvt_tebd)>0. ) pdmax(jloop,nvt_tebd)= 0.01
498  IF(ptype(jloop,nvt_trbd)>0. ) pdmax(jloop,nvt_trbd)= 0.01
499  IF(ptype(jloop,nvt_tebe)>0. ) pdmax(jloop,nvt_tebe)= 0.01
500  IF(ptype(jloop,nvt_bobd)>0. ) pdmax(jloop,nvt_bobd)= 0.01
501  IF(ptype(jloop,nvt_shrb)>0. ) pdmax(jloop,nvt_shrb)= 0.01
502  IF(ptype(jloop,nvt_bone)>0. ) pdmax(jloop,nvt_bone)= 0.01
503  IF(ptype(jloop,nvt_tene)>0. ) pdmax(jloop,nvt_tene)= 0.01
504  IF(ptype(jloop,nvt_bond)>0. ) pdmax(jloop,nvt_bond)= 0.01
505  IF(ptype(jloop,nvt_trbe)>0. ) pdmax(jloop,nvt_trbe)= 0.01
506  ENDIF
507 !
508  IF (present(pdmax_st)) THEN
509  pdmax_st(jloop,:) = 0.05
510  IF(ptype(jloop,nvt_tebd)>0. ) pdmax_st(jloop,nvt_tebd)= 0.109
511  IF(ptype(jloop,nvt_trbd)>0. ) pdmax_st(jloop,nvt_trbd)= 0.109
512  IF(ptype(jloop,nvt_tebe)>0. ) pdmax_st(jloop,nvt_tebe)= 0.109
513  IF(ptype(jloop,nvt_bobd)>0. ) pdmax_st(jloop,nvt_bobd)= 0.109
514  IF(ptype(jloop,nvt_shrb)>0. ) pdmax_st(jloop,nvt_shrb)= 0.109
515  IF(ptype(jloop,nvt_bone)>0. ) pdmax_st(jloop,nvt_bone)= 0.124
516  IF(ptype(jloop,nvt_tene)>0. ) pdmax_st(jloop,nvt_tene)= 0.124
517  IF(ptype(jloop,nvt_bond)>0. ) pdmax_st(jloop,nvt_bond)= 0.124
518  IF(ptype(jloop,nvt_trbe)>0. ) pdmax_st(jloop,nvt_trbe)= 0.124
519  IF(gagri_to_grass)THEN
520  IF(ptype(jloop,nvt_c4 )>0. ) pdmax_st(jloop,nvt_c4 )= 0.05
521  IF(ptype(jloop,nvt_irr )>0. ) pdmax_st(jloop,nvt_irr )= 0.05
522  ELSE
523  IF(ptype(jloop,nvt_c4 )>0. ) pdmax_st(jloop,nvt_c4 )= 0.033
524  IF(ptype(jloop,nvt_irr )>0. ) pdmax_st(jloop,nvt_irr )= 0.033
525  ENDIF
526  IF(ptype(jloop,nvt_trog)>0. ) pdmax_st(jloop,nvt_trog)= 0.052
527  ENDIF
528 !-------------------------------------------------------------------------------
529 !* 7.12 Defensive/offensive strategy (1/0)
530 ! ----------------------------
531  IF (present(pstress)) THEN
532  pstress(jloop,:) = 1.
533  IF(ptype(jloop,nvt_tebd)>0. ) pstress(jloop,nvt_tebd)= 0.
534  IF(ptype(jloop,nvt_trbd)>0. ) pstress(jloop,nvt_trbd)= 0.
535  IF(ptype(jloop,nvt_tebe)>0. ) pstress(jloop,nvt_tebe)= 0.
536  IF(ptype(jloop,nvt_bobd)>0. ) pstress(jloop,nvt_bobd)= 0.
537  IF(ptype(jloop,nvt_shrb)>0. ) pstress(jloop,nvt_shrb)= 0.
538  IF(ptype(jloop,nvt_trbe)>0. ) pstress(jloop,nvt_trbe)= 0.
539  IF(gagri_to_grass)THEN
540  IF(ptype(jloop,nvt_c3 )>0. ) pstress(jloop,nvt_c3 )= 0.
541  IF(ptype(jloop,nvt_irr )>0. ) pstress(jloop,nvt_irr )= 0.
542  ENDIF
543  IF(ptype(jloop,nvt_c4 )>0. ) pstress(jloop,nvt_c4 )= 0.
544  IF(ptype(jloop,nvt_gras)>0. ) pstress(jloop,nvt_gras)= 0.
545  IF(ptype(jloop,nvt_bogr)>0. ) pstress(jloop,nvt_bogr)= 0.
546  IF(ptype(jloop,nvt_trog)>0. ) pstress(jloop,nvt_trog)= 0.
547  IF(ptype(jloop,nvt_park)>0. ) pstress(jloop,nvt_park)= 0.
548  ENDIF
549 !-------------------------------------------------------------------------------
550 !* 7.13 e-folding time for senescence (days)
551 ! ------------------------------------
552 ! parameters use in case HPHOTO == 'NONE' 'AGS' 'LAI'
553  IF (present(psefold)) THEN
554  psefold(jloop,:)=90. * xday
555  IF(ptype(jloop,nvt_tebd)>0. ) psefold(jloop,nvt_tebd)= 365.* xday
556  IF(ptype(jloop,nvt_trbd)>0. ) psefold(jloop,nvt_trbd)= 365.* xday
557  IF(ptype(jloop,nvt_tebe)>0. ) psefold(jloop,nvt_tebe)= 365.* xday
558  IF(ptype(jloop,nvt_bobd)>0. ) psefold(jloop,nvt_bobd)= 365.* xday
559  IF(ptype(jloop,nvt_shrb)>0. ) psefold(jloop,nvt_shrb)= 365.* xday
560  IF(ptype(jloop,nvt_bone)>0. ) psefold(jloop,nvt_bone)= 365.* xday
561  IF(ptype(jloop,nvt_tene)>0. ) psefold(jloop,nvt_tene)= 365.* xday
562  IF(ptype(jloop,nvt_bond)>0. ) psefold(jloop,nvt_bond)= 365.* xday
563  IF(ptype(jloop,nvt_trbe)>0. ) psefold(jloop,nvt_trbe)= 365.* xday
564  IF(gagri_to_grass)THEN
565  IF(ptype(jloop,nvt_c3 )>0. ) psefold(jloop,nvt_c3 )= 90.* xday
566  IF(ptype(jloop,nvt_c4 )>0. ) psefold(jloop,nvt_c4 )= 90.* xday
567  IF(ptype(jloop,nvt_irr )>0. ) psefold(jloop,nvt_irr )= 90.* xday
568  ELSE
569  IF(ptype(jloop,nvt_c3 )>0. ) psefold(jloop,nvt_c3 )= 60.* xday
570  IF(ptype(jloop,nvt_c4 )>0. ) psefold(jloop,nvt_c4 )= 60.* xday
571  IF(ptype(jloop,nvt_irr )>0. ) psefold(jloop,nvt_irr )= 60.* xday
572  ENDIF
573  ENDIF
574 !
575 ! parameters use in case HPHOTO == 'AST','LST' 'NIT', 'NCB'
576 
577  IF (present(psefold_st)) THEN
578  psefold_st(jloop,:)=150. * xday
579  IF(ptype(jloop,nvt_tebd)>0. ) psefold_st(jloop,nvt_tebd)= 230.* xday
580  IF(ptype(jloop,nvt_trbd)>0. ) psefold_st(jloop,nvt_trbd)= 230.* xday
581  IF(ptype(jloop,nvt_tebe)>0. ) psefold_st(jloop,nvt_tebe)= 230.* xday
582  IF(ptype(jloop,nvt_bobd)>0. ) psefold_st(jloop,nvt_bobd)= 230.* xday
583  IF(ptype(jloop,nvt_shrb)>0. ) psefold_st(jloop,nvt_shrb)= 230.* xday
584  IF(ptype(jloop,nvt_bone)>0. ) psefold_st(jloop,nvt_bone)= 365.* xday
585  IF(ptype(jloop,nvt_tene)>0. ) psefold_st(jloop,nvt_tene)= 365.* xday
586  IF(ptype(jloop,nvt_bond)>0. ) psefold_st(jloop,nvt_bond)= 365.* xday
587  IF(ptype(jloop,nvt_trbe)>0. ) psefold_st(jloop,nvt_trbe)= 365.* xday
588  ENDIF
589 !-------------------------------------------------------------------------------
590 !* 7.14 Minimum LAI (m2/m2)
591 ! -------------------
592 ! Modi lai/patch defined
593  IF (present(plaimin_out)) THEN
594  plaimin_out(jloop,:) = 0.3
595  IF(ptype(jloop,nvt_bone)>0. ) plaimin_out(jloop,nvt_bone)= 1.0
596  IF(ptype(jloop,nvt_tene)>0. ) plaimin_out(jloop,nvt_tene)= 1.0
597  IF(ptype(jloop,nvt_bond)>0. ) plaimin_out(jloop,nvt_bond)= 1.0
598  IF(ptype(jloop,nvt_trbe)>0. ) plaimin_out(jloop,nvt_trbe)= 1.0
599  ENDIF
600 !--------------------------------------------------------------------
601 !
602 !* 7.16 Thickness of ground litter
603 ! --------------------------
604 !
605  IF (present(pgndlitter)) THEN
606  pgndlitter(jloop,:,:) = 0.
607  IF(ptype(jloop,nvt_tebd)>0. ) pgndlitter(jloop,:,nvt_tebd) = 0.03
608  IF(ptype(jloop,nvt_bone)>0. ) pgndlitter(jloop,:,nvt_bone) = 0.03
609  IF(ptype(jloop,nvt_trbe)>0. ) pgndlitter(jloop,:,nvt_trbe) = 0.03
610  IF(ptype(jloop,nvt_trbd)>0. ) pgndlitter(jloop,:,nvt_trbd) = 0.03
611  IF(ptype(jloop,nvt_tebe)>0. ) pgndlitter(jloop,:,nvt_tebe) = 0.03
612  IF(ptype(jloop,nvt_tene)>0. ) pgndlitter(jloop,:,nvt_tene) = 0.03
613  IF(ptype(jloop,nvt_bobd)>0. ) pgndlitter(jloop,:,nvt_bobd) = 0.03
614  IF(ptype(jloop,nvt_bond)>0. ) pgndlitter(jloop,:,nvt_bond) = 0.03
615  IF(ptype(jloop,nvt_shrb)>0. ) pgndlitter(jloop,:,nvt_shrb) = 0.03
616  ENDIF
617 !-------------------------------------------------------------------------------
618 !* 7.16 Binary for tall vegetation
619 ! --------------------------------------------------------------------------
620 ! parameters use in case LMEB == .TRUE.
621 !
622  IF (present(pzf_tallveg)) THEN
623  pzf_tallveg(jloop,:) = 0.
624  IF(ptype(jloop,nvt_tebd)>0. ) pzf_tallveg(jloop,nvt_tebd) = 1.0
625  IF(ptype(jloop,nvt_bone)>0. ) pzf_tallveg(jloop,nvt_bone) = 1.0
626  IF(ptype(jloop,nvt_trbe)>0. ) pzf_tallveg(jloop,nvt_trbe) = 1.0
627  IF(ptype(jloop,nvt_trbd)>0. ) pzf_tallveg(jloop,nvt_trbd) = 1.0
628  IF(ptype(jloop,nvt_tebe)>0. ) pzf_tallveg(jloop,nvt_tebe) = 1.0
629  IF(ptype(jloop,nvt_tene)>0. ) pzf_tallveg(jloop,nvt_tene) = 1.0
630  IF(ptype(jloop,nvt_bobd)>0. ) pzf_tallveg(jloop,nvt_bobd) = 1.0
631  IF(ptype(jloop,nvt_bond)>0. ) pzf_tallveg(jloop,nvt_bond) = 1.0
632  IF(ptype(jloop,nvt_shrb)>0. ) pzf_tallveg(jloop,nvt_shrb) = 1.0
633  ENDIF
634 !
635 !-------------------------------------------------------------------------------
636 !
637 !* 7.17 Rgl for understory vegetation
638 ! ------------------------------
639 !
640  IF (present(prglgv)) THEN
641  prglgv(jloop,:) = 100.
642  ENDIF
643 !
644 !-------------------------------------------------------------------------------
645 !
646 !* 7.18 Gamma for understory vegetation
647 ! -------------------------------
648 !
649  IF (present(pgammagv)) THEN
650  pgammagv(jloop,:) = 0.
651  ENDIF
652 !
653 !-------------------------------------------------------------------------------
654 !
655 !* 7.19 Rsmin for understory vegetation
656 ! -------------------------------
657 !
658  IF (present(prsmingv)) THEN
659  prsmingv(jloop,:) = 40.
660  ENDIF
661 !
662 !-------------------------------------------------------------------------------
663 !
664 !* 7.20 Jackson (1996) coefficient for cumulative root fraction
665 ! for understory vegetataion. Assumed equal to grass value
666 ! -------------------------------------------------------
667 !
668  IF (present(proot_extinctiongv)) THEN
669  proot_extinctiongv(jloop,:) = 0.943
670  ENDIF
671 !
672 !-------------------------------------------------------------------------------
673 !
674 !* 7.21 Wrmax_cf for understory vegetation
675 ! ----------------------------------
676 !
677  IF (present(pwrmax_cfgv)) THEN
678  pwrmax_cfgv(jloop,:) = 0.2
679  ENDIF
680 !------------------------------------------------------------------------
681 !* 2.20 specific leaf area sensitivity to nitrogen concentration
682 ! -----------------------------
683 ! corresponds to "e" in (eq 1) from Gibelin et al, 2006
684 ! SLA = f + e * Nm with SLA = specific leaf area
685 ! kept values from Gibelin et al 2006
686 ! -----------------------------------------------------
687 !
688  IF (present(pce_nitro)) THEN
689  pce_nitro(jloop,:)=7.68
690  IF(ptype(jloop,nvt_tebd)>0. ) pce_nitro(jloop,nvt_tebd)= 4.83
691  IF(ptype(jloop,nvt_trbd)>0. ) pce_nitro(jloop,nvt_trbd)= 4.83
692  IF(ptype(jloop,nvt_tebe)>0. ) pce_nitro(jloop,nvt_tebe)= 4.83
693  IF(ptype(jloop,nvt_bobd)>0. ) pce_nitro(jloop,nvt_bobd)= 4.83
694  IF(ptype(jloop,nvt_shrb)>0. ) pce_nitro(jloop,nvt_shrb)= 4.83
695  IF(ptype(jloop,nvt_bone)>0. ) pce_nitro(jloop,nvt_bone)= 4.85
696  IF(ptype(jloop,nvt_tene)>0. ) pce_nitro(jloop,nvt_tene)= 4.85
697  IF(ptype(jloop,nvt_bond)>0. ) pce_nitro(jloop,nvt_bond)= 4.85
698  IF(ptype(jloop,nvt_trbe)>0. ) pce_nitro(jloop,nvt_trbe)= 4.83
699  IF(gagri_to_grass)THEN
700  IF(ptype(jloop,nvt_c3 )>0. ) pce_nitro(jloop,nvt_c3 )= 5.56
701  IF(ptype(jloop,nvt_c4 )>0. ) pce_nitro(jloop,nvt_c4 )= 5.56
702  IF(ptype(jloop,nvt_irr )>0. ) pce_nitro(jloop,nvt_irr )= 5.56
703  ELSE
704  IF(ptype(jloop,nvt_c3 )>0. ) pce_nitro(jloop,nvt_c3 )= 3.79
705  IF(ptype(jloop,nvt_c4 )>0. ) pce_nitro(jloop,nvt_c4 )= 7.68
706  IF(ptype(jloop,nvt_irr )>0. ) pce_nitro(jloop,nvt_irr )= 7.68
707  ENDIF
708  IF(ptype(jloop,nvt_gras)>0. ) pce_nitro(jloop,nvt_gras)= 5.56
709  IF(ptype(jloop,nvt_bogr)>0. ) pce_nitro(jloop,nvt_bogr)= 5.56
710  IF(ptype(jloop,nvt_park)>0. ) pce_nitro(jloop,nvt_park)= 5.56
711  ENDIF
712 !
713 !-------------------------------------------------------------------------------
714 !* 2.21 lethal minimum value of leaf area ratio
715 ! ----------
716 ! intercept of SLA = f + e * Nm from Gibelin et al, 2006 (eq 1)
717 ! kept Gibelin et al values for grasses and crops
718 ! used TRY database (Kattge et al., 2011) median values for trees
719 ! with SLA and Nm from TRY and "e" (PCE_NITRO) from Gibelin et al 2006
720 ! used Domingues 2011 for TRBE SLA.
721 ! ------------------------------------------------------
722  IF (present(pcf_nitro)) THEN
723  pcf_nitro(jloop,:)=-4.33
724  IF(ptype(jloop,nvt_tebd)>0. ) pcf_nitro(jloop,nvt_tebd)= 5.11
725  IF(ptype(jloop,nvt_trbd)>0. ) pcf_nitro(jloop,nvt_trbd)= 5.11
726  IF(ptype(jloop,nvt_tebe)>0. ) pcf_nitro(jloop,nvt_tebe)= 0.17
727  IF(ptype(jloop,nvt_bobd)>0. ) pcf_nitro(jloop,nvt_bobd)= 5.11
728  IF(ptype(jloop,nvt_shrb)>0. ) pcf_nitro(jloop,nvt_shrb)= 4.98
729  IF(ptype(jloop,nvt_bone)>0. ) pcf_nitro(jloop,nvt_bone)= -0.87
730  IF(ptype(jloop,nvt_tene)>0. ) pcf_nitro(jloop,nvt_tene)= -0.87
731  IF(ptype(jloop,nvt_bond)>0. ) pcf_nitro(jloop,nvt_bond)= 0.68
732  IF(ptype(jloop,nvt_trbe)>0. ) pcf_nitro(jloop,nvt_trbe)= 0.12 ! obtained using f = SLA - e*Nm
733  ! with SLA = 8.33 m2/kg_DM (Domingues 2011), Nm=1.7% (TRY)
734  IF(gagri_to_grass)THEN
735  IF(ptype(jloop,nvt_c3 )>0. ) pcf_nitro(jloop,nvt_c3 )= 6.73
736  IF(ptype(jloop,nvt_c4 )>0. ) pcf_nitro(jloop,nvt_c4 )= 6.73
737  IF(ptype(jloop,nvt_irr )>0. ) pcf_nitro(jloop,nvt_irr )= 6.73
738  ELSE
739  IF(ptype(jloop,nvt_c3 )>0. ) pcf_nitro(jloop,nvt_c3 )= 9.84
740  IF(ptype(jloop,nvt_c4 )>0. ) pcf_nitro(jloop,nvt_c4 )= -4.33
741  IF(ptype(jloop,nvt_irr )>0. ) pcf_nitro(jloop,nvt_irr )= -4.33
742  ENDIF
743  IF(ptype(jloop,nvt_gras)>0. ) pcf_nitro(jloop,nvt_gras)= 6.73
744  IF(ptype(jloop,nvt_bogr)>0. ) pcf_nitro(jloop,nvt_bogr)= 6.73
745  IF(ptype(jloop,nvt_park)>0. ) pcf_nitro(jloop,nvt_park)= 6.73
746  ENDIF
747 !-------------------------------------------------------------------------------
748 !* 2.22 nitrogen concentration of leaf biomass
749 ! ----------
750 ! kept Gibelin et al 2006 values for grasses and crops
751 ! Nm from TRY database (Kattge et al. GCB 2011) median values for tree PFTs
752 ! Nm in mg_N/g_DM and PCNA_NITRO in % --> PCNA_NITRO = Nm * 0.1
753 ! --------------------------------------------------
754  IF (present(pcna_nitro)) THEN
755  pcna_nitro(jloop,:)=1.3
756  IF(ptype(jloop,nvt_tebd)>0. ) pcna_nitro(jloop,nvt_tebd)= 2.13
757  IF(ptype(jloop,nvt_trbd)>0. ) pcna_nitro(jloop,nvt_trbd)= 2.13
758  IF(ptype(jloop,nvt_tebe)>0. ) pcna_nitro(jloop,nvt_tebe)= 1.69
759  IF(ptype(jloop,nvt_bobd)>0. ) pcna_nitro(jloop,nvt_bobd)= 2.13
760  IF(ptype(jloop,nvt_shrb)>0. ) pcna_nitro(jloop,nvt_shrb)= 2.15
761  IF(ptype(jloop,nvt_bone)>0. ) pcna_nitro(jloop,nvt_bone)= 1.21
762  IF(ptype(jloop,nvt_tene)>0. ) pcna_nitro(jloop,nvt_tene)= 1.21
763  IF(ptype(jloop,nvt_bond)>0. ) pcna_nitro(jloop,nvt_bond)= 1.94
764  IF(ptype(jloop,nvt_trbe)>0. ) pcna_nitro(jloop,nvt_trbe)= 1.7
765  IF(gagri_to_grass)THEN
766  IF(ptype(jloop,nvt_c4 )>0. ) pcna_nitro(jloop,nvt_c4 )= 1.3
767  IF(ptype(jloop,nvt_irr )>0. ) pcna_nitro(jloop,nvt_irr) = 1.3
768  ELSE
769  IF(ptype(jloop,nvt_c4 )>0. ) pcna_nitro(jloop,nvt_c4 )= 1.9
770  IF(ptype(jloop,nvt_irr )>0. ) pcna_nitro(jloop,nvt_irr) = 1.9
771  ENDIF
772  IF(ptype(jloop,nvt_c3 )>0. ) pcna_nitro(jloop,nvt_c3 )= 1.3
773  IF(ptype(jloop,nvt_gras)>0. ) pcna_nitro(jloop,nvt_gras)= 1.3
774  IF(ptype(jloop,nvt_bogr)>0. ) pcna_nitro(jloop,nvt_bogr)= 1.3
775  IF(ptype(jloop,nvt_park)>0. ) pcna_nitro(jloop,nvt_park)= 1.3
776  ENDIF
777 !-------------------------------------------------------------------------------
778 !* 7.15 Jackson (1996) coefficient for cumulative root fraction
779 ! -------------------------------------------------------
780  IF (present(proot_extinction)) THEN
781  proot_extinction(jloop,:)= 0.943 ! (default value)
782  IF(ptype(jloop,nvt_tebd)>0. ) proot_extinction(jloop,nvt_tebd)= 0.966
783  IF(ptype(jloop,nvt_trbd)>0. ) proot_extinction(jloop,nvt_trbd)= 0.961
784  IF(ptype(jloop,nvt_tebe)>0. ) proot_extinction(jloop,nvt_tebe)= 0.966
785  IF(ptype(jloop,nvt_shrb)>0. ) proot_extinction(jloop,nvt_shrb)= 0.964
786  IF(ptype(jloop,nvt_tene)>0. ) proot_extinction(jloop,nvt_tene)= 0.976
787  IF(ptype(jloop,nvt_trbe)>0. ) proot_extinction(jloop,nvt_trbe)= 0.962
788  IF(gagri_to_grass)THEN
789  IF(ptype(jloop,nvt_c3 )>0. ) proot_extinction(jloop,nvt_c3 )= 0.943
790  IF(ptype(jloop,nvt_c4 )>0. ) proot_extinction(jloop,nvt_c4 )= 0.943
791  IF(ptype(jloop,nvt_irr )>0. ) proot_extinction(jloop,nvt_irr )= 0.943
792  ELSE
793  IF(ptype(jloop,nvt_c3 )>0. ) proot_extinction(jloop,nvt_c3 )= 0.961
794  IF(ptype(jloop,nvt_c4 )>0. ) proot_extinction(jloop,nvt_c4 )= 0.972
795  IF(ptype(jloop,nvt_irr )>0. ) proot_extinction(jloop,nvt_irr )= 0.972
796  ENDIF
797  IF(ptype(jloop,nvt_bogr)>0. ) proot_extinction(jloop,nvt_bogr)= 0.914
798  IF(ptype(jloop,nvt_trog)>0. ) proot_extinction(jloop,nvt_trog)= 0.972
799  ENDIF
800 !
801 !-------------------------------------------------------------------------------
802 !* 7.16 Ponderation coefficient between formulations for cumulative root fraction
803 ! -------------------------------------------------------------------------
804 !
805  IF (present(proot_lin)) THEN
806  proot_lin(jloop,:)= 0.05
807  IF(ptype(jloop,nvt_trbe)>0. ) proot_lin(jloop,nvt_trbe)= 0.25
808  ENDIF
809 !
810 !-------------------------------------------------------------------------------
811 !* 7.17 Coefficient for chemistry deposition of SO2
812 ! -------------------------------------------
813  IF (present(psoilrc_so2)) THEN
814  psoilrc_so2(jloop,:)= 9999.
815  IF(ptype(jloop,nvt_tebd)>0. ) psoilrc_so2(jloop,nvt_tebd)= 500.
816  IF(ptype(jloop,nvt_trbd)>0. ) psoilrc_so2(jloop,nvt_trbd)= 500.
817  IF(ptype(jloop,nvt_tebe)>0. ) psoilrc_so2(jloop,nvt_tebe)= 500.
818  IF(ptype(jloop,nvt_bobd)>0. ) psoilrc_so2(jloop,nvt_bobd)= 500.
819  IF(ptype(jloop,nvt_shrb)>0. ) psoilrc_so2(jloop,nvt_shrb)= 500.
820  IF(ptype(jloop,nvt_bone)>0. ) psoilrc_so2(jloop,nvt_bone)= 500.
821  IF(ptype(jloop,nvt_tene)>0. ) psoilrc_so2(jloop,nvt_tene)= 500.
822  IF(ptype(jloop,nvt_bond)>0. ) psoilrc_so2(jloop,nvt_bond)= 500.
823  IF(ptype(jloop,nvt_trbe)>0. ) psoilrc_so2(jloop,nvt_trbe)= 200.
824  IF(gagri_to_grass)THEN
825  IF(ptype(jloop,nvt_c3 )>0. ) psoilrc_so2(jloop,nvt_c3 )= 350.
826  IF(ptype(jloop,nvt_c4 )>0. ) psoilrc_so2(jloop,nvt_c4 )= 350.
827  IF(ptype(jloop,nvt_irr )>0. ) psoilrc_so2(jloop,nvt_irr )= 350.
828  ELSE
829  IF(ptype(jloop,nvt_c3 )>0. ) psoilrc_so2(jloop,nvt_c3 )= 150.
830  IF(ptype(jloop,nvt_c4 )>0. ) psoilrc_so2(jloop,nvt_c4 )= 150.
831  IF(ptype(jloop,nvt_irr )>0. ) psoilrc_so2(jloop,nvt_irr )= 0.001
832  ENDIF
833  IF(ptype(jloop,nvt_gras)>0. ) psoilrc_so2(jloop,nvt_gras)= 350.
834  IF(ptype(jloop,nvt_bogr)>0. ) psoilrc_so2(jloop,nvt_bogr)= 350.
835  IF(ptype(jloop,nvt_park)>0. ) psoilrc_so2(jloop,nvt_park)= 350.
836  IF(ptype(jloop,nvt_trog)>0. ) psoilrc_so2(jloop,nvt_trog)= 350.
837  IF(ptype(jloop,nvt_no )>0. ) psoilrc_so2(jloop,nvt_no )=1000.
838  IF(ptype(jloop,nvt_rock)>0. ) psoilrc_so2(jloop,nvt_rock)= 400.
839  IF(ptype(jloop,nvt_snow)>0. ) psoilrc_so2(jloop,nvt_snow)= 100.
840  ENDIF
841 !
842 !------------------------------------------------------------------------------
843 !* 7.18 Coefficient for chemistry deposition of O3
844 ! ------------------------------------------
845  IF (present(psoilrc_o3)) THEN
846  psoilrc_o3(jloop,:)= 9999.
847  IF(ptype(jloop,nvt_tebd)>0. ) psoilrc_o3(jloop,nvt_tebd)= 200.
848  IF(ptype(jloop,nvt_trbd)>0. ) psoilrc_o3(jloop,nvt_trbd)= 200.
849  IF(ptype(jloop,nvt_tebe)>0. ) psoilrc_o3(jloop,nvt_tebe)= 200.
850  IF(ptype(jloop,nvt_bobd)>0. ) psoilrc_o3(jloop,nvt_bobd)= 200.
851  IF(ptype(jloop,nvt_shrb)>0. ) psoilrc_o3(jloop,nvt_shrb)= 200.
852  IF(ptype(jloop,nvt_bone)>0. ) psoilrc_o3(jloop,nvt_bone)= 200.
853  IF(ptype(jloop,nvt_tene)>0. ) psoilrc_o3(jloop,nvt_tene)= 200.
854  IF(ptype(jloop,nvt_bond)>0. ) psoilrc_o3(jloop,nvt_bond)= 200.
855  IF(ptype(jloop,nvt_trbe)>0. ) psoilrc_o3(jloop,nvt_trbe)= 500.
856  IF(gagri_to_grass)THEN
857  IF(ptype(jloop,nvt_c3 )>0. ) psoilrc_o3(jloop,nvt_c3 )= 200.
858  IF(ptype(jloop,nvt_c4 )>0. ) psoilrc_o3(jloop,nvt_c4 )= 200.
859  IF(ptype(jloop,nvt_irr )>0. ) psoilrc_o3(jloop,nvt_irr )= 200.
860  ELSE
861  IF(ptype(jloop,nvt_c3 )>0. ) psoilrc_o3(jloop,nvt_c3 )= 150.
862  IF(ptype(jloop,nvt_c4 )>0. ) psoilrc_o3(jloop,nvt_c4 )= 150.
863  IF(ptype(jloop,nvt_irr )>0. ) psoilrc_o3(jloop,nvt_irr )=1000.
864  ENDIF
865  IF(ptype(jloop,nvt_gras)>0. ) psoilrc_o3(jloop,nvt_gras)= 200.
866  IF(ptype(jloop,nvt_bogr)>0. ) psoilrc_o3(jloop,nvt_bogr)= 200.
867  IF(ptype(jloop,nvt_park)>0. ) psoilrc_o3(jloop,nvt_park)= 200.
868  IF(ptype(jloop,nvt_trog)>0. ) psoilrc_o3(jloop,nvt_trog)= 200.
869  IF(ptype(jloop,nvt_no )>0. ) psoilrc_o3(jloop,nvt_no )= 400.
870  IF(ptype(jloop,nvt_rock)>0. ) psoilrc_o3(jloop,nvt_rock)= 200.
871  IF(ptype(jloop,nvt_snow)>0. ) psoilrc_o3(jloop,nvt_snow)=3500.
872  ENDIF
873 !-------------------------------------------------------------------------------
874 !* 7.15 vegetation and greeness fractions
875 ! ---------------------------------
876  IF (present(pveg_out) .AND. present(plai)) THEN
877  DO jmonth=1,SIZE(pveg_out,2)
878  pveg_out(jloop,jmonth,:) = veg_from_lai(plai(jloop,jmonth,:), &
879  ptype(jloop,:),gagri_to_grass)
880  END DO
881  ELSEIF (present(pveg_out) .AND. .NOT. present(plai)) THEN
882  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PVEG_OUT, PLAI MUST BE IN ARGUMENTS TOO")
883  ENDIF
884 !
885 
886  IF (present(pgreen) .AND. present(plai)) THEN
887  DO jmonth=1,SIZE(pgreen,2)
888  pgreen(jloop,jmonth,:) = green_from_lai(plai(jloop,jmonth,:), &
889  ptype(jloop,:),gagri_to_grass)
890  END DO
891  ELSEIF (present(pgreen) .AND. .NOT. present(plai)) THEN
892  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PGREEN, PLAI MUST BE IN ARGUMENTS TOO")
893  ENDIF
894 !-------------------------------------------------------------------------------
895 !* 7.16 z0
896 ! --
897  IF (present(pz0) .AND. present(plai) .AND. present(ph_tree)) THEN
898  DO jmonth=1,SIZE(pz0,2)
899  pz0(jloop,jmonth,:) = z0v_from_lai(plai(jloop,jmonth,:), &
900  ph_tree(jloop,:), &
901  ptype(jloop,:),gagri_to_grass)
902  END DO
903  ELSEIF (present(pz0) .AND. (.NOT. present(plai) .OR. .NOT. present(ph_tree))) THEN
904  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PZ0, PLAI AND PH_TREE MUST BE IN ARGUMENTS TOO")
905  ENDIF
906 !-------------------------------------------------------------------------------
907 !* 7.17 z0/z0h
908 ! ------
909  IF (present(pz0_o_z0h)) pz0_o_z0h(jloop,:) = 10.
910 !-------------------------------------------------------------------------------
911 !* 7.18 emissivity
912 ! ----------
913  IF (present(pemis_eco) .AND. (present(pveg_in).OR.present(pveg_out))) THEN
914  DO jmonth=1,SIZE(pemis_eco,2)
915 
916  IF (present(pveg_out)) THEN
917  pemis_eco(jloop,jmonth,:) = emis_from_veg(pveg_out(jloop,jmonth,:), &
918  ptype(jloop,:))
919  ELSEIF (present(pveg_in)) THEN
920  pemis_eco(jloop,jmonth,:) = emis_from_veg(pveg_in(jloop,jmonth,:), &
921  ptype(jloop,:))
922  ENDIF
923  END DO
924  ELSEIF (present(pemis_eco) .AND. .NOT.present(pveg_in) .AND. .NOT.present(pveg_out)) THEN
925  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PEMIS_ECO, PVEG_IN OR PVEG_OUT MUST BE IN ARGUMENTS TOO")
926  ENDIF
927 !
928 !-------------------------------------------------------------------------------
929 !
930 !* 7.19 vegetation height
931 ! -----------------
932 !
933  IF (present(ph_veg) .AND. present(plai) .AND. present(ph_tree)) THEN
934  DO jmonth=1,SIZE(ph_veg,2)
935  ph_veg(jloop,jmonth,:) = veg_height_from_lai(plai(jloop,jmonth,:), &
936  ph_tree(jloop,:), &
937  ptype(jloop,:), gagri_to_grass )
938  END DO
939  ELSEIF (present(ph_veg) .AND. (.NOT. present(plai) .OR. .NOT. present(ph_tree))) THEN
940  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PH_VEG, PLAI AND PH_TREE MUST BE IN ARGUMENTS TOO")
941  ENDIF
942 !
943 !-------------------------------------------------------------------------------
944 !
945 !* 7.20 LAI understory vegetation
946 ! ----------
947 !-------------------------------------------------------------------------------
948  IF (present(plaigv_out) .AND. present(plai) .AND. ( present(plaimin_in) .OR. present(plaimin_out) ) ) THEN
949 !
950 ! LAI understoty vegetation defined as fraction of LAI upperstory vegetation
951 ! -------------------
952  zlaifrgv(jloop,:) = 0.
953  IF(ptype(jloop,nvt_tebd)>0. ) zlaifrgv(jloop,nvt_tebd) = 0.1
954  IF(ptype(jloop,nvt_bone)>0. ) zlaifrgv(jloop,nvt_bone) = 0.1
955  IF(ptype(jloop,nvt_trbe)>0. ) zlaifrgv(jloop,nvt_trbe) = 0.1
956  IF(ptype(jloop,nvt_gras)>0. ) zlaifrgv(jloop,nvt_gras) = 0.1
957  IF(ptype(jloop,nvt_trog)>0. ) zlaifrgv(jloop,nvt_trog) = 0.1
958  IF(ptype(jloop,nvt_trbd)>0. ) zlaifrgv(jloop,nvt_trbd) = 0.1
959  IF(ptype(jloop,nvt_tebe)>0. ) zlaifrgv(jloop,nvt_tebe) = 0.1
960  IF(ptype(jloop,nvt_tene)>0. ) zlaifrgv(jloop,nvt_tene) = 0.1
961  IF(ptype(jloop,nvt_bobd)>0. ) zlaifrgv(jloop,nvt_bobd) = 0.1
962  IF(ptype(jloop,nvt_bond)>0. ) zlaifrgv(jloop,nvt_bond) = 0.1
963  IF(ptype(jloop,nvt_bogr)>0. ) zlaifrgv(jloop,nvt_bogr) = 0.1
964  IF(ptype(jloop,nvt_shrb)>0. ) zlaifrgv(jloop,nvt_shrb) = 0.1
965 !
966  DO jmonth=1,SIZE(plaigv_out,2)
967  IF(present(plaimin_out))THEN
968  plaigv_out(jloop,jmonth,:) = max( plai(jloop,jmonth,:)* &
969  zlaifrgv(jloop,:), plaimin_out(jloop,:) )
970  ELSEIF(present(plaimin_in))THEN
971  plaigv_out(jloop,jmonth,:) = max( plai(jloop,jmonth,:)* &
972  zlaifrgv(jloop,:), plaimin_in(jloop,:) )
973  ENDIF
974  END DO
975  ELSEIF (present(plaigv_out) .AND. ( .NOT.present(plai) .OR. &
976  (.NOT.present(plaimin_in) .AND. .NOT.present(plaimin_out) ) ) ) THEN
977  CALL abor1_sfx("INI_DATA_PARAM: WHEN CALLING WITH PLAIGV_OUT, PLAI AND PLAIMIN_IN OR PLAIMIN_OUT MUST BE IN ARGUMENTS TOO")
978  ENDIF
979 !
980 !-------------------------------------------------------------------------------
981 !
982 !* 7.21 z0 understory litter
983 ! --------------------
984 !
985  IF (present(pz0litter)) THEN
986  pz0litter(jloop,:,:) = 0.013 ! Roughness for bare soil
987  ENDIF
988 !
989 !-------------------------------------------------------------------------------
990 !
991  END IF
992 !-------------------------------------------------------------------------------
993 END DO
994 !-------------------------------------------------------------------------------
995 IF (lhook) CALL dr_hook('INI_DATA_PARAM',1,zhook_handle)
996 !-------------------------------------------------------------------------------
997 !
998 END SUBROUTINE ini_data_param
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine ini_data_param(PTYPE, PSURF, PSURF2, PLAI, PH_TREE, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PRSMIN, PRGL, PCV, PGAMMA, PGMES, PGC, PBSLAI, PSEFOLD, PLAIMIN_IN, PLAIMIN_OUT, PDMAX, PSTRESS, PF2I, PVEG_IN, PVEG_OUT, PGREEN, PZ0, PZ0_O_Z0H, PEMIS_ECO, PWRMAX_CF, PROOT_LIN, PROOT_EXTINCTION, PSOILRC_SO2, PSOILRC_O3, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PGMES_ST, PGC_ST, PBSLAI_ST, PSEFOLD_ST, PDMAX_ST, PGNDLITTER, PZF_TALLVEG, PRGLGV, PGAMMAGV, PRSMINGV, PROOT_EXTINCTIONGV, PWRMAX_CFGV, PH_VEG, PLAIGV_IN, PLAIGV_OUT, PZ0LITTER, OAGRI_TO_GRASS)