13 REAL,
INTENT(IN) :: plai
14 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
15 LOGICAL,
INTENT(IN) :: oagri_to_grass
24 REAL,
DIMENSION(:),
INTENT(IN) :: plai
25 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
26 LOGICAL,
INTENT(IN) :: oagri_to_grass
28 REAL,
DIMENSION(SIZE(PLAI)) :: pveg
35 REAL,
DIMENSION(:,:),
INTENT(IN) :: plai
36 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype
37 LOGICAL,
INTENT(IN) :: oagri_to_grass
39 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: pveg
46 REAL,
DIMENSION(:),
INTENT(IN) :: plai
47 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
48 LOGICAL,
INTENT(IN) :: oagri_to_grass
50 REAL,
DIMENSION(SIZE(PLAI)) :: pveg
102 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
103 nvt_irr, nvt_gras, nvt_trog, nvt_park, &
104 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
105 nvt_bond, nvt_bogr, nvt_shrb
109 USE yomhook
,ONLY : lhook, dr_hook
110 USE parkind1
,ONLY : jprb
116 REAL,
INTENT(IN) :: plai
117 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
118 LOGICAL,
INTENT(IN) :: oagri_to_grass
126 REAL(KIND=JPRB) :: zhook_handle
128 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_0D',0,zhook_handle)
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))
134 IF(oagri_to_grass)
THEN
137 zagri = (1. - exp( -0.6 * zlai ))
140 pveg = zagri *(pvegtype(nvt_c4 ) + &
141 pvegtype(nvt_irr ) + &
142 pvegtype(nvt_c3 ) ) &
143 + 0.95 *(pvegtype(nvt_tebd) + &
144 pvegtype(nvt_trbd) + &
145 pvegtype(nvt_tebe) + &
146 pvegtype(nvt_bobd) + &
147 pvegtype(nvt_shrb) + &
148 pvegtype(nvt_bone) + &
149 pvegtype(nvt_tene) + &
150 pvegtype(nvt_bond) ) &
151 + xeverg_veg * pvegtype(nvt_trbe) &
152 + 0.95 *(pvegtype(nvt_gras) + &
153 pvegtype(nvt_bogr) + &
154 pvegtype(nvt_trog) + &
155 pvegtype(nvt_park) ) &
156 + 0. * pvegtype(nvt_no ) &
157 + 0. * pvegtype(nvt_snow) &
158 + 0. * pvegtype(nvt_rock)
159 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_0D',1,zhook_handle)
206 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
207 nvt_irr, nvt_gras, nvt_trog, nvt_park, &
208 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
209 nvt_bond, nvt_bogr, nvt_shrb
213 USE yomhook
,ONLY : lhook, dr_hook
214 USE parkind1
,ONLY : jprb
220 REAL,
DIMENSION(:),
INTENT(IN) :: plai
221 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
222 LOGICAL,
INTENT(IN) :: oagri_to_grass
224 REAL,
DIMENSION(SIZE(PLAI)) :: pveg
228 REAL,
DIMENSION(SIZE(PLAI)) :: zlai, zagri
230 REAL(KIND=JPRB) :: zhook_handle
232 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_1D',0,zhook_handle)
234 WHERE ( pvegtype(:,nvt_no ) + pvegtype(:,nvt_rock) + pvegtype(:,nvt_snow) < 1.)
235 zlai(:) = plai(:) / (1.-pvegtype(:,nvt_no)-pvegtype(:,nvt_rock)-pvegtype(:,nvt_snow))
238 IF(oagri_to_grass)
THEN
241 zagri(:) = (1. - exp( -0.6 * zlai(:) ))
244 pveg(:) = zagri(:) *(pvegtype(:,nvt_c4 ) + &
245 pvegtype(:,nvt_irr ) + &
246 pvegtype(:,nvt_c3 ) ) &
247 + 0.95 *(pvegtype(:,nvt_tebd) + &
248 pvegtype(:,nvt_trbd) + &
249 pvegtype(:,nvt_tebe) + &
250 pvegtype(:,nvt_bobd) + &
251 pvegtype(:,nvt_shrb) + &
252 pvegtype(:,nvt_bone) + &
253 pvegtype(:,nvt_tene) + &
254 pvegtype(:,nvt_bond) ) &
255 + xeverg_veg * pvegtype(:,nvt_trbe) &
256 + 0.95 *(pvegtype(:,nvt_gras) + &
257 pvegtype(:,nvt_bogr) + &
258 pvegtype(:,nvt_trog) + &
259 pvegtype(:,nvt_park) ) &
260 + 0. * pvegtype(:,nvt_no ) &
261 + 0. * pvegtype(:,nvt_snow) &
262 + 0. * pvegtype(:,nvt_rock)
264 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_1D',1,zhook_handle)
312 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
313 nvt_irr, nvt_gras, nvt_trog, nvt_park, &
314 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
315 nvt_bond, nvt_bogr, nvt_shrb
320 USE yomhook
,ONLY : lhook, dr_hook
321 USE parkind1
,ONLY : jprb
327 REAL,
DIMENSION(:,:),
INTENT(IN) :: plai
328 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype
329 LOGICAL,
INTENT(IN) :: oagri_to_grass
331 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: pveg
335 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: zlai, zagri
336 REAL(KIND=JPRB) :: zhook_handle
338 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_2D',0,zhook_handle)
339 zlai(:,:) = plai(:,:)
340 WHERE ( pvegtype(:,:,nvt_no ) + pvegtype(:,:,nvt_rock) + pvegtype(:,:,nvt_snow) < 1.)
341 zlai(:,:) = plai(:,:) / (1.-pvegtype(:,:,nvt_no)-pvegtype(:,:,nvt_rock)-pvegtype(:,:,nvt_snow))
346 IF(oagri_to_grass)
THEN
349 WHERE (plai(:,:) /= xundef)
350 zagri(:,:) = (1. - exp( -0.6 * zlai(:,:) ))
356 WHERE (plai(:,:) /= xundef)
357 pveg(:,:) = zagri(:,:) *(pvegtype(:,:,nvt_c4 ) + &
358 pvegtype(:,:,nvt_irr ) + &
359 pvegtype(:,:,nvt_c3 ) ) &
360 + 0.95 *(pvegtype(:,:,nvt_tebd) + &
361 pvegtype(:,:,nvt_trbd) + &
362 pvegtype(:,:,nvt_tebe) + &
363 pvegtype(:,:,nvt_bobd) + &
364 pvegtype(:,:,nvt_shrb) + &
365 pvegtype(:,:,nvt_bone) + &
366 pvegtype(:,:,nvt_tene) + &
367 pvegtype(:,:,nvt_bond) ) &
368 + xeverg_veg * pvegtype(:,:,nvt_trbe) &
369 + 0.95 *(pvegtype(:,:,nvt_gras) + &
370 pvegtype(:,:,nvt_bogr) + &
371 pvegtype(:,:,nvt_trog) + &
372 pvegtype(:,:,nvt_park) ) &
373 + 0. * pvegtype(:,:,nvt_no ) &
374 + 0. * pvegtype(:,:,nvt_snow) &
375 + 0. * pvegtype(:,:,nvt_rock)
377 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_2D',1,zhook_handle)
427 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
428 nvt_irr, nvt_gras, nvt_trog, nvt_park, &
429 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
430 nvt_bond, nvt_bogr, nvt_shrb
436 USE yomhook
,ONLY : lhook, dr_hook
437 USE parkind1
,ONLY : jprb
443 REAL,
DIMENSION(:),
INTENT(IN) :: plai
444 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
445 LOGICAL,
INTENT(IN) :: oagri_to_grass
447 REAL,
DIMENSION(SIZE(PLAI)) :: pveg
451 REAL,
DIMENSION(SIZE(PLAI)) :: zlai
452 REAL(KIND=JPRB) :: zhook_handle
454 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_PATCH_1D',0,zhook_handle)
458 IF(oagri_to_grass)
THEN
459 IF (pvegtype(nvt_c4 )>0.) pveg(nvt_c4 )= 0.95
460 IF (pvegtype(nvt_irr )>0.) pveg(nvt_irr )= 0.95
461 IF (pvegtype(nvt_c3 )>0.) pveg(nvt_c3 )= 0.95
463 IF (pvegtype(nvt_c4 )>0.) pveg(nvt_c4 )= 1. - exp( -0.6 * zlai(nvt_c4 ) )
464 IF (pvegtype(nvt_irr )>0.) pveg(nvt_irr )= 1. - exp( -0.6 * zlai(nvt_irr ) )
465 IF (pvegtype(nvt_c3 )>0.) pveg(nvt_c3 )= 1. - exp( -0.6 * zlai(nvt_c3 ) )
468 IF (pvegtype(nvt_tebd)>0.) pveg(nvt_tebd)= 0.95
469 IF (pvegtype(nvt_trbd)>0.) pveg(nvt_trbd)= 0.95
470 IF (pvegtype(nvt_tebe)>0.) pveg(nvt_tebe)= 0.95
471 IF (pvegtype(nvt_bobd)>0.) pveg(nvt_bobd)= 0.95
472 IF (pvegtype(nvt_shrb)>0.) pveg(nvt_shrb)= 0.95
473 IF (pvegtype(nvt_bone)>0.) pveg(nvt_bone)= 0.95
474 IF (pvegtype(nvt_tene)>0.) pveg(nvt_tene)= 0.95
475 IF (pvegtype(nvt_bond)>0.) pveg(nvt_bond)= 0.95
476 IF (pvegtype(nvt_trbe)>0.) pveg(nvt_trbe)= xeverg_veg
478 IF (pvegtype(nvt_gras)>0.) pveg(nvt_gras)= 0.95
479 IF (pvegtype(nvt_bogr)>0.) pveg(nvt_bogr)= 0.95
480 IF (pvegtype(nvt_trog)>0.) pveg(nvt_trog)= 0.95
481 IF (pvegtype(nvt_park)>0.) pveg(nvt_park)= 0.95
483 IF (pvegtype(nvt_no )>0.) pveg(nvt_no )= 0.
484 IF (pvegtype(nvt_snow)>0.) pveg(nvt_snow)= 0.
485 IF (pvegtype(nvt_rock)>0.) pveg(nvt_rock)= 0.
486 IF (lhook) CALL dr_hook(
'MODI_VEG_FROM_LAI:VEG_FROM_LAI_PATCH_1D',1,zhook_handle)
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 function, dimension(size(plai)) veg_from_lai_patch_1d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)