7 pdir_alb,psca_alb,pemis,pdir_alb_atmos,psca_alb_atmos,&
34 USE modd_water_par, ONLY : xalbsca_wat, xalbwat, xemiswat, xemiswatice
43 USE yomhook
,ONLY : lhook, dr_hook
44 USE parkind1
,ONLY : jprb
50 CHARACTER(LEN=4),
INTENT(IN) :: halb
52 REAL,
DIMENSION(:),
INTENT(IN) :: pts
53 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
54 REAL,
DIMENSION(:),
INTENT(IN) :: ph_ice
55 REAL,
DIMENSION(:),
INTENT(IN) :: ph_snow
56 REAL,
DIMENSION(:),
INTENT(IN) :: pice_alb
57 REAL,
DIMENSION(:),
INTENT(IN) :: psnow_alb
59 REAL,
DIMENSION(:),
INTENT(INOUT):: pdir_alb
60 REAL,
DIMENSION(:),
INTENT(INOUT):: psca_alb
61 REAL,
DIMENSION(:),
INTENT(OUT) :: pemis
63 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pdir_alb_atmos
64 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psca_alb_atmos
65 REAL,
DIMENSION(:),
INTENT(OUT) :: pemis_atmos
66 REAL,
DIMENSION(:),
INTENT(OUT) :: ptrad
72 REAL,
DIMENSION(SIZE(PTS)) :: zalbdir
73 REAL,
DIMENSION(SIZE(PTS)) :: zalbsca
75 REAL(KIND=JPRB) :: zhook_handle
79 IF (lhook) CALL dr_hook(
'UPDATE_RAD_FLAKE',0,zhook_handle)
84 IF (halb==
'TA96')
THEN
86 zalbsca(:) = xalbsca_wat
87 ELSEIF (halb==
'MK10')
THEN
89 zalbsca(:) = xalbsca_wat
95 WHERE (ph_snow(:)>=h_snow_min_flk)
97 pdir_alb(:) = psnow_alb(:)
98 psca_alb(:) = psnow_alb(:)
100 ELSEWHERE(ph_ice(:)>=h_ice_min_flk)
102 pdir_alb(:) = pice_alb(:)
103 psca_alb(:) = pice_alb(:)
104 pemis(:) = xemiswatice
107 pdir_alb(:) = zalbdir(:)
108 psca_alb(:) = zalbsca(:)
114 DO jswb=1,
SIZE(pdir_alb_atmos,2)
115 pdir_alb_atmos(:,jswb) = pdir_alb(:)
116 psca_alb_atmos(:,jswb) = psca_alb(:)
119 pemis_atmos(:) = pemis(:)
122 IF (lhook) CALL dr_hook(
'UPDATE_RAD_FLAKE',1,zhook_handle)
real function, dimension(size(pzenith)) albedo_ta96(PZENITH)
real function, dimension(size(pzenith)) albedo_mk10(PZENITH)
subroutine update_rad_flake(HALB, PTS, PZENITH, PH_ICE, PH_SNOW, PICE_ALB, PSNOW_ALB, PDIR_ALB, PSCA_ALB, PEMIS, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)