5 $ , tops, topl, sols, soll, sens
6 $ , evap, rain_fall, snow_fall, ts
7 $ , d_etp_tot, d_qt_tot, d_ec_tot
8 $ , fs_bound, fq_bound)
52 #include "dimensions.h"
61 real tops(klon),topl(klon),sols(klon),soll(klon)
62 real sens(klon),evap(klon),rain_fall(klon),snow_fall(klon)
64 REAL d_etp_tot, d_qt_tot, d_ec_tot
66 REAL fs_bound, fq_bound
69 real stops,stopl,ssols,ssoll
70 real ssens,sfront,slat
71 real airetot, zcpvap, zcwat, zcice
72 REAL rain_fall_tot, snow_fall_tot, evap_tot
110 $ + ( evap(
i)*zcpvap-rain_fall(
i)*zcwat-snow_fall(
i)*zcice
113 rain_fall_tot = rain_fall_tot + rain_fall(
i)*
airephy(
i)
114 snow_fall_tot = snow_fall_tot + snow_fall(
i)*
airephy(
i)
124 rain_fall_tot = rain_fall_tot/
airetot
125 snow_fall_tot = snow_fall_tot/
airetot
127 slat = rlvtt * rain_fall_tot + rlstt * snow_fall_tot
129 fs_bound = stops-stopl - (ssols+ssoll)+ssens+sfront
132 fq_bound = evap_tot - rain_fall_tot -snow_fall_tot
134 IF (iprt.ge.1)
write(6,6666)
135 $ tit, pas, fs_bound, d_etp_tot, fq_bound, d_qt_tot
137 IF (iprt.ge.1)
write(6,6668)
138 $ tit, pas, d_etp_tot+d_ec_tot-fs_bound, d_qt_tot-fq_bound
140 IF (iprt.ge.2)
write(6,6667)
141 $ tit, pas, stops,stopl,ssols,ssoll,ssens,slat,evap_tot
142 $ ,rain_fall_tot+snow_fall_tot
146 6666
format(
'Phys. Flux Budget ',a15,1i6,2f8.2,2(1pe13.5))
147 6667
format(
'Phys. Boundary Flux ',a15,1i6,6f8.2,2(1pe13.5))
148 6668
format(
'Phys. Total Budget ',a15,1i6,f8.2,2(1pe13.5))
153 SUBROUTINE diagetpq(airephy,tit,iprt,idiag,idiag2,dtime
155 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec)
215 #include "dimensions.h"
223 INTEGER iprt,idiag, idiag2
229 REAL d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec
233 REAL h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot
234 . , h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot
246 REAL zairm(klon,
klev)
251 REAL zh_dair_col(klon)
252 REAL zh_qw_col(klon), zh_ql_col(klon), zh_qs_col(klon)
254 REAL d_h_dair, d_h_qw, d_h_ql, d_h_qs
256 REAL airetot, zcpvap, zcwat, zcice
267 REAL h_vcol_pre(ndiag), h_dair_pre(ndiag), h_qw_pre(ndiag)
268 $ , h_ql_pre(ndiag), h_qs_pre(ndiag), qw_pre(ndiag)
269 $ , ql_pre(ndiag), qs_pre(ndiag) , ec_pre(ndiag)
270 SAVE h_vcol_pre, h_dair_pre, h_qw_pre, h_ql_pre
271 $ , h_qs_pre, qw_pre, ql_pre, qs_pre , ec_pre
279 zairm(
i,
k) = (paprs(
i,
k)-paprs(
i,
k+1))/rg
304 zqw_col(
i) = zqw_col(
i) +
q(
i,
k)*zairm(
i,
k)
305 zql_col(
i) = zql_col(
i) + ql(
i,
k)*zairm(
i,
k)
306 zqs_col(
i) = zqs_col(
i) + qs(
i,
k)*zairm(
i,
k)
308 zec_col(
i) = zec_col(
i)
309 $ +0.5*(
u(
i,
k)**2+
v(
i,
k)**2)*zairm(
i,
k)
311 zh_dair_col(
i) = zh_dair_col(
i)
312 $ + rcpd*(1.-
q(
i,
k)-ql(
i,
k)-qs(
i,
k))*zairm(
i,
k)*t(
i,
k)
313 zh_qw_col(
i) = zh_qw_col(
i)
314 $ + zcpvap*
q(
i,
k)*zairm(
i,
k)*t(
i,
k)
315 zh_ql_col(
i) = zh_ql_col(
i)
316 $ + zcwat*ql(
i,
k)*zairm(
i,
k)*t(
i,
k)
317 $ - rlvtt*ql(
i,
k)*zairm(
i,
k)
318 zh_qs_col(
i) = zh_qs_col(
i)
319 $ + zcice*qs(
i,
k)*zairm(
i,
k)*t(
i,
k)
320 $ - rlstt*qs(
i,
k)*zairm(
i,
k)
343 h_dair_tot = h_dair_tot + zh_dair_col(
i)*
airephy(
i)
344 h_qw_tot = h_qw_tot + zh_qw_col(
i)*
airephy(
i)
345 h_ql_tot = h_ql_tot + zh_ql_col(
i)*
airephy(
i)
346 h_qs_tot = h_qs_tot + zh_qs_col(
i)*
airephy(
i)
354 h_dair_tot = h_dair_tot/
airetot
359 h_vcol_tot = h_dair_tot+h_qw_tot+h_ql_tot+h_qs_tot
367 IF ( (idiag2.gt.0) .and. (pas(idiag2) .ne. 0) )
THEN
368 d_h_vcol = (h_vcol_tot - h_vcol_pre(idiag2) )/
dtime
369 d_h_dair = (h_dair_tot- h_dair_pre(idiag2))/
dtime
370 d_h_qw = (h_qw_tot - h_qw_pre(idiag2) )/
dtime
371 d_h_ql = (h_ql_tot - h_ql_pre(idiag2) )/
dtime
372 d_h_qs = (h_qs_tot - h_qs_pre(idiag2) )/
dtime
373 d_qw = (qw_tot - qw_pre(idiag2) )/
dtime
374 d_ql = (ql_tot - ql_pre(idiag2) )/
dtime
375 d_qs = (qs_tot - qs_pre(idiag2) )/
dtime
376 d_ec = (ec_tot - ec_pre(idiag2) )/
dtime
377 d_qt = d_qw + d_ql + d_qs
392 WRITE(6,9000) tit,pas(idiag),d_qt,d_qw,d_ql,d_qs
393 9000
format(
'Phys. Watter Mass Budget (kg/m2/s)',a15
395 WRITE(6,9001) tit,pas(idiag), d_h_vcol
396 9001
format(
'Phys. Enthalpy Budget (W/m2) ',a15,1i6,10(f8.2))
397 WRITE(6,9002) tit,pas(idiag), d_ec
398 9002
format(
'Phys. Cinetic Energy Budget (W/m2) ',a15,1i6,10(f8.2))
403 pas(idiag)=pas(idiag)+1
404 h_vcol_pre(idiag) = h_vcol_tot
405 h_dair_pre(idiag) = h_dair_tot
406 h_qw_pre(idiag) = h_qw_tot
407 h_ql_pre(idiag) = h_ql_tot
408 h_qs_pre(idiag) = h_qs_tot
409 qw_pre(idiag) = qw_tot
410 ql_pre(idiag) = ql_tot
411 qs_pre(idiag) = qs_tot
412 ec_pre(idiag) = ec_tot