29 |
! mais on garde la possibilité de changer si besoin est (jusqu'à présent |
! mais on garde la possibilité de changer si besoin est (jusqu'à présent |
30 |
! la forme de HB avec le 1er niveau modele etait conservee) |
! la forme de HB avec le 1er niveau modele etait conservee) |
31 |
|
|
32 |
USE dimphy, ONLY: klev, klon, max |
USE dimphy, ONLY: klev, klon |
33 |
USE suphec_m, ONLY: rcpd, rd, retv, rg, rkappa, rlvtt, rtt, rv |
USE suphec_m, ONLY: rcpd, rd, retv, rg, rkappa, rlvtt, rtt, rv |
34 |
USE yoethf_m, ONLY: r2es, rvtmp2 |
USE yoethf_m, ONLY: r2es, rvtmp2 |
35 |
USE fcttre, ONLY: foeew |
USE fcttre, ONLY: foeew |
198 |
REAL zm(klon) |
REAL zm(klon) |
199 |
! current level height + one level up |
! current level height + one level up |
200 |
REAL zp(klon) |
REAL zp(klon) |
201 |
REAL zcor, zdelta, zcvm5 |
REAL zcor, zcvm5 |
202 |
|
|
203 |
REAL fac, pblmin, zmzp, term |
REAL fac, pblmin, zmzp, term |
204 |
|
|
520 |
if (.not. Zsat(i)) then |
if (.not. Zsat(i)) then |
521 |
T2 = T2m(i) * s(i, k) |
T2 = T2m(i) * s(i, k) |
522 |
! thermodyn functions |
! thermodyn functions |
523 |
zdelta=MAX(0., SIGN(1., RTT - T2)) |
qqsat= r2es * FOEEW(T2, RTT >= T2) / pplay(i, k) |
|
qqsat= r2es * FOEEW(T2, zdelta) / pplay(i, k) |
|
524 |
qqsat=MIN(0.5, qqsat) |
qqsat=MIN(0.5, qqsat) |
525 |
zcor=1./(1.-retv*qqsat) |
zcor=1./(1.-retv*qqsat) |
526 |
qqsat=qqsat*zcor |
qqsat=qqsat*zcor |