7 PDIR_SW, PSCA_SW, PLW, &
8 PDIR_ALB, PSCA_ALB, PLWUP, &
11 PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, &
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)