diff --git a/physics/smoke_dust/module_smoke_plumerise.F90 b/physics/smoke_dust/module_smoke_plumerise.F90 index aa45890f4..c7739f288 100755 --- a/physics/smoke_dust/module_smoke_plumerise.F90 +++ b/physics/smoke_dust/module_smoke_plumerise.F90 @@ -629,7 +629,7 @@ SUBROUTINE MAKEPLUME (coms,kmt,ztopmax,ixx,imm) character (len=10) :: varn integer :: izprint, iconv, itime, k, kk, kkmax, deltak,ilastprint,kmt & ,ixx,nrectotal,i_micro,n_sub_step -real(kind=kind_phys) :: vc, g, r, cp, eps, & +real(kind=kind_phys) :: vc, g, r, cp, eps, min_dt, max_dt, & tmelt, heatsubl, heatfus, heatcond, tfreeze, & ztopmax, wmax, rmaxtime, es, esat, heat,dt_save !ESAT_PR, character (len=2) :: cixx @@ -685,6 +685,8 @@ SUBROUTINE MAKEPLUME (coms,kmt,ztopmax,ixx,imm) ! ******************* model evolution ****************************** rmaxtime = float(coms%maxtime) +min_dt = rmaxtime*1e-4 +max_dt = 5 ! !print * ,' TIME=',coms%time,' RMAXTIME=',rmaxtime !print*,'=======================================================' @@ -698,7 +700,7 @@ SUBROUTINE MAKEPLUME (coms,kmt,ztopmax,ixx,imm) !sam write(0,81) coms%nm1,kmt,kkmax,deltak !-- set timestep !coms%dt = (coms%zm(2)-coms%zm(1)) / (coms%tstpf * wmax) - coms%dt = min(5.,(coms%zm(2)-coms%zm(1)) / (coms%tstpf * wmax)) + coms%dt = min(max_dt, max(min_dt, (coms%zm(2)-coms%zm(1)) / (coms%tstpf * wmax))) !-- elapsed time, sec coms%time = coms%time+coms%dt