anchor.diff:  !
   ! ------------------------------------------------------------------------------------------
   
  +! convert longitudes that may be -180-180 into 0-360 range
  +    subroutine convert_longitudes(long_data)
  +        implicit none
  +        real, dimension(:,:), intent(inout) :: long_data
  +        where(long_data<0) long_data = 360+long_data
  +    end subroutine convert_longitudes
  +
   !   Allow running over a sub-domain, by removing the outer N grid cells from all sides of the domain (lat,lon,terrain)
       subroutine remove_edges(domain,edgesize)
           implicit none
  
positive.code:         nz=size(boundary%lowres_z,2)
          if (maxval(boundary%terrain)>maxval(boundary%lowres_z(:,1,:))) then
              write(*,*) "WARNING Assuming forcing Z levels are AGL, not ASL : adding ground surface height"
              do i=1,nz
                  boundary%lowres_z(:,i,:)=boundary%lowres_z(:,i,:)+boundary%terrain
              enddo
  
negative.code:         call io_read2d(options%init_conditions_file,options%hgt_hi,domain%terrain,1)
          call io_read2d(options%init_conditions_file,options%lat_hi,domain%lat,1)
          call io_read2d(options%init_conditions_file,options%lon_hi,domain%lon,1)
          call convert_longitudes(domain%lon)
          call io_read2d(options%init_conditions_file,options%ulat_hi,domain%u_geo%lat,1)
          call io_read2d(options%init_conditions_file,options%ulon_hi,domain%u_geo%lon,1)
          call convert_longitudes(domain%u_geo%lon)
          call io_read2d(options%init_conditions_file,options%vlat_hi,domain%v_geo%lat,1)
          call io_read2d(options%init_conditions_file,options%vlon_hi,domain%v_geo%lon,1)
          call convert_longitudes(domain%v_geo%lon)
          
          if (options%landvar/="") then
              call io_read2d(options%init_conditions_file,options%landvar,domain%landmask,1)
              where(domain%landmask==0) domain%landmask=kLC_WATER
  