13 palbvis_veg,palbnir_veg,palbuv_veg,pveg, &
14 palbvis_soil,palbnir_soil,palbuv_soil, &
15 palbvis_eco ,palbnir_eco, palbuv_eco, &
22 CHARACTER(LEN=*),
INTENT(IN) :: halbedo
29 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_veg
30 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_veg
31 REAL,
DIMENSION(:),
INTENT(IN) :: palbuv_veg
32 REAL,
DIMENSION(:),
INTENT(IN) :: pveg
33 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_soil
34 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_soil
35 REAL,
DIMENSION(:),
INTENT(IN) :: palbuv_soil
37 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbvis_eco
38 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbnir_eco
39 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbuv_eco
40 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: psnow
41 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: omask
47 palbvis_veg,palbnir_veg,palbuv_veg,pveg, &
48 palbvis_soil,palbnir_soil,palbuv_soil, &
49 palbvis_eco ,palbnir_eco, palbuv_eco, &
57 CHARACTER(LEN=*),
INTENT(IN) :: halbedo
64 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbvis_veg
65 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbnir_veg
66 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbuv_veg
67 REAL,
DIMENSION(:,:),
INTENT(IN) :: pveg
68 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbvis_soil
69 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbnir_soil
70 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbuv_soil
72 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbvis_eco
73 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbnir_eco
74 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbuv_eco
75 REAL,
DIMENSION(:,:),
INTENT(IN),
OPTIONAL :: pvegtype
76 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: omask
86 palbvis_veg,palbnir_veg,palbuv_veg,pveg, &
87 palbvis_soil,palbnir_soil,palbuv_soil, &
88 palbvis_eco ,palbnir_eco, palbuv_eco, &
132 USE yomhook
,ONLY : lhook, dr_hook
133 USE parkind1
,ONLY : jprb
140 CHARACTER(LEN=*),
INTENT(IN) :: halbedo
147 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_veg
148 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_veg
149 REAL,
DIMENSION(:),
INTENT(IN) :: palbuv_veg
150 REAL,
DIMENSION(:),
INTENT(IN) :: pveg
151 REAL,
DIMENSION(:),
INTENT(IN) :: palbvis_soil
152 REAL,
DIMENSION(:),
INTENT(IN) :: palbnir_soil
153 REAL,
DIMENSION(:),
INTENT(IN) :: palbuv_soil
155 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbvis_eco
156 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbnir_eco
157 REAL,
DIMENSION(:),
INTENT(INOUT) :: palbuv_eco
158 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: psnow
159 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: omask
164 REAL,
DIMENSION(SIZE(PVEG)) :: zsnow
165 LOGICAL,
DIMENSION(SIZE(PVEG)) :: gmask
166 REAL(KIND=JPRB) :: zhook_handle
169 IF (lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D',0,zhook_handle)
170 IF (halbedo==
'USER' .AND. lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D',1,zhook_handle)
171 IF (halbedo==
'USER')
RETURN
174 IF (present(omask)) gmask=omask
177 IF (present(psnow)) zsnow(:) = psnow(:)
180 palbvis_eco(:) = ( (1.-pveg(:)) * palbvis_soil(:) &
181 + pveg(:) * palbvis_veg(:))&
185 palbnir_eco(:) = ( (1.-pveg(:)) * palbnir_soil(:) &
186 + pveg(:) * palbnir_veg(:))&
190 palbuv_eco(:) = ( (1.-pveg(:)) * palbuv_soil(:) &
191 + pveg(:) * palbuv_veg(:)) &
195 IF (lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D',1,zhook_handle)
202 palbvis_veg,palbnir_veg,palbuv_veg,pveg, &
203 palbvis_soil,palbnir_soil,palbuv_soil, &
204 palbvis_eco ,palbnir_eco, palbuv_eco, &
250 USE modi_vegtype_to_patch
254 USE yomhook
,ONLY : lhook, dr_hook
255 USE parkind1
,ONLY : jprb
262 CHARACTER(LEN=*),
INTENT(IN) :: halbedo
269 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbvis_veg
270 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbnir_veg
271 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbuv_veg
272 REAL,
DIMENSION(:,:),
INTENT(IN) :: pveg
273 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbvis_soil
274 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbnir_soil
275 REAL,
DIMENSION(:,:),
INTENT(IN) :: palbuv_soil
277 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbvis_eco
278 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbnir_eco
279 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: palbuv_eco
280 REAL,
DIMENSION(:,:),
INTENT(IN),
OPTIONAL :: pvegtype
281 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: omask
287 LOGICAL,
DIMENSION(SIZE(PVEG,1)) :: gmask
289 REAL,
DIMENSION(SIZE(PVEG,1),SIZE(PVEG,2)) ::zpatch, zsnowpatch
290 INTEGER :: isnowpatch
293 REAL(KIND=JPRB) :: zhook_handle
296 IF (lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D_PATCH',0,zhook_handle)
297 IF (halbedo==
'USER' .AND. lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D_PATCH',1,zhook_handle)
298 IF (halbedo==
'USER')
RETURN
301 IF (present(omask)) gmask(:) = omask(:)
303 ipatch =
SIZE(pveg,2)
307 palbvis_eco(:,jpatch) = xundef
308 palbnir_eco(:,jpatch) = xundef
309 palbuv_eco(:,jpatch) = xundef
317 IF (present(pvegtype))
THEN
322 WHERE(gmask(:) .AND. zpatch(:,isnowpatch)>0.)
323 zsnowpatch(:,isnowpatch)=pvegtype(:,nvt_snow)/zpatch(:,isnowpatch)
329 WHERE (gmask(:) .AND. pveg(:,jpatch)/=xundef)
331 palbvis_eco(:,jpatch) =( (1.-pveg(:,jpatch)) * palbvis_soil(:,jpatch) &
332 + pveg(:,jpatch) * palbvis_veg(:,jpatch)) &
333 * (1-zsnowpatch(:,jpatch)) &
334 + xansmax * zsnowpatch(:,jpatch)
336 palbnir_eco(:,jpatch) =( (1.-pveg(:,jpatch)) * palbnir_soil(:,jpatch) &
337 + pveg(:,jpatch) * palbnir_veg(:,jpatch)) &
338 * (1-zsnowpatch(:,jpatch)) &
339 + xansmax * zsnowpatch(:,jpatch)
341 palbuv_eco(:,jpatch) =( (1.-pveg(:,jpatch)) * palbuv_soil(:,jpatch) &
342 + pveg(:,jpatch) * palbuv_veg(:,jpatch)) &
343 * (1-zsnowpatch(:,jpatch)) &
344 + xansmax * zsnowpatch(:,jpatch)
347 IF (lhook) CALL dr_hook(
'MODI_ALBEDO:ALBEDO_1D_PATCH',1,zhook_handle)
integer function vegtype_to_patch(IVEGTYPE, INPATCH)
subroutine albedo_1d_patch(HALBEDO, PALBVIS_VEG, PALBNIR_VEG, PALBUV_VEG, PVEG, PALBVIS_SOIL, PALBNIR_SOIL, PALBUV_SOIL, PALBVIS_ECO, PALBNIR_ECO, PALBUV_ECO, PVEGTYPE, OMASK)
subroutine albedo_1d(HALBEDO, PALBVIS_VEG, PALBNIR_VEG, PALBUV_VEG, PVEG, PALBVIS_SOIL, PALBNIR_SOIL, PALBUV_SOIL, PALBVIS_ECO, PALBNIR_ECO, PALBUV_ECO, PSNOW, OMASK)