55 USE modd_snow_par
, ONLY : xwcrn
58 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
59 REAL,
DIMENSION(SIZE(PWSNOW)) :: PPSNG
60 REAL(KIND=JPRB) :: ZHOOK_HANDLE
62 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND',0,zhook_handle
64 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND',1,zhook_handle
74 USE modd_snow_par
, ONLY : xwcrn
77 REAL,
DIMENSION(:),
INTENT(IN) :: PPSNG
78 REAL,
DIMENSION(SIZE(PPSNG)) :: PWSNOW
79 REAL(KIND=JPRB) :: ZHOOK_HANDLE
81 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:WSNOW_FROM_SNOW_FRAC_GROUND' 83 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:WSNOW_FROM_SNOW_FRAC_GROUND' 89 FUNCTION snow_frac_veg(PPSNG,PWSNOW,PZ0VEG,PRHOS)
RESULT(PPSNV)
92 USE modd_snow_par
, ONLY : xwsnv
95 REAL,
DIMENSION(:),
INTENT(IN) :: PPSNG
96 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
97 REAL,
DIMENSION(:),
INTENT(IN) :: PZ0VEG
98 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOS
99 REAL,
DIMENSION(SIZE(PWSNOW)) :: PPSNV
100 REAL(KIND=JPRB) :: ZHOOK_HANDLE
102 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG',0,zhook_handle
105 ppsnv(:) = min(ppsnv(:),ppsng(:))
106 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG',1,zhook_handle
117 REAL,
DIMENSION(:),
INTENT(IN) :: P_LAI
118 REAL,
DIMENSION(:),
INTENT(IN) :: P_SNOWALB
119 REAL,
DIMENSION(:),
INTENT(IN) :: P_PSNG
120 REAL,
DIMENSION(SIZE(P_LAI)) :: PPSNV
125 REAL,
DIMENSION(SIZE(P_LAI)) :: FLAI
126 REAL RLAIMAX,RLAI,A1,A2
127 REAL(KIND=JPRB) :: ZHOOK_HANDLE
129 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_A',0,zhook_handle
136 flai(:)=1.-(p_lai(:)/rlaimax)*(max(0.0,(a1-max(a2,p_snowalb(:))))/(a1-a2
138 ppsnv(:)=p_psng(:)*flai(:)
139 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_A',1,zhook_handle
151 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
152 REAL,
DIMENSION(:),
INTENT(IN) :: PPSNG
153 REAL,
DIMENSION(:),
INTENT(IN) :: PPSNV
154 REAL,
DIMENSION(:),
INTENT(IN) :: PVEG
155 REAL,
DIMENSION(SIZE(PWSNOW)) :: PPSN
156 REAL(KIND=JPRB) :: ZHOOK_HANDLE
158 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT',0,zhook_handle
160 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT',1,zhook_handle
172 USE modd_snow_par
, ONLY : xwcrn
174 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW_ROAD
175 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OSNOW
176 REAL,
DIMENSION(:),
INTENT(OUT) :: PDN_ROAD
177 REAL,
DIMENSION(:),
INTENT(OUT) :: PDF_ROAD
178 REAL(KIND=JPRB) :: ZHOOK_HANDLE
180 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROAD',0,zhook_handle
188 WHERE (pwsnow_road(:)>0. .OR. osnow)
189 pdn_road(:) = max(min(pwsnow_road(:)/(pwsnow_road(:) + xwcrn*0.1)
192 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROAD',1,zhook_handle
202 USE modd_snow_par
, ONLY : xwcrn
204 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW_ROOF
205 LOGICAL,
DIMENSION(:),
INTENT(IN) :: OSNOW
206 REAL,
DIMENSION(:),
INTENT(OUT) :: PDN_ROOF
207 REAL,
DIMENSION(:),
INTENT(OUT) :: PDF_ROOF
208 REAL(KIND=JPRB) :: ZHOOK_HANDLE
210 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROOF',0,zhook_handle
218 WHERE (pwsnow_roof(:)>0. .OR. osnow)
219 pdn_roof(:) = max(pwsnow_roof(:)/(pwsnow_roof(:) + xwcrn*0.1),0.01
222 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_ROOF',1,zhook_handle
234 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
236 REAL(KIND=JPRB) :: ZHOOK_HANDLE
237 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT_1D',0,zhook_handle
239 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT_1D',1,zhook_handle
250 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
251 REAL(KIND=JPRB) :: ZHOOK_HANDLE
253 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT_2D',0,zhook_handle
255 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_NAT_2D',1,zhook_handle
264 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
265 REAL(KIND=JPRB) :: ZHOOK_HANDLE
267 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_1D',0,zhook_handle
269 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_1D',1,zhook_handle
279 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
280 REAL(KIND=JPRB) :: ZHOOK_HANDLE
281 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_2D',0,zhook_handle
283 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_VEG_2D',1,zhook_handle
293 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
294 REAL(KIND=JPRB) :: ZHOOK_HANDLE
295 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND_1D',0,zhook_handle
297 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND_1D',1,zhook_handle
308 REAL,
DIMENSION(:),
INTENT(IN) :: PWSNOW
309 REAL(KIND=JPRB) :: ZHOOK_HANDLE
310 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND_2D',0,zhook_handle
312 IF (
lhook)
CALL dr_hook(
'MODE_SURF_SNOW_FRAC:SNOW_FRAC_GROUND_2D',1,zhook_handle
real function snow_frac_ground_1d(PWSNOW)
real function snow_frac_veg_2d(PWSNOW)
real function, dimension(size(ppsng)) wsnow_from_snow_frac_ground(PPSNG)
subroutine snow_frac_road(PWSNOW_ROAD, OSNOW, PDN_ROAD, PDF_ROAD)
real function snow_frac_nat_2d(PWSNOW)
real function, dimension(size(p_lai)) snow_frac_veg_a(P_PSNG, P_LAI, P_SNOWALB)
real function, dimension(size(pwsnow)) snow_frac_veg(PPSNG, PWSNOW, PZ0VEG, PRHOS)
real function snow_frac_ground_2d(PWSNOW)
real function snow_frac_nat_1d(PWSNOW)
real function snow_frac_veg_1d(PWSNOW)
subroutine snow_frac_roof(PWSNOW_ROOF, OSNOW, PDN_ROOF, PDF_ROOF)
real function, dimension(size(pwsnow)) snow_frac_ground(PWSNOW)
real function, dimension(size(pwsnow)) snow_frac_nat(PWSNOW, PPSNG, PPSNV, PVEG)