anchor.diff:  
           integer(ip) :: i
   
  +        ! Make the max_U values in each domain consistent across halos
  +        call md%communicate_max_U
  +
           ! Print out timing info for each
           do i = 1, size(md%domains, kind=ip)
               write(log_output_unit, "(A)") ''
  
positive.code:                 ! domain could support substantially different time-steps in different parts of the
                  ! "big domain". In combination with load balancing, we can get large speedups.
                  !
                  ! NOTE: This will lead to different timestepping with different numbers of cores,
                  ! so the results should depend on the number of cores.
                  if(md%domains(j)%max_dt > 0.0_dp) nt = max(1, min(nt, ceiling(dt/md%domains(j)%max_dt) ))
              end if
  
  
negative.code:         procedure :: send_halos => send_multidomain_halos
          procedure :: recv_halos => receive_multidomain_halos
          procedure :: separate_halos => separate_fine_halos_from_their_domain
          procedure :: communicate_max_U => communicate_max_U
          ! Memory tracking
          procedure :: memory_summary => memory_summary
          ! Convenience
  