5 |
,th,tv,lv,cpn,ep,sigp,clw & |
,th,tv,lv,cpn,ep,sigp,clw & |
6 |
,m,ment,elij,delt,plcl & |
,m,ment,elij,delt,plcl & |
7 |
,mp,rp,up,vp,trap,wt,water,evap,b) |
,mp,rp,up,vp,trap,wt,water,evap,b) |
8 |
use cvparam3 |
use cv3_param_m |
9 |
use cvthermo |
use cvthermo |
10 |
use cvflag |
use cvflag |
11 |
implicit none |
implicit none |
13 |
|
|
14 |
|
|
15 |
! inputs: |
! inputs: |
16 |
integer ncum, nd, na, ntra, nloc |
integer, intent(in):: ncum, nd, na, ntra, nloc |
17 |
integer icb(nloc), inb(nloc) |
integer icb(nloc), inb(nloc) |
18 |
real, intent(in):: delt |
real, intent(in):: delt |
19 |
real plcl(nloc) |
real plcl(nloc) |
65 |
enddo |
enddo |
66 |
enddo |
enddo |
67 |
|
|
|
! do k=1,ntra |
|
|
! do i=1,nd |
|
|
! do il=1,ncum |
|
|
! trap(il,i,k)=tra(il,i,k) |
|
|
! enddo |
|
|
! enddo |
|
|
! enddo |
|
|
|
|
68 |
! |
! |
69 |
! *** check whether ep(inb)=0, if so, skip precipitating *** |
! *** check whether ep(inb)=0, if so, skip precipitating *** |
70 |
! *** downdraft calculation *** |
! *** downdraft calculation *** |
291 |
vp(il,i)=vp(il,i+1)*mp(il,i+1)+v(il,i)*(mp(il,i)-mp(il,i+1)) |
vp(il,i)=vp(il,i+1)*mp(il,i+1)+v(il,i)*(mp(il,i)-mp(il,i+1)) |
292 |
vp(il,i)=vp(il,i)/mp(il,i) |
vp(il,i)=vp(il,i)/mp(il,i) |
293 |
|
|
|
! do j=1,ntra |
|
|
! trap(il,i,j)=trap(il,i+1,j)*mp(il,i+1) |
|
|
!testmaf : +trap(il,i,j)*(mp(il,i)-mp(il,i+1)) |
|
|
! : +tra(il,i,j)*(mp(il,i)-mp(il,i+1)) |
|
|
! trap(il,i,j)=trap(il,i,j)/mp(il,i) |
|
|
! end do |
|
|
|
|
294 |
else |
else |
295 |
|
|
296 |
if(mp(il,i+1).gt.1.0e-16)then |
if(mp(il,i+1).gt.1.0e-16)then |
306 |
up(il,i)=up(il,i+1) |
up(il,i)=up(il,i+1) |
307 |
vp(il,i)=vp(il,i+1) |
vp(il,i)=vp(il,i+1) |
308 |
|
|
|
! do j=1,ntra |
|
|
! trap(il,i,j)=trap(il,i+1,j) |
|
|
! end do |
|
|
|
|
309 |
endif |
endif |
310 |
endif |
endif |
311 |
rp(il,i)=amin1(rp(il,i),rs(il,i)) |
rp(il,i)=amin1(rp(il,i),rs(il,i)) |