7 pdir_alb_atmos,psca_alb_atmos,pemis_atmos,ptrad)
36 xalbwat, xalbsca_wat, &
45 USE yomhook
,ONLY : lhook, dr_hook
46 USE parkind1
,ONLY : jprb
52 CHARACTER(LEN=4),
INTENT(IN) :: halb
54 REAL,
DIMENSION(:),
INTENT(IN) :: psst
55 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
56 REAL,
INTENT(IN) :: ptt
58 REAL,
DIMENSION(:),
INTENT(INOUT):: pdir_alb
59 REAL,
DIMENSION(:),
INTENT(INOUT):: psca_alb
60 REAL,
DIMENSION(:),
INTENT(OUT) :: pemis
62 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pdir_alb_atmos
63 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psca_alb_atmos
64 REAL,
DIMENSION(:),
INTENT(OUT) :: pemis_atmos
65 REAL,
DIMENSION(:),
INTENT(OUT) :: ptrad
70 REAL,
DIMENSION(SIZE(PSST)) :: zalbedo
71 REAL(KIND=JPRB) :: zhook_handle
75 IF (lhook) CALL dr_hook(
'UPDATE_RAD_WATER',0,zhook_handle)
78 IF (halb==
'TA96')
THEN
80 ELSEIF (halb==
'MK10')
THEN
84 IF(lcpl_sea.AND.lwater)
THEN
95 pemis(:) = xemiswatice
98 IF (halb==
'TA96' .OR. halb==
'MK10')
THEN
101 WHERE (psst(:)>=ptt) pdir_alb(:) = zalbedo(:)
102 WHERE (psst(:)>=ptt) psca_alb(:) = xalbsca_wat
107 IF (halb==
'UNIF')
THEN
109 WHERE (psst(:)>=ptt )
111 pdir_alb(:) = xalbwat
112 psca_alb(:) = xalbwat
116 pdir_alb(:) = xalbwatice
117 psca_alb(:) = xalbwatice
118 pemis(:) = xemiswatice
121 ELSE IF (halb==
'TA96' .OR. halb==
'MK10')
THEN
123 WHERE (psst(:)>=ptt) pdir_alb(:) = zalbedo(:)
127 psca_alb(:) = xalbsca_wat
131 pdir_alb(:) = xalbwatice
132 psca_alb(:) = xalbwatice
133 pemis(:) = xemiswatice
142 DO jswb=1,
SIZE(pdir_alb_atmos,2)
143 pdir_alb_atmos(:,jswb) = pdir_alb(:)
144 psca_alb_atmos(:,jswb) = psca_alb(:)
147 pemis_atmos(:) = pemis(:)
150 IF (lhook) CALL dr_hook(
'UPDATE_RAD_WATER',1,zhook_handle)
subroutine update_rad_water(HALB, PSST, PZENITH, PTT, PEMIS, PDIR_ALB, PSCA_ALB, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)
real function, dimension(size(pzenith)) albedo_ta96(PZENITH)
real function, dimension(size(pzenith)) albedo_mk10(PZENITH)