2 & zw2,zlev,
lmax,zmax,zmax0,zmix,wmax,lev_out)
12 INTEGER lalim(ngrid),lmin(ngrid)
17 REAL zw2(ngrid,nlay+1)
18 REAL zlev(ngrid,nlay+1)
35 do l=nlay,lalim(ig)+1,-1
36 if (zw2(ig,l).le.1.e-10)
then
45 if ( zw2(ig,nlay) > 1.e-10 )
then
46 print*,
'WARNING !!!!! W2 thermiques non nul derniere couche '
53 if (lmin(ig).gt.1)
then
67 if (l.le.lmax(ig))
then
68 if (zw2(ig,l).lt.0.)
then
71 zw2(ig,l)=sqrt(zw2(ig,l))
72 wmax(ig)=max(wmax(ig),zw2(ig,l))
82 zlevinter(ig)=zlev(ig,1)
92 num(ig)=num(ig)+zw2(ig,l)*zlev(ig,l)*(zlev(ig,l+1)-zlev(ig,l))
93 denom(ig)=denom(ig)+zw2(ig,l)*(zlev(ig,l+1)-zlev(ig,l))
97 if (denom(ig).gt.1.e-10)
then
98 zmax(ig)=2.*num(ig)/denom(ig)
107 zlevinter(ig)=(zlev(ig,lmax(ig)+1)-zlev(ig,lmax(ig)))* &
108 & linter(ig)+zlev(ig,lmax(ig))-lmax(ig)*(zlev(ig,lmax(ig)+1) &
109 & -zlev(ig,lmax(ig)))
112 zmax(ig)=max(zmax(ig),zlevinter(ig)-zlev(ig,1))
122 if (lmix(ig).gt.1)
then
124 if (((zw2(ig,lmix(ig)-1)-zw2(ig,lmix(ig))) &
125 & *((zlev(ig,lmix(ig)))-(zlev(ig,lmix(ig)+1))) &
126 & -(zw2(ig,lmix(ig))-zw2(ig,lmix(ig)+1)) &
127 & *((zlev(ig,lmix(ig)-1))-(zlev(ig,lmix(ig))))).gt.1e-10) &
130 zmix(ig)=((zw2(ig,lmix(ig)-1)-zw2(ig,lmix(ig))) &
131 & *((zlev(ig,lmix(ig)))**2-(zlev(ig,lmix(ig)+1))**2) &
132 & -(zw2(ig,lmix(ig))-zw2(ig,lmix(ig)+1)) &
133 & *((zlev(ig,lmix(ig)-1))**2-(zlev(ig,lmix(ig)))**2)) &
134 & /(2.*((zw2(ig,lmix(ig)-1)-zw2(ig,lmix(ig))) &
135 & *((zlev(ig,lmix(ig)))-(zlev(ig,lmix(ig)+1))) &
136 & -(zw2(ig,lmix(ig))-zw2(ig,lmix(ig)+1)) &
137 & *((zlev(ig,lmix(ig)-1))-(zlev(ig,lmix(ig))))))
139 zmix(ig)=zlev(ig,lmix(ig))
146 if ((zmax(ig)-zmix(ig)).le.0.)
then
147 zmix(ig)=0.9*zmax(ig)
155 if (zmix(ig).ge.zlev(ig,l).and. &
156 & zmix(ig).lt.zlev(ig,l+1))
then
subroutine thermcell_height(ngrid, nlay, lalim, lmin, linter, lmix, zw2, zlev, lmax, zmax, zmax0, zmix, wmax, lev_out)