6 SUBROUTINE update_rad_sea(S,PZENITH,PTT,PDIR_ALB_ATMOS,PSCA_ALB_ATMOS,PEMIS_ATMOS,PTRAD,PU,PV)
57 REAL,
DIMENSION(:),
INTENT(IN) :: PZENITH
58 REAL,
INTENT(IN) :: PTT
60 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PDIR_ALB_ATMOS
61 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PSCA_ALB_ATMOS
62 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIS_ATMOS
63 REAL,
DIMENSION(:),
INTENT(OUT) :: PTRAD
65 REAL,
DIMENSION(:),
INTENT(IN) ,
OPTIONAL :: PU
66 REAL,
DIMENSION(:),
INTENT(IN) ,
OPTIONAL :: PV
71 REAL,
DIMENSION(SIZE(PZENITH)) :: ZALBDIR
72 REAL,
DIMENSION(SIZE(PZENITH)) :: ZALBSCA
73 REAL,
DIMENSION(SIZE(PZENITH)) :: ZWIND
75 REAL(KIND=JPRB) :: ZHOOK_HANDLE
84 IF (s%CSEA_ALB==
'TA96')
THEN 89 ELSEIF (s%CSEA_ALB==
'MK10')
THEN 94 ELSEIF (s%CSEA_ALB==
'RS14')
THEN 96 IF (
PRESENT(pu).AND.
PRESENT(pv))
THEN 97 zwind(:) = sqrt(pu(:)**2+pv(:)**2)
98 CALL albedo_rs14(pzenith(:),zwind(:),zalbdir(:),zalbsca(:))
100 zalbdir(:) = s%XDIR_ALB(:)
101 zalbsca(:) = s%XSCA_ALB(:)
111 WHERE (s%XSST(:)>=ptt )
119 IF (s%CSEA_ALB==
'TA96' .OR. s%CSEA_ALB==
'MK10' .OR. s%CSEA_ALB==
'RS14')
THEN 122 WHERE (s%XSST(:)>=ptt) s%XDIR_ALB(:) = zalbdir(:)
123 WHERE (s%XSST(:)>=ptt) s%XSCA_ALB(:) = zalbsca(:)
126 ELSEIF(s%LHANDLE_SIC)
THEN 130 IF (s%CSEA_ALB==
'UNIF')
THEN 131 s%XDIR_ALB(:) = ( 1 - s%XSIC(:)) *
xalbwat + s%XSIC(:) * s%XICE_ALB(:)
132 s%XSCA_ALB(:) = ( 1 - s%XSIC(:)) *
xalbwat + s%XSIC(:) * s%XICE_ALB(:)
133 ELSE IF (s%CSEA_ALB==
'TA96' .OR. s%CSEA_ALB==
'MK10' .OR. s%CSEA_ALB==
'RS14')
THEN 134 s%XDIR_ALB(:) = ( 1 - s%XSIC(:)) * zalbdir(:) + s%XSIC(:) * s%XICE_ALB(:)
135 s%XSCA_ALB(:) = ( 1 - s%XSIC(:)) * zalbsca(:) + s%XSIC(:) * s%XICE_ALB(:)
139 IF (s%CSEA_ALB==
'UNIF')
THEN 141 WHERE (s%XSST(:)>=ptt )
153 ELSE IF (s%CSEA_ALB==
'TA96' .OR. s%CSEA_ALB==
'MK10' .OR. s%CSEA_ALB==
'RS14')
THEN 156 WHERE (s%XSST(:)>=ptt)
158 s%XDIR_ALB (:) = zalbdir(:)
159 s%XSCA_ALB (:) = zalbsca(:)
174 DO jswb=1,
SIZE(pdir_alb_atmos,2)
175 pdir_alb_atmos(:,jswb) = s%XDIR_ALB(:)
176 psca_alb_atmos(:,jswb) = s%XSCA_ALB(:)
179 pemis_atmos(:) = s%XEMIS(:)
180 IF(s%LHANDLE_SIC)
THEN 181 ptrad(:) = (((1 - s%XSIC(:)) *
xemiswat * s%XSST (:)**4 + &
185 ptrad(:) = s%XSST (:)
188 IF (
lhook)
CALL dr_hook(
'UPDATE_RAD_SEA',1,zhook_handle)
subroutine albedo_rs14(PZENITH, PWIND, PDIR_ALB, PSCA_ALB)
real function, dimension(size(pzenith)) albedo_ta96(PZENITH)
subroutine update_rad_sea(S, PZENITH, PTT, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD, PU, PV)
real function, dimension(size(pzenith)) albedo_mk10(PZENITH)