Changeset 2107 for trunk/LMDZ.GENERIC/libf
- Timestamp:
- Feb 26, 2019, 4:45:05 PM (6 years ago)
- Location:
- trunk/LMDZ.GENERIC/libf/phystd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/LMDZ.GENERIC/libf/phystd/convadj.F ¶
r1805 r2107 4 4 & pdufi,pdvfi,pdhfi,pdqfi, 5 5 & pduadj,pdvadj,pdhadj, 6 & pdqadj )6 & pdqadj,lmax) 7 7 8 8 USE tracer_h … … 41 41 REAL pu(ngrid,nlay),pdufi(ngrid,nlay),pduadj(ngrid,nlay) 42 42 REAL pv(ngrid,nlay),pdvfi(ngrid,nlay),pdvadj(ngrid,nlay) 43 INTEGER lmax(ngrid) 43 44 44 45 ! Tracers … … 156 157 DO l=2,nlay 157 158 DO ig=1,ngrid 158 IF(zhc(ig,l).LT.zhc(ig,l-1)) vtest(ig)=.true. 159 IF (zhc(ig,l).LT.zhc(ig,l-1).and.(l.GT.lmax(ig))) THEN 160 vtest(ig)=.true. 161 ENDIF 159 162 ENDDO 160 163 ENDDO 161 164 162 165 ! Make a list of them 163 166 jcnt=0 … … 194 197 l2 = l2 + 1 195 198 IF (l2 .GT. nlay) EXIT 196 IF ( zhc(i, l2) .LT. zhc(i, l2-1)) THEN199 IF ((zhc(i, l2).LT.zhc(i, l2-1)).and.(l.GT.lmax(i))) THEN 197 200 198 201 ! l2 is the highest level of the unstable column … … 223 226 down = .false. 224 227 IF (l1 .ne. 1) then !-- and then 225 IF ( zhmc .lt. zhc(i, l1-1)) then228 IF ((zhmc.LT.zhc(i, l1-1)).and.(l.GT.lmax(i))) then 226 229 down = .true. 227 230 END IF -
TabularUnified trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90 ¶
r2105 r2107 1189 1189 1190 1190 IF (calltherm) THEN 1191 ! AB : we need to evaporate ice before calling thermcell_main1191 ! AB : We need to evaporate ice before calling thermcell_main 1192 1192 IF (water) THEN 1193 1193 CALL evap(ngrid,nlayer,nq,ptimestep,pt,pq,pdq,pdt,dqevap,dtevap,zqtherm,zttherm) … … 1197 1197 ENDIF 1198 1198 1199 ! AB: WARNING: if a plume stops, the parametrization never look above if somewhere the atmosphere is still unstable!1200 ! As is, there cannot be more than one plume by grid point by time step.1199 ! AB: If a plume stops, the parametrization never look above if somewhere the atmosphere is still unstable! 1200 ! Maybe it's a good idea to call convective adjustment too. 1201 1201 CALL thermcell_main(icount, ngrid, nlayer, ptimestep, & 1202 1202 pplay, pplev, pphi, firstcall, & 1203 pu, pv, pt, pq(:,:,igcm_h2o_vap),&1203 pu, pv, zttherm, zqtherm(:,:,igcm_h2o_vap), & 1204 1204 zdutherm, zdvtherm, zdttherm, zdotherm, & 1205 1205 f0, fm0, entr0, detr0, & … … 1208 1208 lmin, lmix, lalim, lmax, & 1209 1209 zpopsk, ratqscth, ratqsdiff, & 1210 ! AB : next variables are only used for diagnoses1210 ! AB : Next variables are only used for diagnoses 1211 1211 Ale_bl,Alp_bl,lalim_conv,wght_th, & 1212 1212 pbl_tke,pctsrf,omega_therm,airephy, & … … 1231 1231 ENDIF 1232 1232 1233 ELSE 1234 1235 lmax(1:ngrid) = 0 1236 1233 1237 ENDIF ! end of 'calltherm' 1234 1238 … … 1250 1254 pdu,pdv,zdh,pdq, & 1251 1255 zduadj,zdvadj,zdhadj, & 1252 zdqadj )1256 zdqadj,lmax) 1253 1257 1254 1258 pdu(1:ngrid,1:nlayer) = pdu(1:ngrid,1:nlayer) + zduadj(1:ngrid,1:nlayer)
Note: See TracChangeset
for help on using the changeset viewer.