SURFEX v8.1
General documentation of Surfex
veg_from_lai.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 !#######################
7 !#######################
8 !
9 INTERFACE veg_from_lai
10 !
11  FUNCTION veg_from_lai_0d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
12 !
13 REAL, INTENT(IN) :: PLAI ! Leaf area Index
14 REAL, DIMENSION(:), INTENT(IN) :: PVEGTYPE ! type of vegetation
15 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
16 !
17 REAL :: PVEG ! vegetation fraction
18 !
19 END FUNCTION veg_from_lai_0d
20 !
21 !
22  FUNCTION veg_from_lai_1d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
23 !
24 REAL, DIMENSION(:), INTENT(IN) :: PLAI ! Leaf area Index
25 REAL, DIMENSION(:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation
26 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
27 !
28 REAL, DIMENSION(SIZE(PLAI)) :: PVEG ! vegetation fraction
29 !
30 END FUNCTION veg_from_lai_1d
31 !
32 !
33  FUNCTION veg_from_lai_2d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
34 !
35 REAL, DIMENSION(:,:), INTENT(IN) :: PLAI ! Leaf area Index
36 REAL, DIMENSION(:,:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation
37 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
38 !
39 REAL, DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: PVEG ! vegetation fraction
40 !
41 END FUNCTION veg_from_lai_2d
42 !
43 
44  FUNCTION veg_from_lai_vegtype_1d(PLAI,OAGRI_TO_GRASS) RESULT(PVEG)
45 !
46 REAL, DIMENSION(:), INTENT(IN) :: PLAI ! Leaf area Index for each vegtype
47 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
48 !
49 REAL, DIMENSION(SIZE(PLAI)) :: PVEG ! vegetation fraction
50 !
51 END FUNCTION veg_from_lai_vegtype_1d
52 !
53 END INTERFACE
54 !
55 END MODULE modi_veg_from_lai
56 !
57 ! ####################################################
58  FUNCTION veg_from_lai_0d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
59 ! ####################################################
60 !!
61 !! PURPOSE
62 !! -------
63 !
64 ! Calculates coverage of soil by vegetation from leaf
65 ! area index and type of vegetation
66 ! (most of types; forest and vineyards; grassland)
67 !
68 !!** METHOD
69 !! ------
70 !!
71 !! EXTERNAL
72 !! --------
73 !! none
74 !!
75 !! IMPLICIT ARGUMENTS
76 !! ------------------
77 !!
78 !! none
79 !!
80 !! REFERENCE
81 !! ---------
82 !!
83 !!
84 !! AUTHOR
85 !! ------
86 !!
87 !! V. Masson and A. Boone * Meteo-France *
88 !!
89 !! MODIFICATIONS
90 !! -------------
91 !! Original 25/03/99
92 !!
93 !! R. Alkama 05/2012 : extantion from 12 to 19 vegtypes
94 !! B. Decharme 05/2013 new param for equatorial forest
95 !-------------------------------------------------------------------------------
96 !
97 !* 0. DECLARATIONS
98 ! ------------
99 !
100 USE modd_data_cover_par, ONLY :nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
101  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
102  nvt_irr, nvt_gras, nvt_trog, nvt_park, &
103  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
104  nvt_bond, nvt_bogr, nvt_shrb, nvt_c3w, &
105  nvt_c3s, nvt_fltr, nvt_flgr
106 !
107 USE modd_reprod_oper, ONLY : xeverg_veg
108 !
109 USE yomhook ,ONLY : lhook, dr_hook
110 USE parkind1 ,ONLY : jprb
111 !
112 IMPLICIT NONE
113 !
114 !* 0.1 declarations of arguments
115 !
116 REAL, INTENT(IN) :: PLAI ! Leaf area Index
117 REAL, DIMENSION(:), INTENT(IN) :: PVEGTYPE ! type of vegetation
118 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
119 !
120 REAL :: PVEG ! vegetation fraction
121 !
122 !* 0.2 declarations of local variables
123 !
124 REAL :: ZLAI, ZAGRI, ZSUM1, ZSUM2, ZSUM3
125 !
126 REAL(KIND=JPRB) :: ZHOOK_HANDLE
127 !-----------------------------------------------------------------
128 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_0D',0,zhook_handle)
129 zlai = plai
130 IF ( pvegtype(nvt_no ) + pvegtype(nvt_rock) + pvegtype(nvt_snow)< 1.) THEN
131  zlai = plai / (1.-pvegtype(nvt_no)-pvegtype(nvt_rock)-pvegtype(nvt_snow))
132 END IF
133 !
134 IF(oagri_to_grass)THEN
135  zagri = 0.95
136 ELSE
137  zagri = (1. - exp( -0.6 * zlai ))
138 ENDIF
139 !
140 zsum1 = pvegtype(nvt_c4)
141 IF (nvt_irr>0 .AND. nvt_c3>0) THEN
142  zsum1 = zsum1 + pvegtype(nvt_irr) + pvegtype(nvt_c3)
143 ELSEIF (nvt_c3w>0 .AND. nvt_c3s>0) THEN
144  zsum1 = zsum1 + pvegtype(nvt_c3w) + pvegtype(nvt_c3s)
145 ENDIF
146 !
147 zsum2 = pvegtype(nvt_tebd) + pvegtype(nvt_trbd) + pvegtype(nvt_tebe) + &
148  pvegtype(nvt_bobd) + pvegtype(nvt_shrb) + pvegtype(nvt_bone) + &
149  pvegtype(nvt_tene) + pvegtype(nvt_bond)
150 IF (nvt_fltr>0) zsum2 = zsum2 + pvegtype(nvt_fltr)
151 !
152 zsum3 = pvegtype(nvt_gras) + pvegtype(nvt_bogr) + pvegtype(nvt_trog)
153 IF (nvt_park>0) THEN
154  zsum3 = zsum3 + pvegtype(nvt_park)
155 ELSEIF (nvt_flgr>0) THEN
156  zsum3 = zsum3 + pvegtype(nvt_flgr)
157 ENDIF
158 !
159 pveg = zagri * zsum1 &!
160  + 0.95 * zsum2 &!
161  + xeverg_veg * pvegtype(nvt_trbe) &! EVER
162  + 0.95 * zsum3 &!
163  + 0. * pvegtype(nvt_no ) &! no vegetation (smooth)
164  + 0. * pvegtype(nvt_snow) &! no vegetation (snow)
165  + 0. * pvegtype(nvt_rock) ! no vegetation (rocks)
166 !
167 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_0D',1,zhook_handle)
168 !-----------------------------------------------------------------
169 !
170 END FUNCTION veg_from_lai_0d
171 !
172 ! ####################################################
173  FUNCTION veg_from_lai_1d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
174 ! ####################################################
175 !!
176 !! PURPOSE
177 !! -------
178 !
179 ! Calculates coverage of soil by vegetation from leaf
180 ! area index and type of vegetation
181 ! (most of types; forest and vineyards; grassland)
182 !
183 !!** METHOD
184 !! ------
185 !!
186 !! EXTERNAL
187 !! --------
188 !! none
189 !!
190 !! IMPLICIT ARGUMENTS
191 !! ------------------
192 !!
193 !! none
194 !!
195 !! REFERENCE
196 !! ---------
197 !!
198 !!
199 !! AUTHOR
200 !! ------
201 !!
202 !! V. Masson and A. Boone * Meteo-France *
203 !!
204 !! MODIFICATIONS
205 !! -------------
206 !! Original 25/03/99
207 !!
208 !-------------------------------------------------------------------------------
209 !
210 !* 0. DECLARATIONS
211 ! ------------
212 !
213 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
214  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
215  nvt_irr, nvt_gras, nvt_trog, nvt_park, &
216  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
217  nvt_bond, nvt_bogr, nvt_shrb, nvt_c3w, &
218  nvt_c3s, nvt_fltr, nvt_flgr
219 !
220 USE modd_reprod_oper, ONLY : xeverg_veg
221 !
222 USE yomhook ,ONLY : lhook, dr_hook
223 USE parkind1 ,ONLY : jprb
224 !
225 IMPLICIT NONE
226 !
227 !* 0.1 declarations of arguments
228 !
229 REAL, DIMENSION(:), INTENT(IN) :: PLAI ! Leaf area Index
230 REAL, DIMENSION(:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation
231 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
232 !
233 REAL, DIMENSION(SIZE(PLAI)) :: PVEG ! vegetation fraction
234 !
235 !* 0.2 declarations of local variables
236 !
237 REAL, DIMENSION(SIZE(PLAI)) :: ZLAI, ZAGRI, ZSUM1, ZSUM2, ZSUM3
238 !
239 REAL(KIND=JPRB) :: ZHOOK_HANDLE
240 !-----------------------------------------------------------------
241 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_1D',0,zhook_handle)
242 zlai(:) = plai(:)
243 WHERE ( pvegtype(:,nvt_no ) + pvegtype(:,nvt_rock) + pvegtype(:,nvt_snow) < 1.)
244  zlai(:) = plai(:) / (1.-pvegtype(:,nvt_no)-pvegtype(:,nvt_rock)-pvegtype(:,nvt_snow))
245 END WHERE
246 !
247 IF(oagri_to_grass)THEN
248  zagri(:) = 0.95
249 ELSE
250  zagri(:) = (1. - exp( -0.6 * zlai(:) ))
251 ENDIF
252 !
253 zsum1(:) = pvegtype(:,nvt_c4)
254 IF (nvt_irr>0 .AND. nvt_c3>0) THEN
255  zsum1(:) = zsum1(:) + pvegtype(:,nvt_irr) + pvegtype(:,nvt_c3)
256 ELSEIF (nvt_c3w>0 .AND. nvt_c3s>0) THEN
257  zsum1(:) = zsum1(:) + pvegtype(:,nvt_c3w) + pvegtype(:,nvt_c3s)
258 ENDIF
259 !
260 zsum2(:) = pvegtype(:,nvt_tebd) + pvegtype(:,nvt_trbd) + pvegtype(:,nvt_tebe) + &
261  pvegtype(:,nvt_bobd) + pvegtype(:,nvt_shrb) + pvegtype(:,nvt_bone) + &
262  pvegtype(:,nvt_tene) + pvegtype(:,nvt_bond)
263 IF (nvt_fltr>0) zsum2(:) = zsum2(:) + pvegtype(:,nvt_fltr)
264 !
265 zsum3(:) = pvegtype(:,nvt_gras) + pvegtype(:,nvt_bogr) + pvegtype(:,nvt_trog)
266 IF (nvt_park>0) THEN
267  zsum3(:) = zsum3(:) + pvegtype(:,nvt_park)
268 ELSEIF (nvt_flgr>0) THEN
269  zsum3(:) = zsum3(:) + pvegtype(:,nvt_flgr)
270 ENDIF
271 !
272 pveg(:) = zagri(:) * zsum1(:) &
273  + 0.95 * zsum2(:) &
274  + xeverg_veg * pvegtype(:,nvt_trbe) &! EVER
275  + 0.95 * zsum3(:) &
276  + 0. * pvegtype(:,nvt_no ) &! no vegetation (smooth)
277  + 0. * pvegtype(:,nvt_snow) &! no vegetation (snow)
278  + 0. * pvegtype(:,nvt_rock) ! no vegetation (rocks)
279 
280 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_1D',1,zhook_handle)
281 !
282 !-----------------------------------------------------------------
283 !
284 END FUNCTION veg_from_lai_1d
285 !
286 ! ####################################################
287  FUNCTION veg_from_lai_2d(PLAI,PVEGTYPE,OAGRI_TO_GRASS) RESULT(PVEG)
288 ! ####################################################
289 !!
290 !! PURPOSE
291 !! -------
292 !
293 ! Calculates coverage of soil by vegetation from leaf
294 ! area index and type of vegetation
295 ! (most of types; forest and vineyards; grassland)
296 !
297 !!** METHOD
298 !! ------
299 !!
300 !! EXTERNAL
301 !! --------
302 !! none
303 !!
304 !! IMPLICIT ARGUMENTS
305 !! ------------------
306 !!
307 !! none
308 !!
309 !! REFERENCE
310 !! ---------
311 !!
312 !!
313 !! AUTHOR
314 !! ------
315 !!
316 !! V. Masson and A. Boone * Meteo-France *
317 !!
318 !! MODIFICATIONS
319 !! -------------
320 !! Original 25/03/99
321 !!
322 !-------------------------------------------------------------------------------
323 !
324 !* 0. DECLARATIONS
325 ! ------------
326 !
327 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
328  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
329  nvt_irr, nvt_gras, nvt_trog, nvt_park, &
330  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
331  nvt_bond, nvt_bogr, nvt_shrb, nvt_c3w, &
332  nvt_c3s, nvt_fltr, nvt_flgr
333 USE modd_surf_par, ONLY : xundef
334 !
335 USE modd_reprod_oper, ONLY : xeverg_veg
336 !
337 USE yomhook ,ONLY : lhook, dr_hook
338 USE parkind1 ,ONLY : jprb
339 !
340 IMPLICIT NONE
341 !
342 !* 0.1 declarations of arguments
343 !
344 REAL, DIMENSION(:,:), INTENT(IN) :: PLAI ! Leaf area Index
345 REAL, DIMENSION(:,:,:), INTENT(IN) :: PVEGTYPE ! type of vegetation
346 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
347 !
348 REAL, DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: PVEG ! vegetation fraction
349 !
350 !* 0.2 declarations of local variables
351 !
352 REAL, DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: ZLAI, ZAGRI, ZSUM1, ZSUM2, ZSUM3
353 REAL(KIND=JPRB) :: ZHOOK_HANDLE
354 !-----------------------------------------------------------------
355 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_2D',0,zhook_handle)
356 zlai(:,:) = plai(:,:)
357 WHERE ( pvegtype(:,:,nvt_no ) + pvegtype(:,:,nvt_rock) + pvegtype(:,:,nvt_snow) < 1.)
358  zlai(:,:) = plai(:,:) / (1.-pvegtype(:,:,nvt_no)-pvegtype(:,:,nvt_rock)-pvegtype(:,:,nvt_snow))
359 END WHERE
360 !
361 pveg(:,:) = xundef
362 !
363 IF(oagri_to_grass)THEN
364  zagri(:,:) = 0.95
365 ELSE
366  WHERE (plai(:,:) /= xundef)
367  zagri(:,:) = (1. - exp( -0.6 * zlai(:,:) ))
368  ELSEWHERE
369  zagri(:,:) = xundef
370  ENDWHERE
371 ENDIF
372 !
373 zsum1(:,:) = pvegtype(:,:,nvt_c4)
374 IF (nvt_irr>0 .AND. nvt_c3>0) THEN
375  zsum1(:,:) = zsum1(:,:) + pvegtype(:,:,nvt_irr) + pvegtype(:,:,nvt_c3)
376 ELSEIF (nvt_c3w>0 .AND. nvt_c3s>0) THEN
377  zsum1(:,:) = zsum1(:,:) + pvegtype(:,:,nvt_c3w) + pvegtype(:,:,nvt_c3s)
378 ENDIF
379 !
380 zsum2(:,:) = pvegtype(:,:,nvt_tebd) + pvegtype(:,:,nvt_trbd) + pvegtype(:,:,nvt_tebe) + &
381  pvegtype(:,:,nvt_bobd) + pvegtype(:,:,nvt_shrb) + pvegtype(:,:,nvt_bone) + &
382  pvegtype(:,:,nvt_tene) + pvegtype(:,:,nvt_bond)
383 IF (nvt_fltr>0) zsum2(:,:) = zsum2(:,:) + pvegtype(:,:,nvt_fltr)
384 !
385 zsum3(:,:) = pvegtype(:,:,nvt_gras) + pvegtype(:,:,nvt_bogr) + pvegtype(:,:,nvt_trog)
386 IF (nvt_park>0) THEN
387  zsum3(:,:) = zsum3(:,:) + pvegtype(:,:,nvt_park)
388 ELSEIF (nvt_flgr>0) THEN
389  zsum3(:,:) = zsum3(:,:) + pvegtype(:,:,nvt_flgr)
390 ENDIF
391 !
392 WHERE (plai(:,:) /= xundef)
393 pveg(:,:) = zagri(:,:) * zsum1(:,:) &
394  + 0.95 * zsum2(:,:) &
395  + xeverg_veg * pvegtype(:,:,nvt_trbe) &! EVER
396  + 0.95 * zsum3(:,:) &
397  + 0. * pvegtype(:,:,nvt_no ) &! no vegetation (smooth)
398  + 0. * pvegtype(:,:,nvt_snow) &! no vegetation (snow)
399  + 0. * pvegtype(:,:,nvt_rock) ! no vegetation (rocks)
400 END WHERE
401 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_2D',1,zhook_handle)
402 !
403 !-----------------------------------------------------------------
404 !
405 END FUNCTION veg_from_lai_2d
406 !
407 !
408 !
409 ! ####################################################
410  FUNCTION veg_from_lai_vegtype_1d(PLAI,OAGRI_TO_GRASS) RESULT(PVEG)
411 ! ####################################################
412 !!
413 !! PURPOSE
414 !! -------
415 !
416 ! Calculates coverage of soil by vegetation from leaf
417 ! area index and type of vegetation for each vegetation patch
418 ! (most of types; forest and vineyards; grassland)
419 !
420 !!** METHOD
421 !! ------
422 !!
423 !! EXTERNAL
424 !! --------
425 !! none
426 !!
427 !! IMPLICIT ARGUMENTS
428 !! ------------------
429 !!
430 !! none
431 !!
432 !! REFERENCE
433 !! ---------
434 !!
435 !!
436 !! AUTHOR
437 !! ------
438 !!
439 !! F.Solmon/V.Masson
440 !!
441 !! MODIFICATIONS
442 !! -------------
443 !! Original 25/03/99
444 !!
445 !-------------------------------------------------------------------------------
446 !
447 !* 0. DECLARATIONS
448 ! ------------
449 !
450 USE modd_data_cover_par, ONLY : nvt_no, nvt_rock, nvt_snow, nvt_tebd, &
451  nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
452  nvt_irr, nvt_gras, nvt_trog, nvt_park, &
453  nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
454  nvt_bond, nvt_bogr, nvt_shrb, nvt_c3w, &
455  nvt_c3s, nvt_fltr, nvt_flgr
456 
457 USE modd_surf_par, ONLY : xundef
458 !
459 USE modd_reprod_oper, ONLY : xeverg_veg
460 !
461 USE yomhook ,ONLY : lhook, dr_hook
462 USE parkind1 ,ONLY : jprb
463 !
464 IMPLICIT NONE
465 !
466 !* 0.1 declarations of arguments
467 !
468 REAL, DIMENSION(:), INTENT(IN) :: PLAI ! Leaf area Index
469 LOGICAL, INTENT(IN) :: OAGRI_TO_GRASS
470 !
471 REAL, DIMENSION(SIZE(PLAI)) :: PVEG ! vegetation fraction
472 !
473 !* 0.2 declarations of local variables
474 !
475 REAL(KIND=JPRB) :: ZHOOK_HANDLE
476 !-----------------------------------------------------------------
477 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_VEGTYPE_1D',0,zhook_handle)
478 pveg(:) = xundef
479 !
480 IF(oagri_to_grass)THEN
481  pveg(nvt_c4 )= 0.95
482  IF (nvt_irr>0) THEN
483  pveg(nvt_irr )= 0.95
484  ENDIF
485  IF (nvt_c3>0) THEN
486  pveg(nvt_c3 )= 0.95
487  ELSEIF (nvt_c3w>0 .AND. nvt_c3s>0) THEN
488  pveg(nvt_c3w )= 0.95
489  pveg(nvt_c3s )= 0.95
490  ENDIF
491 ELSE
492  IF (plai(nvt_c4)/=xundef) pveg(nvt_c4 )= 1. - exp( -0.6 * plai(nvt_c4 ) )
493  IF (nvt_irr>0) THEN
494  IF (plai(nvt_irr)/=xundef) pveg(nvt_irr )= 1. - exp( -0.6 * plai(nvt_irr ) )
495  ENDIF
496  IF (nvt_c3>0) THEN
497  IF (plai(nvt_c3)/=xundef) pveg(nvt_c3 )= 1. - exp( -0.6 * plai(nvt_c3 ) )
498  ELSEIF (nvt_c3w>0 .AND. nvt_c3s>0) THEN
499  IF (plai(nvt_c3w)/=xundef) pveg(nvt_c3w )= 1. - exp( -0.6 * plai(nvt_c3w ) )
500  IF (plai(nvt_c3s)/=xundef) pveg(nvt_c3s )= 1. - exp( -0.6 * plai(nvt_c3s ) )
501  ENDIF
502 ENDIF
503 !
504 pveg(nvt_tebd)= 0.95
505 pveg(nvt_trbd)= 0.95
506 pveg(nvt_tebe)= 0.95
507 pveg(nvt_bobd)= 0.95
508 pveg(nvt_shrb)= 0.95
509 pveg(nvt_bone)= 0.95
510 pveg(nvt_tene)= 0.95
511 pveg(nvt_bond)= 0.95
512 IF (nvt_fltr>0) THEN
513  pveg(nvt_fltr)= 0.95
514 ENDIF
515 pveg(nvt_trbe)= xeverg_veg
516 !
517 pveg(nvt_gras)= 0.95
518 pveg(nvt_bogr)= 0.95
519 pveg(nvt_trog)= 0.95
520 IF (nvt_park>0) THEN
521  pveg(nvt_park)= 0.95
522 ELSEIF (nvt_flgr>0) THEN
523  pveg(nvt_flgr)= 0.95
524 ENDIF
525 !
526 pveg(nvt_no )= 0.
527 pveg(nvt_snow)= 0.
528 pveg(nvt_rock)= 0.
529 IF (lhook) CALL dr_hook('MODI_VEG_FROM_LAI:VEG_FROM_LAI_VEGTYPE_1D',1,zhook_handle)
530 !
531 END FUNCTION veg_from_lai_vegtype_1d
532 !
533 !--------------------------------------------
534 !
real function, dimension(size(plai)) veg_from_lai_1d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real function, dimension(size(plai, 1), size(plai, 2)) veg_from_lai_2d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real function veg_from_lai_0d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
real function, dimension(size(plai)) veg_from_lai_vegtype_1d(PLAI, OAGRI_TO_GRASS)