anchor.diff:          type(Time_type),    intent(in)      :: end_time
           type(options_t),    intent(in)      :: options
   
  -        real :: time_percent
  +        real :: time_percent, last_time
           double precision :: seconds
           type(time_delta_t) :: dt, progress_dt, time_step_size
   
  
positive.code: 
              ! set an upper bound on dt to keep microphysics and convection stable (?)
              seconds = dt%seconds()
  
              sync all
              call co_min(seconds)
              call dt%set(seconds=min(seconds,120.0D0))
  
  
              if (options%parameters%interactive .and. (this_image()==1)) then
                  progress_dt  = (end_time - domain%model_time)
                  time_percent = 100 - progress_dt%seconds() / time_step_size%seconds()  * 100
                  write(*,"(A,f5.1,A,A$)") char(13), max(0.0,time_percent)," %  dt=",trim(dt%as_string())
              endif
  
              ! Make sure we don't over step the forcing period
  
negative.code:                 !                 use_density=.True.))
  
              else
                  ! compute the dt to meet the CFL criteria specified given dx, u, v, w, dz
                  call dt%set(seconds=compute_dt(domain%dx, domain%u%data_3d, domain%v%data_3d, domain%w%data_3d, domain%density%data_3d, domain%dz_interface%data_3d, &
                                  options%parameters%cfl_reduction_factor, cfl_strictness=options%parameters%cfl_strictness,                 &
                                  use_density=.False.))
  