7 PZENITH, PTG1, PSW_BANDS, PDIR_ALB, PSCA_ALB, &
8 PEMIS, PTSRAD, PTSURF, PDIR_SW, PSCA_SW )
61 USE modi_update_rad_isba_n
62 USE modi_isba_lwnet_meb
80 REAL,
DIMENSION(:,:),
INTENT(IN) :: PTG1
81 REAL,
DIMENSION(:),
INTENT(IN) :: PZENITH
82 REAL,
DIMENSION(:),
INTENT(IN) :: PSW_BANDS
84 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDIR_ALB
85 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PSCA_ALB
86 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIS
87 REAL,
DIMENSION(:),
INTENT(OUT) :: PTSRAD
88 REAL,
DIMENSION(:),
INTENT(OUT) :: PTSURF
90 REAL,
DIMENSION(:,:),
INTENT(IN),
OPTIONAL :: PDIR_SW
91 REAL,
DIMENSION(:,:),
INTENT(IN),
OPTIONAL :: PSCA_SW
102 REAL,
DIMENSION(SIZE(PZENITH),SIZE(PSW_BANDS),IO%NPATCH) :: ZDIR_ALB_PATCH
104 REAL,
DIMENSION(SIZE(PZENITH),SIZE(PSW_BANDS),IO%NPATCH) :: ZSCA_ALB_PATCH
106 REAL,
DIMENSION(SIZE(PZENITH),IO%NPATCH) :: ZEMIS_PATCH
107 REAL,
DIMENSION(SIZE(PZENITH),IO%NPATCH) :: ZTSRAD_PATCH
108 REAL,
DIMENSION(SIZE(PZENITH),IO%NPATCH) :: ZTSURF_PATCH
109 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZEMIS
111 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZSNOWDEPTH
112 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZPALPHAN
113 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZLW_RAD
114 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZLW_UP
115 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZLWNET_N
116 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZLWNET_V
117 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZLWNET_G
118 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZDUMMY
119 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZEMISF
120 REAL,
DIMENSION(SIZE(PTG1,1)) :: ZFF
122 LOGICAL :: LEXPLICIT_SNOW
124 INTEGER :: JP, JI,ISIZE
127 REAL(KIND=JPRB) :: ZHOOK_HANDLE
133 IF (
lhook)
CALL dr_hook(
'AVERAGED_ALBEDO_EMIS_ISBA',0,zhook_handle)
141 zdir_alb_patch(:,:,:)=0.
142 zsca_alb_patch(:,:,:)=0.
145 lexplicit_snow = (npe%AL(1)%TSNOW%SCHEME==
'3-L'.OR.npe%AL(1)%TSNOW%SCHEME
'CRO' 147 ztsrad_patch(:,:) = 0.
148 ztsurf_patch(:,:) = 0.
150 DO ji = 1,np%AL(jp)%NSIZE_P
151 imask = np%AL(jp)%NR_P(ji)
152 ztsrad_patch(imask,jp) = ptg1(ji,jp)
153 ztsurf_patch(imask,jp) = ptg1(ji,jp)
162 CALL albedo(io%CALBEDO, npe%AL(jp) )
176 IF(
PRESENT(pdir_sw))
THEN 205 IF(io%LMEB_PATCH(jp))
THEN 209 zsnowdepth(1:isize) =
sum(pek%TSNOW%WSNOW(:,:)/pek%TSNOW%RHO(:,:),2)
210 zpalphan(1:isize) =
mebpalphan(zsnowdepth(1:isize),pek%XH_VEG(:))
215 zemisf(1:isize) = kk%XEMISF(:)
216 zff(1:isize) = kk%XFF (:)
222 CALL isba_lwnet_meb(pek%XLAI, pek%XPSN, zpalphan(1:isize), pek%TSNOW%EMIS
230 zlw_up(1:isize) = zlw_rad(1:isize) - (zlwnet_v(1:isize) + zlwnet_g(
236 IF (zemis_patch(imask,jp)/=0.)
THEN 237 ztsrad_patch(imask,jp) = ((zlw_up(ji) - zlw_rad(ji)*(1.0-zemis_patch
244 zemis(1:isize) = pek%XEMIS(:)
246 IF(io%LFLOOD.AND.lexplicit_snow)
THEN 247 WHERE(pek%XPSN(:)<1.0.AND.pek%XEMIS(:)/=
xundef)
248 zemis(1:isize) = ((1.-kk%XFF(:)-pek%XPSN(:))*pek%XEMIS(:) + kk%XFF
252 IF (.NOT.lexplicit_snow)
THEN 254 ELSE IF (lexplicit_snow)
THEN 257 IF (pek%XEMIS(ji)/=
xundef .AND. zemis_patch(imask,jp)/=0.)
THEN 258 ztsrad_patch(imask,jp) =( ( (1.-pek%XPSN(ji)) * zemis(ji)*ptg1
277 IF(lexplicit_snow)
THEN 283 ztsurf_patch(imask,jp) = ptg1(ji,jp)*(1.-pek%XPSN(ji)) + pek%TSNOW%TS
289 DO ji=1,np%AL(jp)%NSIZE_P
290 imask = np%AL(jp)%NR_P(ji)
291 ptsurf(imask) = ptsurf(imask) + np%AL(jp)%XPATCH(ji) * ztsurf_patch(imask
295 IF (
lhook)
CALL dr_hook(
'AVERAGED_ALBEDO_EMIS_ISBA',1,zhook_handle)
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine averaged_albedo_emis_isba(IO, S, NK, NP, NPE, PZENITH, PTG1, PSW_BANDS, PDIR_ALB, PSC
subroutine albedo(HALBEDO, PEK, PSNOW, OMASK)
subroutine average_rad(PFRAC_TILE, PDIR_ALB_TILE, PSCA_ALB_TILE, PEMIS_TILE, PTRAD_TILE,
subroutine isba_lwnet_meb(PLAI, PPSN, PPSNA, PEMIS_N, PEMIS_F, PFF,
subroutine update_rad_isba_n(IO, S, KK, PK, PEK, KPATCH, PZENITH, PSW_BANDS, PDIR_ALB_WITH_SNOW, PSCA_ALB_WITH_SNOW, PEMIST, PDIR_SW, PSCA_SW)