1 |
|
|
2 |
SUBROUTINE cv3_undilute1(len,nd,t,q,qs,gz,plcl,p,nk,icb & |
SUBROUTINE cv30_undilute1(len,nd,t,q,qs,gz,plcl,p,nk,icb & |
3 |
,tp,tvp,clw,icbs) |
,tp,tvp,clw,icbs) |
4 |
use cv3_param_m |
use cv30_param_m |
5 |
use cvthermo |
use cvthermo |
6 |
implicit none |
implicit none |
7 |
|
|
33 |
! local variables: |
! local variables: |
34 |
integer i, k |
integer i, k |
35 |
integer icb1(len), icbs(len), icbsmax2 ! convect3 |
integer icb1(len), icbs(len), icbsmax2 ! convect3 |
36 |
real tg, qg, alv, s, ahg, tc, denom, es, rg |
real tg, qg, alv, s, ahg, tc, denom, es |
37 |
real ah0(len), cpp(len) |
real ah0(len), cpp(len) |
38 |
real tnk(len), qnk(len), gznk(len), ticb(len), gzicb(len) |
real tnk(len), qnk(len), gznk(len), ticb(len), gzicb(len) |
39 |
real qsicb(len) ! convect3 |
real qsicb(len) ! convect3 |
176 |
clw(i,icbs(i))=qnk(i)-qg |
clw(i,icbs(i))=qnk(i)-qg |
177 |
clw(i,icbs(i))=max(0.0,clw(i,icbs(i))) |
clw(i,icbs(i))=max(0.0,clw(i,icbs(i))) |
178 |
|
|
|
rg=qg/(1.-qnk(i)) |
|
|
! ori tvp(i,icb(i))=tp(i,icb(i))*(1.+rg*epsi) |
|
179 |
! convect3: (qg utilise au lieu du vrai mixing ratio rg) |
! convect3: (qg utilise au lieu du vrai mixing ratio rg) |
180 |
tvp(i,icbs(i))=tp(i,icbs(i))*(1.+qg/eps-qnk(i)) !whole thing |
tvp(i,icbs(i))=tp(i,icbs(i))*(1.+qg/eps-qnk(i)) !whole thing |
181 |
|
|
196 |
! |
! |
197 |
! * the routine above computes tvp from minorig to icbs (included). |
! * the routine above computes tvp from minorig to icbs (included). |
198 |
! |
! |
199 |
! * to compute buoybase (in cv3_trigger.F), both tvp(icb) and tvp(icb+1) |
! * to compute buoybase (in cv30_trigger.F), both tvp(icb) and tvp(icb+1) |
200 |
! must be known. This is the case if icbs=icb+1, but not if icbs=icb. |
! must be known. This is the case if icbs=icb+1, but not if icbs=icb. |
201 |
! |
! |
202 |
! * therefore, in the case icbs=icb, we compute tvp at level icb+1 |
! * therefore, in the case icbs=icb, we compute tvp at level icb+1 |
203 |
! (tvp at other levels will be computed in cv3_undilute2.F) |
! (tvp at other levels will be computed in cv30_undilute2.F) |
204 |
! |
! |
205 |
|
|
206 |
do i=1,len |
do i=1,len |
273 |
clw(i,icb(i)+1)=qnk(i)-qg |
clw(i,icb(i)+1)=qnk(i)-qg |
274 |
clw(i,icb(i)+1)=max(0.0,clw(i,icb(i)+1)) |
clw(i,icb(i)+1)=max(0.0,clw(i,icb(i)+1)) |
275 |
|
|
|
rg=qg/(1.-qnk(i)) |
|
|
! ori tvp(i,icb(i))=tp(i,icb(i))*(1.+rg*epsi) |
|
276 |
! convect3: (qg utilise au lieu du vrai mixing ratio rg) |
! convect3: (qg utilise au lieu du vrai mixing ratio rg) |
277 |
tvp(i,icb(i)+1)=tp(i,icb(i)+1)*(1.+qg/eps-qnk(i)) !whole thing |
tvp(i,icb(i)+1)=tp(i,icb(i)+1)*(1.+qg/eps-qnk(i)) !whole thing |
278 |
|
|