7 pdir_sw, psca_sw, plw, &
8 pdir_alb, psca_alb, plwup, &
11 pswd, pswu, pswbd, pswbu, plwd, plwu, &
36 USE yomhook
,ONLY : lhook, dr_hook
37 USE parkind1
,ONLY : jprb
43 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
44 REAL,
DIMENSION(:),
INTENT(IN) :: psfth
45 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_sw
47 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_sw
49 REAL,
DIMENSION(:),
INTENT(IN) :: plw
50 REAL,
DIMENSION(:),
INTENT(IN) :: plwup
51 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_alb
52 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_alb
53 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon
54 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer
56 REAL,
DIMENSION(:),
INTENT(IN) :: ple
58 REAL,
DIMENSION(:),
INTENT(OUT):: prn
59 REAL,
DIMENSION(:),
INTENT(OUT):: ph
60 REAL,
DIMENSION(:),
INTENT(OUT):: pgflux
62 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbd
63 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbu
64 REAL,
DIMENSION(:),
INTENT(OUT):: pswd
65 REAL,
DIMENSION(:),
INTENT(OUT):: pswu
66 REAL,
DIMENSION(:),
INTENT(OUT):: plwd
67 REAL,
DIMENSION(:),
INTENT(OUT):: plwu
69 REAL,
DIMENSION(:),
INTENT(OUT):: pfmu
70 REAL,
DIMENSION(:),
INTENT(OUT):: pfmv
76 REAL(KIND=JPRB) :: zhook_handle
80 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_IDEAL',0,zhook_handle)
81 iswb =
SIZE(pdir_sw,2)
86 pswbd(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb)
87 pswbu(:,jswb) = pdir_sw(:,jswb) * pdir_alb(:,jswb) + psca_sw(:,jswb) * psca_alb(:,jswb)
93 pswd(:)=pswd(:)+pswbd(:,jswb)
94 pswu(:)=pswu(:)+pswbu(:,jswb)
104 prn = pswd(:) - pswu(:) + plwd(:) - plwu(:)
112 pgflux = prn - ph - ple
119 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_IDEAL',1,zhook_handle)
subroutine diag_surf_budget_ideal(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)