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)) :: pgreen
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))::pgreen
46 REAL,
DIMENSION(:),
INTENT(IN) :: plai
47 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
48 LOGICAL,
INTENT(IN) :: oagri_to_grass
50 REAL,
DIMENSION(SIZE(PLAI)) :: pgreen
102 nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
103 nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, &
104 nvt_shrb, nvt_c3, nvt_c4, nvt_irr, &
105 nvt_gras, nvt_bogr, nvt_trog
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
125 REAL(KIND=JPRB) :: zhook_handle
127 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_0D',0,zhook_handle)
130 IF ( pvegtype(nvt_no ) + pvegtype(nvt_rock)< 1.)
THEN
131 zlai = plai / (1.-pvegtype(nvt_no)-pvegtype(nvt_rock))
134 zagri=(1. - exp( -0.6 * zlai ))
135 IF(oagri_to_grass)zagri=min(zagri,0.95)
137 pgreen= zagri *(pvegtype(nvt_c4 ) + &
138 pvegtype(nvt_irr ) + &
139 pvegtype(nvt_c3 ) ) &
140 + min(1. - exp( -0.5 * zlai ),0.95) &
141 *(pvegtype(nvt_trbd) + &
142 pvegtype(nvt_tebe) + &
143 pvegtype(nvt_tebd) + &
144 pvegtype(nvt_tene) + &
145 pvegtype(nvt_bobd) + &
146 pvegtype(nvt_bone) + &
147 pvegtype(nvt_bone) + &
148 pvegtype(nvt_shrb) ) &
149 + xeverg_veg * pvegtype(nvt_trbe) &
150 + min(1. - exp( -0.6 * zlai ),0.95) &
151 *(pvegtype(nvt_gras) + &
152 pvegtype(nvt_bogr) + &
153 pvegtype(nvt_trog) + &
154 pvegtype(nvt_park) ) &
155 + 0. * pvegtype(nvt_no ) &
156 + 0. * pvegtype(nvt_snow) &
157 + 0. * pvegtype(nvt_rock)
159 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_0D',1,zhook_handle)
207 nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
208 nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, &
209 nvt_shrb, nvt_c3, nvt_c4, nvt_irr, &
210 nvt_gras, nvt_bogr, nvt_trog
214 USE yomhook
,ONLY : lhook, dr_hook
215 USE parkind1
,ONLY : jprb
221 REAL,
DIMENSION(:),
INTENT(IN) :: plai
222 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
223 LOGICAL,
INTENT(IN) :: oagri_to_grass
225 REAL,
DIMENSION(SIZE(PLAI)) :: pgreen
229 REAL,
DIMENSION(SIZE(PLAI)) :: zlai, zagri
230 REAL(KIND=JPRB) :: zhook_handle
232 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_1D',0,zhook_handle)
235 WHERE ( pvegtype(:,nvt_no ) + pvegtype(:,nvt_rock) + pvegtype(:,nvt_snow) < 1.)
236 zlai(:) = plai(:) / (1.-pvegtype(:,nvt_no)-pvegtype(:,nvt_rock)-pvegtype(:,nvt_snow))
239 zagri(:)=(1. - exp( -0.6 * zlai(:) ))
240 IF(oagri_to_grass)zagri(:)=min(zagri(:),0.95)
242 pgreen(:)= zagri(:) *(pvegtype(:,nvt_c4 ) + &
243 pvegtype(:,nvt_irr ) + &
244 pvegtype(:,nvt_c3 ) ) &
245 + min(1. - exp( -0.5 * zlai(:) ),0.95) &
246 *(pvegtype(:,nvt_trbd) + &
247 pvegtype(:,nvt_tebe) + &
248 pvegtype(:,nvt_tebd) + &
249 pvegtype(:,nvt_tene) + &
250 pvegtype(:,nvt_bobd) + &
251 pvegtype(:,nvt_bone) + &
252 pvegtype(:,nvt_bone) + &
253 pvegtype(:,nvt_shrb) ) &
254 + xeverg_veg * pvegtype(:,nvt_trbe) &
255 + min(1. - exp( -0.6 * zlai(:) ),0.95) &
256 *(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_GREEN_FROM_LAI:GREEN_FROM_LAI_1D',1,zhook_handle)
311 nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
312 nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, &
313 nvt_shrb, nvt_c3, nvt_c4, nvt_irr, &
314 nvt_gras, nvt_bogr, nvt_trog
319 USE yomhook
,ONLY : lhook, dr_hook
320 USE parkind1
,ONLY : jprb
326 REAL,
DIMENSION(:,:),
INTENT(IN) :: plai
327 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype
328 LOGICAL,
INTENT(IN) :: oagri_to_grass
330 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2))::pgreen
334 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: zlai, zagri
335 REAL(KIND=JPRB) :: zhook_handle
337 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_2D',0,zhook_handle)
338 zlai(:,:) = plai(:,:)
339 WHERE ( pvegtype(:,:,nvt_no ) + pvegtype(:,:,nvt_rock) + pvegtype(:,:,nvt_snow) < 1.)
340 zlai(:,:) = plai(:,:) / (1.-pvegtype(:,:,nvt_no)-pvegtype(:,:,nvt_rock)-pvegtype(:,:,nvt_snow))
346 WHERE (plai(:,:) /= xundef)
347 zagri(:,:)=(1. - exp( -0.6 * zlai(:,:) ))
349 IF(oagri_to_grass)zagri(:,:)=min(zagri(:,:),0.95)
351 WHERE (plai(:,:) /= xundef)
352 pgreen(:,:)= zagri(:,:) *(pvegtype(:,:,nvt_c4 ) + &
353 pvegtype(:,:,nvt_irr ) + &
354 pvegtype(:,:,nvt_c3 ) ) &
355 + min((1. - exp( -0.5 * zlai(:,:) )),0.95) &
356 *(pvegtype(:,:,nvt_trbd) + &
357 pvegtype(:,:,nvt_tebe) + &
358 pvegtype(:,:,nvt_tebd) + &
359 pvegtype(:,:,nvt_tene) + &
360 pvegtype(:,:,nvt_bobd) + &
361 pvegtype(:,:,nvt_bone) + &
362 pvegtype(:,:,nvt_bone) + &
363 pvegtype(:,:,nvt_shrb) ) &
364 + xeverg_veg * pvegtype(:,:,nvt_trbe) &
365 + min((1. - exp( -0.6 * zlai(:,:) )),0.95) &
366 *(pvegtype(:,:,nvt_gras) + &
367 pvegtype(:,:,nvt_bogr) + &
368 pvegtype(:,:,nvt_trog) + &
369 pvegtype(:,:,nvt_park) )&
370 + 0. * pvegtype(:,:,nvt_no ) &
371 + 0. * pvegtype(:,:,nvt_snow) &
372 + 0. * pvegtype(:,:,nvt_rock)
374 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_2D',1,zhook_handle)
424 nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
425 nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, &
426 nvt_shrb, nvt_c3, nvt_c4, nvt_irr, &
427 nvt_gras, nvt_bogr, nvt_trog
433 USE yomhook
,ONLY : lhook, dr_hook
434 USE parkind1
,ONLY : jprb
440 REAL,
DIMENSION(:),
INTENT(IN) :: plai
441 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
442 LOGICAL,
INTENT(IN) :: oagri_to_grass
444 REAL,
DIMENSION(SIZE(PLAI)) :: pgreen
448 REAL,
DIMENSION(SIZE(PLAI)) :: zlai
449 REAL(KIND=JPRB) :: zhook_handle
451 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_PATCH_1D',0,zhook_handle)
455 IF(oagri_to_grass)
THEN
456 IF (pvegtype(nvt_c4 )>0.) pgreen(nvt_c4 )= min(1. - exp( -0.6 * zlai(nvt_c4 ) ),0.95)
457 IF (pvegtype(nvt_irr )>0.) pgreen(nvt_irr )= min(1. - exp( -0.6 * zlai(nvt_irr ) ),0.95)
458 IF (pvegtype(nvt_c3 )>0.) pgreen(nvt_c3 )= min(1. - exp( -0.6 * zlai(nvt_c3 ) ),0.95)
460 IF (pvegtype(nvt_c4 )>0.) pgreen(nvt_c4 )= 1. - exp( -0.6 * zlai(nvt_c4 ) )
461 IF (pvegtype(nvt_irr )>0.) pgreen(nvt_irr )= 1. - exp( -0.6 * zlai(nvt_irr ) )
462 IF (pvegtype(nvt_c3 )>0.) pgreen(nvt_c3 )= 1. - exp( -0.6 * zlai(nvt_c3 ) )
465 IF (pvegtype(nvt_tebd)>0.) pgreen(nvt_tebd)= min(1. - exp( -0.5 * zlai(nvt_tebd) ),0.95)
466 IF (pvegtype(nvt_bone)>0.) pgreen(nvt_bone)= min(1. - exp( -0.5 * zlai(nvt_bone) ),0.95)
467 IF (pvegtype(nvt_trbd)>0.) pgreen(nvt_trbd)= min(1. - exp( -0.5 * zlai(nvt_trbd) ),0.95)
468 IF (pvegtype(nvt_tebe)>0.) pgreen(nvt_tebe)= min(1. - exp( -0.5 * zlai(nvt_tebe) ),0.95)
469 IF (pvegtype(nvt_tene)>0.) pgreen(nvt_tene)= min(1. - exp( -0.5 * zlai(nvt_tene) ),0.95)
470 IF (pvegtype(nvt_bobd)>0.) pgreen(nvt_bobd)= min(1. - exp( -0.5 * zlai(nvt_bobd) ),0.95)
471 IF (pvegtype(nvt_bond)>0.) pgreen(nvt_bond)= min(1. - exp( -0.5 * zlai(nvt_bond) ),0.95)
472 IF (pvegtype(nvt_shrb)>0.) pgreen(nvt_shrb)= min(1. - exp( -0.5 * zlai(nvt_shrb) ),0.95)
474 IF (pvegtype(nvt_trbe)>0.) pgreen(nvt_trbe)= xeverg_veg
476 IF (pvegtype(nvt_gras)>0.) pgreen(nvt_gras)= min(1. - exp( -0.6 * zlai(nvt_gras) ),0.95)
477 IF (pvegtype(nvt_bogr)>0.) pgreen(nvt_bogr)= min(1. - exp( -0.6 * zlai(nvt_bogr) ),0.95)
478 IF (pvegtype(nvt_trog)>0.) pgreen(nvt_trog)= min(1. - exp( -0.6 * zlai(nvt_trog) ),0.95)
479 IF (pvegtype(nvt_park)>0.) pgreen(nvt_park)= min(1. - exp( -0.6 * zlai(nvt_park) ),0.95)
481 IF (pvegtype(nvt_no )>0.) pgreen(nvt_no )= 0.
482 IF (pvegtype(nvt_snow)>0.) pgreen(nvt_snow)= 0.
483 IF (pvegtype(nvt_rock)>0.) pgreen(nvt_rock)= 0.
484 IF (lhook) CALL dr_hook(
'MODI_GREEN_FROM_LAI:GREEN_FROM_LAI_PATCH_1D',1,zhook_handle)
real function, dimension(size(plai, 1), size(plai, 2)) green_from_lai_2d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real function, dimension(size(plai)) green_from_lai_1d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real function green_from_lai_0d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)
real function, dimension(size(plai)) green_from_lai_patch_1d(PLAI, PVEGTYPE, OAGRI_TO_GRASS)