14 |
! - vectorisation de la partie normalisation des flux (do 789) |
! - vectorisation de la partie normalisation des flux (do 789) |
15 |
|
|
16 |
use cv30_param_m, only: minorig, nl |
use cv30_param_m, only: minorig, nl |
|
use cv_thermo_m, only: cpd, cpv, rrv |
|
17 |
USE dimphy, ONLY: klev, klon |
USE dimphy, ONLY: klev, klon |
18 |
|
use suphec_m, only: rcpd, rcpv, rv |
19 |
|
|
20 |
! inputs: |
! inputs: |
21 |
integer, intent(in):: icb(:), inb(:) ! (ncum) |
integer, intent(in):: icb(:), inb(:) ! (ncum) |
22 |
real t(klon, klev), rr(klon, klev), rs(klon, klev) |
real, intent(in):: t(klon, klev), rr(klon, klev), rs(klon, klev) |
23 |
real u(klon, klev), v(klon, klev) |
real u(klon, klev), v(klon, klev) |
24 |
real h(klon, klev), lv(klon, klev), hp(klon, klev) |
real, intent(in):: h(klon, klev) |
25 |
|
real, intent(in):: lv(:, :) ! (klon, klev) |
26 |
|
real, intent(in):: hp(klon, klev) |
27 |
real ep(klon, klev), clw(klon, klev) |
real ep(klon, klev), clw(klon, klev) |
28 |
real m(klon, klev) ! input of convect3 |
real m(klon, klev) ! input of convect3 |
29 |
real sig(klon, klev) |
real sig(klon, klev) |
86 |
(j >= (icb(il) - 1)).and.(j <= inb(il)))then |
(j >= (icb(il) - 1)).and.(j <= inb(il)))then |
87 |
|
|
88 |
rti = rr(il, 1) - ep(il, i) * clw(il, i) |
rti = rr(il, 1) - ep(il, i) * clw(il, i) |
89 |
bf2 = 1. + lv(il, j) * lv(il, j) * rs(il, j) / (rrv & |
bf2 = 1. + lv(il, j) * lv(il, j) * rs(il, j) / (rv & |
90 |
* t(il, j) * t(il, j) * cpd) |
* t(il, j) * t(il, j) * rcpd) |
91 |
anum = h(il, j) - hp(il, i) + (cpv - cpd) * t(il, j) * (rti & |
anum = h(il, j) - hp(il, i) + (rcpv - rcpd) * t(il, j) * (rti & |
92 |
- rr(il, j)) |
- rr(il, j)) |
93 |
denom = h(il, i) - hp(il, i) + (cpd - cpv) * (rr(il, i) & |
denom = h(il, i) - hp(il, i) + (rcpd - rcpv) * (rr(il, i) & |
94 |
- rti) * t(il, j) |
- rti) * t(il, j) |
95 |
dei = denom |
dei = denom |
96 |
if(abs(dei) < 0.01)dei = 0.01 |
if(abs(dei) < 0.01)dei = 0.01 |
167 |
lwork(il) = (nent(il, i) /= 0) |
lwork(il) = (nent(il, i) /= 0) |
168 |
qp = rr(il, 1) - ep(il, i) * clw(il, i) |
qp = rr(il, 1) - ep(il, i) * clw(il, i) |
169 |
anum = h(il, i) - hp(il, i) - lv(il, i) * (qp - rs(il, i)) & |
anum = h(il, i) - hp(il, i) - lv(il, i) * (qp - rs(il, i)) & |
170 |
+ (cpv - cpd) * t(il, i) * (qp - rr(il, i)) |
+ (rcpv - rcpd) * t(il, i) * (qp - rr(il, i)) |
171 |
denom = h(il, i) - hp(il, i) + lv(il, i) * (rr(il, i) - qp) & |
denom = h(il, i) - hp(il, i) + lv(il, i) * (rr(il, i) - qp) & |
172 |
+ (cpd - cpv) * t(il, i) * (rr(il, i) - qp) |
+ (rcpd - rcpv) * t(il, i) * (rr(il, i) - qp) |
173 |
if(abs(denom) < 0.01)denom = 0.01 |
if(abs(denom) < 0.01)denom = 0.01 |
174 |
scrit(il) = anum / denom |
scrit(il) = anum / denom |
175 |
alt = qp - rs(il, i) + scrit(il) * (rr(il, i) - qp) |
alt = qp - rs(il, i) + scrit(il) * (rr(il, i) - qp) |