7 pdir_sw, psca_sw, plw, &
8 pdir_alb, psca_alb, plwup, &
11 pswd, pswu, pswbd, pswbu, plwd, plwu, &
37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
44 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
45 REAL,
DIMENSION(:),
INTENT(IN) :: psfth
46 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_sw
48 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_sw
50 REAL,
DIMENSION(:),
INTENT(IN) :: plw
51 REAL,
DIMENSION(:),
INTENT(IN) :: plwup
52 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_alb
53 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_alb
54 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon
55 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer
57 REAL,
DIMENSION(:),
INTENT(IN) :: ple
59 REAL,
DIMENSION(:),
INTENT(OUT):: prn
60 REAL,
DIMENSION(:),
INTENT(OUT):: ph
61 REAL,
DIMENSION(:),
INTENT(OUT):: pgflux
63 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbd
64 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbu
65 REAL,
DIMENSION(:),
INTENT(OUT):: pswd
66 REAL,
DIMENSION(:),
INTENT(OUT):: pswu
67 REAL,
DIMENSION(:),
INTENT(OUT):: plwd
68 REAL,
DIMENSION(:),
INTENT(OUT):: plwu
70 REAL,
DIMENSION(:),
INTENT(OUT):: pfmu
71 REAL,
DIMENSION(:),
INTENT(OUT):: pfmv
77 REAL(KIND=JPRB) :: zhook_handle
81 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_FLAKE',0,zhook_handle)
82 iswb =
SIZE(pdir_sw,2)
87 pswbd(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb)
88 pswbu(:,jswb) = pdir_sw(:,jswb) * pdir_alb(:,jswb) + psca_sw(:,jswb) * psca_alb(:,jswb)
94 pswd(:)=pswd(:)+pswbd(:,jswb)
95 pswu(:)=pswu(:)+pswbu(:,jswb)
105 prn = pswd(:) - pswu(:) + plwd(:) - plwu(:)
113 pgflux = prn - ph - ple
120 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_FLAKE',1,zhook_handle)
subroutine diag_surf_budget_flake(PRHOA, PSFTH, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PLWUP, PSFZON, PSFMER, PLE, PRN, PH, PGFLUX, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV)