/[lmdze]/trunk/Sources/phylmd/CV30_routines/cv30_undilute1.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/CV30_routines/cv30_undilute1.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/phylmd/CV3_routines/cv3_undilute1.f90 revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC trunk/Sources/phylmd/CV30_routines/cv30_undilute1.f revision 185 by guez, Wed Mar 16 15:04:46 2016 UTC
# Line 1  Line 1 
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    
# Line 20  Line 20 
20    
21    
22  ! inputs:  ! inputs:
23        integer len, nd        integer, intent(in):: len, nd
24        integer nk(len), icb(len)        integer nk(len), icb(len)
25        real, intent(in):: t(len,nd)        real, intent(in):: t(len,nd)
26        real q(len,nd), qs(len,nd), gz(len,nd)        real, intent(in):: q(len,nd), qs(len,nd), gz(len,nd)
27        real p(len,nd)        real, intent(in):: p(len,nd)
28        real plcl(len) ! convect3        real plcl(len) ! convect3
29    
30  ! outputs:  ! outputs:
# Line 33  Line 33 
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
# Line 176  Line 176 
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    
# Line 198  Line 196 
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
# Line 275  Line 273 
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    

Legend:
Removed from v.76  
changed lines
  Added in v.185

  ViewVC Help
Powered by ViewVC 1.1.21