7 pdir_sw, psca_sw, plw, &
8 pdir_alb, psca_alb, pemis, ptrad, &
10 prn, ph, ple, plei, pgflux, &
11 pswd, pswu, pswbd, pswbu, plwd, plwu, &
12 pfmu, pfmv, pevap, psubl )
41 USE modd_csts, ONLY : xstefan, xlstt, xlvtt, xcpd
45 USE yomhook
,ONLY : lhook, dr_hook
46 USE parkind1
,ONLY : jprb
52 REAL,
INTENT(IN) :: ptt
53 REAL,
DIMENSION(:),
INTENT(IN) :: pts
54 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
55 REAL,
DIMENSION(:),
INTENT(IN) :: psfth
56 REAL,
DIMENSION(:),
INTENT(IN) :: psftq
57 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_sw
59 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_sw
61 REAL,
DIMENSION(:),
INTENT(IN) :: plw
62 REAL,
DIMENSION(:),
INTENT(IN) :: ptrad
63 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_alb
64 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_alb
65 REAL,
DIMENSION(:),
INTENT(IN) :: pemis
66 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon
67 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer
69 REAL,
DIMENSION(:),
INTENT(OUT):: prn
70 REAL,
DIMENSION(:),
INTENT(OUT):: ph
71 REAL,
DIMENSION(:),
INTENT(OUT):: ple
72 REAL,
DIMENSION(:),
INTENT(OUT):: plei
73 REAL,
DIMENSION(:),
INTENT(OUT):: pgflux
74 REAL,
DIMENSION(:),
INTENT(OUT):: pevap
75 REAL,
DIMENSION(:),
INTENT(OUT):: psubl
77 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbd
78 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbu
79 REAL,
DIMENSION(:),
INTENT(OUT):: pswd
80 REAL,
DIMENSION(:),
INTENT(OUT):: pswu
81 REAL,
DIMENSION(:),
INTENT(OUT):: plwd
82 REAL,
DIMENSION(:),
INTENT(OUT):: plwu
84 REAL,
DIMENSION(:),
INTENT(OUT):: pfmu
85 REAL,
DIMENSION(:),
INTENT(OUT):: pfmv
91 REAL(KIND=JPRB) :: zhook_handle
95 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_WATER',0,zhook_handle)
96 iswb =
SIZE(pdir_sw,2)
101 pswbd(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb)
102 pswbu(:,jswb) = pdir_sw(:,jswb) * pdir_alb(:,jswb) + psca_sw(:,jswb) * psca_alb(:,jswb)
108 pswd(:)=pswd(:)+pswbd(:,jswb)
109 pswu(:)=pswu(:)+pswbu(:,jswb)
115 plwu(:)=pemis(:)*xstefan*ptrad(:)**4 + (1.-pemis(:))*plw(:)
119 prn = pswd(:) - pswu(:) + plwd(:) - plwu(:)
141 pgflux = prn - ph - ple
148 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_WATER',1,zhook_handle)
subroutine diag_surf_budget_water(PTT, PTS, PRHOA, PSFTH, PSFTQ, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PEMIS, PTRAD, PSFZON, PSFMER, PRN, PH, PLE, PLEI, PGFLUX, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PEVAP, PSUBL)