7 PDIR_ALB, PSCA_ALB, PEMIS, PTRAD, PSFZON, PSFMER )
46 TYPE(
diag_t),
INTENT(INOUT) :: D
48 REAL,
INTENT(IN) :: PTT
49 REAL,
DIMENSION(:),
INTENT(IN) :: PTS
50 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
51 REAL,
DIMENSION(:),
INTENT(IN) :: PSFTH
52 REAL,
DIMENSION(:),
INTENT(IN) :: PSFTQ
53 REAL,
DIMENSION(:,:),
INTENT(IN):: PDIR_SW
55 REAL,
DIMENSION(:,:),
INTENT(IN):: PSCA_SW
57 REAL,
DIMENSION(:),
INTENT(IN) :: PLW
58 REAL,
DIMENSION(:),
INTENT(IN) :: PTRAD
59 REAL,
DIMENSION(:,:),
INTENT(IN):: PDIR_ALB
60 REAL,
DIMENSION(:,:),
INTENT(IN):: PSCA_ALB
61 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIS
62 REAL,
DIMENSION(:),
INTENT(IN) :: PSFZON
63 REAL,
DIMENSION(:),
INTENT(IN) :: PSFMER
69 REAL(KIND=JPRB) :: ZHOOK_HANDLE
73 IF (
lhook)
CALL dr_hook(
'DIAG_SURF_BUDGET_WATER',0,zhook_handle)
74 iswb =
SIZE(pdir_sw,2)
79 d%XSWBD(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb)
80 d%XSWBU(:,jswb) = pdir_sw(:,jswb) * pdir_alb(:,jswb) + psca_sw(:,jswb) * psca_alb(:,jswb)
86 d%XSWD(:)=d%XSWD(:)+d%XSWBD(:,jswb)
87 d%XSWU(:)=d%XSWU(:)+d%XSWBU(:,jswb)
93 d%XLWU(:) = pemis(:)*
xstefan*ptrad(:)**4 + (1.-pemis(:))*plw(:)
97 d%XRN = d%XSWD(:) - d%XSWU(:) + d%XLWD(:) - d%XLWU(:)
106 d%XLE = psftq *
xlstt 107 d%XLEI = psftq *
xlstt 111 d%XLE = psftq *
xlvtt 119 d%XGFLUX = d%XRN - d%XH - d%XLE
126 IF (
lhook)
CALL dr_hook(
'DIAG_SURF_BUDGET_WATER',1,zhook_handle)
subroutine diag_surf_budget_water(D, PTT, PTS, PRHOA, PSFTH, PSFTQ, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD, PSFZON, PSFMER)