40 USE yomhook
,ONLY : lhook, dr_hook
41 USE parkind1
,ONLY : jprb
47 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_sw
48 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_sw
49 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdir_alb
50 REAL,
DIMENSION(:,:),
INTENT(IN) :: psca_alb
51 INTEGER,
INTENT(IN) :: ksw
53 REAL,
DIMENSION(:) ,
INTENT(OUT) :: pglobal_sw
54 REAL,
DIMENSION(:) ,
INTENT(OUT) :: palb
62 REAL,
DIMENSION(SIZE(PDIR_SW,1)) :: zsw_up
64 REAL(KIND=JPRB) :: zhook_handle
71 IF (lhook) CALL dr_hook(
'FLAKE_ALBEDO',0,zhook_handle)
77 pglobal_sw(:) = pglobal_sw(:) + (pdir_sw(:,jswb) + psca_sw(:,jswb))
84 zsw_up(:) = zsw_up(:) &
85 + pdir_alb(:,jswb) * pdir_sw(:,jswb) &
86 + psca_alb(:,jswb) * psca_sw(:,jswb)
91 WHERE(pglobal_sw(:)>0.)
92 palb(:) = zsw_up(:) / pglobal_sw(:)
94 palb(:) = pdir_alb(:,1)
97 IF (lhook) CALL dr_hook(
'FLAKE_ALBEDO',1,zhook_handle)
subroutine flake_albedo(PDIR_SW, PSCA_SW, KSW, PDIR_ALB, PSCA_ALB, PGLOBAL_SW, PALB)