anchor.diff:  
           ! temporary to hold the variable to be interpolated
           type(variable_t) :: var_to_interpolate
  +        integer :: nz
   
           ! make sure the dictionary is reset to point to the first variable
           call this%variables_to_force%reset_iterator()
  
positive.code:             end associate
          endif
  
          if (this_image()==1) print*, "Finished reading core domain variables"
  
      end subroutine
  
  
negative.code:     end subroutine
  
  
      !> -------------------------------
      !! Set up the initial conditions for the domain
      !!
      !! This includes setting up all of the geographic interpolation now that we have the forcing grid
      !! and interpolating the first time step of forcing data on to the high res domain grids
      !!
      !! -------------------------------
      module subroutine get_initial_conditions(this, forcing, options)
        implicit none
        class(domain_t),  intent(inout) :: this
        class(boundary_t),intent(inout) :: forcing
        class(options_t), intent(in)    :: options
  
        ! create geographic lookup table for domain
        call setup_geo_interpolation(this, forcing)
  
        ! for all variables with a forcing_var /= "", get forcing, interpolate to local domain
        call interpolate_datasets(this, forcing)
  
      end subroutine
  
  
      !> -------------------------------
      !! Send the halos from all exchangable objects to their neighbors
      !!
      !! -------------------------------
      module subroutine halo_send(this)
        class(domain_t), intent(inout) :: this
        call this%water_vapor%send()
        call this%potential_temperature%send()
        call this%cloud_water_mass%send()
        call this%cloud_ice_mass%send()
        call this%cloud_ice_number%send()
        call this%rain_mass%send()
        call this%rain_number%send()
        call this%snow_mass%send()
        call this%graupel_mass%send()
      end subroutine
  
      !> -------------------------------
      !! Get the halos from all exchangable objects from their neighbors
      !!
      !! -------------------------------
      module subroutine halo_retrieve(this)
        class(domain_t), intent(inout) :: this
        call this%water_vapor%retrieve() ! the retrieve call will sync all
        call this%potential_temperature%retrieve(no_sync=.True.)
        call this%cloud_water_mass%retrieve(no_sync=.True.)
        call this%cloud_ice_mass%retrieve(no_sync=.True.)
        call this%cloud_ice_number%retrieve(no_sync=.True.)
        call this%rain_mass%retrieve(no_sync=.True.)
        call this%rain_number%retrieve(no_sync=.True.)
        call this%snow_mass%retrieve(no_sync=.True.)
        call this%graupel_mass%retrieve(no_sync=.True.)
      end subroutine
  
      !> -------------------------------
      !! Send and get the halos from all exchangable objects to/from their neighbors
      !!
      !! -------------------------------
      module subroutine halo_exchange(this)
        class(domain_t), intent(inout) :: this
        call this%halo_send()
  
        call this%halo_retrieve()
      end subroutine
  
  
      !> -------------------------------
  