7 |
SUBROUTINE cv30_yield(icb, inb, delt, t, rr, u, v, gz, p, ph, h, hp, lv, & |
SUBROUTINE cv30_yield(icb, inb, delt, t, rr, u, v, gz, p, ph, h, hp, lv, & |
8 |
cpn, th, ep, clw, m, tp, mp, qp, up, vp, wt, water, evap, b, ment, & |
cpn, th, ep, clw, m, tp, mp, qp, up, vp, wt, water, evap, b, ment, & |
9 |
qent, uent, vent, nent, elij, sig, tv, tvp, iflag, precip, VPrecip, & |
qent, uent, vent, nent, elij, sig, tv, tvp, iflag, precip, VPrecip, & |
10 |
ft, fr, fu, fv, upwd, dnwd, dnwd0, ma, mike, tls, tps, qcondc) |
ft, fr, fu, fv, upwd, dnwd, ma, mike, tls, tps, qcondc) |
11 |
|
|
12 |
! Tendencies, precipitation, variables of interface with other |
! Tendencies, precipitation, variables of interface with other |
13 |
! processes, etc. |
! processes, etc. |
41 |
real ep(klon, klev), clw(klon, klev) |
real ep(klon, klev), clw(klon, klev) |
42 |
real m(klon, klev) |
real m(klon, klev) |
43 |
real tp(klon, klev) |
real tp(klon, klev) |
44 |
real, intent(in):: mp(:, :) ! (ncum, nl) |
|
45 |
|
real, intent(in):: mp(:, :) ! (ncum, nl) Mass flux of the |
46 |
|
! unsaturated downdraft, defined positive downward, in kg m-2 |
47 |
|
! s-1. M_p in Emanuel (1991 928). |
48 |
|
|
49 |
real, intent(in):: qp(:, :), up(:, :) ! (klon, klev) |
real, intent(in):: qp(:, :), up(:, :) ! (klon, klev) |
50 |
real, intent(in):: vp(:, 2:) ! (ncum, 2:nl) |
real, intent(in):: vp(:, 2:) ! (ncum, 2:nl) |
51 |
real, intent(in):: wt(:, :) ! (ncum, nl - 1) |
real, intent(in):: wt(:, :) ! (ncum, nl - 1) |
64 |
real VPrecip(klon, klev + 1) |
real VPrecip(klon, klev + 1) |
65 |
real ft(klon, klev), fr(klon, klev), fu(klon, klev), fv(klon, klev) |
real ft(klon, klev), fr(klon, klev), fu(klon, klev), fv(klon, klev) |
66 |
real upwd(klon, klev), dnwd(klon, klev) |
real upwd(klon, klev), dnwd(klon, klev) |
|
real dnwd0(klon, klev) |
|
67 |
real ma(klon, klev) |
real ma(klon, klev) |
68 |
real mike(klon, klev) |
real mike(klon, klev) |
69 |
real tls(klon, klev), tps(klon, klev) |
real tls(klon, klev), tps(klon, klev) |
157 |
* wt(il, 1) * (rcw - rcpd) * water(il, 2) * (t(il, 2) - t(il, 1)) & |
* wt(il, 1) * (rcw - rcpd) * water(il, 2) * (t(il, 2) - t(il, 1)) & |
158 |
* work(il) / cpn(il, 1) |
* work(il) / cpn(il, 1) |
159 |
|
|
160 |
!jyg1 Correction pour mieux conserver l'eau (conformite avec CONVECT4.3) |
! jyg Correction pour mieux conserver l'eau (conformite avec CONVECT4.3) |
161 |
! (sb: pour l'instant, on ne fait que le chgt concernant rg, pas evap) |
! (sb: pour l'instant, on ne fait que le chgt concernant rg, pas evap) |
162 |
fr(il, 1) = 0.01 * rg * mp(il, 2) * (qp(il, 2) - rr(il, 1)) & |
fr(il, 1) = 0.01 * rg * mp(il, 2) * (qp(il, 2) - rr(il, 1)) & |
163 |
* work(il) + sigd * 0.5 * (evap(il, 1) + evap(il, 2)) |
* work(il) + sigd * 0.5 * (evap(il, 1) + evap(il, 2)) |
424 |
enddo |
enddo |
425 |
enddo |
enddo |
426 |
|
|
|
do i = 1, nl |
|
|
do il = 1, ncum |
|
|
dnwd0(il, i) = - mp(il, i) |
|
|
enddo |
|
|
enddo |
|
|
do i = nl + 1, klev |
|
|
do il = 1, ncum |
|
|
dnwd0(il, i) = 0. |
|
|
enddo |
|
|
enddo |
|
|
|
|
427 |
do i = 1, nl |
do i = 1, nl |
428 |
do il = 1, ncum |
do il = 1, ncum |
429 |
if (i >= icb(il) .and. i <= inb(il)) then |
if (i >= icb(il) .and. i <= inb(il)) then |