14 integer ngrid,nlay,nsrf
17 real masse0(ngrid,nlay),fm0(ngrid,nlay+1),pplev(ngrid,nlay+1)
18 real entr0(ngrid,nlay),rg
19 real tke(ngrid,nlay,nsrf)
20 real detr0(ngrid,nlay)
23 real masse(ngrid,nlay),fm(ngrid,nlay+1)
28 real qa(ngrid,nlay),detr(ngrid,nlay),wqd(ngrid,nlay+1)
39 if (
prt_level.ge.1) print*,
'Q2 THERMCEL_DQ 0'
43 detr0(:,k)=fm0(:,k)-fm0(:,k+1)+entr0(:,k)
44 masse0(:,k)=(pplev(:,k)-pplev(:,k+1))/rg
49 masse(:,1)=0.5*masse0(:,1)
50 entr(:,1)=0.5*entr0(:,1)
51 detr(:,1)=0.5*detr0(:,1)
54 masse(:,k+1)=0.5*(masse0(:,k)+masse0(:,k+1))
55 entr(:,k+1)=0.5*(entr0(:,k)+entr0(:,k+1))
56 detr(:,k+1)=0.5*(detr0(:,k)+detr0(:,k+1))
57 fm(:,k+1)=fm(:,k)+entr(:,k)-detr(:,k)
75 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. &
76 & 1.e-5*masse(ig,k))
then
77 qa(ig,k)=(fm(ig,k)*qa(ig,k-1)+entr(ig,k)*q(ig,k)) &
78 & /(fm(ig,k+1)+detr(ig,k))
82 if (qa(ig,k).lt.0.)
then
85 if (q(ig,k).lt.0.)
then
95 wqd(ig,k)=fm(ig,k)*q(ig,k)
96 if (wqd(ig,k).lt.0.)
then
110 q(ig,k)=q(ig,k)+(detr(ig,k)*qa(ig,k)-entr(ig,k)*q(ig,k) &
111 & -wqd(ig,k)+wqd(ig,k+1)) &
112 & *ptimestep/masse(ig,k)
subroutine thermcell_dtke(ngrid, nlay, nsrf, ptimestep, fm0, entr0, rg, pplev, tke)
!FH On elimine toutes les clefs physiques dans la dynamique prt_level