8 pdir_sw, psca_sw, plw, &
9 pdir_alb,psca_alb,palb_ice,pemis, ptrad,&
10 psfzon, psfzon_ice, psfmer, psfmer_ice, &
11 ohandle_sic, psic, ptice, &
12 prn, ph, ple, ple_ice, pgflux, &
13 pswd, pswu, pswbd, pswbu, plwd, plwu, &
14 pfmu, pfmv, pevap, psubl, &
15 prn_ice, ph_ice, pgflux_ice, &
16 pswu_ice, pswbu_ice, plwu_ice, &
48 USE modd_csts, ONLY : xstefan, xlstt, xlvtt
52 USE yomhook
,ONLY : lhook, dr_hook
53 USE parkind1
,ONLY : jprb
60 REAL,
INTENT(IN) :: ptt
61 REAL,
DIMENSION(:),
INTENT(IN) :: psst
62 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
63 REAL,
DIMENSION(:),
INTENT(IN) :: psfth
64 REAL,
DIMENSION(:),
INTENT(IN) :: psfth_ice
66 REAL,
DIMENSION(:),
INTENT(IN) :: psftq
67 REAL,
DIMENSION(:),
INTENT(IN) :: psftq_ice
69 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_sw
71 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_sw
73 REAL,
DIMENSION(:),
INTENT(IN) :: plw
75 REAL,
DIMENSION(:,:),
INTENT(IN):: pdir_alb
76 REAL,
DIMENSION(:,:),
INTENT(IN):: psca_alb
77 REAL,
DIMENSION(:) ,
INTENT(IN):: palb_ice
78 REAL,
DIMENSION(:),
INTENT(IN) :: pemis
79 REAL,
DIMENSION(:),
INTENT(IN) :: ptrad
81 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon
82 REAL,
DIMENSION(:),
INTENT(IN) :: psfzon_ice
83 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer
84 REAL,
DIMENSION(:),
INTENT(IN) :: psfmer_ice
86 LOGICAL,
INTENT(IN) :: ohandle_sic
87 REAL,
DIMENSION(:),
INTENT(IN) :: psic
88 REAL,
DIMENSION(:),
INTENT(IN) :: ptice
90 REAL,
DIMENSION(:),
INTENT(OUT):: prn
91 REAL,
DIMENSION(:),
INTENT(OUT):: ph
92 REAL,
DIMENSION(:),
INTENT(OUT):: ple
93 REAL,
DIMENSION(:),
INTENT(OUT):: ple_ice
94 REAL,
DIMENSION(:),
INTENT(OUT):: pgflux
96 REAL,
DIMENSION(:),
INTENT(OUT):: pswd
97 REAL,
DIMENSION(:),
INTENT(OUT):: pswu
98 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbd
99 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbu
100 REAL,
DIMENSION(:),
INTENT(OUT):: plwd
101 REAL,
DIMENSION(:),
INTENT(OUT):: plwu
103 REAL,
DIMENSION(:),
INTENT(OUT):: pfmu
104 REAL,
DIMENSION(:),
INTENT(OUT):: pfmv
105 REAL,
DIMENSION(:),
INTENT(OUT):: pevap
106 REAL,
DIMENSION(:),
INTENT(OUT):: psubl
108 REAL,
DIMENSION(:),
INTENT(OUT):: prn_ice
109 REAL,
DIMENSION(:),
INTENT(OUT):: ph_ice
110 REAL,
DIMENSION(:),
INTENT(OUT):: pgflux_ice
112 REAL,
DIMENSION(:),
INTENT(OUT):: pswu_ice
113 REAL,
DIMENSION(:,:),
INTENT(OUT):: pswbu_ice
114 REAL,
DIMENSION(:),
INTENT(OUT):: plwu_ice
115 REAL,
DIMENSION(:),
INTENT(OUT):: pfmu_ice
116 REAL,
DIMENSION(:),
INTENT(OUT):: pfmv_ice
123 REAL(KIND=JPRB) :: zhook_handle
126 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_SEA',0,zhook_handle)
128 iswb =
SIZE(pdir_sw,2)
133 pswbd(:,jswb) = pdir_sw(:,jswb) + psca_sw(:,jswb)
134 pswbu(:,jswb) = pdir_sw(:,jswb) * pdir_alb(:,jswb) + psca_sw(:,jswb) * psca_alb(:,jswb)
140 pswd(:)=pswd(:)+pswbd(:,jswb)
141 pswu(:)=pswu(:)+pswbu(:,jswb)
147 plwu(:)=pemis(:)*xstefan*ptrad(:)**4 + (1.-pemis(:))*plw(:)
151 prn(:) = pswd(:) - pswu(:) + plwd(:) - plwu(:)
153 IF (.NOT.ohandle_sic)
THEN
163 ple_ice= psftq * xlstt
188 pswbu_ice(:,jswb) = (pdir_sw(:,jswb) + psca_sw(:,jswb)) * palb_ice(:)
193 pswu_ice(:)=pswu_ice(:)+pswbu_ice(:,jswb)
198 plwu_ice(:)=xemiswatice*xstefan*ptice(:)**4 + (1.-xemiswatice)*plw(:)
202 prn_ice(:) = pswd(:) - pswu_ice(:) + plwd(:) - plwu_ice(:)
206 ph = (1 - psic) * psfth + psic * psfth_ice
211 ple = (1 - psic) * psftq * xlvtt + psic * psftq_ice * xlstt
212 ple_ice = psftq_ice * xlstt
213 pevap = (1 - psic) * psftq + psic * psftq_ice
214 psubl = psic * psftq_ice
218 pgflux_ice = prn_ice - ph_ice - ple_ice
222 pfmu = (1 - psic) * psfzon + psic * psfzon_ice
223 pfmu_ice = psfzon_ice
224 pfmv = (1 - psic) * psfmer + psic * psfmer_ice
225 pfmv_ice = psfmer_ice
231 pgflux = prn - ph - ple
234 IF (lhook) CALL dr_hook(
'DIAG_SURF_BUDGET_SEA',1,zhook_handle)
subroutine diag_surf_budget_sea(PTT, PSST, PRHOA, PSFTH, PSFTH_ICE, PSFTQ, PSFTQ_ICE, PDIR_SW, PSCA_SW, PLW, PDIR_ALB, PSCA_ALB, PALB_ICE, PEMIS, PTRAD, PSFZON, PSFZON_ICE, PSFMER, PSFMER_ICE, OHANDLE_SIC, PSIC, PTICE, PRN, PH, PLE, PLE_ICE, PGFLUX, PSWD, PSWU, PSWBD, PSWBU, PLWD, PLWU, PFMU, PFMV, PEVAP, PSUBL, PRN_ICE, PH_ICE, PGFLUX_ICE, PSWU_ICE, PSWBU_ICE, PLWU_ICE, PFMU_ICE, PFMV_ICE)