7 ki,ksw,pzenith,psw_bands,pdir_alb,&
8 psca_alb,pemis,ptsrad,ptsurf )
54 USE modi_average_tsurf
55 USE modi_update_rad_isba_n
58 USE yomhook
,ONLY : lhook, dr_hook
59 USE parkind1
,ONLY : jprb
67 TYPE(isba_t
),
INTENT(INOUT) :: i
69 INTEGER,
INTENT(IN) :: ki
70 INTEGER,
INTENT(IN) :: ksw
72 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
73 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
75 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
76 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
77 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
78 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
79 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
85 REAL,
DIMENSION(KI,KSW,I%NPATCH) :: zdir_alb_patch
86 REAL,
DIMENSION(KI,KSW,I%NPATCH) :: zsca_alb_patch
87 REAL,
DIMENSION(KI,I%NPATCH) :: zemis_patch
88 REAL,
DIMENSION(KI,I%NPATCH) :: ztsrad_patch
89 REAL,
DIMENSION(KI,I%NPATCH) :: ztsurf_patch
90 REAL,
DIMENSION(KI,I%NPATCH) :: zemis
92 LOGICAL :: lexplicit_snow
94 REAL(KIND=JPRB) :: zhook_handle
101 IF (lhook) CALL dr_hook(
'UPDATE_ESM_ISBA_N',0,zhook_handle)
103 zdir_alb_patch(:,:,:) = 0.0
104 zsca_alb_patch(:,:,:) = 0.0
105 zemis_patch(:,: ) = 0.0
106 zemis(:,: ) = i%XEMIS(:,:)
108 lexplicit_snow = (i%TSNOW%SCHEME==
'3-L'.OR.i%TSNOW%SCHEME==
'CRO')
110 ztsrad_patch(:,:) = i%XTG(:,1,:)
111 ztsurf_patch(:,:) = i%XTG(:,1,:)
118 i%LFLOOD,i%TSNOW%SCHEME,pzenith,psw_bands,i%XVEG,i%XLAI,i%XZ0, &
119 i%LMEB_PATCH,i%XLAIGV,i%XGNDLITTER,i%XZ0LITTER,i%XH_VEG, &
120 i%XALBNIR,i%XALBVIS,i%XALBUV,i%XEMIS, &
121 zdir_alb_patch,zsca_alb_patch,zemis_patch )
126 IF(lexplicit_snow.AND.i%LFLOOD)
THEN
127 WHERE(i%XPSN(:,:)<1.0.AND.i%XEMIS(:,:)/=xundef)
128 zemis(:,:) = ((1.-i%XFF(:,:)-i%XPSN(:,:))*i%XEMIS(:,:) + i%XFF(:,:)*i%XEMISF(:,:)) / (1.-i%XPSN(:,:))
132 IF(lexplicit_snow)
THEN
133 WHERE(i%XEMIS(:,:)/=xundef.AND.zemis_patch(:,:)/=0.)
134 ztsrad_patch(:,:) = ( ( (1.-i%XPSN(:,:))*zemis(:,:)*i%XTG (:,1,:)**4 &
135 + i%XPSN(:,:) *i%TSNOW%EMIS(:,:)*i%TSNOW%TS(:,:)**4 ) &
136 / zemis_patch(:,:) )**0.25
145 zdir_alb_patch, zsca_alb_patch, zemis_patch, ztsrad_patch, &
146 pdir_alb, psca_alb, i%XEMIS_NAT, i%XTSRAD_NAT )
149 ptsrad = i%XTSRAD_NAT
153 IF(lexplicit_snow)
THEN
154 ztsurf_patch(:,:) = i%XTG(:,1,:)*(1.-i%XPSN(:,:)) + i%TSNOW%TS(:,:)*i%XPSN(:,:)
159 IF (lhook) CALL dr_hook(
'UPDATE_ESM_ISBA_N',1,zhook_handle)
subroutine average_tsurf(PFRAC_TILE, PTSURF_TILE, PTSURF)
subroutine update_esm_isba_n(I, KI, KSW, PZENITH, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF)
subroutine update_rad_isba_n(I, OFLOOD, HSNOW, PZENITH, PSW_BANDS, PVEG, PLAI, PZ0, OMEB_PATCH, PLAIGV, PGNDLITTER, PZ0LITTER, PH_VEG, PALBNIR, PALBVIS, PALBUV, PEMIS, PDIR_ALB_WITH_SNOW, PSCA_ALB_WITH_SNOW, PEMIST, PDIR_SW, PSCA_SW, PALBNIR_VEG, PALBNIR_SOIL, PALBVIS_VEG, PALBVIS_SOIL)
subroutine average_rad(PFRAC_TILE, PDIR_ALB_TILE, PSCA_ALB_TILE, PEMIS_TILE, PTRAD_TILE, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD)