7 PVEG, PLAI, PZ0, PPSN, PPSNV_A, PPSNG, PPSNV )
34 USE modd_snow_par
, ONLY : xemissn, xemcrin, xsnowdmin, &
35 xrhosmax_es, xrhosmin_es, &
36 xwcrn_expl, xdcrn_expl
50 CHARACTER(LEN=*) ,
INTENT(IN) :: HSNOW
52 REAL,
DIMENSION(:,:),
INTENT(IN) :: PWSNOW
53 REAL,
DIMENSION(:,:),
INTENT(IN) :: PRSNOW
54 REAL,
DIMENSION(:) ,
INTENT(IN) :: PASNOW
55 REAL,
DIMENSION(:) ,
INTENT(IN) :: PVEG
56 REAL,
DIMENSION(:) ,
INTENT(IN) :: PLAI
57 REAL,
DIMENSION(:) ,
INTENT(IN) :: PZ0
58 REAL,
DIMENSION(:) ,
INTENT(INOUT):: PPSN
59 REAL,
DIMENSION(:) ,
INTENT(INOUT):: PPSNV_A
60 REAL,
DIMENSION(:) ,
INTENT(INOUT):: PPSNG
61 REAL,
DIMENSION(:) ,
INTENT(INOUT):: PPSNV
75 REAL,
DIMENSION(SIZE(PVEG)) :: ZSNOWSWE
76 REAL,
DIMENSION(SIZE(PVEG)) :: ZSNOWD
77 REAL,
DIMENSION(SIZE(PVEG)) :: ZSNOWRHO
78 REAL(KIND=JPRB) :: ZHOOK_HANDLE
89 DO jlayer=1,
SIZE(pwsnow,2)
90 zsnowswe(:) = zsnowswe(:) + pwsnow(:,jlayer)
93 IF (hsnow ==
'3-L' .OR. hsnow ==
'CRO')
THEN 95 DO jlayer=1,
SIZE(pwsnow,2)
96 zsnowd (:) = zsnowd(:) + pwsnow(:,jlayer) / prsnow(:,jlayer)
98 zsnowrho(:) = zsnowswe(:)/max(xsnowdmin,zsnowd(:))
99 zsnowrho(:) = max(xrhosmin_es,min(xrhosmax_es,zsnowrho(:)))
101 zsnowrho(:) = prsnow(:,1)
107 IF (hsnow ==
'CRO' .OR. hsnow ==
'3-L')
THEN 108 ppsng(:) = min(1.0, zsnowd(:)/xdcrn_expl)
116 IF (hsnow ==
'EBA' )
THEN 118 ppsnv(:) = ppsnv_a(:)
129 ppsn(:) = min(1.0, zsnowswe(:)/xwcrn_expl)
134 IF (
lhook)
CALL dr_hook(
'ISBA_SNOW_FRAC',1,zhook_handle)
subroutine isba_snow_frac(HSNOW, PWSNOW, PRSNOW, PASNOW, PVEG, PLAI, PZ0, PPSN, PPSNV_A, PPSNG, P
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, dimension(size(pwsnow)) snow_frac_ground(PWSNOW)
real function, dimension(size(pwsnow)) snow_frac_nat(PWSNOW, PPSNG, PPSNV, PVEG)