18 |
use suphec_m, only: rcpd, rcpv, rv |
use suphec_m, only: rcpd, rcpv, rv |
19 |
|
|
20 |
! inputs: |
! inputs: |
21 |
integer, intent(in):: icb(:), inb(:) ! (ncum) |
|
22 |
|
integer, intent(in):: icb(:) ! (ncum) {2 <= icb <= nl - 3} |
23 |
|
|
24 |
|
integer, intent(in):: inb(:) ! (ncum) |
25 |
|
! first model level above the level of neutral buoyancy of the |
26 |
|
! parcel (1 <= inb <= nl - 1) |
27 |
|
|
28 |
real, intent(in):: t(klon, klev), rr(klon, klev), rs(klon, klev) |
real, intent(in):: t(klon, klev), rr(klon, klev), rs(klon, klev) |
29 |
real u(klon, klev), v(klon, klev) |
real u(klon, klev), v(klon, klev) |
30 |
real, intent(in):: h(klon, klev) |
real, intent(in):: h(klon, klev) |
37 |
! outputs: |
! outputs: |
38 |
real ment(klon, klev, klev), qent(klon, klev, klev) |
real ment(klon, klev, klev), qent(klon, klev, klev) |
39 |
real uent(klon, klev, klev), vent(klon, klev, klev) |
real uent(klon, klev, klev), vent(klon, klev, klev) |
40 |
integer nent(klon, klev) |
integer, intent(out):: nent(:, 2:) ! (ncum, 2:nl - 1) |
41 |
real sij(klon, klev, klev), elij(klon, klev, klev) |
real sij(klon, klev, klev), elij(klon, klev, klev) |
42 |
real ments(klon, klev, klev), qents(klon, klev, klev) |
real ments(klon, klev, klev), qents(klon, klev, klev) |
43 |
|
|
58 |
|
|
59 |
! INITIALIZE VARIOUS ARRAYS USED IN THE COMPUTATIONS |
! INITIALIZE VARIOUS ARRAYS USED IN THE COMPUTATIONS |
60 |
|
|
61 |
do j = 1, nl |
nent = 0 |
|
do i = 1, ncum |
|
|
nent(i, j) = 0 |
|
|
end do |
|
|
end do |
|
62 |
|
|
63 |
do j = 1, nl |
do j = 1, nl |
64 |
do k = 1, nl |
do k = 1, nl |
127 |
end if |
end if |
128 |
sij(il, i, j) = amax1(0.0, sij(il, i, j)) |
sij(il, i, j) = amax1(0.0, sij(il, i, j)) |
129 |
sij(il, i, j) = amin1(1.0, sij(il, i, j)) |
sij(il, i, j) = amin1(1.0, sij(il, i, j)) |
130 |
endif ! new |
endif |
131 |
end do |
end do |
132 |
end do |
end do |
133 |
|
|
135 |
! at that level and calculate detrained air flux and properties |
! at that level and calculate detrained air flux and properties |
136 |
|
|
137 |
do il = 1, ncum |
do il = 1, ncum |
138 |
if ((i >= icb(il)).and.(i <= inb(il)).and.(nent(il, i) == 0)) then |
if (i >= icb(il) .and. i <= inb(il)) then |
139 |
ment(il, i, i) = m(il, i) |
if (nent(il, i) == 0) then |
140 |
qent(il, i, i) = rr(il, minorig) - ep(il, i) * clw(il, i) |
ment(il, i, i) = m(il, i) |
141 |
uent(il, i, i) = u(il, minorig) |
qent(il, i, i) = rr(il, minorig) - ep(il, i) * clw(il, i) |
142 |
vent(il, i, i) = v(il, minorig) |
uent(il, i, i) = u(il, minorig) |
143 |
elij(il, i, i) = clw(il, i) |
vent(il, i, i) = v(il, minorig) |
144 |
sij(il, i, i) = 0.0 |
elij(il, i, i) = clw(il, i) |
145 |
|
sij(il, i, i) = 0.0 |
146 |
|
end if |
147 |
end if |
end if |
148 |
end do |
end do |
149 |
end do |
end do |