Changeset 2107
- Timestamp:
- Feb 26, 2019, 4:45:05 PM (6 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r2105 r2107 1439 1439 - Remove a potential division by zero in thermcell_plume with variable zw2m. 1440 1440 1441 == 14/01/2018 == AB1441 == 14/01/2018 == AB 1442 1442 - add comment in README for revisions 2066 and 2067 1443 1443 - allocate f0 only if calltherm=true … … 1445 1445 - replace watersat subroutine by Psat_water in the thermal plume model, cf. revision 1993 or 29/08/2018 JL comment. 1446 1446 1447 == 07/02/2018 == AB1447 == 07/02/2018 == AB 1448 1448 - uncomment two "corrections" in thermcell_flux. They are used only if iflag_thermals_optflux is set to 0 (1 by default) 1449 1449 - remove useless parameter fact_shell in thermcell_mod 1450 1450 - now take d_temp into acocunt in thermcell_plume to trigger the plume and compute first unstable layer speed. 1451 1451 1452 == 15/02/2018 == AB1452 == 15/02/2018 == AB 1453 1453 - Fix a bug in thermcell_alim.F90 where loops were inverted. 1454 1454 - In thermal plume model, arrays size is set with ngrid,nlay arguments, no longer thanks to dimphy module. … … 1456 1456 - Some minor changes in thermcell_plume and thermcell_main. 1457 1457 1458 == 18/02/2018 == AB1458 == 18/02/2018 == AB 1459 1459 - use detr as thermcell_dq argument (called in thermcell_main) and clean up thermcell_dq. 1460 1460 - fix a bug in thermcell_flux with lmax. … … 1462 1462 - add new correction in thermcell_flux when entrainement is too high. 1463 1463 - evaporate ice before calling thermal plume model 1464 1465 == 26/02/2019 == AB 1466 - now convective adjustment can be used for layers beyond thermals -
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 -
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.